yolo-hyl/medical-rag
医学中文RAG项目,使用langchain+milvus,支持快速一键式部署,支持无缝领域迁移
解決的問題
本專案提供一個專業的醫療問答系統,透過檢索增強生成 (RAG) 方法克服了簡單檢索的限制。它特別解決了在醫療領域保持高準確度的挑戰,結合了語義搜尋與基於關鍵字的匹配,並提供代理框架來處理複雜查詢。
運作方式
該系統利用混合檢索策略,結合稠密向量(用於語義含義)與稀疏向量(BM25 用於關鍵字匹配),並儲存於 Milvus 向量資料庫中。它採用包含資料預處理、領域特定分詞 (透過 pkuseg) 以及針對各種 LLM (如 OpenAI 或 Ollama) 的靈活配置系統的管線。
為了處理複雜互動,它實作了:
- RAG Agents: 智慧代理,可自動決定檢索參數、驗證答案是否由文件支援,並決定何時觸發外部網路搜尋 (透過 Tencent Cloud)。
- Multi-turn Dialogue: 管理對話歷史的系統,具備 Token 估算與動態摘要功能以維持上下文。
- Evaluation Tools: 內建管線,用於生成與測試問答對,以衡量系統的召回率與準確度。
適用對象
- 開發專業醫療 AI 助理的開發者。
- 需要為特定領域知識庫建立高精度 RAG 管線的研究人員。
- 尋求將 RAG 系統遷移至法律或金融等其他專業領域模板的工程師。
特色亮點
- Hybrid Retrieval: 結合稠密與稀疏向量,實現比單一方法檢索更高的召回率 (91.32%) 與準確度 (92.15%)。
- Agentic Orchestration: 使用 LangGraph 建立管理整個檢索過程並可回退至網路搜尋的代理。
- Domain Optimization: 包含醫療特定分詞與詞彙管理。
- Flexible Infrastructure: 透過統一的設定檔支援多種 LLM 提供者與嵌入模型。
相關
- 專案
- 專案
- 專案
- 專案