前面 Day 12 已經讓 AI 可以從日常對話中記錄健康事件,Day 13 則開始分析這些事件有沒有形成值得注意的變化。
但接下來還有一個問題:
當使用者問「那我可以怎麼改善?」時,AI 的回答要從哪裡來?
如果直接讓 LLM 靠本身的知識回答,內容可能不夠可靠,甚至產生錯誤資訊。
所以今天開始加入 衛教 RAG。
RAG 全名是 Retrieval-Augmented Generation,也就是「檢索增強生成」。
簡單來說,就是讓 AI 在回答之前先搜尋相關資料。
使用者問題
↓
搜尋相關衛教資料
↓
找出最相關內容
↓
加入 LLM Context
↓
產生回答
這樣 AI 就不是完全依靠模型原本學到的知識,而是根據實際找到的資料回答。
健康相關資料不能隨便從網路抓文章。
第一版會優先使用可信來源,例如:
衛生福利部
國民健康署
醫院衛教文章
政府公開健康資料
再把這些內容整理成自己的衛教知識庫。
RAG 的第一步,是先把文件整理成可以搜尋的形式。
目前流程是:
衛教文件
↓
Text Cleaning
↓
Chunking
↓
Embedding
↓
Vector Database
因為一篇衛教文章通常很長,所以不會直接把整篇文章存成一筆,而是切成多個 Chunk。
例如一篇睡眠衛教文章,可以拆成:
規律作息
睡眠環境
咖啡因影響
睡前使用電子產品
什麼情況需要就醫
之後使用者詢問相關問題時,就可以只找到真正有關的段落。
例如使用者問:
最近一直睡不好,可以怎麼改善?
系統會先把這句話轉成 Embedding,再到 Vector Database 中搜尋語意最接近的內容。
User Query
↓
Query Embedding
↓
Vector Search
↓
Top-K Chunks
可能找到:
建立固定睡眠時間
睡前避免咖啡因
減少睡前使用手機
接著把這些內容和原本的問題一起交給 LLM。
完整流程就會變成:
使用者
「最近一直睡不好,可以怎麼改善?」
↓
Health Education RAG
↓
找到睡眠相關衛教內容
↓
LLM 根據資料整理回答
↓
衛教建議
在健康情境中,我也會限制 AI 的角色。
目前提供的是:
一般衛教資訊與健康知識整理,不進行疾病診斷。
如果使用者描述的是明顯嚴重或持續的症狀,仍然應該建議尋求專業醫療協助,而不是讓 AI 直接判斷疾病。
做到 RAG 之後,我發現最重要的不只是搜尋準不準,而是:
放進知識庫的資料本身可不可靠。
另外 Chunk 大小、Top-K 數量、資料更新時間,也都會影響最後回答的品質。
所以健康 RAG 不只是把文章丟進 Vector Database,資料來源與品質同樣重要。
Day 12 解決:
記住健康資訊。
Day 13 解決:
看健康狀態有沒有變化。
Day 14 則開始讓 AI:
先找到可信的衛教資料,再根據資料回答健康問題。
目前健康功能逐漸變成:
Health Memory
↓
Health State Analysis
↓
Health Education RAG
↓
Health Response
下一步 Day 15,就可以把 Health Memory、Health State Analysis 和衛教 RAG 正式串在一起,讓 AI 不只知道一般健康知識,也能結合使用者自己的健康紀錄進行更個人化的回應。