使用说明
发票自动化RAG聊天机器人
一个由RAG驱动的聊天机器人,可以回答多个发票自动化文档文件中的问题。
建筑
Multiple Docs → Indexer → Vector Store → RAG Pipeline → MCP Server → Chat Interface
特性
✅ 多文档支持:自动索引README.md、walkthrough.md和任何其他.md文件 ✅ 智能上下文检索:在所有文档中查找相关信息 ✅ 消息来源:显示用于回答每个问题的文档 ✅ 技术查询支持:了解有关类、模块和函数的问题 ✅ 漂亮的UI:具有源代码徽章和上下文显示的现代聊天界面
快速开始
1.设置
重要:将文档文件复制到数据文件夹:
# Copy README.md
cp /path/to/your/README.md chatbot/data/README.md
# Copy walkthrough.md
cp /path/to/your/walkthrough.md chatbot/data/walkthrough.md
# Copy any other markdown files
cp /path/to/your/docs/*.md chatbot/data/
系统将自动索引所有 .md 文件在 data/ 文件夹!
2.安装依赖项
# Backend
cd backend
pip install -r requirements.txt
# Frontend (in new terminal)
cd frontend
pip install -r requirements.txt
3.运行应用程序
终端1-后端:
cd backend
python app.py
2号航站楼-前端:
cd frontend
streamlit run app.py
4.访问应用程序
- 前端:http://localhost:8501
- 后端API:http://localhost:8000
- API文件:http://localhost:8000/docs
项目结构
chatbot/
├── backend/ # FastAPI backend with RAG pipeline
│ ├── app.py # Main API server with multi-doc support
│ ├── rag_pipeline.py # Enhanced RAG logic
│ ├── document_indexer.py # Multi-document indexing
│ ├── mcp_server.py # MCP orchestrator
│ ├── requirements.txt # Backend dependencies
│ └── config.yaml # Configuration
├── frontend/ # Streamlit chat interface
│ ├── app.py # Enhanced UI with source display
│ └── requirements.txt # Frontend dependencies
├── data/ # Documentation files (add your .md files here)
│ ├── README.md # General project documentation
│ ├── walkthrough.md # Technical documentation
│ └── *.md # Any other markdown files
├── .env.example # Environment variables template
├── .gitignore # Git ignore rules
└── README.md # This file
示例问题
来自README.md:
- “系统架构是什么?”
- “如何启动API?”
- “可用的端点是什么?”
- “如何安装系统?”
从walkthrough.md:
- “告诉我ProcessInvoice类的情况”
- “document_intelligence_service的作用是什么?”
- “数据库层是如何工作的?”
- “解释供应商配置模块”
跨文档查询:
- “我如何部署系统,涉及哪些模块?”
- “主要组成部分及其实施是什么?”
API终点
GET /:API信息POST /query:处理问题(返回答案+来源)GET /health:健康检查GET /documents:列出所有索引文档
技术
- 后端:FastAPI,Python
- 前端:流光灯
- RAG 流程:支持多文档的自定义实现
- 矢量存储:内存中基于关键字的索引
运作原理
- 文档加载:全部
.md文件在data/启动时自动加载 - 索引:文档被拆分为块,并由DocumentIndexer进行索引
- 查询处理:用户问题与所有文档块匹配
- 上下文检索:检索前5个最相关的块(从任何文档中)
- 答案生成:RAG管道使用检索到的上下文生成答案
- 消息来源:显示用于回答的文档
添加新文档
只需添加任何 .md 文件到 data/ 文件夹并重新启动后端:
cp your_new_doc.md chatbot/data/
cd backend
python app.py
系统将自动为其建立索引!
故障排除
后端无法启动:
- 确保你在后端目录中
- 检查是否安装了所有依赖项:
pip install -r requirements.txt
前端无法连接:
- 确保后端在端口8000上运行
- 检查前端/app.py中的API_URL
无相关答案:
- 确保将实际文档复制到数据中/
- 检查文件是否为有效的markdown(.md扩展名)
- 重新启动后端以重新索引
- 使用
/documents端点,查看索引内容
未显示的来源:
- 如果没有找到相关内容,这是正常的
- 试着重新表述你的问题
- 检查您的文档文件是否包含相关内容
未来的增强功能
- []添加带有嵌入的语义搜索(OpenAI、句子转换器)
- []与Claude/GPT集成,以更好地生成答案
- []添加持久矢量数据库(Chroma、Pinecone)
- []支持PDF和其他文档格式
- []添加文档版本控制和更改跟踪
- []实现缓存以获得更快的响应
- []添加用户身份验证和查询历史记录
许可证
MIT许可证