LLM 应用实战:客服整合与真实模型验证|调用链观测与优化专题

课程名称:LLM 应用实战:客服整合与真实模型验证|项目任务:为单轮客服做一次有质量门的性能优化|编号:W04-D05

本专题是 D05 必做实战,复用 D01 的观测字段、当天案例和评测,不另学监控平台。回到课堂|学员任务书|日验收

1. 先别急着改 Prompt

客服接口慢,第一反应常常是“换模型”或“让 AI 把 Prompt 缩短”。企业里不能这样猜。先固定同一条客服输入和同一份 expected,再看证据。

单次 LLM 调用观测

图里有两类问题:时间花在哪里,以及 Token 花在哪里。W04 先做单次调用,不提前引入 RAG、Agent 或监控平台。

2. 本周最低观测字段

字段回答的问题
request_id / provider_id / model_id这次到底调用了谁
e2e_latency_ms本例从一轮 Provider 请求发出到完整结果用了多久;不是整个客服流程
input/output/cached_tokensToken 主要花在输入还是输出
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 固定评测:

  1. 保存 baseline:指标、输出和质量结果;
  2. 判断是 latency 还是 Token 超预算;
  3. 在 Prompt 冗余、输入上下文、输出限制中只选一项修改;
  4. 对同一输入再次运行;
  5. 比较耗时、Token、费用和意图/Schema/事实/任务质量;
  6. 输出 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 失败率上升,你怎样决策?