🎯 目標
建立簡化版 知識圖譜 (KG),將 Food、Compound、Effect、Evidence、Drug 連結起來
API 查詢時,不只回傳推薦食物,還能附上「為何推薦」的解釋路徑
提升使用者對推薦系統的 信任度 (Trust) 與 透明度 (Transparency)
🏗️ 技術設計
1. 知識圖譜 Schema
節點 (Nodes):
Food(黑芝麻、番茄、葡萄柚…)
Compound(黑芝麻素、茄紅素、維生素 C…)
Effect(烏髮 E001、抗皺 E002)
Evidence(PMID:xxxxx, 研究等級, 劑量…)
Drug(Statins、Warfarin…)
邊 (Relations):
Food -contains-> Compound
Compound -improves-> Effect
Compound -interactsWith-> Drug
Evidence -supports-> (Food/Compound→Effect)
2. 實作方式
MySQL 版:建 kg_relations 表(簡單實作)
進階:用 Neo4j / RDF → 可視化查詢
先走 關聯查表,API 查詢時能輸出解釋
3. API 範例
/api/recommendations/explain?effectId=E002
回傳
4. 解釋方式
Evidence-based:帶出 PubMed 研究引用
Compound-based:透過成分連結效果
Risk-based:若有 DrugBank 藥物交互 → 同時輸出警示解釋
🧪 測試計畫
curl /api/recommendations/explain?effectId=E001 → 輸出烏髮推薦 + 文獻路徑
curl /api/recommendations/explain?effectId=E002 → 輸出抗皺推薦 + 成分解釋
帶 drugList → 回傳「⚠️ 因為交互作用,建議避免」
✅ 驗收標準
API 查詢結果包含 推薦 + 解釋路徑
至少兩個食材能帶出 完整 reasoning chain
使用者能清楚知道「為什麼推薦它」或「為什麼警告避免」