Skip to content
🔗 分享本题
查看我的学习进度 →

24 模块 Q10 教学图:如何用 Protocol 和依赖注入让 LLM 客户端可测试、可替换?

🧠 图解记忆:业务层依赖一个窄接口,例如 generate(request) - response,而不是直接依赖某家 SDK;点击图片可查看原图。

💡 答案要点

业务层依赖一个窄接口,例如 generate(request) -> response,而不是直接依赖某家 SDK。用 typing.Protocol 描述能力,通过构造函数注入真实客户端、Fake 或 Recording Client。

接口应保留超时、usage、finish reason、tool calls 和错误类型,不能为了“统一”丢掉关键语义。单元测试用确定性 Fake;契约测试验证各供应商适配器;少量集成测试再调用真实服务。

📚 参考:Python typing:Protocol(结构化子类型)