问题域/PD-190

多供应商适配

Multi-Provider Adapter

通过接口抽象统一多个第三方服务供应商的调用与切换

子问题

1.供应商接口统一

2.配置驱动的动态选择

3.供应商特定错误处理

4.异步轮询供应商的状态机封装与超时控制

5.base64/binary/URL 三种返回格式的透明归一化

6.供应商别名与默认值降低用户配置负担

各项目的解法1 solutions

Signals

横向对比

维度md2wechat-skill
接口设计Go interface 双方法(Name+Generate),context 传播超时
工厂模式switch-case 工厂函数,验证前置,支持供应商别名
错误处理GenerateError 统一类型含 Provider/Code/Hint,每供应商独立 handleError 映射
协议归一URL/base64/binary 三种返回格式归一为 GenerateResult.URL 字段
异步支持ModelScope 供应商内置 ticker 轮询 + context 取消,120s 超时
配置体系三层优先级(环境变量>配置文件>默认值),YAML/JSON 双格式

最佳实践

1.Provider接口+工厂模式实现开闭原则

2.验证前置:工厂函数先 validate 配置再创建实例,快速失败

3.错误人性化:GenerateError 含 Hint 字段提供可操作的修复建议

4.三层配置优先级(环境变量>文件>默认值)统一所有供应商配置