LLM API 开发:把大模型接入智能客服|学员任务书

失败分类与有界重试

在自己的只读查询中实现分类、次数与总时间限制。提交正常、临时失败、参数错误、取消的实际次数,再独立增加一个迟到结果反例。不接真实退款或收费循环。

配套讲解:失败分类与有界重试。

今天的项目补强

在已有调用记录上标出任务与每次请求,检查失败/重试是否保留;费用未知写待核,不填0。 参考机制与业务边界,提交个人预测、AI建议采纳/拒绝理由和复验记录;不复制教师完整实现。

模型客户端实践补充

先用同一消息比较HTTP和SDK,再完成自己的Provider适配;今天不提前复制后续意图提取或整条客服流程。

按OpenAI SDK 调用 DeepSeek 与 HTTP 对照检查解释器、安装固定版本SDK,在自己的Adapter中实现。验证正常响应、失败不自动重试、未知用量不填零;保留来源标签与个人解释。不领取教师完整实现,Key只留本机,离线测试不冒充真实调用。

课程名称:LLM API 开发:把大模型接入智能客服|项目任务:电商客服模型接入层|编号:W04-D01

课前预习 · 课堂课件 · 课后复习 · 日验收

任务与自主等级

  • 自主等级:3,任务 + Provider 接口骨架。
  • 教师提供:student-contract-W04-v2.0、独立 Replay、接口骨架、红灯测试、错误样本和日志红线。
  • 教师不提供:完整 Provider 实现、真实成功截图、最终重试参数和教师仓库。

从自己的目录开始

mkdir W04-llm-customer-service
cd W04-llm-customer-service
git init
git branch -M main

用 TRAE 打开该目录,合入教师当天发放的 D01-provider-entry 和 contracts。检查 .env 已被忽略:

git status --short
python --version
python tests/test_d01_provider_contract.py

保存第一次红灯,不能先删除失败测试。

分段待办

  1. 画出统一 ChatRequest → ChatResult 字段表;
  2. 实现 401/402/400/422/429/5xx 分类和是否允许有限重试;
  3. 读取独立 Replay Fixture,归一化 usage、request_id、model_id、latency;
  4. 明确 evidence_layer=Replay;
  5. 设计脱敏 Evidence,不保存 Key 和完整敏感消息;
  6. 注入至少三类故障并保存输入、预期、实际、修复和复验;
  7. DeepSeek 真实通道可用时按当期实验卡完成你自己调用;只有经讲师批准的兼容性/补救实验才切换其他 Provider,否则登记 Pending。

AI 协作检查

  • Prompt 是否限定到 src/provider_adapter.py?
  • AI 是否绕过 Adapter,把 DeepSeek 或其他 Provider 的专有字段硬编码进业务层?
  • 是否把所有异常都重试?
  • diff 中是否出现 Key、账号、教师绝对路径?
  • 你能解释每个分支的停止条件吗?

独立变体

从 402、503、超时或未知 Fixture 中选择一项。先写预测,再改最小代码,运行回归并记录拒绝/接受 AI 修改的理由。

提交证据

  • 红灯与绿灯输出;
  • 正常 + 三类错误轨迹;
  • git diff/commit;
  • Evidence 分层表;
  • 你真实的调用或 Pending 登记;
  • 两分钟解释:哪些错误重试,为什么有限。

额外提交一条脱敏调用记录:trace_id/provider/model/latency_ms/input_tokens/output_tokens/cached_tokens/retry_count/status。不得记录 API Key、完整用户原文或未脱敏个人信息。

配套学习资料