# 如何构建自己的私密图片视觉搜索应用
现代智能手机用户对于视觉搜索并不陌生,它允许用户使用自然语言在照片中进行搜索。随着开源多模态大语言模型(LLM)的发布,如今您可以为自己的私人照片集构建类似的应用程序。这篇文章将指导您如何实现私密的视觉搜索和图片问答功能。
## 目的
本教程旨在介绍如何使用开源多模态LLM和嵌入模型实现对个人照片收藏的视觉搜索和问答,详细讲解实现步骤,并提供可用的代码示例。
## 主要内容
### 多模态LLM的选择
我们将使用一个开源的多模态LLM(例如`bakllava`)来为每张图片创建总结,嵌入并存储在`Chroma`中。为了生成图片总结和嵌入,我们采用`Ollama`模型。
您可以从以下地址下载Ollama模型:
- [Ollama下载地址](https://ollama.ai/)
同样,您可以从这里下载`bakllava`和`llama2:7b`嵌入模型:
- [Bakllava库链接](https://ollama.ai/library/bakllava)
- [Llama2库链接](https://ollama.ai/library/llama2:7b)
### 图像索引的创建
1. 准备好您要查询的图片集,存放在`/docs`目录中。
2. 运行以下命令创建图像索引:
```bash
poetry install
python ingest.py
这将使用本地bakllava模型对每张图片进行总结,并将总结嵌入到Chroma中。
查询与答案生成
当用户发出问题后,系统会根据用户输入与图片总结之间的相似性检索相关图片,并将这些图片传递给bakllava进行答案合成。
代码示例
# 在 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")
常见问题和解决方案
网络访问限制
在某些区域,访问API可能会受到限制。在这些情况下,开发者可能需要使用API代理服务以提高访问的稳定性。例如,在设置API端点时,可以使用{AI_URL}作为API代理服务示例。
追踪和调试
如果需要对应用进行追踪和调试,可以配置LangSmith进行监控。请确保已注册并获取LangSmith的API密钥。
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project>
总结与进一步学习资源
通过本教程,您应该能够创建一个功能齐全的私密图片视觉搜索应用。若想进一步提升您的应用,可以探讨更多的开源模型和嵌入方法。以下是一些推荐的学习资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---
24

被折叠的 条评论
为什么被折叠?



