配置驱动架构
Configuration-Driven Architecture
单一JSON配置文件驱动全部行为,Pydantic验证+环境变量替换
子问题
1.配置模型的类型安全验证
2.敏感信息与配置的分离
3.URL中环境变量的运行时替换
4.配置模板与示例管理
5.多提供商的工厂模式分发与客户端复用
6.配置缺失时的友好错误提示与模板引导
7.配置切片传递:编排器按模块分发配置给各子系统
各项目的解法1 solutions
Signals
横向对比
| 维度 | Horizon |
|---|---|
| 配置格式 | 单一 JSON 文件,Pydantic v2 model_validate 验证 |
| 类型安全 | Pydantic BaseModel + str,Enum 双继承,启动时全量验证 |
| 密钥管理 | api_key_env 间接引用 + load_dotenv + os.getenv 三层分离 |
| 变量替换 | RSS URL 中 ${VAR} 正则延迟替换,未匹配时保留原文 |
| 默认值策略 | Field(default_factory) 全覆盖,最小配置即可运行 |
| 提供商切换 | 工厂函数 + AIProvider 枚举,改 JSON 即切换,Doubao 复用 OpenAI 客户端 |
| 错误处理 | 三层捕获:文件缺失→打印模板,验证失败→Pydantic 详情,密钥缺失→ValueError |
最佳实践
1.Pydantic BaseModel验证配置结构
2.${VAR}语法支持URL中嵌入密钥
3..env文件分离敏感信息避免泄露
4.str,Enum双继承让JSON字符串直接反序列化为枚举
5.Field(default_factory)为所有可选配置提供兜底默认值
6.工厂函数根据枚举值创建对应客户端实现
7.配置文件不存在时打印完整模板引导用户创建