React RAG 与产品化(第 5-8 周)
目标:完成 RAG Demo,并补齐成本/可观测能力。
目录
- 任务清单
- 最小可运行代码
- 项目结构
- 验收标准
- 详细解析:RAG 在前端的落地
- Mermaid:RAG 前端交互流程
- 调试建议
- 详细步骤(第 5-8 周)
- 引用面板数据结构
- 成本面板最小字段
- 评估指标建议
- 扩展方向
- 成本控制策略(实用)
- 可观测字段建议
- 失败兜底建议
- 实战用例
- RAG 评估模板
- UI 组件拆分建议
- 组件示例(简化版)
- 监控指标建议
- 常见问题
- 扩展路线
- 评估清单(RAG)
- 附录:产品化 Checklist
- 案例流程(简版)
- 监控告警规则
- 附录:常见问题
- 测试用例(示例)
- FAQ
- 端到端验收清单
- 最小演示流程
- 附录:字段定义
- 最小完成标记
- 补充清单
- 最终检查
- 完整可运行代码(RAG Mock Demo)
任务清单
- 文档切分 + 引用面板
- 多模型切换
- 成本面板 + traceId
后端最小接口建议
POST /rag/search:返回证据POST /rag/answer:返回答案 + 引用GET /metrics:返回 token 统计
最小可运行代码
setCitations(["S1", "S2"]);
setTraceId("trace-xxxx");
引用面板组件(最小版)
function CitationPanel({ items }) {
return (
<ul>
{items.map((c) => (
<li key={c.id}>{c.title}</li>
))}
</ul>
);
}
项目结构
rag-demo/
web/
components/
CitationPanel.tsx
CostPanel.tsx
验收标准
- 引用面板可展开
- 成本面板可查看
详细解析:RAG 在前端的落地
引用面板交互
- 默认折叠
- 点击展开显示 chunk
- 支持复制
成本面板要素
- 每日 token 使用量
- 单次请求上限
- 预算告警提示
Mermaid:RAG 前端交互流程
调试建议
- 校验引用编号与证据一致
- 记录 cost 与异常类型
- 确保 TopK 可配置
详细步骤(第 5-8 周)
- 先做 RAG 闭环
- 加引用面板
- 加成本面板
- 加 traceId 与错误码
引用面板数据结构
type Citation = { id: string; title: string; page?: number };
成本面板最小字段
- 今日 token
- 本次 token
- 预算上限
评估指标建议
- TopK 命中率
- 引用准确率
- 用户满意度
扩展方向
- 多文档检索
- 引用高亮
- 监控报表
成本控制策略(实用)
- 限制 TopN
- 限制 max_tokens
- 历史摘要
可观测字段建议
- traceId
- model
- inputTokens/outputTokens
- latency
失败兜底建议
- 模型超时 → 切换备用模型
- 引用缺失 → 返回“证据不足”
实战用例
- 问题:年假怎么计算?
- 证据:员工手册 P12
- 输出:答案 + 引用
RAG 评估模板
问题: 年假如何计算
证据: doc-001-0002
TopK命中: 是
引用准确: 是
UI 组件拆分建议
CitationPanelCostPanelTraceIdBadge
组件示例(简化版)
function TraceIdBadge({ id }) {
return <span>traceId: {id}</span>;
}
监控指标建议
- 请求总数
- 错误率
- 平均响应时长
常见问题
- 引用为空 → 证据不足
- 成本过高 → TopN 过大
扩展路线
- 分权限文档检索
- 语义高亮
- 引用点击跳转
评估清单(RAG)
- TopK 命中率
- 引用准确率
- 拒答准确率
- 回答完整性
- 引用覆盖率
- 证据长度合理性
- 证据重复率
- 用户满意度
- 成本控制
- 平均响应时长
- TTFT
- 超时率
- 失败率
- 复现率
- 回归通过率
附录:产品化 Checklist
- 多模型切换
- 成本面板
- 监控告警
- 日志脱敏
- 版本回滚
案例流程(简版)
- 用户提问“年假规则”
- 检索证据 TopK
- 拼 Prompt
- 返回答案 + 引用
监控告警规则
- 错误率 > 5% 报警
- 平均耗时 > 3s 报警
- 引用缺失率 > 10% 报警
附录:常见问题
- 为什么引用面板为空?
- 为什么回答不稳定?
- 为什么成本过高?
测试用例(示例)
- 年假规则 → 引用员工手册
- 退款流程 → 引用FAQ
FAQ
Q: 为什么引用面板为空?
A: 证据不足或检索失败。
Q: 为什么成本过高?
A: TopN 过大或输入过长。
端到端验收清单
- 引用面板可用
- 成本面板可用
- traceId 可见
- 错误码可追踪
最小演示流程
- 上传文档
- 输入问题
- 查看引用
- 查看成本
附录:字段定义
traceId:链路追踪model:模型名称token_in:输入 tokentoken_out:输出 token
最小完成标记
- 引用可展示
- 成本可查看
补充清单
- 引用编号一致
- 证据可展开
- 成本可追踪
最终检查
- RAG 正常
- 引用正常
完整可运行代码(RAG Mock Demo)
源码目录:
docs/demos/rag-demo
cd docs/demos/rag-demo/server
npm i
npm run dev