說明 Uedu 平台如何整合 Garmin 穿戴裝置的生理數據,透過雙基線統計偏移偵測,讓 AI 助教感知學習者的身心狀態並調整對話策略。
PALM(Physiologically-Aware Language Model)是 Uedu 平台的生理感知語言模型模組,屬於 Educational Omics 框架中 PhysioNeuromics 維度的核心實作。
PALM 的設計哲學是關懷嵌入對話本身,而非外部推播通知。當學生的睡眠、HRV、壓力等生理指標偏離個人基線時,AI 助教會自動調整對話策略(例如語氣更柔和、建議休息),而學生不會看到任何額外的通知或警告。
目前 PALM 的生理數據來自 Garmin Connect API。學生需在 Uedu 平台授權連接 Garmin 帳號(Uedu Fit 模組),系統即自動接收穿戴裝置的每日健康摘要。
Garmin 推送的原始 JSON 資料經由 sync_garmin_to_palm_summary() 函數進行 ETL(Extract-Transform-Load),統一寫入 palm_health_summary 資料表:
PALM 追蹤以下五類生理指標:
| 類別 | 指標 | 來源 | 說明 |
|---|---|---|---|
| 睡眠 | sleep_duration_seconds | sleeps | 總睡眠時長(秒) |
| sleep_deep_seconds | sleeps | 深層睡眠時長 | |
| sleep_light_seconds | sleeps | 淺層睡眠時長 | |
| sleep_rem_seconds | sleeps | REM 睡眠時長 | |
| sleep_score | sleeps | Garmin 睡眠品質分數 | |
| HRV | hrv_last_night_avg | hrv | 昨晚平均心率變異性(ms) |
| 壓力 | stress_avg | stressDetails | 全日壓力平均值(0-100) |
| body_battery_avg / max / min | stressDetails | Body Battery 平均 / 最大 / 最小 | |
| 活動 | steps, active_calories, distance | dailies | 每日步數、活動卡路里、距離 |
| 心率 | resting_heart_rate | userMetrics | 靜息心率(bpm) |
PALM 為每位使用者建立兩個時間窗口的個人基線:
| 窗口 | 天數 | 用途 | 最少資料天數 |
|---|---|---|---|
| 急性基線 | 7 天 | 偵測近期急性變化(「這幾天跟上週比」) | 3 天 |
| 趨勢基線 | 30 天 | 偵測整體偏移(「跟平常比」) | 3 天 |
每個基線包含以下統計量(針對窗口內有數據的日子計算):
基線由 Cron Job(cron_palm_baseline.py)每日 UTC 04:00(台灣中午 12:00)自動重算。選擇此時段是因為 Garmin 的睡眠數據通常在上午同步完成。
當學生與 AI 助教對話時,系統即時比較當前生理數據與雙窗口基線,使用 z-score 判斷偏移程度:
z = (current_value - baseline_avg) / baseline_std
根據 z-score 的絕對值,將偏移分為三個等級:
| 分類 | 條件 | 意義 |
|---|---|---|
normal | |z| < 1.0 | 在正常範圍內 |
above_normal / below_normal | 1.0 ≤ |z| < 2.0 | 輕微偏離基線 |
significantly_above / significantly_below | |z| ≥ 2.0 | 顯著偏離基線 |
注意:部分指標「越高越好」(如 HRV、睡眠時長、Body Battery),部分「越低越好」(如壓力),系統會根據指標方向性判斷偏離是正面還是負面。
系統對 7 天和 30 天基線分別計算偏移,再交叉判斷趨勢:
| 7 天偏移 | 30 天偏移 | 趨勢判斷 | 意義 |
|---|---|---|---|
| 異常 | 異常 | persistent(持續性) | 長期問題,更值得關注 |
| 異常 | 正常 | acute(急性) | 近期才出現的變化 |
| 正常 | 異常 | — | 可能正在恢復中 |
| 正常 | 正常 | normal | 一切正常 |
偏移偵測完成後,系統將生理狀態摘要組裝為一段文字,注入 AI 助教的 System Prompt。AI 助教會據此調整對話策略,但不會直接向學生顯示生理數據。
## 學習者生理狀態 - 睡眠:昨晚 5.2 小時(個人平均 7.1 小時),顯著低於基線,持續性 - HRV:38 ms(個人平均 45 ms),低於基線 - 壓力:偏高(72,個人平均 45),急性變化 - 時段:深夜(凌晨 1:30) 請適度關懷學習者的身心狀態,語氣柔和。若發現學生注意力不集中或表現疲倦,可建議適當休息。
系統會根據台灣當地時間判斷時段(清晨、上午、下午、晚上、深夜),並納入 AI 的參考。例如深夜提問時,AI 可能會提醒學生注意休息。
當生理數據不足時(少於 3 天基線數據、學生未授權 Garmin 等),PALM 模組不會注入任何內容,AI 助教的行為與未啟用 PALM 時完全一致。
生理數據屬於敏感個人資訊。使用 PALM 相關數據進行研究時,必須取得參與者的知情同意,並通過機構的研究倫理審查(IRB)。
AI 助教透過 Uedu 平台的 PALM(Physiologically-Aware Language Model)模組整合學習者的生理狀態。生理數據來自 Garmin 穿戴裝置(含睡眠時長與分期、HRV、壓力指數、Body Battery、靜息心率),經 ETL pipeline 統一儲存於 palm_health_summary 資料表。系統為每位使用者建立 7 天(急性)與 30 天(趨勢)雙窗口個人基線,以 z-score 偵測當前數值與基線的偏移程度,並交叉判斷偏移趨勢(急性 / 持續性)。偏移摘要注入 AI 的 System Prompt,使 AI 在對話中自動調整語氣與策略,但不直接向學生顯示生理數據。最少需 3 天數據方可啟用。詳細方法論說明見 https://uedu.tw/doc/palm。
建議同時提供: