Files
rag/docs/RAG需求负责清单.md
lacerate551 cb75b9b274 fix(boundary): 修复多库边界问题、版本管理及删除清理
多库检索与存储修复:
- RRF 融合去重改用 (collection, chunk_id) 复合键,修复同名文件结果被吞
- DocStore 存储路径加 collection 前缀,修复跨库同名切片数据覆盖
- search_multiple 去重改用复合键
- chunk_id 解析改用 rsplit 兼容下划线文件名

上传与版本管理修复:
- 同名文件上传改为覆盖模式,自动清理旧切片
- 修复首次上传不创建版本记录
- 修复覆盖上传版本号回退到 v1
- sync ADDED 分支改用动态版本号生成
- _generate_version_id 改为基于全部版本递增
- 废止/恢复操作同步 SQLite 版本记录
- mark_document_as_superseded 改为仅更新 SQLite

删除清理修复:
- 删除文档时同步清理 SQLite 版本记录和变更日志
- 删除向量库时同步清理该库所有版本记录
- cleanup 改为清理 SQLite 记录而非 ChromaDB

测试:
- test_version_management.py: 27 条版本管理单元测试
- test_edge_cases.py: 28 条边界用例测试
- test_upload_dedup.py: 5 条上传去重测试
- e2e_risk_test.py: 27 条端到端风险测试

文档:
- 新增风险边界问题修复注意事项.md(面向后端的对接文档)
- 新增向量库边界风险分析.md
- 更新多篇现有文档
2026-06-04 23:58:44 +08:00

12 KiB
Raw Permalink Blame History

RAG系统构建 - 需求负责清单

基于功能需求规格文档梳理RAG系统构建部分的功能点

核心RAG功能直接负责

GKPT-AI-010: RAG向量数据库 [高优先级]

属性 内容
功能描述 采用检索增强生成技术,结合向量数据库和大语言模型,实现高准确率的制度问答
使用频率
限制条件 向量数据库需支持十万级向量,具备合规性和数据安全要求
输入 用户问题
输出 检索结果、生成答案
处理流程 用户提问 → 混合检索(关键词+语义+结构化)→ 获取相关文本块 → 组装上下文 → 调用大模型生成答案 → 返回
技术要点 混合检索确保准确性和全面性

GKPT-AI-011: 多轮智能对话 [高优先级]

属性 内容
功能描述 支持与用户进行多轮对话,理解上下文,处理复杂问题,避免"幻觉"回答
使用频率
限制条件 上下文长度依据大模型限制最近10轮复杂问题拆解依赖模型能力
输入 用户连续提问
输出 基于上下文的回答
处理流程 用户提问 → 系统获取当前会话历史 → 结合上下文检索 → 生成答案 → 保存会话记录

GKPT-AI-012: 答案溯源 [中优先级]

属性 内容
功能描述 每个回答标注引用来源,并提供置信度评分,确保答案的可信度和可核实性
限制条件 跳转原文需阅读器支持锚点定位;置信度评分基于检索相似度与模型置信度综合
输出 带来源标注的答案、置信度、跳转链接
处理流程 生成答案时 → 记录检索到的文本块及其元数据 → 构建来源列表 → 计算置信度 → 返回给前端展示
备注 低置信度答案≤0.6)需人工复核

GKPT-AI-013: 问答质量闭环 [低优先级]

属性 内容
功能描述 通过用户反馈和定期分析持续优化问答质量沉淀FAQ
输入 用户点赞/踩反馈、问答记录
输出 质量分析报告、FAQ列表
处理流程 用户反馈 → 记录反馈 → 定期统计 → 生成报告 → 管理员优化检索/提示词/知识库 → 沉淀FAQ
备注 报告周期可配置(周/月)

知识库相关(部分负责)

GKPT-KB-008: 知识库自动同步 [高优先级]

属性 内容
功能描述 制度文件变更后,自动触发知识库(向量库)更新,并向相关用户推送更新提醒
限制条件 需要维护文件哈希或版本号以识别变更;对于大文件,增量更新依赖文本差异算法
输入 制度变更内容(新增/修改/废止)
输出 向量库更新状态、更新提醒通知
处理流程 制度变更 → 系统检测变更 → 执行增量向量化 → 替换旧向量 → 记录日志 → 推送提醒
性能要求 增量更新耗时≤10分钟

GKPT-EXAM-009: 题库智能维护 [高优先级]

