返回首頁

MedicalQA-RAG

Full-Stack AI Multi-LLM
LangChain Qdrant OpenAI API Streamlit RAG

專案概覽

為面試工研院 AI 工程師職位所設計的展示專案。 建置完整的 RAG(Retrieval-Augmented Generation)醫療問答系統, 驗證將 LLM 對接專業知識庫以降低幻覺、提升回答可靠度的工程能力。

核心問題

  • AI 幻覺風險 — 通用 LLM 回答醫療問題時容易產生幻覺,缺乏可追溯的資料依據,在醫療場景中不可接受
  • 知識散落 — 醫療專業知識分散於大量文件中,人工查閱效率低,無法即時支援臨床決策
  • 場景多元 — 不同場景(臨床問答 vs. 衛教報告生成)需要不同的 LLM 策略,單一模型難以兼顧成本與品質

技術架構

  • Retrieval 層 — LangChain 編排檢索鏈 + Qdrant 向量資料庫,將醫療文件轉為向量索引
  • Generation 層 — Multi-LLM 後端(OpenAI API),依據問題複雜度路由至不同模型
  • Frontend — Streamlit 快速建置互動式問答介面
  • Output — 即時問答 + 自動化衛教報告生成

技術亮點

Qdrant 向量資料庫

選用 Qdrant 作為向量資料庫,相較於輕量方案,Qdrant 支援 metadata 過濾條件檢索, 能在向量相似度之外加上科別、文件類型等結構化條件,大幅提升檢索精準度。 生產級的架構也讓系統具備從原型直接走向部署的能力。

Chunking 策略設計

醫療文件的段落切分直接影響檢索品質。Chunk 太大導致檢索結果失焦、夾帶無關內容; chunk 太小則丟失上下文脈絡。針對醫療文件的特性(章節結構、術語密度), 設計了兼顧語意完整性與檢索效率的切分策略。

Multi-LLM 路由

並非所有問題都需要最強的模型。簡單的術語查詢走輕量模型以降低成本與延遲, 需要推理的複雜問題則路由至高階模型確保回答品質。 這套路由邏輯讓系統在成本與品質之間取得平衡

挑戰與取捨

  • Embedding Model 的中文醫療覆蓋度 — 通用 embedding model 對中文醫療術語的向量表示不夠精確,影響檢索召回率,需要評估不同 model 的表現差異
  • Relevance 門檻設定 — 檢索結果的相似度門檻太嚴格會漏答關鍵資訊, 太寬鬆則引入雜訊干擾生成品質,需要根據場景反覆調校

跨域思維

RAG 的核心價值是「讓 AI 說話有依據」—— 這個架構的威力不限於醫療領域。製造業同樣有大量 SOP、規格書、檢驗標準需要快速查詢, 客服場景有產品手冊與 FAQ,法務有合約條款與法規彙編。

同一套 RAG 管線,只要替換知識庫就能遷移到任何垂直領域。 這正是這個架構最有價值的地方——它不是為單一場景打造的工具, 而是一個具備產業遷移能力的通用方案。 從製造業的「標準化流程」思維出發,這套系統的設計本身就是可複製、可擴展的。