healthcare-ai-assistant 是做什麼的?
基於 Streamlit、LangChain、OpenAI GPT-4o-mini 和 FAISS 向量資料庫建構的 AI 驅動醫療保健助手。
概述
此技能示範如何結合現代 AI 工具鏈建立一個功能完整的醫療保健助理應用程式。它利用大型語言模型(LLM)進行對話,並透過向量搜尋從醫療知識庫中擷取相關資訊。
功能
- 症狀查詢:使用者可以描述症狀,系統會根據知識庫提供可能的相關資訊。
- 藥物資訊:查詢特定藥物的用途、副作用與注意事項。
- 健康建議:提供基礎的健康生活建議(非醫療診斷)。
- 語意檢索:使用 FAISS 向量資料庫進行語意搜尋,而非僅依賴關鍵字比對。
技術棧
- 前端:Streamlit
- 語言模型:OpenAI GPT-4o-mini
- 框架:LangChain
- 向量資料庫:FAISS
- 程式語言:Python
安裝與設定
- 確保已安裝 Python 3.10 或更新版本。
- 安裝所需套件:
pip install streamlit langchain openai faiss-cpu - 設定 OpenAI API 金鑰為環境變數:
export OPENAI_API_KEY="your-api-key-here" - (可選)準備醫療知識庫文件(例如
data/medical_info.txt),並轉換為 FAISS 索引。
使用方法
- 執行 Streamlit 應用程式:
streamlit run app.py - 在瀏覽器中開啟顯示的 URL(通常為
http://localhost:8501)。 - 在文字輸入框中輸入您的醫療相關問題。
- 系統將根據知識庫內容與 GPT-4o-mini 生成回覆。
專案結構
healthcare-ai-assistant/
├── app.py # Streamlit 應用程式進入點
├── data/
│ └── medical_info.txt # 醫療知識庫文件(範例)
├── utils/
│ ├── vector_store.py # FAISS 向量資料庫設定與查詢
│ └── chain.py # LangChain 處理鏈路設定
├── requirements.txt # Python 依賴
└── README.md # 本文件
如何運作
- 知識庫建置:將
medical_info.txt中的醫療文件切分為區塊,使用 OpenAI 嵌入模型轉換為向量,並儲存至 FAISS 索引。 - 使用者查詢:當使用者透過 Streamlit 提交問題時,系統將問題同樣轉換為向量。
- 語意檢索:FAISS 索引對問題向量執行最近鄰搜尋,找出知識庫中最相關的區塊。
- 生成回覆:LangChain 將檢索到的區塊作為上下文,連同使用者的問題一併傳送給 GPT-4o-mini,以生成自然語言回覆。
注意事項
- 此應用程式僅供教育和示範用途,不應作為實際醫療診斷或治療依據。
- 請確保遵守 OpenAI 使用政策與相關法規。
- 若需擴充知識庫,請更新
data/medical_info.txt並重新建立 FAISS 索引。
授權
本專案採用 MIT 授權條款。詳情請參閱 LICENSE 檔案。
貢獻
歡迎提交 Issue 或 Pull Request 共同改進此專案。