属性 内容
功能描述 监控制度变更,自动识别受影响题目,并辅助生成新题,确保考试内容时效性
限制条件 题目与制度关联需通过标签或版本号建立AI生成题目需人工审核
输入 制度变更内容、旧题目库
输出 受影响题目列表、AI新题建议、试卷模板更新
处理流程 制度变更 → 扫描关联题目 → 标记受影响题目 → AI生成新题目 → 管理员审核 → 更新试卷模板
性能要求 AI生成题目≤30秒/题

阅读辅助功能(可能涉及)

GKPT-READ-001: 智能PDF阅读器 [高优先级]

RAG相关 全文检索可能依赖RAG索引
需确认 是否需要RAG系统提供全文检索接口

GKPT-READ-005: 关联推荐 [中优先级]

属性 内容
功能描述 基于当前阅读的制度内容,智能推荐相关的其他制度、知识库文章
限制条件 推荐仅基于已有标签和全文检索,不涉及复杂用户行为分析
输入 当前制度文件ID、用户阅读行为
输出 推荐制度列表(标题、摘要、相关性标签)
处理流程 用户打开制度 → 系统提取制度关键词/标签 → 检索知识库相似文件 → 返回推荐列表
RAG相关 可能用到向量相似度检索

生成类功能(可能涉及)

GKPT-EXAM-015: AI智能出题 [高优先级]

属性 内容
功能描述 利用AI从制度文本中自动提取关键信息生成多种题型的题目
输入 制度文本、题型、数量、难度
输出 题目列表(含题干、选项、答案、解析)
RAG相关 需要从制度文本检索关键信息可能需要RAG支持
性能要求 支持批量生成一次最多10题

GKPT-EXAM-018: AI自动阅卷 [中优先级]

