Skip to content

biao994/DocPaws

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DocPaws

工程化 RAG 文档助手:知识库管理、PDF 索引、流式对话、引用与检索阈值拒答。
后端 FastAPI + SQLModel,前端 Vue 3 + Vite。

架构文档见 docs/architecture/layering.mdusecases-style.md
详细后端说明见 backend/README.md,评估见 eval/README.md

界面预览

首页 — Welcome、会话侧栏、选知识库输入框。

首页

知识库浏览 — 个人知识库、文件夹树、PDF 上传。

知识库浏览

RAG 对话与引用 — 库内有答案的问题,流式回答、来源引用、scope(全库 / 文件夹 / 单文件)。

RAG 对话与引用

检索拒答 — 库外问题或距离未过阈值时拒答,避免幻觉。

检索拒答

核心能力

  • 个人知识库、文件夹、PDF 上传与 manifest 增量索引
  • RAG 对话(scope:全库 / 文件夹 / 单文件)、流式 SSE、思考过程展示
  • 检索距离阈值拒答RETRIEVAL_MAX_DISTANCE,详见 backend/README.md
  • Golden 20 可复现评估(eval/

环境要求

  • Miniconda 或 Anaconda(推荐 Conda 管理后端 Python 3.11)
  • Node.js 20+(前端)
  • Docker(推荐:docker compose up -d 起 Postgres + Redis + MinIO)
  • LLM + Embedding API Key(DeepSeek / OpenAI 兼容 / SiliconFlow 等)

快速启动

0. 基础设施

在项目根目录 DocPaws/

docker compose up -d
服务 地址 说明
PostgreSQL 127.0.0.1:5432 账号 docpaws / docpaws,库 docpaws
MinIO API http://127.0.0.1:9000 上传 PDF 对象存储
MinIO 控制台 http://127.0.0.1:9001 账号 minioadmin / minioadmin123
Redis 127.0.0.1:6379 DB /0 缓存,/1 Celery broker,/2 result

停止:docker compose down(数据在 Docker volume 中保留)。

1. 后端

Anaconda Prompt 或已 conda init 的终端中,于项目根目录操作:

conda create -n docpaws python=3.11 -y   # 首次
conda activate docpaws

cd backend
pip install -r requirements.txt

复制环境变量并填入 API Key(Windows PowerShell):

Copy-Item .env.example .env

macOS / Linux:cp .env.example .env。其余变量见 .env.example 注释。

uvicorn docpaws.main:app --reload --port 8000
  • API 文档:http://localhost:8000/docs
  • 数据库:不设 DATABASE_URL 时用 SQLite(backend/data/);生产建议在 .env 配置 DATABASE_URL=postgresql+psycopg://docpaws:docpaws@127.0.0.1:5432/docpaws
  • 上传与 FAISS 索引仍在 backend/data/(或 .env 指定路径)

2. 前端

cd frontend
npm install
npm run dev
  • 开发地址:http://localhost:3000
  • /api 由 Vite 代理到 http://127.0.0.1:8000;改后端端口时同步改 frontend/vite.config.js
  • CORS_ORIGINS 需包含前端 Origin

3. 可选:索引 Worker

上传 PDF 后需建向量索引。配置 CELERY_BROKER_URL 后,另开终端(conda activate docpaws,在 backend/):

# Linux / macOS
celery -A docpaws.infra.tasks.celery_app:celery_app worker --loglevel=info

# Windows(需 solo 池)
celery -A docpaws.infra.tasks.celery_app:celery_app worker --loglevel=info --pool=solo

常用命令

目录 命令 说明
backend/ pytest tests/ -q 后端测试(默认 SQLite,88 条)
backend/ RUN_PG_INTEGRATION=1 pytest tests/test_pg_integration.py -m pg -v PostgreSQL 集成测试(需 docker compose up -d postgres
frontend/ npm run typecheck Vue/TS 类型检查
frontend/ npm run build 生产构建
backend/ python ../eval/run_rag_eval.py Golden 20 评估

仓库结构

DocPaws/
  backend/            # FastAPI API、索引 worker、Celery 任务
  frontend/           # Vue 3 单页应用
  eval/               # Golden 20 RAG 回归评估
  docs/               # 架构约定与界面截图
  docker-compose.yml  # 本地 Postgres + Redis + MinIO

Star History

DocPaws Star History

许可证

本项目采用 MIT License

About

工程化 RAG 文档助手:知识库、PDF 索引、Agent 工具编排、scope 检索、引用溯源与拒答阈值。FastAPI + Vue3

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors