LLM 应用实战:客服整合与真实模型验证|调用链观测与优化专题
课程名称:LLM 应用实战:客服整合与真实模型验证|项目任务:为单轮客服做一次有质量门的性能优化|编号:W04-D05
本专题是 D05 必做实战,复用 D01 的观测字段、当天案例和评测,不另学监控平台。回到课堂|学员任务书|日验收
1. 先别急着改 Prompt
客服接口慢,第一反应常常是“换模型”或“让 AI 把 Prompt 缩短”。企业里不能这样猜。先固定同一条客服输入和同一份 expected,再看证据。
图里有两类问题:时间花在哪里,以及 Token 花在哪里。W04 先做单次调用,不提前引入 RAG、Agent 或监控平台。
2. 本周最低观测字段
| 字段 | 回答的问题 |
|---|---|
| request_id / provider_id / model_id | 这次到底调用了谁 |
| e2e_latency_ms | 本例从一轮 Provider 请求发出到完整结果用了多久;不是整个客服流程 |
| input/output/cached_tokens | Token 主要花在输入还是输出 |
| estimated_cost | 按当期价格估算多少钱 |
| status / error_code | 是慢,还是调用失败 |
| evidence_layer | 数据来自 Replay 还是真实 Provider |
字符数不能替代 Token。真实用量优先读取 Provider 返回的 usage;价格卡必须注明日期和来源。
先核对输入组成:系统约束、商品事实、用户问题分别是什么,是否存在重复。Provider 返回的是整次用量;如果只按字符长度判断哪段较长,必须注明这是粗略排查,不能把它当作分段精确 Token 账单。总耗时也不能单独证明慢在网络、排队还是模型内部;没有分段证据就保留为假设。
缓存 Token 怎样算钱
缓存命中并不等于免费。以 DeepSeek 的缓存命中/未命中分别计价规则为例,输入总量已经包含命中部分:
未命中输入 = input_tokens - cached_tokens
估算费用 = (未命中输入 × 未命中输入费率
+ cached_tokens × 命中输入费率
+ output_tokens × 输出费率) / 1000000费率单位为元/百万 Token。缓存数量不能小于 0 或超过输入总量;有命中但没有命中费率时,标记资料不足,不填 0。真实费率按调用日期、模型和适用时段核对,课堂示例费率不作为账单证据。规则来源:DeepSeek 官方模型与价格(2026-09-04 核对;实际开课前重查)。
3. 学生实战:只改一个变量
使用 D01 留下的固定输入和 D05 固定评测:
- 保存 baseline:指标、输出和质量结果;
- 判断是 latency 还是 Token 超预算;
- 在 Prompt 冗余、输入上下文、输出限制中只选一项修改;
- 对同一输入再次运行;
- 比较耗时、Token、费用和意图/Schema/事实/任务质量;
- 输出
ACCEPT或ROLLBACK。
基线必须已经通过质量检查,才能谈性能优化。判断成功需要至少一项可比性能指标改善且质量不退化;若候选更省 Token 却明显更慢,应同时写出取舍,不能笼统称“全面提升”。保留数据来源;Replay 的数字用于练习判断,不能冒称当前模型的性能。真实调用少量复测也只能说明该案例的观察,不宣称生产 p95。
4. 故意做一次错误优化
把输出限制压得很低,通常会更快、更省 Token。但如果 JSON 被截断、意图缺字段或客服答案不完整,这次优化必须回滚。
程序跑得更快,只能证明性能指标改变;质量测试通过,才能证明它仍然完成原任务。
5. 当天提交证据
baseline.json与candidate.json;performance_evidence.md:关联案例、模型/配置版本、上述文件、计时范围与费率来源;- 一句话瓶颈判断;
- 唯一修改变量及 diff;
- 同一评测集的质量回归;
ACCEPT/ROLLBACK与理由;- 真实调用时附本人 request_id/usage;Replay 必须明确标记。
W05 交接复用这份基线、决策和未解决问题,不交教师完整实现。若候选失败,保留回滚记录,不把失败改写为优化成功。
6. 面试追问
- Token 降低 40%,为什么仍可能不是成功优化?
- 为什么一次真实调用不能证明生产 p95?
- Prompt 变短后 Schema 失败率上升,你怎样决策?