Integre la tecnología GraphRag de Microsoft en WebUI abierto para la recuperación de información avanzada
Inglés | 简体中文GraphraG4openWebui es una interfaz API específicamente diseñada para WebUI abierto, con el objetivo de integrar la tecnología GraphRAG de Microsoft Research (generación de recuperación basada en gráficos). Este proyecto proporciona un poderoso sistema de recuperación de información que admite múltiples modelos de búsqueda, particularmente adecuados para su uso en interfaces de usuario web abiertos.
El objetivo principal de este proyecto es proporcionar una interfaz conveniente para que Open WebUI aproveche las potentes características de Graphrag. Integra tres métodos de recuperación principales y ofrece una opción de búsqueda integral, lo que permite a los usuarios obtener resultados de búsqueda exhaustivos y precisos.
Búsqueda local
Búsqueda global
Búsqueda tavily
Búsqueda de modelos completos
Graphrag4openwebui ahora admite el uso de modelos de idiomas locales (LLMS) e incrustación de modelos, aumentando la flexibilidad y privacidad del proyecto. Específicamente, apoyamos los siguientes modelos locales:
Ollama
API_BASE para apuntar al punto final API de OllamaLM Studio
API_BASEModelos de incrustación local
GRAPHRAG_EMBEDDING_MODELEste soporte para modelos locales permite que Graphrag4openWebui se ejecute sin depender de API externas, mejorar la privacidad de los datos y reducir los costos de uso.
Asegúrese de tener Python 3.8 o más instalado en su sistema. Luego, siga estos pasos para instalar:
Clon el repositorio:
git clone https://github.com/your-username/GraphRAG4OpenWebUI.git
cd GraphRAG4OpenWebUICrear y activar un entorno virtual:
python -m venv venv
source venv/bin/activate # On Windows use venvScriptsactivateInstalar dependencias:
pip install -r requirements.txtNota: El paquete Graphrag es posible que deba instalarse desde una fuente específica. Si el comando anterior no puede instalar Graprag, consulte las instrucciones específicas de Microsoft Research o comuníquese con el mantenedor para el método de instalación correcto.
Antes de ejecutar la API, debe establecer las siguientes variables de entorno. Puede hacer esto creando un archivo .env o exportándolos directamente en su 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 "Asegúrese de reemplazar a los marcadores de posición en los comandos anteriores con sus teclas y rutas API reales.
Inicie el servidor:
python main-en.py
El servidor se ejecutará en http://localhost:8012 .
Puntos finales de la API:
/v1/chat/completions : solicitud de publicación para realizar búsquedas/v1/models : Obtenga una solicitud para recuperar la lista de modelos disponibles Integración con Open WebUI: en la configuración Open WebUI, establezca el punto final API en http://localhost:8012/v1/chat/completions . Esto permitirá que Open WebUI use la funcionalidad de búsqueda de Graphrag4openWebui.
Solicitud de búsqueda de ejemplo:
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 : búsqueda localgraphrag-global-search:latest : Búsqueda globaltavily-search:latest : búsqueda de tavilyfull-model:latest : búsqueda completa (incluye todos los métodos de búsqueda anteriores) INPUT_DIR .Las solicitudes de extracción son bienvenidas. Para cambios importantes, abra primero un problema para discutir lo que le gustaría cambiar.
Apache-2.0 Licencia