基于 RAG (Retrieval-Augmented Generation) 的论文知识库问答系统,支持多格式论文上传、混合检索与语义重排、多轮对话与 Agent 工具调用,具备 ReAct 推理、可选 Planner 任务规划(进入主控前生成步骤计划写入系统提示)与 Reflection 自检闭环。
- 🎯 精准检索:混合检索(向量 + BM25)+ 语义重排序
- 🔒 安全可靠:JWT 认证、用户数据隔离
- 📱 多端支持:PC 端(KivyMD)和 Android 移动端
- 🚀 高性能:LangGraph 工作流引擎、智能缓存
- 📚 多格式支持:PDF、DOCX、TXT、CSV、Excel 等
- 后端:FastAPI + LangChain + LangGraph + ChromaDB
- 前端:KivyMD (PC) / Android APK
- 数据库:MySQL (用户/历史) + ChromaDB (向量索引)
- LLM:阿里云 DashScope (Qwen-Max)
- Python 3.10+
- MySQL 5.7+
- 阿里云 DashScope API Key
# 创建虚拟环境
python -m venv bert_env
# 激活虚拟环境
# Windows:
bert_env\Scripts\activate
# Linux/Mac:
source bert_env/bin/activate
# 安装依赖
pip install -r requirements.txt创建 .env 文件:
DASHSCOPE_API_KEY=your-api-key-here# 初始化数据库表
python init_user.py# 启动后端服务器
python server.py
# 启动客户端(新终端)
python main.py- 产品报告 - 完整的产品介绍和技术文档
- 求职准备 - 简历写法、面试话术与展示建议
- RAGAS 评估 - RAGAS 离线评估(
python -m app.ragas_eval) - MCP 接入说明 - 可选 MySQL MCP(
query_mysql查业务库)与 SQLite MCP(query_database_via_mcp)
- ✅ 用户注册/登录(JWT 认证)
- ✅ 多格式文件上传(PDF、DOCX、TXT 等)
- ✅ 智能问答(混合检索 + 语义重排序)
- ✅ 多轮对话(上下文记忆)
- ✅ 聊天历史管理
- ✅ 思考过程可视化
PaperRAG/
├── app/ # 核心应用模块
│ ├── auth.py # 认证模块
│ ├── chains.py # LLM Chain 定义
│ ├── graph.py # LangGraph 工作流
│ ├── retriever.py # 检索模块
│ ├── loader.py # 文档加载器
│ ├── rag_core.py # RAG 核心(Rerank)
│ └── evaluation.py # 评估模块
├── server.py # FastAPI 后端服务
├── main.py # KivyMD 客户端
├── run_evaluation.py # 自研评估脚本
├── app/ragas_eval/ # RAGAS 评估(含 ragas_outputs/ 报告目录,默认 gitignore)
├── eval_dataset.json # 评估测试集
├── data/papers/ # 论文 PDF 等(与 data/ 根目录一并被索引)
├── requirements.txt # 依赖列表
└── README.md # 本文件
- API Key:请妥善保管你的
DASHSCOPE_API_KEY,不要提交到 Git - Agent Planner:默认开启;若需关闭以节省一次 LLM 调用,可在
.env中设置AGENT_PLANNER_ENABLED=false - 数据库配置:修改
server.py中的数据库连接信息 - 敏感数据:不要上传包含敏感信息的文件到仓库
本项目仅供学习和研究使用。
欢迎提交 Issue 和 Pull Request!
版本: V 1.3.0 Plus
最后更新: 2026-01-23