Gemini Flash 2.0 Excel RAG 系统
这个项目利用 LangChain 调用 Google 的 Gemini Flash 2.0 模型,并使用 markitdown 库作为 Excel 导入工具,将数据存储到本地的向量数据库中。系统能够通过向量数据库中的 Excel 表格内容,以 RAG (检索增强生成) 的方式增强模型回答的准确性。
功能特点
- 使用 Google 的 Gemini Flash 2.0 大语言模型
- 支持导入 Excel 文件到向量数据库
- 基于导入的 Excel 数据进行问答
- 使用 RAG 技术增强回答的准确性和相关性
- 提供友好的 Gradio Web 界面
安装步骤
克隆或下载本项目代码
安装所需依赖包:
pip install -r gemini_excel_requirements.txt
- 获取 Google API 密钥:
- 访问 Google AI Studio
- 创建一个 API 密钥
- 在
gemini_excel_rag.py文件中替换YOUR_GOOGLE_API_KEY为您的实际 API 密钥
使用方法
- 运行应用程序:
python gemini_excel_rag.py
在浏览器中访问显示的本地地址(通常是 http://127.0.0.1:7860)
使用界面:
- 导入 Excel 数据:上传 Excel 文件并处理导入到向量数据库
- 查询问答:输入问题,系统会基于导入的 Excel 数据回答
- 查看向量库内容:搜索向量库中的内容,查看已导入的数据
工作原理
数据导入流程:
- 上传 Excel 文件
- 使用 pandas 读取 Excel 内容
- 将每行数据转换为文本格式
- 存储到 Chroma 向量数据库
查询回答流程:
- 用户输入问题
- 系统在向量数据库中检索相关内容
- Gemini Flash 2.0 模型结合检索内容生成回答
- 返回增强后的回答给用户
自定义配置
- 修改嵌入模型:可以在代码中更改
embedding_model的初始化参数 - 调整文本分割参数:修改
text_splitter的参数以适应不同的数据格式 - 更改 RAG 检索数量:在
retriever的search_kwargs中调整k值
注意事项
- 确保您有足够的网络连接以访问 Google API
- 大型 Excel 文件处理可能需要较长时间
- 向量数据库存储在本地
./vector_store目录中
依赖库
- langchain:用于构建 RAG 流程
- langchain-google-genai:连接 Gemini 模型
- gradio:提供 Web 界面
- pandas:处理 Excel 文件
- chromadb:向量数据库
- sentence-transformers:文本嵌入模型
- markitdown:Excel 内容提取工具
许可证
本项目使用 MIT 许可证。