這是一個全本地端的檢索增強生成 (RAG) 應用程式,支援以下兩種使用方式:
- Web 介面 (Streamlit):透過瀏覽器進行問答。
- MCP Server: 提供給 LLM CLI (如 OpenCode) 作為工具調用。
技術棧:
- LangGraph: 狀態圖與流程控制
- ChromaDB: 向量資料庫
- Multilingual-E5-Large: 嵌入模型
- Ollama: 本地 LLM
- FastMCP: MCP Server 實作
-
安裝依賴套件:
pip install -r requirements.txt
-
設定 Ollama:
- 請至 Ollama 官網 下載並安裝。
- 執行以下指令下載模型 (預設使用 llama3,可依需求更改):
ollama pull llama3
-
資料匯入:
- 將您的 PDF 文件放入
data/資料夾。 - 執行匯入腳本:
python ingest.py
- 將您的 PDF 文件放入
-
執行應用程式:
streamlit run app.py
本專案預設會自動偵測 GPU。如果您的電腦有 NVIDIA GPU 但 torch.cuda.is_available() 顯示為 False,請依照以下步驟安裝支援 CUDA 的 PyTorch 版本:
- 移除舊版本:
pip uninstall torch torchvision torchaudio -y
- 安裝 CUDA 12.4 版本 (適用於大多數新款 NVIDIA 顯卡):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
本專案提供 MCP (Model Context Protocol) 介面,讓您的 AI 助手直接調用本地知識庫。
修改 ~/.config/opencode/opencode.json,請務必使用以下格式 (OpenCode 對 schema 要求較嚴格):
{
"mcp": {
"rag": {
"type": "local",
"command": [
"python",
"c:/Project/other/rag-test/mcp_server.py"
],
"environment": {
"PYTHONPATH": "c:/Project/other/rag-test"
}
}
}
}Important
- Key 名稱請保持簡短 (如
rag)。 - 必須包含
"type": "local"。 - 使用
"environment"而非"env"。
修改 %APPDATA%/Claude/claude_desktop_config.json:
{
"mcpServers": {
"rag-knowledge": {
"command": "python",
"args": [
"c:/Project/other/rag-test/mcp_server.py"
]
}
}
}app.py: Streamlit 主程式。mcp_server.py: MCP Server 進入點。rag_core.py: 核心 RAG 邏輯與 LangGraph 定義。ingest.py: 處理 PDF 並建立向量嵌入的腳本。data/: 存放 PDF 檔案的資料夾。chroma_db/: 儲存向量嵌入的資料夾。