版本: V1
Base URL:http://localhost:8000/api
Swagger UI:http://localhost:8000/docs(自动生成)
最后更新: 2026-05-03
本文档描述 LLM-Wiki 系统所有 API 端点的业务语义——即每个接口在知识库工作流中的作用、适用场景和调用时机,而非技术参数细节。技术参数请查阅 Swagger UI。
- 大部分写操作(创建、修改、删除)需要认证,携带
Authorization: Bearer <token>头 - 读操作(浏览、搜索)通常无需认证
- 角色体系:
general(普通用户) <core(核心成员) <maintainer(维护者) <admin(管理员)
这些接口负责用户的身份认证与会话管理。
| 接口 | 方法 | 认证 | 业务说明 |
|---|---|---|---|
/auth/register |
POST | 无需 | 用户注册。创建新账户。密码要求 8 位以上且包含字母和数字。用户名 3-50 位,仅允许字母、数字、下划线和中文。注册成功后自动登录 |
/auth/login |
POST | 无需 | 用户登录。验证用户名密码,返回 JWT Token。同一 IP 每分钟最多 5 次尝试,超限返回 429 |
/auth/logout |
POST | 无需 | 登出。前端清除本地存储的 Token 即可,后端无状态 |
/auth/me |
GET | 需登录 | 获取当前用户信息。返回已登录用户的详细资料(角色、邮箱等) |
典型场景:管理员通过 /auth/register 创建团队账号 → 成员通过 /auth/login 登录 → 前端存储 Token → 后续请求携带 Token
这些接口用于浏览、检索和编辑 Wiki 知识库中的所有页面。
| 接口 | 方法 | 认证 | 业务说明 |
|---|---|---|---|
/pages |
GET | 无需 | 页面列表。支持按类型过滤(paper/entity/concept/synthesis),分页浏览。这是知识库浏览的主入口 |
/pages/{id} |
GET | 无需 | 页面详情。返回页面的完整 Markdown 内容和 Frontmatter 元数据。前端据此渲染阅读视图 |
/pages/{id} |
PUT | 需登录 | 编辑页面。手动修改页面内容(Markdown 源码)。适用于人工修正 LLM 生成的内容、补全信息 |
/pages/{id}/manual-review |
POST | 需登录 | 人工审核。对 LLM 生成的页面进行人工判定:批准(approve)、驳回(reject)、要求修改(request_changes) |
/pages/{id}/recheck |
POST | 需登录 | 复审请求。对已通过审核的页面触发重新审核(如发现了新问题或原文有更新) |
/pages/{id}/history |
GET | 无需 | 版本历史。查看页面的所有历史版本列表(基于 Git 自动备份) |
/pages/{id}/history/{version} |
GET | 无需 | 历史版本详情。查看某个历史版本的完整内容,支持版本对比 |
/pages/rescan |
POST | 无需 | 重新扫描索引。当文件系统有变更(新生成的文件)但未反映在前端时,手动触发 Vault 重新扫描 |
典型场景:
用户浏览知识库 → /pages (列表) → 点击某论文 → /pages/{id} (详情)
发现内容有误 → 点击编辑 → /pages/{id} PUT (保存修改)
→ 或 /pages/{id}/manual-review POST (驳回让 LLM 重生成)
"原文"指的是 PDF 转换后的原始 Markdown 文件,是 Wiki 页面的数据源头。
| 接口 | 方法 | 认证 | 业务说明 |
|---|---|---|---|
/raw |
GET | 无需 | 原文列表。列出所有可用的原始 Markdown 文档,支持搜索和分页 |
/raw/{id} |
GET | 无需 | 原文详情。获取原始 Markdown 的完整内容。用于阅读、审核比对 |
/raw/{id} |
PUT | 需登录 | 编辑原文。手动修改原始 Markdown 内容或文件名。适用于修正 PDF 转换错误(如标题识别错误、段落断裂) |
/raw/{id}/pdf |
GET | 无需 | 获取对应PDF文件。返回与原文关联的原始 PDF 文件(用于分屏对比审核) |
典型场景:
审核 Wiki 页面质量 → 打开原文对比 → /raw/{id} (查看原文)
→ /raw/{id}/pdf (左侧原文, 右侧PDF 分屏审核)
发现转换错误 → 编辑 → /raw/{id} PUT (手动修正)
→ 重新触发导入 → Agent_G 用修正后的原文重新生成
完整的 PDF 生命周期管理:上传 → 存储 → 转换 → 清理。
| 接口 | 方法 | 认证 | 业务说明 |
|---|---|---|---|
/pdf/upload |
POST | 需登录 | 上传 PDF。将 PDF 文件上传到服务器存储。返回文件信息 |
/pdf/list |
GET | 无需 | PDF 列表。查看所有已上传的 PDF 及其状态(pending/转换中/已完成/失败) |
/pdf/convert |
POST | 需登录 | PDF 转 Markdown。调用 Marker 引擎将 PDF 转为 Raw Markdown,存入 Obsidian Vault。耗时 30-120 秒,同步等待 |
/pdf/{filename} |
DELETE | 需登录 | 删除 PDF。同时删除物理文件和数据库记录,关联的 Markdown 也会被删除 |
典型场景:
用户找到一篇新论文 → /pdf/upload (上传PDF)
→ /pdf/convert (转为Markdown)
→ 转换完成后 → /api/pages (刷新页面列表)
→ 选择新论文 → 查看或编辑 Markdown
知识库的核心交互方式:搜索和自然语言问答。
| 接口 | 方法 | 认证 | 业务说明 |
|---|---|---|---|
/search |
GET | 无需 | 知识库搜索。混合搜索(向量语义 + 关键词匹配),返回匹配的 Wiki 页面列表。支持按类型过滤 |
/query |
POST | 无需 | 自然语言问答 (RAG)。用户用自然语言提问 → 系统从知识库检索相关上下文 → LLM 基于上下文生成回答。返回答案、来源引用和推荐追问 |
/hot-queries |
GET | 无需 | 热门查询。返回系统中的历史热门搜索词,用于引导新用户 |
/recent-updates |
GET | 无需 | 最近更新。返回最近修改的页面列表,让用户了解知识库最新变化 |
搜索 vs 问答的区别:
- 搜索(
/search):返回匹配的页面列表,用户自己阅读 - 问答(
/query):LLM 直接给出答案,附带来源引用
系统运行状态监控和知识库质量体检。
| 接口 | 方法 | 认证 | 业务说明 |
|---|---|---|---|
/status |
GET | 无需 | 系统状态。返回知识库概况:总页面数、各类型分布、审核通过率、平均评分 |
/health-check |
POST | 无需 | 健康体检。运行完整的知识库质量检查。支持分层运行:layer1(快速规则检查)、layer2(LLM 深度检查)、all(全部)。返回详细的健康报告,包含问题列表、统计数据和修复建议 |
健康体检报告包含:
- 孤儿页面(存在于文件系统但无任何页面引用)
- 断裂的 Wiki 链接(引用了不存在的页面)
- Frontmatter 缺失或不完整
- 论文结构不完整(缺少必填章节)
- 重复实体检测
- Layer 2: 缺少概念页面建议、低质量页面抽样
典型场景:
定期维护 → /health-check (全面体检)
→ 查看报告中的问题列表
→ 对可自动修复的问题点击"修复"
→ 对需人工处理的记入改进计划
将健康体检发现的问题自动修复,减少人工干预。
| 接口 | 方法 | 认证 | 业务说明 |
|---|---|---|---|
/fix/frontmatter/{id} |
POST | admin/maintainer | 修复 Frontmatter。自动从页面内容中提取标题等信息,补全缺失的 Frontmatter 字段 |
/fix/regenerate-paper/{id} |
POST | admin/maintainer | 删除并重新生成论文。删除一篇不完整论文及其关联的实体/概念页面,从源文件重新生成。异步任务:立即返回 task_id,通过轮询获取结果 |
/fix/task-status/{task_id} |
GET | 无需 | 查询异步任务状态。检查 re-generate 等异步任务的进度(pending/running/completed/failed) |
/fix/broken-link/{id} |
POST | admin/maintainer | 修复断裂链接。对页面中的无效 Wiki 链接执行移除或替换操作 |
/fix/merge-entities |
POST | admin/maintainer | 合并重复实体。手动指定两个重复实体,将其合并为一个(保留其中一个,更新所有引用) |
一次性导入多篇论文的编排管理。
| 接口 | 方法 | 认证 | 业务说明 |
|---|---|---|---|
/ingest/pending |
GET | 需登录 | 待处理文档列表。显示 Raw 目录中尚未处理的文档数量 |
/ingest/run |
POST | 需登录 | 执行批量导入。启动 Phase 4 流水线,处理指定数量的待处理文档。可指定 limit(处理几个)、retry_failed(重试失败文档) |
/ingest/log |
GET | 需登录 | 导入日志。查看最近一次批量导入的详细日志输出 |
典型场景:
一次性上传 10 篇 PDF → 全部转换为 Markdown
→ /ingest/pending (确认待处理)
→ /ingest/run?limit=10 (批量处理)
→ 等待完成 → /api/pages (检查新生成的页面)
可视化展示知识库中页面之间的引用关系。
| 接口 | 方法 | 认证 | 业务说明 |
|---|---|---|---|
/graph/data |
GET | 无需 | 全局图谱数据。返回所有页面之间的引用关系(节点+边),用于渲染知识图谱总览 |
/graph/neighbors/{node_id} |
GET | 无需 | 邻居子图。查询某个页面(节点)指定深度内的关联页面 |
/graph/stats |
GET | 无需 | 图谱统计。返回节点数、边数、聚类系数等图谱结构指标 |
| 接口 | 方法 | 认证 | 业务说明 |
|---|---|---|---|
/assets |
GET | 无需 | 静态资源列表。返回 PDF 等文件资源的访问路径 |
管理员专用的用户管理功能。
| 接口 | 方法 | 认证 | 业务说明 |
|---|---|---|---|
/users |
GET | admin | 用户列表。查看系统中所有注册用户 |
/users/{id} |
GET | admin | 用户详情 |
/users/{id}/role |
PUT | admin | 修改角色。变更用户的权限级别 |
/users/{id}/status |
PUT | admin | 启用/禁用用户。控制用户是否可以登录 |
/users/{id}/reset-password |
POST | admin | 重置密码。为用户生成随机新密码 |
| 接口 | 方法 | 认证 | 业务说明 |
|---|---|---|---|
/config |
GET | admin | 读取配置。查看当前的系统配置(LLM 参数、路径、评分权重等) |
/config |
PUT | admin | 更新配置。修改系统配置并即时生效 |
| 接口 | 方法 | 认证 | 业务说明 |
|---|---|---|---|
/refresh |
POST | admin | 刷新系统。触发 Vault 重新扫描和其他缓存刷新 |
/ |
GET | 无需 | 根端点。API 版本信息和健康状态确认 |
| 角色 | 常用接口 |
|---|---|
| 普通读者 | /pages, /pages/{id}, /search, /query |
| 内容编辑者 (core) | 以上 + /pages/{id} PUT, /raw/{id} PUT |
| 系统维护者 (maintainer) | 以上 + /fix/*, /ingest/* |
| 管理员 (admin) | 以上全部 + /users/*, /config |
| 工作流 | 涉及接口 |
|---|---|
| 导入新论文 | /pdf/upload → /pdf/convert → /ingest/run → /pages |
| 阅读知识 | /pages → /pages/{id} |
| 搜索问答 | /search 或 /query |
| 内容审核 | /pages/{id} → /raw/{id} → /pages/{id}/manual-review |
| 系统维护 | /health-check → /fix/* → /status |
| 用户管理 | /users 系列 |
Swagger UI 提供完整的技术参数(请求体结构、响应模型、类型定义),访问 http://localhost:8000/docs 查看。