配置外置是什么
配置外置指把随环境变化的参数(服务地址、模型标识、超时、阈值、开关)从代码与提示模板里挪到外部文件或配置中心,进程启动时读取并注入。同一份提示模板在开发、测试、生产直接复用,差异只由配置层表达;改参数不必重新发布代码,排查问题时也能说清线上生效值来自哪一层。
基本信息
| 分层文件 | config/base.yaml 通用默认;staging.yaml、prod.yaml 覆盖 |
|---|---|
| 合并方向 | 具体环境覆盖通用层,逐键合并而非整体替换 |
| 敏感值 | 密钥走密钥管理或环境变量,不进仓库与镜像 |
| 启动校验 | 必填项缺失即启动失败,避免带残缺配置上线 |
| 生效值快照 | 启动与每次发布后打印一份,便于比对与回溯 |
典型使用场景
- 同一提示模板部署到多个客户环境:只改端点与配额,不动模板正文
- 模型切换与灰度:模型标识、温度写成配置项,做对比实验时改配置即可
- 阈值调优:超时、最大重试次数、相似度阈值等运维参数外置,避免为调参走一次发版
- 多租户差异:租户级参数放租户配置层,平台级安全基线保持统一
- 本地调试:开发者用 base.yaml 叠加个人覆盖文件,不污染仓库里的公共配置
环境配置分层
环境配置分层
config/base.yaml # 通用默认值:超时、重试次数、输出格式约束
config/staging.yaml # 测试环境覆盖:测试端点、低配额、宽松阈值
config/prod.yaml # 生产环境覆盖:正式端点、正式配额与限流阈值
# 渲染优先级:prod > staging > base,逐键合并
# 提示模板本身不写环境差异,差异全部落在配置层常见参数的归属层
| 参数 | 建议归属 | 说明 |
|---|---|---|
| 输出格式契约 | 模板正文 | 属于提示资产,跟模板版本号走 |
| 模型标识与温度 | 环境或租户配置 | 用于灰度对比,不改模板 |
| 接口地址与超时 | 环境配置 | 不同环境地址不同 |
| 密钥与凭证 | 密钥管理 | 不落仓库、不落镜像 |
| 配额与限流阈值 | 租户或环境配置 | 运营可调,变更需审计 |
判断一个参数该不该外置,看它是否需要在不改模板的前提下变化:会变的放配置,不变且属于语义契约的留在模板正文。
合并方向必须固定为具体环境覆盖通用层,禁止反向。出现反向覆盖要按变更事故处理,因为它会静默改变所有环境的行为。