iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0
Build on Google AI

給藥袋裝一張嘴:30 天用 Android 與 Google VLM 實作高齡語音用藥助手系列 第 30 篇

Day 30|AI 照護的最後一哩路!PrescriptionVLM 系統總覽、30 天挑戰回顧與未來展望

  • 分享至 

  • xImage
  •  

✏️【本日實作紀錄:專案完整總結與系統架構全景回顧】

從 Day 1 的發想與痛點分析開始,我們歷經了 30 天的技術迭代與架構演進,打造出一套專為高齡長者與照護者設計的 PrescriptionVLM 多模態 AI 藥單解析與關懷系統。

今天作為 30 天的最終完結篇,我們將對整套系統進行完整的架構回顧,盤點這 30 天來建立的關鍵技術,並為 PrescriptionVLM 的未來升級規劃方向。


一、PrescriptionVLM 系統全景架構回顧

回顧這 30 天的開發過程,PrescriptionVLM 從 MVP 原型逐步升級為具備高可用性、可觀測性與自動化維護能力的生產級服務。

系統整體採用了 三層容器化架構(Nginx + Gunicorn/Flask + Redis),並串接了多樣化的雲端與邊緣服務:

                                  [ 長輩 / 照護者 ]
                                          │
                                   LINE 應用程式
                                          │ (HTTPS / Webhook)
                                          ▼
                             ┌────────────────────┐
                             │   Nginx 反向代理    │ (SSL/TLS / 靜態快取 / Rate Limit)
                             └────────────┬───────┘
                                          │
                  ┌───────────────────────┼───────────────────────┐
                  ▼                       ▼                       ▼
          ┌──────────────┐        ┌──────────────┐        ┌──────────────┐
          │  Prometheus  │        │   Gunicorn   │        │   Grafana    │
          │   (指標採集)  │        │  (Flask App)  │        │  (監控 / 告警) │
          └──────────────┘        └───────┬──────┘        └──────────────┘
                                          │
             ┌────────────────────────────┼────────────────────────────┐
             ▼                            ▼                            ▼
   ┌──────────────────┐         ┌──────────────────┐         ┌──────────────────┐
   │ Redis Memory     │         │ Google Gemini    │         │ SQLite Database  │
   │ (SHA-256 快取)   │          │    (VLM 模型)    │         │   (歷史紀錄/備份)   │
   └──────────────────┘         └──────────────────┘         └──────────────────┘

二、30 天技術里程碑盤點

在這 30 天中,我們逐步建立了健全的後端與 AI 服務體系:

  1. Core AI & LINE Integration (Day 1 - 15):

    • 整合 Google Gemini 多模態 VLM 模型,實現藥袋影像的文字識別與結構化分析。
    • 串接 LINE Messaging API 與 Flex Message,輸出適合長輩閱讀的大字體、高對比無障礙卡片。
  2. UI/UX & Defensive Engineering (Day 16 - 17):

    • 實作長輩友善 UI/UX 設計與自動化語音摘要生成。
    • 導入 Pydantic v2 Schema 校驗 與 Mypy 靜態型別檢查,建立後端資料輸入防禦。
  3. Observability & Security (Day 18 - 20):

    • 導入 X-Request-ID 全域 Trace ID 與結構化 JSON 日誌,提升線上記錄定位效率。
    • 實作 Redis SHA-256 圖片雜湊快取,將重複藥單的解析時間從 3 秒降至 10ms,並掛載 Flask-Limiter 限流防衛。
    • 導入 SQLite Online Backup API、Fernet 加密與 restore_db.py 一鍵災難復原工具。
  4. Production Architecture & CI/CD (Day 21 - 24):

    • 採用 Docker 多階段建構,將容器映像檔體積縮減 60% 以上。
    • 建置 GitHub Actions CI/CD 流水線,自動化執行測試與 Docker 構建驗證。
    • 部署 Gunicorn 多進程 WSGI 與 Nginx 反向代理,並透過 Certbot 自動化部署 HTTPS。
  5. Testing, Monitoring & Open Ecosystem (Day 25 - 29):

    • 執行 Locust 負載壓力測試 與全系統 E2E 端到端流程驗證。
    • 導入 Prometheus + Grafana 視覺化監控,並整合 LINE Webhook 即時異常告警。
    • 加入 OpenCV 圖像清晰度前置防衛 與 Chain-of-Thought 提示詞工程。
    • 自動化生成 Flask-RESTX Swagger / OpenAPI 互動式文件。

三、專案效益與實際產出

透過這套架構,PrescriptionVLM 取得了工程與社會效益:

  • 極致的回應速度:經由 Redis 圖片雜湊快取,長輩或照護者重複上傳相同藥袋時能獲得毫秒級的回應,同時節省了 Gemini API 費用。
  • 高可用與安全性:全站 HTTPS 加密傳輸,搭配自動化備份與憑證續約,系統達到生產級標準。
  • 長輩友善與無障礙:視覺化的 Flex Message 大字卡片配合語音摘要,實現了科技輔助長者用藥的目標。

四、未來升級與展望

雖然 30 天的挑戰告一段落,但 PrescriptionVLM 的旅程才剛開始。未來可擴充的方向包括:

  1. 邊緣 AI 整合:嘗試將小型的多模態模型部署至邊緣端,降低對雲端 API 的依賴並提升離線可用性。
  2. 多藥罐交叉比對:支援一次上傳多張藥袋照片,自動比對不同藥物之間是否存在重複用藥或相互作用風險。
  3. 長照機構系統對接:透過 OpenAPI 規範,進一步與長照機構的系統對接,打造更完整的銀髮健康照護生態。

五、結語

感謝這 30 天來關注與閱讀這個系列的讀者與工程師夥伴!

從無到有建構一個結合 AI 模型、長者無障礙 UX 與現代後端雲端架構的專案,不僅是技術上的鍛鍊,更是對科技如何應用在照護領域的實踐。希望這個專案的架構與實作紀錄,能為想結合 AI 與醫療照護應用的開發者提供參考。

PrescriptionVLM 專案開發挑戰完成!我們下個專案再見!


上一篇
Day 29|開放生態與對接標準!實作 Flask-RESTX OpenAPI / Swagger 互動式 API 文件與規範
系列文
給藥袋裝一張嘴:30 天用 Android 與 Google VLM 實作高齡語音用藥助手 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言