[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80982":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":17,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":14,"starSnapshotCount":14,"syncStatus":12,"lastSyncTime":27,"discoverSource":28},80982,"DocPaws","biao994\u002FDocPaws","biao994","工程化 RAG 文档助手：知识库、PDF 索引、Agent 工具编排、scope 检索、引用溯源与拒答阈值。FastAPI + Vue3",null,"Python",105,2,1,0,26,75,11,1.43,"MIT License",false,"main",true,[],"2026-06-12 02:04:09","﻿# DocPaws\n\n企业级 RAG 文档助手：知识库管理、PDF 索引、流式对话、引用与检索阈值拒答。  \n后端 FastAPI + SQLModel，前端 Vue 3 + Vite。\n\n## 仓库结构\n\n```\nDocPaws\u002F\n  backend\u002F          # FastAPI API、索引 worker、Celery 任务\n  frontend\u002F         # Vue 3 单页应用\n  eval\u002F             # Golden 20 RAG 回归评估\n```\n\n详细后端分层见 [`backend\u002FREADME.md`](backend\u002FREADME.md)。  \n评估说明见 [`eval\u002FREADME.md`](eval\u002FREADME.md)。\n\n## 环境要求\n\n- [Miniconda](https:\u002F\u002Fdocs.conda.io\u002Fen\u002Flatest\u002Fminiconda.html) 或 Anaconda（推荐用 **Conda** 管理后端 Python，避免和系统 Python 混用）\n- Python **3.11**（由 Conda 环境提供即可）\n- Node.js 20+（前端，与 Conda 无关）\n- Redis（可选：检索缓存、Celery 索引队列）\n- LLM + Embedding 的 API Key（DeepSeek \u002F OpenAI 兼容 \u002F SiliconFlow 等）\n\n## 快速启动\n\n### 1. 后端（Conda + pip）\n\n在**项目根目录** `DocPaws\u002F` 下操作。以下命令在 **Anaconda Prompt** 或已执行过 `conda init` 的终端中使用。\n\n**① 创建并激活环境（只需做一次）**\n\n```bash\nconda create -n docpaws python=3.11 -y\nconda activate docpaws\n```\n\n**② 安装依赖并配置**\n\n```bash\ncd backend\npip install -r requirements.txt\n```\n\nWindows PowerShell 若没有 `cp`，可复制模板：\n\n```powershell\nCopy-Item .env.example .env\n```\n\nmacOS \u002F Linux：\n\n```bash\ncp .env.example .env\n```\n\n用编辑器打开 `backend\u002F.env`，填入 `DEEPSEEK_API_KEY`、`EMBEDDING_API_KEY` 等（参见 `.env.example` 注释）。\n\n**③ 启动 API**\n\n```bash\n# 确保仍在 backend\u002F 且已 conda activate docpaws\nuvicorn docpaws.main:app --reload --port 8000\n```\n\n- API 文档：\u003Chttp:\u002F\u002Flocalhost:8000\u002Fdocs>\n- 本地数据默认在 `backend\u002Fdata\u002F`（SQLite、`uploads\u002F`、FAISS 索引）\n\n> **说明**：Conda 只负责隔离 Python 版本；`requirements.txt` 里的包（含 `faiss-cpu`）仍用 **pip** 安装，这是 Python 数据项目的常见做法。  \n> 以后每次开发前先执行：`conda activate docpaws`。\n\n### 2. 前端\n\n```bash\ncd frontend\nnpm install\nnpm run dev\n```\n\n- 开发地址：默认 \u003Chttp:\u002F\u002Flocalhost:3000>（`vite.config.js` 可改端口；若用 3001 等亦可）\n- 前端 `\u002Fapi` 由 Vite **代理到** `http:\u002F\u002F127.0.0.1:8000`，须与下面 uvicorn 端口一致；改后端端口时请同步改 `frontend\u002Fvite.config.js` 的 `proxy.target`\n- `backend\u002F.env` 中 `CORS_ORIGINS` 需包含你的前端 Origin（如 `http:\u002F\u002Flocalhost:3000`）\n\n### 3. 可选：索引 Worker\n\n上传 PDF 后需建向量索引。若配置了 `CELERY_BROKER_URL`，**再开一个终端**，同样先 `conda activate docpaws`，然后在 `backend\u002F` 执行：\n\n先 `cd backend`，再按系统选择（均需已 `conda activate docpaws`）：\n\n```bash\n# Linux \u002F macOS\ncelery -A docpaws.infra.tasks.celery_app:celery_app worker --loglevel=info\n\n# Windows（默认 prefork 池不兼容，需 solo）\ncelery -A docpaws.infra.tasks.celery_app:celery_app worker --loglevel=info --pool=solo\n```\n\n未配置 Celery 时，部分环境会同步或内联执行索引（以当前代码为准）。\n\n## 常用命令\n\n| 目录 | 命令 | 说明 |\n|------|------|------|\n| `backend\u002F` | `pytest tests\u002F -q` | 后端测试（79+ 用例） |\n| `frontend\u002F` | `npm run typecheck` | Vue\u002FTS 类型检查 |\n| `frontend\u002F` | `npm run build` | 生产构建 |\n| `backend\u002F`（已 `conda activate docpaws`） | `python ..\u002Feval\u002Frun_rag_eval.py` | Golden 20 评估 |\n\n## 核心能力\n\n- 个人知识库、文件夹、PDF 上传与 **manifest 增量索引**\n- RAG 对话（**scope**：全库 \u002F 文件夹 \u002F 单文件）、流式 SSE、思考过程展示\n- **检索距离阈值拒答**（`RETRIEVAL_MAX_DISTANCE`）\n- Golden 20 可复现评估（`eval\u002F`）\n\n## 配置说明\n\n复制 [`backend\u002F.env.example`](backend\u002F.env.example) 为 `backend\u002F.env`，**勿将 `.env` 提交到 Git**。\n\n关键变量：\n\n| 变量 | 说明 |\n|------|------|\n| `DEEPSEEK_API_KEY` \u002F `EMBEDDING_API_KEY` | LLM 与向量模型 |\n| `INDEX_DIR` | FAISS 索引目录（Windows 建议纯英文路径） |\n| `RETRIEVAL_MAX_DISTANCE` | L2 距离上限，`0` 表示仅无检索结果时拒答 |\n| `CELERY_BROKER_URL` | 异步索引（可选） |\n\n## 许可证\n\n本项目采用 [MIT License](LICENSE)。\n\n生产部署前请更换 `SECRET_KEY`、关闭默认开发用户逻辑，并审查 FAISS 索引目录权限。\n\n","DocPaws 是一个企业级RAG文档助手，用于知识库管理、PDF索引、流式对话及引用与检索阈值拒答。该项目采用FastAPI和SQLModel构建后端服务，前端则基于Vue 3和Vite框架开发。它支持个人知识库的创建与管理，允许用户上传文件夹和PDF文档，并对其进行增量索引；同时提供基于检索增强生成（RAG）技术的对话功能，能够根据用户指定的范围（全库\u002F文件夹\u002F单文件）进行信息检索并给出回答，还特别设计了基于检索距离的阈值来决定是否响应查询以提高准确性。适用于需要高效管理和利用大量文档资料的企业或研究机构。","2026-06-11 04:03:04","CREATED_QUERY"]