跳到主要内容

architecture

核对日期:2026-05-13。

1. 架构目标

本系统优先保证:

  • 基于授权证据回答。
  • 文档过期或冲突时可解释。
  • 不泄漏未授权内容。
  • 每次回答可追踪、可评测、可复盘。
  • 后续可以平滑加入企业 IM、SSO 和真实知识库。

1.1 当前最小 demo 边界

本示例目录已包含一个本地可运行 demo:

data/knowledge-base/*.md
-> src/rag-demo.mjs
-> src/eval-runner.mjs

当前 demo 已实现:

  • 合成 Markdown 文档和 metadata 加载。
  • 用户 scope 权限过滤。
  • 关键词/BM25 风格检索。
  • 文档版本和冲突的规则处理。
  • 安全拒答和写操作拒绝。
  • 带引用回答。
  • JSONL eval runner。

当前 demo 刻意不包含:

  • 真实 embedding、向量数据库和 rerank。
  • 真实 LLM 和模型网关。
  • 企业 SSO 和真实权限系统。
  • 线上 trace、成本和反馈表。

这些能力应按阶段 07/08/10/11/12 的课程要求逐步替换最小实现。

2. 总体架构

3. 模块职责

模块职责关键输入关键输出失败处理
UI收集问题、展示引用和反馈用户问题answer request空输入、超长输入提示
Auth用户身份和文档权限user id、departmentpermission scope无权限拒绝
Guard注入和敏感输入检测raw querysafe query / reject高风险请求拒答
Query Rewrite提取意图、改写检索词safe queryrewritten query保留原问题用于审计
Hybrid Search文档召回query、scopecandidate chunks空召回进入拒答
Filter权限、版本、生效日期过滤chunks、user scopeauthorized chunks过滤后为空则拒答
Rerank相关性排序query、chunkstop evidence低置信度进入澄清
Context Builder构造证据包和约束evidence、policymodel messages超长裁剪并记录
Model Gateway模型调用和 fallbackmessagesraw output超时、重试、降级
Parser结构化解析raw outputanswer objectschema 失败重试
Citation Check验证引用和证据answer、evidencefinal answer缺引用则拒绝发布
Trace记录执行链路eventstrace id脱敏和采样

4. 数据模型

文档 metadata

字段示例说明
doc_idhr-onboarding-2026文档唯一 ID
title新员工入职流程文档标题
ownerHR Ops文档负责人
department_scopeall / rd可见范围
versionv3.2文档版本
effective_from2026-01-01生效日期
updated_at2026-04-20更新时间
sensitivitypublic_internal数据敏感等级

证据包

{
"query": "如何申请开发环境权限?",
"user_scope": ["all", "rd"],
"evidence": [
{
"doc_id": "rd-env-access-2026",
"title": "研发环境权限申请规范",
"chunk_id": "chunk-003",
"text": "申请开发环境权限需要提交工单...",
"version": "v2.1",
"updated_at": "2026-03-18"
}
]
}

5. 控制流

6. 权限模型

资源权限来源进入模型前处理
全员制度默认全员可见可进入上下文
研发流程部门为研发或授权成员过滤后进入上下文
财务制度全员可见但敏感字段脱敏隐藏审批人私人联系方式
管理层文档管理角色无权限时不可检索
安全事件文档安全团队无权限时不可检索

关键原则:先权限过滤,再构造 prompt。模型不能看到用户无权访问的 chunk。

7. 回滚和停用

  • 关闭入口:隐藏 Web/IM 问答入口。
  • 降级:只返回搜索结果,不生成答案。
  • 回滚 Prompt:按 prompts/prompt-version-log.md 回退。
  • 回滚索引:切换到上一版文档索引。
  • 停用高风险文档源:临时下线某部门知识库。