Inglês | 简体中文 | 日本語 | 한국어
? O que é RAGFlow?
? Demonstração
? Últimas atualizações
? Principais recursos
? Arquitetura do sistema
? Comece
? Configurações
? Crie uma imagem docker sem incorporar modelos
? Crie uma imagem docker incluindo modelos de incorporação
? Lançar serviço da fonte para desenvolvimento
? Documentação
? Roteiro
? Comunidade
? Contribuindo
RAGFlow é um mecanismo RAG (Retrieval-Augmented Generation) de código aberto baseado no profundo entendimento de documentos. Ele oferece um fluxo de trabalho RAG simplificado para empresas de qualquer escala, combinando LLM (Large Language Models) para fornecer recursos verdadeiros de resposta a perguntas, apoiados por citações bem fundamentadas de vários dados formatados complexos.
Experimente nossa demonstração em https://demo.ragflow.io.
2024-11-04 Atualiza modelos DLA (Document Layout Analysis) em deepdoc.
2024-11-01 Adiciona extração de palavras-chave e geração de perguntas relacionadas ao bloco analisado para melhorar a precisão da recuperação.
13/09/2024 Adiciona modo de pesquisa para perguntas e respostas da base de conhecimento.
2024-09-09 Adiciona um modelo de agente consultor médico.
2024-08-22 Suporte a texto para instruções SQL por meio de RAG.
2024-08-02 Suporta GraphRAG inspirado em graphrag e mapa mental.
⭐️ Marque nosso repositório com estrela para se manter atualizado com novos recursos e melhorias interessantes! Receba notificações instantâneas de novos lançamentos! ?
Extração de conhecimento baseada na compreensão profunda de documentos a partir de dados não estruturados com formatos complicados.
Encontra "agulha em um palheiro de dados" de tokens literalmente ilimitados.
Inteligente e explicável.
Muitas opções de modelos para escolher.
Visualização de fragmentação de texto para permitir a intervenção humana.
Visualização rápida das principais referências e citações rastreáveis para apoiar respostas fundamentadas.
Suporta Word, slides, Excel, txt, imagens, cópias digitalizadas, dados estruturados, páginas da web e muito mais.
A orquestração RAG simplificada atende tanto a empresas pessoais quanto a grandes empresas.
LLMs configuráveis, bem como modelos incorporados.
Recuperação múltipla emparelhada com reclassificação fundida.
APIs intuitivas para integração perfeita com os negócios.
CPU >= 4 núcleos
RAM >= 16GB
Disco >= 50 GB
Docker >= 24.0.0 e Docker Compose >= v2.26.1
Se você não instalou o Docker em sua máquina local (Windows, Mac ou Linux), consulte Instalar o Docker Engine.
Certifique-se de que vm.max_map_count
>= 262144:
Para verificar o valor de
vm.max_map_count
:$ sysctl vm.max_map_countRedefina
vm.max_map_count
para um valor de pelo menos 262144, caso não seja.# Neste caso, definimos como 262144:$ sudo sysctl -w vm.max_map_count=262144Esta alteração será redefinida após a reinicialização do sistema. Para garantir que sua alteração permaneça permanente, adicione ou atualize o valor
vm.max_map_count
em /etc/sysctl.conf adequadamente:vm.max_map_count=262144
Clone o repositório:
$ git clone https://github.com/infiniflow/ragflow.git
Crie as imagens Docker pré-construídas e inicie o servidor:
O comando abaixo baixa a imagem Docker da versão dev para RAGFlow slim (
dev-slim
). Observe que as imagens RAGFlow slim Docker não incluem modelos de incorporação ou bibliotecas Python e, portanto, têm aproximadamente 1 GB de tamanho.
$ cd ragflow/docker $ docker compose -f docker-compose.yml up -d
NOTA: Uma imagem RAGFlow Docker que inclui modelos de incorporação e bibliotecas Python tem aproximadamente 9 GB de tamanho e pode levar muito mais tempo para carregar.
Para baixar uma imagem RAGFlow slim Docker de uma versão específica, atualize a variável RAGFlow_IMAGE
em * docker/.env * para a versão desejada. Por exemplo, RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0-slim
. Após fazer essa alteração, execute novamente o comando acima para iniciar o download.
Para baixar a versão dev da imagem RAGFlow Docker, incluindo modelos de incorporação e bibliotecas Python, atualize a variável RAGFlow_IMAGE
em docker/.env para RAGFLOW_IMAGE=infiniflow/ragflow:dev
. Após fazer essa alteração, execute novamente o comando acima para iniciar o download.
Para baixar uma versão específica da imagem RAGFlow Docker, incluindo modelos de incorporação e bibliotecas Python, atualize a variável RAGFlow_IMAGE
em docker/.env para a versão desejada. Por exemplo, RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0
. Após fazer essa alteração, execute novamente o comando acima para iniciar o download.
Verifique o status do servidor depois de colocá-lo em funcionamento:
$ docker logs -f servidor ragflow
A saída a seguir confirma o lançamento bem-sucedido do sistema:
____ ___ ______ ______ __ /__/ | / ____// ____// /____ _ __ / /_/ // /| | // __ / /_ / // __ | | /| // / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|____//_/ /_/ ____/ |__/|__/ * Executando em todos os endereços (0.0.0.0) * Executando em http://127.0.0.1:9380 * Executando em http://xxxx:9380 INFO:werkzeug:Pressione CTRL+C para sair
Se você pular esta etapa de confirmação e fazer login diretamente no RAGFlow, seu navegador poderá exibir um erro
network abnormal
porque, naquele momento, seu RAGFlow pode não estar totalmente inicializado.
No seu navegador, digite o endereço IP do seu servidor e faça login no RAGFlow.
Com as configurações padrão, você só precisa inserir
http://IP_OF_YOUR_MACHINE
( sem número de porta), pois a porta de serviço HTTP padrão80
pode ser omitida ao usar as configurações padrão.
Em service_conf.yaml, selecione a fábrica LLM desejada em user_default_llm
e atualize o campo API_KEY
com a chave de API correspondente.
Consulte llm_api_key_setup para obter mais informações.
O show começou!
Quando se trata de configurações do sistema, você precisará gerenciar os seguintes arquivos:
.env: Mantém as configurações fundamentais do sistema, como SVR_HTTP_PORT
, MYSQL_PASSWORD
e MINIO_PASSWORD
.
service_conf.yaml: configura os serviços de back-end.
docker-compose.yml: o sistema depende do docker-compose.yml para inicializar.
Você deve garantir que as alterações no arquivo .env estejam alinhadas com o que está no arquivo service_conf.yaml.
O arquivo ./docker/README fornece uma descrição detalhada das configurações de ambiente e de serviço, e você é NECESSÁRIO garantir que todas as configurações de ambiente listadas no arquivo ./docker/README estejam alinhadas com as configurações correspondentes no arquivo service_conf.yaml .
Para atualizar a porta de serviço HTTP padrão (80), acesse docker-compose.yml e altere 80:80
para <YOUR_SERVING_PORT>:80
.
As atualizações nas configurações acima exigem a reinicialização de todos os contêineres para entrar em vigor:
$ docker compose -f docker/docker-compose.yml up -d
Esta imagem tem aproximadamente 1 GB de tamanho e depende de LLM externo e serviços de incorporação.
clone do git https://github.com/infiniflow/ragflow.gitcd ragflow/ pip3 instalar abraço face-hub nltk python3 download_deps.py docker build -f Dockerfile.slim -t infiniflow/ragflow:dev-slim .
Esta imagem tem aproximadamente 9 GB de tamanho. Como inclui modelos de incorporação, depende apenas de serviços LLM externos.
clone do git https://github.com/infiniflow/ragflow.gitcd ragflow/ pip3 instalar abraço face-hub nltk python3 download_deps.py docker build -f Dockerfile -t infiniflow/ragflow:dev .
Instale o Poetry ou pule esta etapa se já estiver instalado:
curl -sSL https://install.python-poetry.org | python3 -
Clone o código-fonte e instale as dependências do Python:
git clone https://github.com/infiniflow/ragflow.gitcd ragflow/export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true~/.local/bin/poetry install --sync --no-root # instala módulos python dependentes do RAGFlow
Inicie os serviços dependentes (MinIO, Elasticsearch, Redis e MySQL) usando Docker Compose:
docker compose -f docker/docker-compose-base.yml up -d
Adicione a seguinte linha a /etc/hosts
para resolver todos os hosts especificados em docker/service_conf.yaml para 127.0.0.1
:
127.0.0.1 es01 mysql minio redis
Em docker/service_conf.yaml , atualize a porta mysql para 5455
e a porta es para 1200
, conforme especificado em docker/.env .
Se você não conseguir acessar o HuggingFace, defina a variável de ambiente HF_ENDPOINT
para usar um site espelho:
exportar HF_ENDPOINT=https://hf-mirror.com
Inicie o serviço de back-end:
fonte .venv/bin/activateexport PYTHONPATH=$(pwd)bash docker/launch_backend_service.sh
Instale dependências de front-end:
cd web npm instalar --force
Configure o frontend para atualizar proxy.target
em .umirc.ts para http://127.0.0.1:9380
:
Lançar serviço de front-end:
npm executar dev
A saída a seguir confirma o lançamento bem-sucedido do sistema:
Início rápido
Guia do usuário
Referências
Perguntas frequentes
Veja o Roteiro RAGFlow 2024
Discórdia
Discussões do GitHub
RAGFlow floresce por meio da colaboração de código aberto. Neste espírito, abraçamos diversas contribuições da comunidade. Se você gostaria de fazer parte, revise primeiro nossas Diretrizes de Contribuição.