LINE Bot Dementia Warning Analysis System 完整的失智症早期警訊分析系統,使用 Google Gemini AI 和 LINE Bot 為家庭照顧者提供專業的行為評估服務。
🏗️ 系統架構 使用者訊息 → LINE Bot → Webhook (8002) → M1 Flex API (8001) → Google Gemini → 分析結果 ↑ ↓ LINE App ←─── Flex Message ←─── JSON 回應 ←─── AI 分析 ←──────────────────────┘ 📦 檔案結構 line-bot-dementia-analysis/ ├── requirements.txt # Python 套件需求 ├── .env.template # 環境變數範本 ├── setup.py # 安裝腳本 ├── m1_flex_api.py # Google Gemini 分析服務 (Port 8001) ├── line_bot_webhook.py # LINE Bot 整合服務 (Port 8002) ├── start_flex.bat/.sh # M1 Flex API 啟動腳本 ├── start_webhook.bat/.sh # Webhook 啟動腳本 └── README.md # 說明文件 🚀 快速開始
此專案為一個結合 RAG 與 XAI 的 LINE Bot,用於協助失智症照護者快速檢索與解讀照護資訊,並以視覺化 Flex Message 提升互動體驗。
─ api/ # 後端服務程式碼 │ ├─ core/ # 共用函式與客戶端 │ ├─ modules/ # 各 XAI 模組分析程式 │ └─ main.py # FastAPI 啟動檔 ├─ flex-component-system/ # 前端與 Flex JSON 模板 │ ├─ backend/ # Flex Message 產生腳本 │ └─ frontend/ # React 客戶端程式 ├─ data/ # 靜態資料與向量索引 ├─ config/ # 環境設定與 secrets 管理 ├─ tests/ # 整合與單元測試 ├─ deploy.sh # 部署到 Replit 的腳本 ├─ README.md # 本檔案 └─ .gitignore # Git 忽略清單
- 安裝與設定 bash
python setup.py
cp .env.template .env
- 設定環境變數 編輯 .env 檔案:
bash
LINE_CHANNEL_ACCESS_TOKEN=你的_LINE_頻道_存取_權杖 LINE_CHANNEL_SECRET=你的_LINE_頻道_密鑰
AISTUDIO_API_KEY=你的_Google_AI_Studio_API_金鑰
FLEX_API_URL=http://localhost:8001/m1-flex 如何取得 API 金鑰: LINE Bot 憑證: LINE Developers Console Google AI Studio API: AI Studio 3. 啟動服務(3 個終端) 方法 A:使用啟動腳本 Windows:
bash
start_flex.bat
start_webhook.bat Unix/Mac:
bash
./start_flex.sh
./start_webhook.sh 方法 B:手動啟動 bash
python m1_flex_api.py
python line_bot_webhook.py
ngrok http 8002 4. 設定 LINE Bot Webhook 啟動 ngrok 後,複製 https URL(例如:https://abc123.ngrok.io) 到 LINE Developers Console 選擇你的 Bot → Messaging API 設定 Webhook URL: https://abc123.ngrok.io/webhook 啟用 "Use webhook" 點擊 "Verify" 確認連線成功 🧪 測試系統
- 檢查服務狀態 bash
curl http://localhost:8001/health
curl http://localhost:8002/health 2. 測試分析功能 bash
curl -X POST http://localhost:8001/m1-flex
-H "Content-Type: application/json"
-d '{"user_input": "媽媽最近常重複問同樣的問題"}'
3. 測試 LINE Bot
掃描 LINE Developers Console 中的 QR Code 加 Bot 為好友
發送訊息測試:
help - 顯示使用說明
媽媽最近常忘記關瓦斯 - 分析失智症警訊
爸爸重複問同樣問題 - 另一個測試範例
🔧 系統功能
失智症十大警訊分析
系統可以分析以下 10 種早期警訊:
M1-01: 記憶力減退影響生活 M1-02: 計劃事情或解決問題有困難 M1-03: 無法勝任原本熟悉的事務 M1-04: 對時間地點感到混淆 M1-05: 有困難理解視覺影像和空間關係 M1-06: 言語表達或書寫出現困難 M1-07: 東西擺放錯亂且失去回頭尋找的能力 M1-08: 判斷力變差或減弱 M1-09: 從工作或社交活動中退出 M1-10: 情緒和個性的改變 Flex Message 回應格式 每個分析結果包含:
🔸 使用者描述: 總結使用者的輸入
✅ 正常老化: 對應的正常老化現象
-
"Missing AISTUDIO_API_KEY" 解決方法: 到 Google AI Studio 申請 API 金鑰並設定到環境變數
-
"Missing LINE Bot credentials" 解決方法: 到 LINE Developers 建立 Bot 並取得憑證
-
"Cannot connect to Flex API" 檢查:
M1 Flex API 是否在 port 8001 運行 防火牆是否阻擋 localhost:8001 查看 M1 Flex API 終端的錯誤訊息 4. "Invalid LINE signature" 檢查:
LINE_CHANNEL_SECRET 是否正確設定 Webhook URL 是否為 https://your-ngrok.ngrok.io/webhook 確保使用 https(不是 http)的 ngrok URL 5. Bot 沒有回應 除錯步驟:
檢查三個終端都有在運行 個別測試每個組件 確認 ngrok 隧道還在運作 驗證 LINE Bot webhook 設定 記錄檔分析 尋找這些記錄訊息:
✅ Google AI configured - Gemini 設定成功 ✅ LINE Bot API initialized - LINE Bot 設定成功 📨 Webhook request received - LINE 正在呼叫你的 webhook ✅ Webhook processed successfully - 訊息處理成功 ❌ Invalid LINE signature - 檢查你的頻道密鑰 🔍 開發與除錯 API 端點 M1 Flex API (Port 8001):
POST /m1-flex - 主要分析端點 GET /health - 健康檢查 GET /docs - API 文件 POST /test - 測試端點 LINE Bot Webhook (Port 8002):
POST /webhook - LINE webhook 端點 GET /health - 健康檢查 GET /info - Bot 資訊 POST /test-webhook - 測試端點 手動測試 Webhook bash
curl -X POST https://your-ngrok-url.ngrok.io/webhook
-H "Content-Type: application/json"
-H "X-Line-Signature: test"
-d '{"events":[]}'
📈 擴充功能
系統設計為模組化,可以輕鬆擴充:
多語言支援: 加入英文、日文等語言分析 更多評估模組: 擴充到 M2-M9 其他評估類型 資料庫整合: 儲存使用者互動記錄 進階分析: 加入趨勢分析和個人化建議 網頁介面: 建立管理後台 📄 授權 此專案僅供教育和研究用途。請諮詢專業醫師進行正式的失智症評估。
🆘 支援 如果遇到問題:
檢查 故障排除 章節
查看終端的錯誤訊息
確認所有環境變數都正確設定
驗證 API 金鑰是否有效