M2-07 RAG Chat Module #27

Open
opened 2026-05-22 21:09:50 +08:00 by wangdl · 0 comments
Owner

目标

设计知习 RAG 对话模块,为 C 端用户提供基于知识库的 AI 问答能力,支持多轮对话、引用来源展示和对话持久化。

本 Issue 只做模块架构设计,不直接实现代码。

背景说明

RAG Chat 是知习知识库主链路的最后一环——用户在知识库中上传资料、解析索引、确认知识点后,可以通过自然语言对话向知识库提问。回答必须基于知识库内容,并带引用来源(citation),让用户能追溯到原始资料。

注意:RAG Chat 的回答范围严格限定在当前知识库或指定来源集内,不做开放式网络搜索。

模块职责

  1. 本模块负责:

    • ChatSession 管理(创建、历史列表、删除)
    • ChatMessage 管理(用户消息 + AI 回答 + 引用)
    • 检索增强生成流程:用户问题 → Vector 检索 → rerank → 组装上下文 → AI Gateway 生成回答
    • 引用来源(ChatCitation)展示(关联到 SourceReference/CitationAnchor)
    • 对话持久化(MySQL 存储)
    • 无结果或低相关度的兜底回答策略
    • 对话上下文窗口管理(多轮对话的历史消息管理)
  2. 本模块不负责:

    • 向量检索本身(走 Vector & Retrieval Module)
    • LLM 调用本身(走 AI Gateway)
    • 内容安全检测(走 Content Safety)
    • 知识库管理(走 Workspace & KnowledgeBase)

候选数据对象

  • ChatThread(对话线程,预留)
  • ChatSession(对话会话)
  • ChatMessage(消息:用户/AI/系统)
  • ChatCitation(引用来源)
  • RagQuery(检索查询)
  • RagAnswer(RAG 回答)

RAG 问答流程设计

用户发送消息
→ Content Safety 检测用户输入
→ Vector 语义检索(携带知识库 filter)
→ rerank 检索结果
→ 组装上下文(chunk 内容 + citation 信息)
→ AI Gateway 调用 LLM 生成回答
→ Content Safety 检测 AI 输出
→ 保存 ChatMessage + ChatCitation
→ 返回给用户

基础设施依赖判断

  • MySQL:是(会话和消息持久化)
  • Redis:需判断(近期对话缓存)
  • BullMQ:否
  • Qdrant:是(通过 Vector Module 检索)
  • AI Gateway:是(LLM 调用)
  • Vector & Retrieval:是
  • Content Safety:是
  • Cost:是

API 设计

  1. CAPI:

    • 创建 ChatSession
    • 发送消息(非流式,M0/M1 阶段)
    • 获取会话历史消息
    • 会话列表
  2. AAPI:

    • 对话日志查看
    • 用户对话统计

Domain Event 设计

  • ChatSessionCreated
  • ChatMessageSent
  • RagQueryCompleted
  • RagCitationGenerated

交付检查

  • 路由归属:CAPI + AAPI
  • 是否需要 Prisma migration:是
  • 是否需要 MySQL:是
  • 是否需要 Redis:需判断
  • 是否需要 BullMQ:否
  • 是否需要 Qdrant:是
  • 是否需要 AI Gateway:是
  • 是否需要 Vector & Retrieval:是
  • 是否需要 Content Safety:是
  • 是否需要 Cost 记录:是
  • 是否需要 AuditLog:否
  • 是否需要 Domain Event:是
  • 是否需要 Admin 视图:是

验收标准

  1. ChatSession / ChatMessage / ChatCitation Prisma schema
  2. RAG 完整流程设计(问题 → 检索 → rerank → 生成 → 引用)
  3. 多轮对话上下文管理方案
  4. 无结果兜底策略设计
  5. citation 与 SourceReference 绑定方案
  6. Admin 对话日志视图设计
  7. 集成测试覆盖知识库问答全流程

禁止事项

  • 禁止 RAG 回答不带 citation
  • 禁止 RAG 检索绕过 Vector Module
  • 禁止 LLM 调用绕过 AI Gateway
  • 禁止回答不经过 Content Safety
  • 禁止 RAG 查询做开放式网络搜索
  • 禁止对话中暴露其他用户的知识库内容

不建议当前阶段实现

  • 流式输出(SSE)
  • 多知识库联合检索
  • 对话分支/编辑消息重新生成
  • 对话摘要自动生成
