跳到正文

工程与交付知识 ​

这份文档关注 React / TypeScript 开发者从“调用成功”走向“稳定交付”需要补齐的能力。

1. 技术栈选择与职责 ​

初期沿用熟悉的 React、TypeScript 和 Node.js。数据库、界面框架和部署方式选择自己能维护的方案,不为学习而一次引入多个新框架。

先通过所选供应商的官方 SDK 或接口理解请求、响应、错误和流式事件,再判断是否需要抽象框架。框架选择按实际需求验证,不将具体版本固定为长期必修。

text
React 客户端
  ↓ 用户输入、任务操作
Node.js 服务端
  ├─ 身份和权限检查
  ├─ 输入与输出校验
  ├─ 模型、检索与工具编排
  ├─ 数据库和任务状态
  └─ 日志、耗时与费用记录
       ↓
模型供应商 / 文档索引 / 业务接口

模型密钥留在服务端。客户端传来的用户标识、文档标识和“已确认”字段都不能直接作为可信授权依据。

2. 流式交互与异步任务 ​

需要区分请求建立、首段结果、持续生成和最终完成。部分文字已经展示,不代表整个任务成功。

学习重点:

  • 流式事件的解析与顺序,不假设每个网络块都是完整 JSON。
  • 取消、断开、超时后的状态和已生成内容如何保留。
  • 明确区分“正在生成”和“正在执行外部操作”。
  • 较长任务使用持久化状态,页面刷新后可查询进展。
  • 客户端取消连接不一定停止服务端或供应商执行,需检查支持情况并记录最终状态。

验收场景:连续点击提交、中途离开页面、生成时取消、网络断开、刷新查看旧任务。

3. Node.js 基础补齐 ​

知识点必须能处理的问题
Promise 与异步错误不遗漏异步失败,不让任务永久停在处理中
超时与取消为外部调用设置边界,并区分取消和失败
并发与限流多用户同时调用时不无限堆积
环境配置开发和生产配置分离,日志不暴露密钥
SQL 与持久化保存用户、任务、结果、文档版本和运行记录
后台任务长任务可查询状态,失败后能恢复或重做

不需要提前建设复杂基础设施。先解决项目真实出现的问题。

4. 可靠性:超时、重试、幂等 ​

重试应区分临时错误、无效输入、权限不足和业务失败,并设置次数上限及等待策略。不要对所有异常无条件重复请求。

幂等意味着同一业务动作重复提交,也不会重复产生业务结果。例如创建待办应有业务请求标识,并在存储或下游服务中落实去重。

尤其注意“超时但实际已执行”:若保存操作没有及时返回,不能立即假设失败并重新创建。应查询状态或使用支持幂等的接口。

验收:模拟工具成功后响应丢失,确认重试不会产生两条相同记录。

5. 身份、权限和不可信内容 ​

  • 登录确认用户是谁,授权确认用户能访问什么或执行什么。
  • 检索结果、历史记录和缓存都要遵守相同的数据隔离规则。
  • 文档、网页和工具返回值可能包含不可信指令,不能用来扩大权限。
  • 写入类工具仅暴露必要参数,服务端绑定当前用户和资源范围。
  • 用户确认应对应具体操作和具体参数;参数变更后不能复用旧确认。
  • 测试公开或已授权的数据,上传到模型服务前了解数据处理约定。

验收:用户 A 无法通过修改标识读取用户 B 的文档、任务、缓存或历史结果。

6. 可观测性 ​

建议每次运行记录:

字段用途
runId、taskId串起整次任务和子步骤
模型、配置和提示词版本复现与比较
检索文档版本及标识追查答案依据
阶段耗时和最终状态定位瓶颈与故障
输入/输出用量费用估算
工具名称、状态和错误类型排查执行问题
用户反馈与人工修改情况判断真实质量

不要默认把所有原始输入和工具结果写进日志。对敏感内容脱敏,明确保留周期和访问权限。错误日志也可能泄露业务数据。

7. 费用与性能 ​

一次任务费用可能包含多次模型调用、检索、向量生成、重排、工具服务和基础设施。重试与 Agent 循环也应计算。

一种估算形式:

单次模型费用 ≈ 输入计费用量 × 输入单价 + 输出计费用量 × 输出单价。

实际单位、缓存、推理用量等收费规则以供应商文档为准。不要把不同模型或平台的计费单位直接混用。

性能区分首段响应时间与全部完成时间。优化顺序是先记录瓶颈,再减少无关上下文、不必要调用和重复工作。缓存需要考虑用户权限、数据版本与失效规则。

验收:能估算一批任务的资源消耗,知道最慢和最贵的步骤,并设定运行上限。

8. 评测与测试的分工 ​

方法检查什么例子
单元与接口测试确定性程序行为参数校验、权限、幂等、状态转换
端到端测试完整用户流程提交、编辑、确认、导出
AI 效果评测模型输出质量是否准确、有依据、遗漏关键信息
用户试用是否真正有用能否完成任务,复核和修改花多久

初始可建立约 50 条样例,例如 35 条用于开发、15 条留作验收。这个规模只适合早期发现问题,不足以保证生产可靠性。查看验收集并据此调优后,需要补充新的未见样例。

常用指标:

  • 格式通过率 = 符合结构约定的输出数 / 评测输出总数。
  • 任务通过率 = 满足预定义验收规则的任务数 / 评测任务总数。
  • 引用支持率 = 经核查被引用支持的结论数 / 被检查的引用结论数。
  • 人工处理耗时 = 检查、修正和最终完成任务的实际时间。

必须说明分母、样本构成和评分方式。平均数会隐藏极慢请求;样本充足后再看分位数,并说明样本量。不能把自测数字写成业务承诺。

9. 发布与维护 ​

上线前至少具备:配置说明、权限检查、关键测试、异常处理、日志、费用边界、反馈入口和回退方式。

提示词、模型配置和知识库更新也是变更,应该有版本和回归记录。用户能继续使用旧功能,往往比一次增加很多 AI 能力更重要。

10. 本轮不强求 ​

不要求同时掌握多种向量数据库、复杂队列、分布式架构、多个 Agent 框架和私有模型部署。随着容量、合规或性能需求出现,再选择性深入。