内部培训
04 第4周D19 项目开发第2天

D19 项目开发 · 第 2 天:功能完成

D19 项目开发 · 第 2 天:功能完成

项目期。今日目标:四模块功能各自完成,每人的模块能独立跑通核心路径。为明天契约自测打底。

今日目标(对应作业.md 检查点)

  • A:转发真实上游(D14 验证过的练习端点),流式返回,deduct 调用正确、失败处理完整。
  • B:verify/deduct/admin 全部可用;余额不足返回明确语义;流水完整。
  • C:用户列表/充值/流水/模型定价四页齐全,全接真数据。
  • D:compose 能拉起三服务;联调脚本雏形能跑(充值→调用→查余额)。

各模块开发要点

A 代理服务(今天最难)

  • 转发真实上游:base/model 走配置(环境变量),别硬编码。
  • 流式stream=true 时边收边转发(用 httpx 流式),超时与断流要处理。
  • deduct 时机:拿到上游 usage 后立即调;deduct 失败 = 计费失败,决定"照常返回+记欠费"还是"返回错误"——今天先做"记录失败并仍返回",在进度.md 里说明取舍。
  • 401/403/429 从上游透传或转义要明确。

B 计费引擎

  • verify 完整:key 无效→valid=false;余额不足→valid=true, insufficient=true
  • deduct 幂等二次验证:重复 request_id 返回相同结果(不重复扣)。
  • 事务:扣费+流水同 BEGIN/COMMIT;异常 ROLLBACK。
  • admin 接口字段与契约一致,分页可选。

C 管理面板

  • 四页齐全,全部调真数据;错误提示(401/余额不足)前端有反馈。
  • 充值后刷新余额立即变化。

D 部署

  • compose 把 proxy/billing/panel 串起来(服务名=域名,D7 学的)。
  • 联调脚本:curl 充值→curl 调用→curl 查余额→断言数字对得上。
  • 环境变量(上游 base/key、DB 密码)走 .env.example真实 key 不进仓库

站会(早上 5 分钟)

  • 昨天跑通了什么 / 今天目标 / 卡点(重点:A 的转发与 deduct 时序问题早暴露)。

讲解节奏建议(站点指导,非授课)

时段安排
09:00-09:20站会 + 今日目标
09:20-12:00开发(讲师重点盯 A 的转发、B 的幂等)
13:30-16:30继续开发
16:30-17:00每人演示"核心路径跑通" + 明日契约自测准备

常见误区(第 2 天高频)

误区正确理解
上游 base/key 硬编码走环境变量/.env.example,真实 key 不进仓库
流式转发忘处理超时httpx 流式要设 timeout,断流要能感知
deduct 失败就懵明确取舍:记失败日志并返回,还是报错——写进度.md
前端只接 mock 不换真今天必须全换真数据
自己模块通了就完事明天契约自测要与他人对字段,今天先自我检查

On this page