

Clone o repositório:
git clone https://github.com/open-kf/rag-gpt.git && cd rag-gptAntes de iniciar o serviço RAG-GPT, você precisa modificar as configurações relacionadas para o programa inicializar corretamente.
cp env_of_openai .envAs variáveis em .env
LLM_NAME= " OpenAI "
OPENAI_API_KEY= " xxxx "
GPT_MODEL_NAME= " gpt-4o-mini "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "
USE_GPT4O=0LLM_NAMEOPENAI_API_KEY com sua própria chave. Faça login no site do OpenAI para visualizar sua chave da API.GPT_MODEL_NAME , substituindo gpt-4o-mini pelo gpt-4-turbo ou gpt-4o se você quiser usar o GPT-4.BOT_TOPIC para refletir o nome do seu bot. Isso é muito importante, pois será usado na Prompt Construction . Tente usar uma palavra concisa e clara, como OpenIM , LangChain .URL_PREFIX para corresponder ao domínio do seu site. Isso é principalmente para gerar links de URL acessíveis para arquivos locais carregados. Como http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE como 1 se você quiser usar LlamaParse .LLAMA_CLOUD_API_KEY com sua própria chave. Faça login no site do Llamacloud para visualizar sua chave da API.USE_GPT4O como 1 se você deseja usar o modo GPT-4o .server/constant . Se você não puder usar os serviços da API da OpenAI, considere usar o Zhipuai como uma alternativa.
cp env_of_zhipuai .envAs variáveis em .env
LLM_NAME= " ZhipuAI "
ZHIPUAI_API_KEY= " xxxx "
GLM_MODEL_NAME= " glm-4-air "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEZHIPUAI_API_KEY com sua própria chave. Faça login no site da Zhipuai para visualizar sua chave da API.GLM_MODEL_NAME , a lista de modelos é ['glm-3-turbo', 'glm-4', 'glm-4-0520', 'glm-4-air', 'glm-4-airx', 'glm-4-flash'] .BOT_TOPIC para refletir o nome do seu bot. Isso é muito importante, pois será usado na Prompt Construction . Tente usar uma palavra concisa e clara, como OpenIM , LangChain .URL_PREFIX para corresponder ao domínio do seu site. Isso é principalmente para gerar links de URL acessíveis para arquivos locais carregados. Como http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE como 1 se você quiser usar LlamaParse .LLAMA_CLOUD_API_KEY com sua própria chave. Faça login no site do Llamacloud para visualizar sua chave da API.server/constant . Se você não puder usar os serviços da API da OpenAI, considere usar o DeepSeek como uma alternativa.
Observação
O Deepseek não fornece uma Embedding API , então aqui usamos Embedding API de Zhipuai.
cp env_of_deepseek .envAs variáveis em .env
LLM_NAME= " DeepSeek "
ZHIPUAI_API_KEY= " xxxx "
DEEPSEEK_API_KEY= " xxxx "
DEEPSEEK_MODEL_NAME= " deepseek-chat "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEZHIPUAI_API_KEY com sua própria chave. Faça login no site da Zhipuai para visualizar sua chave da API.DEEPKSEEK_API_KEY com sua própria chave. Faça login no site Deepseek para visualizar sua chave da API.DEEPSEEK_MODEL_NAME se você deseja usar outros modelos de Deepseek.BOT_TOPIC para refletir o nome do seu bot. Isso é muito importante, pois será usado na Prompt Construction . Tente usar uma palavra concisa e clara, como OpenIM , LangChain .URL_PREFIX para corresponder ao domínio do seu site. Isso é principalmente para gerar links de URL acessíveis para arquivos locais carregados. Como http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE como 1 se você quiser usar LlamaParse .LLAMA_CLOUD_API_KEY com sua própria chave. Faça login no site do Llamacloud para visualizar sua chave da API.server/constant . Se você não puder usar os serviços de API da OpenAI, considere usar o Moonshot como uma alternativa.
Observação
Moonshot não fornece uma Embedding API , então aqui usamos Embedding API de Zhipuai.
cp env_of_moonshot .envAs variáveis em .env
LLM_NAME= " Moonshot "
ZHIPUAI_API_KEY= " xxxx "
MOONSHOT_API_KEY= " xxxx "
MOONSHOT_MODEL_NAME= " moonshot-v1-8k "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEZHIPUAI_API_KEY com sua própria chave. Faça login no site da Zhipuai para visualizar sua chave da API.MOONSHOT_API_KEY com sua própria chave. Por favor, faça login no site da lua para visualizar sua chave da API.MOONSHOT_MODEL_NAME se você deseja usar outros modelos de Moonshot.BOT_TOPIC para refletir o nome do seu bot. Isso é muito importante, pois será usado na Prompt Construction . Tente usar uma palavra concisa e clara, como OpenIM , LangChain .URL_PREFIX para corresponder ao domínio do seu site. Isso é principalmente para gerar links de URL acessíveis para arquivos locais carregados. Como http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE como 1 se você quiser usar LlamaParse .LLAMA_CLOUD_API_KEY com sua própria chave. Faça login no site do Llamacloud para visualizar sua chave da API.server/constant . Se sua base de conhecimento envolver informações confidenciais e você preferir não usar LLMs baseados em nuvem, considere usar Ollama para implantar grandes modelos localmente.
Observação
Primeiro, consulte o Ollama para instalar o Ollama e baixar o modelo de incorporação mxbai-embed-large e o modelo LLM como llama3 .
cp env_of_ollama .envAs variáveis em .env
LLM_NAME= " Ollama "
OLLAMA_MODEL_NAME= " xxxx "
OLLAMA_BASE_URL= " http://127.0.0.1:11434 "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEOLLAMA_MODEL_NAME , selecione um modelo apropriado na biblioteca Ollama.IP:PORT ao iniciar Ollama , atualize OLLAMA_BASE_URL . Por favor, preste atenção especial, digite apenas o IP (domínio) e a porta aqui, sem anexar um URI.BOT_TOPIC para refletir o nome do seu bot. Isso é muito importante, pois será usado na Prompt Construction . Tente usar uma palavra concisa e clara, como OpenIM , LangChain .URL_PREFIX para corresponder ao domínio do seu site. Isso é principalmente para gerar links de URL acessíveis para arquivos locais carregados. Como http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE como 1 se você quiser usar LlamaParse .LLAMA_CLOUD_API_KEY com sua própria chave. Faça login no site do Llamacloud para visualizar sua chave da API.server/constant .Observação
Ao implantar com o Docker, preste atenção especial ao host do url_prefix no arquivo .env . Se estiver usando Ollama , também preste atenção especial ao host de ollama_base_url no arquivo .env . Eles precisam usar o endereço IP real da máquina host.
docker-compose up --buildObservação
Use Python versão 3.10.x ou acima.
Recomenda-se instalar dependências relacionadas ao Python em um ambiente virtual do Python para evitar afetar dependências de outros projetos.
Se você ainda não criou um ambiente virtual, pode criar um com o seguinte comando:
python3 -m venv myenvApós a criação, ative o ambiente virtual:
source myenv/bin/activate Depois que o ambiente virtual for ativado, você pode usar pip para instalar as dependências necessárias.
pip install -r requirements.txtO serviço RAG-GPT usa o SQLite como seu banco de dados de armazenamento. Antes de iniciar o serviço RAG-GPT, você precisa executar o seguinte comando para inicializar o banco de dados e adicionar a configuração padrão para o console do administrador.
python3 create_sqlite_db.pySe você concluiu as etapas acima, tente iniciar o serviço RAG-GPT executando o seguinte comando.
python3 rag_gpt_app.pysh start.shObservação
7000 . Durante o primeiro teste, tente não alterar a porta para poder experimentar rapidamente todo o processo do produto.start.sh no modo multipocess para uma experiência mais suave do usuário. Acesse o console do administrador através do link http://your-server-ip:7000/open-kf-admin/ para chegar à página de login. O nome de usuário e a senha padrão são admin e open_kf_AIGC@2024 (podem ser verificados em create_sqlite_db.py ).

