Integrar a tecnologia Graphrag da Microsoft à Webui Open para recuperação de informações avançadas
Inglês | 简体中文GraphRag4OpenWebui é uma interface de API projetada especificamente para o Open Webui, com o objetivo de integrar a tecnologia Graphrag da Microsoft Research (geração de recuperação baseada em gráficos). Este projeto fornece um poderoso sistema de recuperação de informações que suporta vários modelos de pesquisa, particularmente adequados para uso em interfaces de usuário da web abertas.
O principal objetivo deste projeto é fornecer uma interface conveniente para o Open Webui para aproveitar os poderosos recursos do Graphrag. Ele integra três métodos principais de recuperação e oferece uma opção de pesquisa abrangente, permitindo que os usuários obtenham resultados completos e precisos de pesquisa.
Pesquisa local
Pesquisa global
Pesquise tavily
Pesquisa completa do modelo
O GraphRag4OpenWebui agora suporta o uso de modelos de idiomas locais (LLMS) e modelos de incorporação, aumentando a flexibilidade e a privacidade do projeto. Especificamente, apoiamos os seguintes modelos locais:
Ollama
API_BASE para apontar para o ponto final da API de OllamaLM Studio
API_BASEModelos de incorporação local
GRAPHRAG_EMBEDDING_MODELEsse suporte para modelos locais permite que o GraphRag4OpenWebui seja executado sem depender de APIs externas, aprimorando a privacidade de dados e reduzindo os custos de uso.
Verifique se você possui o Python 3.8 ou superior instalado no seu sistema. Em seguida, siga estas etapas para instalar:
Clone o repositório:
git clone https://github.com/your-username/GraphRAG4OpenWebUI.git
cd GraphRAG4OpenWebUICrie e ativar um ambiente virtual:
python -m venv venv
source venv/bin/activate # On Windows use venvScriptsactivateInstale dependências:
pip install -r requirements.txtNOTA: O pacote Graphrag pode precisar ser instalado a partir de uma fonte específica. Se o comando acima não instalar o Graphrag, consulte as instruções específicas da Microsoft Research ou entre em contato com o mantenedor para obter o método de instalação correto.
Antes de executar a API, você precisa definir as seguintes variáveis de ambiente. Você pode fazer isso criando um arquivo .env ou exportando -os diretamente em seu 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 "Certifique -se de substituir os espaços reservados nos comandos acima por suas chaves e caminhos da API reais.
Inicie o servidor:
python main-en.py
O servidor será executado em http://localhost:8012 .
Endpoints da API:
/v1/chat/completions : solicitação de postagem para executar pesquisas/v1/models : Obtenha solicitação para recuperar a lista de modelos disponíveis Integração com o Open Webui: Na configuração Open Webui, defina o endpoint da API como http://localhost:8012/v1/chat/completions . Isso permitirá que o Open Webui use a funcionalidade de pesquisa do GraphRag4OpenWebui.
Exemplo de solicitação de pesquisa:
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 : Pesquisa localgraphrag-global-search:latest : Pesquisa Globaltavily-search:latest : Pesquisa Tavilyfull-model:latest : pesquisa abrangente (inclui todos os métodos de pesquisa acima) INPUT_DIR .Solicitações de tração são bem -vindas. Para grandes mudanças, abra um problema primeiro para discutir o que você gostaria de mudar.
Licença Apache-2.0