將Microsoft的GraphRag技術集成到Open WebUI中以進行高級信息檢索
英語| 簡體中文GraphRag4OpenWebui是專門為開放WebUI設計的API接口,旨在集成Microsoft Research的GraphRag(基於圖形的檢索效果生成)技術。該項目提供了一個強大的信息檢索系統,該系統支持多個搜索模型,特別適合在開放的Web用戶界面中使用。
該項目的主要目標是為開放式webui提供一個方便的接口,以利用GraphRag的強大功能。它集成了三種主要檢索方法,並提供了一個全面的搜索選項,從而使用戶獲得了徹底而精確的搜索結果。
本地搜索
全局搜索
坦率的搜索
完整的模型搜索
GraphRag4openwebui現在支持使用本地語言模型(LLM)和嵌入模型的使用,從而提高了項目的靈活性和隱私。具體來說,我們支持以下本地模型:
霍拉馬
API_BASE環境變量設置為指向Ollama的API端點來配置LM Studio
API_BASE環境變量連接到LM Studio的服務本地嵌入模型
GRAPHRAG_EMBEDDING_MODEL環境變量指定要使用的嵌入模型對本地模型的這種支持使Gragrag4OpenWebui可以在不依賴外部API的情況下運行,從而增強數據隱私並降低使用成本。
確保系統上安裝了3.8或更高的Python。然後,請按照以下步驟安裝:
克隆存儲庫:
git clone https://github.com/your-username/GraphRAG4OpenWebUI.git
cd GraphRAG4OpenWebUI創建並激活虛擬環境:
python -m venv venv
source venv/bin/activate # On Windows use venvScriptsactivate安裝依賴項:
pip install -r requirements.txt注意:可能需要從特定源安裝GraphRag軟件包。如果以上命令未能安裝GraphRag,請參考Microsoft Research的特定說明,或聯繫維護者以獲取正確的安裝方法。
在運行API之前,您需要設置以下環境變量。您可以通過創建.env文件或直接在終端中導出它們來做到這一點:
# Set the TAVILY API key
export TAVILY_API_KEY= " your_tavily_api_key "
export INPUT_DIR= " /path/to/your/input/directory "
# Set the API key for LLM
export GRAPHRAG_API_KEY= " your_actual_api_key_here "
# Set the API key for embedding (if different from GRAPHRAG_API_KEY)
export GRAPHRAG_API_KEY_EMBEDDING= " your_embedding_api_key_here "
# Set the LLM model
export GRAPHRAG_LLM_MODEL= " gemma2 "
# Set the API base URL
export API_BASE= " http://localhost:11434/v1 "
# Set the embedding API base URL (default is OpenAI's API)
export API_BASE_EMBEDDING= " https://api.openai.com/v1 "
# Set the embedding model (default is "text-embedding-3-small")
export GRAPHRAG_EMBEDDING_MODEL= " text-embedding-3-small "確保用實際的API鍵和路徑替換上述命令中的佔位符。
啟動服務器:
python main-en.py
該服務器將在http://localhost:8012上運行。
API端點:
/v1/chat/completions :發布搜索的請求/v1/models :獲取請求以檢索可用型號的列表與Open WebUI集成:在打開的WebUI配置中,將API端點設置為http://localhost:8012/v1/chat/completions 。這將使Open WebUI可以使用GraphRag4OpenWebui的搜索功能。
示例搜索請求:
import requests
import json
url = "http://localhost:8012/v1/chat/completions"
headers = { "Content-Type" : "application/json" }
data = {
"model" : "full-model:latest" ,
"messages" : [{ "role" : "user" , "content" : "Your search query" }],
"temperature" : 0.7
}
response = requests . post ( url , headers = headers , data = json . dumps ( data ))
print ( response . json ())graphrag-local-search:latest :本地搜索graphrag-global-search:latest :全局搜索tavily-search:latest :Tavily搜索full-model:latest :綜合搜索(包括上面的所有搜索方法) INPUT_DIR目錄中具有正確的輸入文件(例如Parquet文件)。歡迎拉動請求。對於重大更改,請先開設一個問題,以討論您想更改的內容。
Apache-2.0許可證