属性 内容
功能描述 客观题自动判分,主观题基于语义相似度智能评分,并提供评语
输入 考生答卷、标准答案
输出 成绩、各题得分、评语
RAG相关 主观题语义评分可能用到向量相似度
备注 填空支持同义词匹配(如"三日"="3天"

GKPT-MIND-020: 自动化纲要生成 [高优先级]

属性 内容
功能描述 AI自动提取制度文件的章节结构、核心要点生成可交互的思维导图
限制条件 依赖制度文件有明确的结构化标题
输入 制度文件内容
输出 思维导图结构化数据(节点树)
RAG相关 AI解析制度文件结构可能需要RAG辅助
性能要求 生成时间≤10秒10页以内

核心交付物总结

1. 向量数据库建设

  • 支持十万级向量存储
  • 混合检索能力:关键词 + 语义 + 结构化
  • 向量库选型ChromaDB / Milvus / Pinecone

2. 知识库同步机制

  • 制度变更检测
  • 增量向量化≤10分钟完成
  • 文本差异算法处理大文件

3. 问答系统

  • RAG检索增强生成
  • 多轮对话上下文管理
  • 答案溯源与置信度评分

4. 对外接口(供前端/后端调用)

  • 问答接口(输入问题 → 返回答案+来源)
  • 向量同步接口(制度变更时触发)
  • 推荐接口(相似制度检索)

功能优先级排序

优先级 功能编号 功能名称 状态 已实现内容
🔴 GKPT-AI-010 RAG向量数据库 已实现 ChromaDB + BM25 + Rerank混合检索
🔴 GKPT-AI-011 多轮智能对话 已实现 SQLite会话管理最近10轮上下文
🔴 GKPT-KB-008 知识库自动同步 ⚠️ 部分实现 有sync_documents()增量更新,缺自动触发和推送
🔴 GKPT-EXAM-009 题库智能维护 ⚠️ 部分实现 有出题系统,缺制度变更检测和关联题目识别
🔴 GKPT-EXAM-015 AI智能出题 已实现 Dify工作流出题支持选择题/填空题/简答题
🔴 GKPT-MIND-020 自动化纲要生成 未实现 -
🟡 GKPT-AI-012 答案溯源 已实现 返回来源文件、页码,置信度评分
🟡 GKPT-READ-005 关联推荐 未实现 -
🟡 GKPT-EXAM-018 AI自动阅卷 ⚠️ 部分实现 有批阅报告,缺主观题语义评分
🟢 GKPT-AI-013 问答质量闭环 未实现 -

已实现功能详细分析

GKPT-AI-010: RAG向量数据库已实现

已实现内容:

  • ChromaDB向量数据库存储
  • BGE-base-zh-v1.5本地向量模型
  • BM25关键词检索
  • RRF融合算法向量+BM25
  • BGE-reranker-base重排序
  • 支持10万级向量
  • 权限过滤security_level

代码位置: core/engine.py

  • search_knowledge(): 混合检索主函数
  • reciprocal_rank_fusion(): RRF融合
  • rerank_results(): 重排序

GKPT-AI-011: 多轮智能对话(已实现)

已实现内容:

  • SQLite会话存储
  • 上下文历史管理最近10轮
  • Agentic RAG自动上下文传递
  • 会话列表、历史查询、删除会话

代码位置: services/session.py, core/agentic.py

  • SessionManager: 会话管理器
  • AgenticRAG.process(): 多轮对话处理

GKPT-AI-012: 答案溯源(已实现)

已实现内容:

  • 返回来源文件名和页码
  • 置信度评估(高/中/低)
  • 来源去重和合并显示

代码位置: core/engine.py, core/agentic.py

  • generate_answer(): 包含置信度评估(core/engine.py
  • _extract_sources(): 来源提取(core/agentic_citation.py

⚠️ GKPT-KB-008: 知识库自动同步(部分实现)

已实现内容:

  • sync_documents(): 增量更新文档
  • 文件哈希/版本号检测(待完善)
  • BM25索引重建

缺少内容:

  • 自动触发机制(需要文件监控)
  • 向量增量更新(目前是重建)
  • 用户订阅和推送通知
  • 变更日志记录

GKPT-EXAM-015: AI智能出题已实现

已实现内容:

  • Dify工作流集成
  • 选择题、填空题、简答题生成
  • 试卷管理(草稿/审核/通过状态)
  • 批阅报告生成

代码位置: exam_pkg/manager.py, exam_pkg/api.py

⚠️ GKPT-EXAM-018: AI自动阅卷部分实现

已实现内容:

  • 客观题自动判分
  • 批阅报告生成
  • 批阅记录存储

缺少内容:

  • 主观题语义相似度评分
  • 同义词匹配(如"三日"="3天"
  • AI评语生成

待开发功能详细分析

🔴 GKPT-MIND-020: 自动化纲要生成(未实现)

需求回顾:

  • AI自动提取制度文件的章节结构、核心要点
  • 生成可交互的思维导图
  • 支持导出图片/PDF

开发建议:

  1. 使用LLM提取文档结构
  2. 生成JSON格式节点树
  3. 前端使用思维导图库渲染如D3.js/ECharts

🔴 GKPT-KB-008完善: 知识库自动同步

缺少内容:

  1. 文件监控watchdog库
  2. 增量向量化(检测变更部分)
  3. 用户订阅机制
  4. 推送通知WebSocket/邮件)

🔴 GKPT-EXAM-009: 题库智能维护

需要开发:

  1. 制度变更检测(版本号/哈希比对)
  2. 题目与制度关联标签
  3. 受影响题目自动标记
  4. AI生成新题目建议

🟡 GKPT-READ-005: 关联推荐

需要开发:

  1. 基于标签的相似度计算
  2. 基于向量相似度推荐
  3. 推荐侧边栏组件

🟢 GKPT-AI-013: 问答质量闭环

需要开发:

  1. 用户反馈接口(点赞/点踩)
  2. 反馈数据存储
  3. 质量分析报告生成
  4. FAQ自动沉淀

架构建议

对外接口设计

# RAG核心接口已实现
POST /rag          # 知识库问答
POST /search       # 混合检索

# 需要新增的接口
POST /sync         # 触发知识库同步
GET  /sync/status  # 同步状态
POST /feedback     # 用户反馈
GET  /recommend    # 关联推荐
POST /outline      # 生成纲要

数据库扩展

-- 用户订阅表(需新增)
CREATE TABLE subscriptions (
    id INTEGER PRIMARY KEY,
    user_id TEXT,
    document_id TEXT,
    created_at TIMESTAMP
);

-- 反馈记录表(需新增)
CREATE TABLE feedbacks (
    id INTEGER PRIMARY KEY,
    session_id TEXT,
    query TEXT,
    answer TEXT,
    rating INTEGER,  -- 1=赞, -1=踩
    reason TEXT,
    created_at TIMESTAMP
);

-- 制度版本表(需新增)
CREATE TABLE document_versions (
    id INTEGER PRIMARY KEY,
    document_id TEXT,
    version TEXT,
    content_hash TEXT,
    updated_at TIMESTAMP
);

文档更新时间: 2026-06-04 项目版本: v7.0.0