Appearance
第 11 课 · 阅读器 AI 答疑架构全景
场景篇开篇:把前十课拼成一张能上线的完整架构图。 编排层当大脑按类型路由,底下配缓存 / 护栏 / 监控 / 降级 —— 这才是 Demo 和生产的区别。
本课要解决的问题
前三篇讲的是「决策 / 模式 / 工程」的通用原则。第四篇落到 具体场景:教材阅读器 / 网校答疑。本课先给 全景架构,后两课再深入两个关键专题。
目标:看完能画出一张「用户提问 → 带出处答案」的完整数据流,并知道每层放什么。
一、分层架构(五层)
① 用户层 阅读器 App / 网页 / 小程序
② 应用层 后端 BFF(鉴权、业务逻辑、Key 只在这里)
③ 编排层 ⭐ 路由决策:简单→Prompt / 要知识→RAG / 要干活→工具
④ 能力层 LLM · 向量库 · Tools
⑤ 支撑层 缓存 · 护栏 · 日志 · 成本监控 · 评估 · 降级- 不是全用最重方案: 简单需求简单办,复杂的才上工具 / Agent。
- 支撑层是生产的门槛: 缓存(省钱)、护栏(防注入)、监控(AI 花钱如流水)、评估(防退化)、降级(AI 挂了别拖垮业务)。
二、完整数据流(一次答疑)
用户在阅读器提问
↓
后端 BFF(鉴权 + 限流;API Key 只在服务端)
↓
缓存命中?── 是 → 直接返回(省钱省时)
└ 否 ↓
编排层 · 路由分类:概念题 / 实操题 / 闲聊 / 查后台
├─ 概念 / 实操 → RAG 检索教材(取相关 chunk)
├─ 闲聊 → 轻量 prompt,不检索
└─ 查后台 → 单次 Function Calling(带审批)
↓
拼装上下文:System + 检索 chunks + 必要历史 + 用户问
↓
调 LLM(流式输出)
↓
输出护栏(过滤越界 / 有害)+ 附上引用章节
↓
流式返回用户;同时写审计日志 + 记录成本三、每层的关键决策
| 层 | 关键点 | 对应课 |
|---|---|---|
| 应用层 | API Key 绝不在前端,BFF 代理是底线 | 第 01 课 |
| 编排层 | 路由分类越轻越好;分支各自优化 | 第 04 课 |
| 能力层 · 检索 | 切块 + 语义检索 + 出处,别章节直灌 | 第 03 / 12 课 |
| 能力层 · 工具 | description 写清、参数校验、写操作审批 | 第 07 课 |
| 支撑层 · 记忆 | 多轮压缩、重点放两头、及时丢旧结果 | 第 09 课 |
| 支撑层 · 评估 | Golden Set 回归、忠实度优先 | 第 10 课 |
| 支撑层 · 降级 | 检索空 / 工具挂 → 拒答或兜底,不编 | 第 10 课 |
四、这是 Workflow,不是 Agent
整张图里 没有一处自主循环 —— 路由、检索、拼装、调用全是你写死的路径:
路由 + RAG + 单次工具 = 可预测、可测、可控成本只有当确有「开放任务」(如学习规划助手)时,才在这张主干旁 挂一条自主 Agent 分支(见第 06 课),且沙箱 + 审批齐备。
五、参考技术栈(示意)
前端:阅读器 UI(流式渲染答案)
BFF :后端(鉴权、路由、拼装、Key 托管)
检索:向量库(如 pgvector)+ embedding
LLM :中端快速模型为主,难题按需升级
支撑:缓存(如 Redis)+ 日志 + 成本监控 + 评估集现有 Web 后端栈天然能承载,不必推倒重来。
本课结论
- 五层架构: 用户 / 应用 / 编排 / 能力 / 支撑,编排层是大脑。
- 一次答疑的数据流: BFF → 缓存 → 路由 → RAG / 工具 → LLM 流式 → 护栏 + 出处。
- 支撑层(缓存 / 护栏 / 监控 / 评估 / 降级)是生产门槛。
- 主干全是 Workflow,自主 Agent 只作为旁挂分支。
- Key 在 BFF、检索给出处、失败要兜底 是三条硬底线。
课后自检(3 分钟)
- [ ] 我的 API Key 只在后端 BFF,前端拿不到
- [ ] 我有编排层做路由,不同类型走不同分支
- [ ] 检索走 RAG 给出处,不是章节直灌
- [ ] 我配了缓存 / 护栏 / 监控 / 评估 / 降级中的关键几项
- [ ] 自主 Agent(若有)是旁挂分支,且沙箱 + 审批齐备
下一课预告
第 12 课 · 章节直灌 vs 知识库检索 —— 深入能力层最纠结的一步:知识到底怎么喂给模型。
延伸阅读
© 曹宇春