# PRD - 知识库闭环 > **REQ编号**: REQ-知识-001 > **版本**: v1.1 > **优先级**: P0 > **阶段**: 近期(1-2个月) > **作者**: 宋献 > **日期**: 2026-07-19 > **状态**: 待开发 > **原型**: `原型-REQ-知识-001-知识库闭环-v1.0.html` > **关联**: REQ-知识-002 已合并(训练师审批作为核心环节) --- ## 一、问题陈述 **用户问题**: - 知识库 P2-01 标注"已完成",但实际是桩实现(stub),API 未挂载 - 员工提问时 AI 无法引用真实知识库内容 - 知识建议→训练师审批→入库→AI引用的全流程未打通 **业务目标**: - 实现知识库全闭环:知识建议 → 审批 → 入库 → AI 引用 - 知识库回答准确率提升至 85% 以上 --- ## 二、需求范围 ### 2.1 核心功能 | 功能 | 描述 | |------|------| | 知识建议API挂载 | 将 P2-01 的知识建议接口从桩实现改为真实调用 | | 知识入库 | 知识通过审批后写入 Neo4j 图数据库 | | 知识引用 | AI 回答时从知识库检索相关内容并引用 | | 审批流打通 | 训练师在坐席端可审批知识建议 | ### 2.2 非目标 - 不包含知识库的自动学习/自训练能力 - 不包含知识库的版本管理 - 不包含知识库的分类/标签管理(后续迭代) --- ## 三、用户故事 | 角色 | 用户故事 | 验收标准 | |------|----------|---------| | 员工 | 我提问后,AI 能引用知识库中的相关内容 | 知识库有答案的问题,AI 回答时显示引用来源 | | 坐席 | 我可以提交知识建议供审批 | 提交后进入待审批列表 | | 训练师 | 我可以审批知识建议 | 通过/拒绝后知识入库或打回 | | 管理员 | 我可以查看知识库覆盖情况 | 管理后台能看到知识节点数量、更新日志 | --- ## 四、功能详情 ### 4.1 知识建议 API 挂载 **现状**:`knowledge_iteration_router` 被注释,未挂载真实 API **改造**: 1. 取消注释 `knowledge_iteration_router` 2. 挂载真实知识检索 API 3. 配置 Neo4j 图存储连接 ### 4.2 知识入库流程 ``` 用户提问 → AI分析 → 知识建议 → 训练师审批 → 写入Neo4j → AI可引用 ``` | 步骤 | 动作 | 责任人 | |------|------|--------| | 1 | 知识建议生成 | AI服务 | | 2 | 入库申请提交 | 坐席/管理员 | | 3 | 审批(通过/拒绝) | 训练师 | | 4 | 写入Neo4j | 后端服务 | | 5 | 索引更新 | 后端服务 | ### 4.3 审批界面 - 坐席端增加「知识审批」Tab - 显示待审批列表:知识标题、摘要、申请人、提交时间 - 支持:通过、拒绝、修改后通过 --- ## 五、指标设计 | 指标 | 目标 | 测量方式 | |------|------|---------| | 知识库引用率 | ≥ 60% | AI回答中引用知识库的比例 | | 知识库准确率 | ≥ 85% | 知识库答案被标记为正确的比例 | | 审批平均耗时 | ≤ 24h | 知识从提交到审批完成的平均时间 | --- ## 六、技术依赖 | 依赖项 | 说明 | |--------|------| | Neo4j 图数据库 | 知识存储 | | Dify API | 知识检索 | | RAGFlow | 知识向量化 | --- ## 七、API 接口设计 | 接口 | 方法 | 说明 | |------|------|------| | `/api/knowledge/suggest` | POST | 知识建议(AI分析对话后生成) | | `/api/knowledge/submit` | POST | 提交知识入库申请 | | `/api/knowledge/approve` | POST | 审批知识(通过/拒绝) | | `/api/knowledge/approve/list` | GET | 待审批列表 | | `/api/knowledge/search` | GET | 知识库检索 | | `/api/knowledge/graph` | GET | 知识图谱可视化 | ### 7.1 POST /api/knowledge/submit **请求体**: ```json { "title": "VPN连接失败排查步骤", "content": "1. 检查VPN客户端版本...\n2. 检查网络环境...", "category": "网络问题", "tags": ["VPN", "网络", "连接"], "source_conversation_id": "conv_xxx" } ``` **响应**: ```json { "success": true, "knowledge_id": "kn_001", "status": "pending_approval" } ``` ### 7.2 POST /api/knowledge/approve **请求体**: ```json { "knowledge_id": "kn_001", "action": "approve", // "approve" | "reject" | "modify_approve" "comment": "内容准确,可以入库", "modified_content": null // 当 action 为 modify_approve 时使用 } ``` --- ## 八、数据模型 ### 8.1 Knowledge 表 ```sql CREATE TABLE knowledge_base ( id SERIAL PRIMARY KEY, knowledge_id VARCHAR(64) UNIQUE NOT NULL, title VARCHAR(255) NOT NULL, content TEXT NOT NULL, category VARCHAR(50), tags JSONB DEFAULT '[]', status VARCHAR(20) DEFAULT 'draft', -- draft / pending / approved / rejected source_conversation_id VARCHAR(64), created_by VARCHAR(64), created_at TIMESTAMP DEFAULT NOW(), approved_by VARCHAR(64), approved_at TIMESTAMP, neo4j_node_id VARCHAR(64) -- 写入Neo4j后的节点ID ); ``` ### 8.2 Knowledge Approval History 表 ```sql CREATE TABLE knowledge_approval_history ( id SERIAL PRIMARY KEY, knowledge_id VARCHAR(64) NOT NULL, action VARCHAR(20) NOT NULL, -- submit / approve / reject / modify comment TEXT, operator_id VARCHAR(64) NOT NULL, created_at TIMESTAMP DEFAULT NOW() ); ``` --- ## 九、技术架构 ### 9.1 知识流动 ``` 用户提问 → Dify分析 → 知识建议 → 坐席提交 → 训练师审批 → Neo4j入库 → AI检索引用 ↓ ↓ ↓ ↓ ↓ AI回复 建议内容 待审批 审批记录 图数据库 ``` ### 9.2 核心改造点 1. **取消注释** `knowledge_iteration_router`,挂载真实 API 2. **Neo4j 集成**:配置图数据库连接,实现知识写入和检索 3. **审批工作流**:坐席端增加知识审批 Tab,训练师操作 4. **知识检索**:AI 回答时调用 RAGFlow/Dify 检索知识库 --- ## 十、验收标准 | 场景 | 验收条件 | |------|----------| | 知识提交 | 坐席提交知识 → 进入待审批列表 → 训练师可见 | | 知识审批-通过 | 训练师点击通过 → 状态变为已批准 → 写入Neo4j | | 知识审批-拒绝 | 训练师点击拒绝 → 状态变为已拒绝 → 申请人收到通知 | | AI引用 | 员工提问 → AI回答时显示「知识库引用」来源卡片 | | 知识检索 | 管理后台可搜索知识库内容 | | 审批历史 | 知识详情页显示完整审批操作历史 | --- ## 十一、关联文档 - 技术方案: `02-技术文档/技术架构/增量设计-知识库迭代与痛点缓解-20260711.md` - 前置需求: REQ-AI-001 复杂场景与统一路由 - UI设计: `原型-REQ-知识-001-知识库闭环-v1.0.html`