3.5 KiB
3.5 KiB
FastGPT 迁移前基线
采集日期:2026-07-26 Git 基线:
5c719ed环境:本地 macOS,项目.venv,FakeBackend/FakeClient;未调用真实 FastGPT 用途:冻结可复现工程基线,不冒充生产业务指标
自动化基线
执行:
.venv/bin/python -m pytest -q
Phase 0 开始前结果:
32 passed in 0.32s
覆盖范围:
- Pydantic 公共请求/响应 schema;
/chat对 backend-neutral contract 的适配;- FastGPT backend 的 SDK/Event 转换;
- state prefix 跨 chunk 的基础兼容;
- 文本分句。
未覆盖范围:
- 真实 FastGPT 网络延迟和错误;
- 真实 workflow 状态序列稳定性;
/set_info、/get_info完整兼容行为;- 生产转人工比例和 prefix 失败率;
- 数据库、并发恢复和 LangGraph。
Phase 0 完成后的测试数量和耗时见本报告底部。
本地 API 适配层耗时
使用内存 FakeBackend,关闭日志后直接调用 endpoint 并完整消费流式响应。该数据只衡量 Python 适配、prefix/SSE 处理开销,不包含 HTTP、网络、FastGPT 或模型延迟。
nonstream n=2000 p50=0.004ms p95=0.014ms p99=0.030ms
stream-consume n=1000 p50=0.011ms p95=0.034ms p99=0.051ms
这组数据用于后续发现 API 适配层的明显性能回退,不能与生产端到端延迟混用。
生产指标采集口径
以下数据无法从仓库推导,必须由部署环境日志或监控采集。负责人应使用同一时间窗口、同一调用方集合,并排除压测流量。
| 指标 | 计算方式 | 当前值 |
|---|---|---|
/chat 请求数 |
成功与失败总请求 | 待生产采集 |
| 非流式 P50/P95/P99 | endpoint 总耗时 | 待生产采集 |
| 流式 TTFB P50/P95/P99 | 收到请求至首个 text_delta |
待生产采集 |
| 响应体错误率 | code != "200" / 请求数 |
待生产采集 |
| FastGPT 超时率 | timeout / FastGPT 调用数 | 待生产采集 |
| Prefix 失败率 | 缺失、格式错误、未知码 / 模型回复数 | 当前未结构化记录 |
| 转人工率 | 0001/0002/0003/0004/0005 / session 数 |
待生产采集 |
formUpdate 产生率 |
非空 patch / needFormUpdate=true 轮次 |
待生产采集 |
| 平均轮次 | chat 轮次 / 完结 session 数 | 待生产采集 |
/set_info、/get_info 错误率 |
code != "200" / 请求数 |
待生产采集 |
当前可观测性限制
当前日志虽然记录延迟,但也记录完整 sessionId、输入、输出和 formUpdate,不能直接作为长期生产基线方案。Phase 1/8 应先加入 request ID、session hash、结构化事件和脱敏,然后再持续采集。
建议临时聚合时只输出:
- 时间桶;
- endpoint;
- 成功/稳定错误类别;
- 耗时;
- stage code;
- 是否产生 form patch;
- 不可逆 session hash。
不得导出原始对话、身份证、手机号、车牌、Token 或完整表单。
Phase 0 最终验证
完成日期:2026-07-26
48 passed in 0.49s
相对 Phase 0 开始前新增 16 个测试,覆盖:
/set_info、/get_info的 FastGPT 辅助调用和兼容序列化;- SSE 成功事件顺序、唯一终止事件和文本拼接;
- 当前缺失流式 prefix 的历史行为;
- 状态/迁移/字段注册表闭合性;
- 黄金场景唯一性和敏感号码扫描;
- 源码、文档、测试和配置样例中的 FastGPT Token 扫描。
生产业务指标仍标记为“待生产采集”。这是外部可观测数据依赖,不用估算值替代;最迟必须在 Phase 9 shadow 前完成采集。