Introduce ModelPurpose.ANALYSIS and a globally-unique is_analysis_default marker on chat model configs so campaign analysis can resolve its model. Service rejects disabled or non-chat configs; repo clears the previous holder on set. Documented the analysis role in CONTEXT.md.
16 lines
1.2 KiB
Markdown
16 lines
1.2 KiB
Markdown
# 01 — 模型配置中心「分析默认」
|
||
|
||
**What to build:** 管理员在模型配置中心能把一个「启用中的 chat 模型」标记为「分析默认」(全局唯一,设新的自动清旧的),API 透出该标记。后端新增 `ModelPurpose.ANALYSIS` 枚举与 `model_configs.is_analysis_default` 列(Alembic 迁移,batch mode,回填 false),服务层校验「停用配置不能设为分析默认」「非 chat 能力不能设为分析默认」。
|
||
|
||
**Blocked by:** None — can start immediately
|
||
|
||
**Status:** ready-for-agent
|
||
|
||
- [ ] `ModelPurpose` 枚举新增 `ANALYSIS`;CONTEXT.md 的「分析岗位」术语编辑随本 ticket 一并提交
|
||
- [ ] Alembic 迁移:`model_configs` 加 `is_analysis_default` 布尔列(server_default 回填 false)
|
||
- [ ] 仓储层设分析默认时互斥清除(参照 `clear_default` 模式);服务层校验:停用 → 拒绝;非 chat 能力 → 拒绝
|
||
- [ ] 创建/更新模型配置的 API 接受并返回 `is_analysis_default`
|
||
- [ ] 模型配置中心前端:chat 配置上可设置/展示「分析默认」标记
|
||
- [ ] 单元/集成测试:唯一性互斥、停用拒绝、非 chat 拒绝、API 读写
|
||
- [ ] `pytest` + `ruff` + `npx tsc --noEmit` + `npm run build` 全绿
|