LLM API 开发:把大模型接入智能客服|课后复习
失败分类与有界重试
复盘:只读临时错误才进入有限重试,参数/权限错误停止;每次用剩余总时间,取消后不提交迟到结果。面试用一个写操作结果未知的例子解释为何先查幂等状态。
配套讲解:失败分类与有界重试。
业务与技术一起复盘
用实战中的解答与反例检查:用户只问一次,为什么可能收费多次?HTTP成功为什么不代表业务正确? 复习时先自己讲一遍原因,再打开记录核对。面试回答要讲清方案取舍、失败处理和复验,把课堂数据和真实业务成果分清楚。
SDK调用复盘
先用同一消息比较HTTP(超文本传输协议)和SDK(软件开发工具包),再完成自己的Provider(服务提供方)适配;今天不提前复制后续意图提取或整条客服流程。
对照OpenAI SDK 调用 DeepSeek 与 HTTP 对照中的故障表,用自己的运行记录回答:谁发请求、哪里计时、usage(用量)缺失如何处理、谁决定重试、谁做业务校验。补做正常与失败反例,解释迁移后是否保持原有结果。
课程名称:LLM API 开发:把大模型接入智能客服|项目任务:商城客服模型接入层|编号:W04-D01
看图复述:配置进入 Adapter(适配器),Adapter 归一化响应;Replay(回放) 与真实调用走相同业务接口,但进入不同 Evidence(验证证据) Gate(验收门槛)。
先把模型运行的位置讲清楚
对照模型调用全景图,从商城页面讲到客服后端、适配器、SDK、远端模型服务,再指出硬件位于哪一侧。SDK 不等于模型,远端服务内部细节也不能从一次 API 响应推断出来。
面试追问:“客户已有服务器,为什么仍可能无法私有部署?”回答至少包括模型/运行环境兼容、资源、服务与运维;今天只完成 API 接入,不能宣称部署了推理引擎。
预防误判:调用前确认端点与模块职责;发现本机没有模型权重时先检查是否本来就在调远端,不盲目安装 GPU 栈。客服失败后分别运行原订单接口和客服错误路径,确认商城核心功能未被绑定到模型服务。
今天的主线
- 模型推理是概率生成,API(应用程序接口) 200 不等于业务事实正确;
- 真实调用默认 DeepSeek,Adapter 隔离供应商字段,但不消除 Capability/语义差异;
- Key 只来自环境变量,日志只保留最小脱敏证据;
- 401/402/400/422 停止修配置,429/网络/5xx 才允许有限重试;
- Replay 保证学习可继续,学生你真实的调用才可能进入 Portfolio(作品集) Evidence。
风险怎么防、怎么发现、怎么处理、怎么复验
| 风险 | 提前预防 | 怎样发现 | 怎样处理 | 怎样复验 |
|---|---|---|---|---|
| Key 入 Git | .env + .gitignore | git diff --cached | 撤销/轮换并清理 | 检查 Git 与 Provider 用量 |
| 无限重试 | 冻结上限和错误表 | 日志尝试次数持续增长 | 停止、分类、转 Replay | 故障 Fixture(固定测试数据或测试装置) 达到终点 |
| Replay 冒充真实 | 固定 Evidence 字段 | request_id 以 replay- 开头 | 改回 Replay/Pending | 报告和 artifact(交付产物) 一致 |
| 输出被当事实 | 后续 Schema/API 门 | 只有自然语言无事实来源 | 不进入业务执行 | D03/D04 再验证 |
自测
- 为什么 Provider Adapter 不能让两个模型完全等价?
- 402 和 429 的重试策略为何不同?
- 教师真实 request_id 能证明你的个人能力吗?
- 设计一条不保存完整消息也能定位失败的日志。
面试考点与面试题
考点:Provider Adapter、环境变量、错误分类、有限重试、Token/上下文、真实与 Replay 证据。
- 为什么 401 不应自动重试,而 429 可以有限重试?
- Adapter 怎样降低切换成本,又为什么不能抹平模型差异?
- HTTP 200、结构正确和业务事实正确分别由什么证明?
- 怎样设计不泄露 Key 的模型调用日志?
留给 D02
保留统一 ChatRequest/ChatResult、错误表、独立 Replay 和 Evidence 状态。D02 固定 Provider、模型、temperature(温度参数) 与输入,只改变 Prompt(提示词) 的一个主要变量。
自测题
- 不看课件,你能用自己的话解释今天引入的新机制解决了什么问题吗?
- 你能指出一条正常路径和一条失败路径,并说出对应证据吗?
- 面试官追问“为什么不能只看运行成功”,你会怎样回答?
下节课(D02)要带上的成果
- 一份你自己跑记录;
- 一条失败案例及修复前后证据;
- 一个仍需在 D02 继续验证的问题。
和下次课的衔接:D02 从这些事实出发继续开发,不重新假设今天已经掌握。
行业实践复盘
面试追问:相同系统提示词重复发送,缓存命中是否等于复用了上次答案?
结合课堂讲解:缓存命中以后,模型是不是不用回答了,用一个业务反例说明适用条件、收益与代价,并区分你已经验证的能力和仅做过选型研究的方案。