## 目标 设计知习 RAG 对话模块,为 C 端用户提供基于知识库的 AI 问答能力,支持多轮对话、引用来源展示和对话持久化。 本 Issue 只做模块架构设计,不直接实现代码。 ## 背景说明 RAG Chat 是知习知识库主链路的最后一环——用户在知识库中上传资料、解析索引、确认知识点后,可以通过自然语言对话向知识库提问。回答必须基于知识库内容,并带引用来源(citation),让用户能追溯到原始资料。 注意:RAG Chat 的回答范围严格限定在当前知识库或指定来源集内,不做开放式网络搜索。 ## 模块职责 1. 本模块负责: - ChatSession 管理(创建、历史列表、删除) - ChatMessage 管理(用户消息 + AI 回答 + 引用) - 检索增强生成流程:用户问题 → Vector 检索 → rerank → 组装上下文 → AI Gateway 生成回答 - 引用来源(ChatCitation)展示(关联到 SourceReference/CitationAnchor) - 对话持久化(MySQL 存储) - 无结果或低相关度的兜底回答策略 - 对话上下文窗口管理(多轮对话的历史消息管理) 2. 本模块不负责: - 向量检索本身(走 Vector & Retrieval Module) - LLM 调用本身(走 AI Gateway) - 内容安全检测(走 Content Safety) - 知识库管理(走 Workspace & KnowledgeBase) ## 候选数据对象 - ChatThread(对话线程,预留) - ChatSession(对话会话) - ChatMessage(消息:用户/AI/系统) - ChatCitation(引用来源) - RagQuery(检索查询) - RagAnswer(RAG 回答) ## RAG 问答流程设计 用户发送消息 → Content Safety 检测用户输入 → Vector 语义检索(携带知识库 filter) → rerank 检索结果 → 组装上下文(chunk 内容 + citation 信息) → AI Gateway 调用 LLM 生成回答 → Content Safety 检测 AI 输出 → 保存 ChatMessage + ChatCitation → 返回给用户 ## 基础设施依赖判断 - MySQL:是(会话和消息持久化) - Redis:需判断(近期对话缓存) - BullMQ:否 - Qdrant:是(通过 Vector Module 检索) - AI Gateway:是(LLM 调用) - Vector & Retrieval:是 - Content Safety:是 - Cost:是 ## API 设计 1. CAPI: - 创建 ChatSession - 发送消息(非流式,M0/M1 阶段) - 获取会话历史消息 - 会话列表 2. AAPI: - 对话日志查看 - 用户对话统计 ## Domain Event 设计 - ChatSessionCreated - ChatMessageSent - RagQueryCompleted - RagCitationGenerated ## 交付检查 - [ ] 路由归属:CAPI + AAPI - [ ] 是否需要 Prisma migration:是 - [ ] 是否需要 MySQL:是 - [ ] 是否需要 Redis:需判断 - [ ] 是否需要 BullMQ:否 - [ ] 是否需要 Qdrant:是 - [ ] 是否需要 AI Gateway:是 - [ ] 是否需要 Vector & Retrieval:是 - [ ] 是否需要 Content Safety:是 - [ ] 是否需要 Cost 记录:是 - [ ] 是否需要 AuditLog:否 - [ ] 是否需要 Domain Event:是 - [ ] 是否需要 Admin 视图:是 ## 验收标准 1. ChatSession / ChatMessage / ChatCitation Prisma schema 2. RAG 完整流程设计(问题 → 检索 → rerank → 生成 → 引用) 3. 多轮对话上下文管理方案 4. 无结果兜底策略设计 5. citation 与 SourceReference 绑定方案 6. Admin 对话日志视图设计 7. 集成测试覆盖知识库问答全流程 ## 禁止事项 - 禁止 RAG 回答不带 citation - 禁止 RAG 检索绕过 Vector Module - 禁止 LLM 调用绕过 AI Gateway - 禁止回答不经过 Content Safety - 禁止 RAG 查询做开放式网络搜索 - 禁止对话中暴露其他用户的知识库内容 ## 不建议当前阶段实现 - 流式输出(SSE) - 多知识库联合检索 - 对话分支/编辑消息重新生成 - 对话摘要自动生成
wangdl added this to the M2:知识库主链路闭环(P1) milestone 2026-05-22 21:09:50 +08:00
wangdl self-assigned this 2026-05-22 21:09:50 +08:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/api-server#27
No description provided.