Intégrez la technologie Graphrag de Microsoft dans Open WebUI pour une récupération d'informations avancée
Anglais | 简体中文Graphrag4OpenWebui est une interface API spécialement conçue pour Open WebUI, visant à intégrer la technologie Graphrag (génération de récupération basée sur le graphique). Ce projet fournit un système de récupération d'informations puissant qui prend en charge plusieurs modèles de recherche, particulièrement adaptés à une utilisation dans les interfaces d'utilisateur Web ouvert.
L'objectif principal de ce projet est de fournir une interface pratique pour Open WebUI afin de tirer parti des fonctionnalités puissantes de Graphrag. Il intègre trois méthodes de récupération principales et offre une option de recherche complète, permettant aux utilisateurs d'obtenir des résultats de recherche approfondis et précis.
Recherche locale
Recherche globale
Recherche de Tavily
Recherche complète du modèle
Graphrag4OpenWebui prend désormais en charge l'utilisation de modèles de langue locale (LLMS) et les modèles d'intégration, augmentant la flexibilité et la confidentialité du projet. Plus précisément, nous soutenons les modèles locaux suivants:
Ollla
API_BASE pour pointer le point de terminaison de l'API d'OlllamaStudio LM
API_BASEModèles d'intégration locaux
GRAPHRAG_EMBEDDING_MODELCette prise en charge des modèles locaux permet à Graphrag4OpenWebui de s'exécuter sans s'appuyer sur des API externes, l'amélioration de la confidentialité des données et la réduction des coûts d'utilisation.
Assurez-vous que Python 3.8 ou supérieur soit installé sur votre système. Ensuite, suivez ces étapes à installer:
Clone le référentiel:
git clone https://github.com/your-username/GraphRAG4OpenWebUI.git
cd GraphRAG4OpenWebUICréer et activer un environnement virtuel:
python -m venv venv
source venv/bin/activate # On Windows use venvScriptsactivateInstallez les dépendances:
pip install -r requirements.txtRemarque: Le package Graphrag peut être nécessaire à l'installation d'une source spécifique. Si la commande ci-dessus ne parvient pas à installer Graphrag, veuillez consulter les instructions spécifiques de Microsoft Research ou contacter le mainteneur pour la méthode d'installation correcte.
Avant d'exécuter l'API, vous devez définir les variables d'environnement suivantes. Vous pouvez le faire en créant un fichier .env ou en les exportant directement dans votre terminal:
# 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 "Assurez-vous de remplacer les espaces réservés dans les commandes ci-dessus par vos clés et chemins API réels.
Démarrez le serveur:
python main-en.py
Le serveur s'exécutera sur http://localhost:8012 .
Points de terminaison API:
/v1/chat/completions : Demande de publication pour effectuer des recherches/v1/models : Obtenez la demande de récupération de la liste des modèles disponibles Intégration avec Open WebUI: Dans la configuration Open WebUI, définissez le point de terminaison de l'API sur http://localhost:8012/v1/chat/completions . Cela permettra à Open Webui d'utiliser la fonctionnalité de recherche de Graphrag4OpenWebui.
Exemple de demande de recherche:
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 : Recherche localegraphrag-global-search:latest : Recherche globaletavily-search:latest : recherche tavillantefull-model:latest : Recherche complète (inclut toutes les méthodes de recherche ci-dessus) INPUT_DIR .Les demandes de traction sont les bienvenues. Pour les changements majeurs, veuillez d'abord ouvrir un problème pour discuter de ce que vous souhaitez changer.
Licence Apache-2.0