前幾天已經分別完成:
但目前這三個功能還是各自運作。
Health Memory 知道使用者最近發生了什麼,Health State 負責整理近期的健康變化,而 RAG 則負責找到可信的衛教知識。
所以今天要做的事情很直接:
把這三種資訊一起交給 LLM,讓回答開始根據使用者近期狀態產生變化。
昨天完成衛教 RAG 後,AI 已經可以先搜尋可信資料,再根據資料回答。
例如使用者問:
最近還是睡不好,有什麼可以注意的?
如果只有 RAG,可能會回答:
保持規律作息、睡前避免咖啡因,
並減少睡前使用電子產品。
內容沒有問題,但任何使用者都可能得到類似的答案。
而 AI Companion 前面已經累積了 Health Memory,因此這些紀錄也應該成為回答的一部分。
今天把流程改成:
使用者問題
↓
Health Memory Retrieval
↓
Health State
↓
Health Education RAG
↓
Context Builder
↓
LLM
↓
個人化衛教回答
例如系統找到:
Health Memory
→ 最近 4 天有 3 次提到睡眠品質不好
Health State
→ 近期睡眠狀態持續偏差
Health Education RAG
→ 找到睡眠相關衛教內容
最後再一起交給 LLM。
目前先使用最簡單的方式組合:
[Recent Health Memory]
- 09/01:睡眠品質不好
- 09/02:半夜醒來兩次
- 09/03:今天還是睡不好
[Health State]
- 最近多次出現睡眠相關事件
[Health Education]
- 維持固定睡眠與起床時間
- 睡前避免咖啡因
- 持續影響生活時可尋求專業協助
[User Question]
最近還是睡不好,有什麼可以注意的?
這樣 LLM 不只知道「睡不好通常要注意什麼」,也知道「這個使用者最近已經多次提到睡眠問題」。
回答就可以變成:
你最近幾天已經多次提到睡眠品質不好,
可以先觀察近期的作息、咖啡因攝取,
以及睡前使用手機的情況。
如果持續影響白天精神,
可以考慮尋求醫療專業人員協助。
差別就在於:
RAG 提供知識,Health Memory 提供個人脈絡。
這裡還有一個很重要的限制。
如果系統知道:
最近常常睡不好
最近容易疲倦
不能因此直接推論使用者患有某種疾病。
所以目前在 Prompt 中加入限制:
Health Memory 僅作為回答的背景資訊。
不得根據紀錄自行診斷疾病。
回答以衛教與一般健康資訊為主。
必要時建議尋求醫療專業協助。
這樣 Health Memory 的用途是讓回答更了解使用者,而不是讓 AI 自己進行診斷。
今天最大的問題是:
到底要放多少 Health Memory 進 Context?
放太少可能沒有個人化效果,但放太多又會出現不相關資訊。
例如現在詢問睡眠問題,就不需要把很久以前的飲食紀錄全部交給 LLM。
因此之後的 Retrieval 還需要考慮:
問題相關性
時間距離
事件頻率
Health State
讓系統只取回目前真正需要的健康資訊。
Day 12 到 Day 14 分別完成了:
Health Memory
→ 記住健康事件
Health State
→ 整理近期變化
Health Education RAG
→ 找到可信衛教知識
Day 15 則第一次把它們串在一起:
Health Memory
+
Health State
+
Health Education RAG
↓
Personalized Health Context
↓
LLM
↓
個人化衛教回答
今天最重要的概念就是:
RAG 告訴 AI「一般來說應該怎麼回答」,Health Memory 則告訴 AI「這個人最近發生了什麼」。
到這裡,AI Companion 已經開始不只是回答健康問題,而是能結合使用者近期狀態,提供更有個人脈絡的回應。
下一步 Day 16,就可以開始進入 Agent 與主動關懷:當 AI 已經知道使用者最近的狀態後,能不能進一步判斷「什麼時候應該主動做點什麼?」