19 lines
1.3 KiB
Markdown
19 lines
1.3 KiB
Markdown
# ADR-009:模型连接配置持久化
|
|
|
|
## 状态
|
|
已接受
|
|
|
|
## 决策
|
|
|
|
- 使用独立的 `provider_configs` 表保存唯一的 `target` 与 `judge` 连接配置,提供认证后的 REST CRUD;`model_profiles` 继续保存历史能力档案。
|
|
- 管理员可创建、更新、删除;已登录用户可读取配置及调用模型相关接口。
|
|
- API Key 可写入但绝不回显,只返回 `api_key_configured`;日志不记录密钥、认证头或请求体。
|
|
- 运行时优先读取数据库;某角色没有记录时回退同名 `.env` 配置,便于平滑升级与紧急删除错误覆盖。
|
|
- `target` 与 `judge` 是稳定的自然 `provider_id`。CRUD、连接检查和模型发现统一挂在 `/providers/{provider_id}` 下,不暴露内部数据库行 ID。
|
|
- `GET /providers` 返回两条当前生效配置,并以 `source=database|env` 标明来源;两种来源都不回显 API Key。
|
|
- `check`、模型发现和后台测试运行全部复用 `ProviderFactory`;能力探测由后台运行调用,避免配置只对管理接口生效。
|
|
|
|
## 边界
|
|
|
|
SQLite 中的 API Key 与原 `.env` 一样属于部署密钥,依赖主机文件权限和备份访问控制。当前不增加密钥管理服务或自定义加密层;接入集中式 KMS 后再替换存储方式。
|