- 目標
/api/recommendations 改為:查 evidence → 規則算分 → 排序 → 回傳 DTO
規則可擴充(日後可替換成 ONNX Runtime)
規則設計(建議版)
證據等級:A=+9、B=+8、C=+7、D=+5
方向:improves +0、worsens −2、no_effect −1
幅度:magnitude ∈ [-1,+1] 加權(缺值視為 0)
多筆同食物:可用 加權平均 或 最大值(Day 5 先用最大值簡化)
最終分數:0–10 clamp
- 工作項目
Service 層策略
介面:ScoringStrategy.score(effectId): List<RecommendationItem>
實作:RuleScoringStrategy(讀 EvidenceDao.findByEffect → 聚合同名食物 → 規則算分)
- DTO
RecommendationItem{ itemType, name, score, evidenceGrade, references }
RecommendationResponse{ effectId, items }
- DAO 調整(若需要聚合)
先查明細,聚合在 Java(Day 5 快速完成)
之後可改 SQL 層聚合+分數子查詢
Controller 保持不變
/api/recommendations?effectId=E001|E002
- 驗收
E002(抗皺)回傳:食物依分數 降冪排序
E001(烏髮)同理
空或錯誤參數:回 400/422