基于 DeepSeek 大模型 + 向量检索增强生成(RAG)的本地知识问答工具。
- 📄 支持 PDF / Word / TXT 三种格式文档入库
- 🔍 基于向量检索的语义问答,从您的文档中查找答案
- 💬 Gradio 聊天界面,支持流式输出、多轮对话
- 📊 知识库状态查看、一键重建索引
- 📚 回答附带参考来源,方便验证
pip install -r requirements.txt复制 .env.example 为 .env,填入您的 DeepSeek 配置:
cp .env.example .env编辑 .env:
DEEPSEEK_API_KEY=你的DeepSeekAPI密钥
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-v4-pro
将您的 PDF / Word / TXT 文档放入 knowledge/ 文件夹。
python ingest.py如需强制重建索引(清空并重新入库所有文档):
python ingest.py --rebuildpython app.py浏览器访问 http://127.0.0.1:7860 即可开始问答。
rag_assistant/
├── config.py # 配置文件(API、路径、参数)
├── ingest.py # 文档解析、分块、向量化入库
├── retriever.py # 向量检索模块
├── rag_pipeline.py # RAG 生成管道(检索 + DeepSeek 生成)
├── app.py # Gradio Web 界面
├── knowledge/ # 知识库文档存放目录
├── chroma_db/ # 向量数据库持久化目录
├── requirements.txt
└── .env # 环境变量(从 .env.example 复制)
- 提问:在输入框输入问题,点击"发送"或按回车
- 查看知识库状态:点击右侧"📊 查看知识库状态"按钮
- 重建索引:新增文档后,点击"🔄 重建知识库索引"按钮(或运行
python ingest.py)
- LLM:DeepSeek(OpenAI 兼容接口)
- 向量化:sentence-transformers(
shibing624/text2vec-base-chinese) - 向量数据库:ChromaDB(本地持久化)
- 文档解析:PyMuPDF / python-docx
- 首次运行会下载中文向量模型(约 400MB),需要网络连接
- 如果知识库中没有相关文档,模型会明确提示
- 支持增量入库:运行
python ingest.py时,已入库的文档会自动跳过