1.7 KiB
1.7 KiB
T843 — demand map enrichment metering byok
Status:
done(2026-08-11) Milestone:M4Est. change:~190 lines
Goal
完成後使用者確認 CostPreview 後才可用 AI 擴充 DemandMap,成功才切換版本並正確記錄 platform/BYOK 用量。
Depends on
- T840、T841、T842
Inputs
apps/backend/internal/module/radar/usecase/suggest.goapps/backend/internal/module/usage/domain/**apps/backend/internal/logic/radar/**- Spec §4.1、§5.1–§5.3、驗收 #17、#20、#22
Outputs
程式變更(預期路徑)
| 路徑 | 動作 | 說明 |
|---|---|---|
apps/backend/internal/module/radar/usecase/demand_map_enrich.go |
add | preview gate、AI output validation、merge |
apps/backend/internal/logic/radar/enrich_demand_map_logic.go |
add | authenticated action |
apps/backend/internal/module/radar/usecase/demand_map_enrich_test.go |
add | success、invalid output、retry、BYOK |
apps/backend/internal/module/usage/** |
edit | 沿用 meter、source=radar.demand_map |
行為變更
- provider 未完成有效結構時不切 current map;依既有失敗退點規則處理。
- BYOK platform credits=0,count/source 仍增加。
API / 契約(若有)
- POST enrichment 必須帶 preview_id、credit_ceiling、context version。
Out of scope
- 不做每日 sweep、不改產品真相、不新增第五 meter。
Acceptance
- enrichment 成功、失敗、重試與版本衝突行為可對帳。
- AI token 不回前端。
- 指令:
cd apps/backend && go test ./internal/module/radar/... ./internal/module/usage/... -run 'DemandMap|Enrich|Meter' -count=1
Notes
AI phrases 必須帶 basis,不得把模型推測當產品承諾。