Após o login com sucesso, você poderá ver a página de configuração do console do administrador.

Na página http://your-server-ip:7000/open-kf-admin/#/ , você pode definir as seguintes configurações:
gpt-3.5-turbo está disponível, que será gradualmente expandida. Depois de enviar o URL do site, depois que o servidor recuperar a lista de todos os URLs da página da web via rastreamento, você pode selecionar os URLs da página da web necessários como a base de conhecimento (todos selecionados por padrão). O Status inicial é Recorded .

Você pode atualizar ativamente a página http://your-server-ip:7000/open-kf-admin/#/source no seu navegador para obter o progresso do processamento da URL da página da web. Depois que o conteúdo do URL da página da web foi rasteado e o cálculo e o armazenamento de incorporação são concluídos, você pode ver o Size correspondente no console do administrador e o Status também será atualizado para Trained .

Clicar no URL de uma página da web revela quantas subpáginas a página da web é dividida e o tamanho do texto de cada sub-página.

Clicar em uma sub-página permite visualizar seu conteúdo completo de texto. Isso será muito útil para verificar os efeitos durante o processo de teste de experiência.

Colete os URLs das páginas da web necessárias. Você pode enviar até 10 URLs de página da web por vez, e essas páginas podem ser de diferentes domínios.

Carregue os arquivos locais necessários. Você pode fazer upload de até 10 arquivos por vez e cada arquivo não pode exceder 30MB . Os seguintes tipos de arquivo são suportados atualmente: [".txt", ".md", ".pdf", ".epub", ".mobi", ".html", ".docx", ".pptx", ".xlsx", ".csv"] .

Depois de importar os dados do site no console do administrador, você pode experimentar o serviço de chatbot através do link http://your-server-ip:7000/open-kf-chatbot/ .

Através do link do console do Admin http://your-server-ip:7000/open-kf-admin/#/embed , você pode ver o tutorial detalhado para configurar o iframe em seu site.


Através do link do console do administrador http://your-server-ip:7000/open-kf-admin/#/dashboard , você pode visualizar os registros de solicitação histórica de todos os usuários dentro de um intervalo de tempo especificado.

O serviço RAG-GPT integra 2 módulos de front-end, e suas informações de código-fonte são as seguintes:
Repositório de código
Uma interface de administração intuitiva baseada na Web para o serviço de qa inteligente, oferecendo controle abrangente sobre conteúdo, configuração e interações do usuário. Permite o gerenciamento sem esforço da base de conhecimento, o monitoramento em tempo real de consultas e feedback e melhoria contínua com base nos insights do usuário.
Repositório de código
Uma interface HTML5 para serviço de qa inteligente projetado para facilitar a integração nos sites via iframe, fornecendo aos usuários acesso direto a uma base de conhecimento personalizada sem sair do site, aprimorando a funcionalidade e a resolução imediata da consulta.