RAGFlow é um mecanismo RAG (Geração Aumentada por Recuperação) de código aberto baseado em entendimento profundo de documentos. Ele oferece um fluxo de trabalho RAG simplificado para empresas de qualquer porte, combinando LLMs (Modelos de Linguagem de Grande Escala) para fornecer capacidades de perguntas e respostas verídicas, respaldadas por citações bem fundamentadas de diversos dados complexos formatados.
Experimente nossa demo em https://demo.ragflow.io.
⭐️ Dê uma estrela no nosso repositório para se manter atualizado com novas funcionalidades e melhorias empolgantes! Receba notificações instantâneas sobre novos lançamentos! 🌟
[!TIP] Se você não instalou o Docker na sua máquina local (Windows, Mac ou Linux), veja Instalar Docker Engine.
Certifique-se de que vm.max_map_count >= 262144:
Para verificar o valor de
vm.max_map_count:$ sysctl vm.max_map_countSe necessário, redefina
vm.max_map_countpara um valor de pelo menos 262144:# Neste caso, defina para 262144: $ sudo sysctl -w vm.max_map_count=262144Essa mudança será resetada após a reinicialização do sistema. Para garantir que a alteração permaneça permanente, adicione ou atualize o valor de
vm.max_map_countem /etc/sysctl.conf:vm.max_map_count=262144
Clone o repositório:
$ git clone https://github.com/infiniflow/ragflow.git
Inicie o servidor usando as imagens Docker pré-compiladas:
[!CAUTION] Todas as imagens Docker são construídas para plataformas x86. Atualmente, não oferecemos imagens Docker para ARM64. Se você estiver usando uma plataforma ARM64, por favor, utilize este guia para construir uma imagem Docker compatível com o seu sistema.
> O comando abaixo baixa a edição `v0.20.0-slim` da imagem Docker do RAGFlow. Consulte a tabela a seguir para descrições de diferentes edições do RAGFlow. Para baixar uma edição do RAGFlow diferente da `v0.20.0-slim`, atualize a variável `RAGFLOW_IMAGE` conforme necessário no **docker/.env** antes de usar `docker compose` para iniciar o servidor. Por exemplo: defina `RAGFLOW_IMAGE=infiniflow/ragflow:v0.20.0` para a edição completa `v0.20.0`. ```bash $ cd ragflow/docker # Use CPU for embedding and DeepDoc tasks: $ docker compose -f docker-compose.yml up -d # To use GPU to accelerate embedding and DeepDoc tasks: # docker compose -f docker-compose-gpu.yml up -d ``` | Tag da imagem RAGFlow | Tamanho da imagem (GB) | Possui modelos de incorporação? | Estável? | | --------------------- | ---------------------- | ------------------------------- | ------------------------ | | v0.20.0 | ~9 | :heavy_check_mark: | Lançamento estável | | v0.20.0-slim | ~2 | ❌ | Lançamento estável | | nightly | ~9 | :heavy_check_mark: | _Instável_ build noturno | | nightly-slim | ~2 | ❌ | _Instável_ build noturno |
4. Verifique o status do servidor após tê-lo iniciado:
```bash $ docker logs -f ragflow-server ``` _O seguinte resultado confirma o lançamento bem-sucedido do sistema:_ ```bash ____ ___ ______ ______ __ / __ \ / | / ____// ____// /____ _ __ / /_/ // /| | / / __ / /_ / // __ \| | /| / / / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/ * Rodando em todos os endereços (0.0.0.0) ``` > Se você pular essa etapa de confirmação e acessar diretamente o RAGFlow, seu navegador pode exibir um erro `network anormal`, pois, nesse momento, seu RAGFlow pode não estar totalmente inicializado.
5. No seu navegador, insira o endereço IP do seu servidor e faça login no RAGFlow.
> Com as configurações padrão, você só precisa digitar `http://IP_DO_SEU_MÁQUINA` (**sem** o número da porta), pois a porta HTTP padrão `80` pode ser omitida ao usar as configurações padrão.
6. Em service_conf.yaml.template, 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](https://ragflow.io/docs/dev/llm_api_key_setup) para mais informações.
O show está no ar!
Quando se trata de configurações do sistema, você precisará gerenciar os seguintes arquivos:
SVR_HTTP_PORT, MYSQL_PASSWORD e MINIO_PASSWORD.O arquivo ./docker/README fornece uma descrição detalhada das configurações do ambiente e dos serviços, que podem ser usadas como
${ENV_VARS}no arquivo service_conf.yaml.template.
Para atualizar a porta HTTP de serviço padrão (80), vá até docker-compose.yml e altere 80:80 para <SUA_PORTA_DE_SERVIÇO>:80.
Atualizações nas configurações acima exigem um reinício de todos os contêineres para que tenham efeito:
$ docker compose -f docker-compose.yml up -d
O RAGFlow usa o Elasticsearch por padrão para armazenar texto completo e vetores. Para mudar para o Infinity, siga estas etapas:
Pare todos os contêineres em execução:
$ docker compose -f docker/docker-compose.yml down -v
Note: -v irá deletar os volumes do contêiner, e os dados existentes serão apagados.
Defina DOC_ENGINE no docker/.env para infinity.
Inicie os contêineres:
$ docker compose -f docker-compose.yml up -d
[!ATENÇÃO] A mudança para o Infinity em uma máquina Linux/arm64 ainda não é oficialmente suportada.
Esta imagem tem cerca de 2 GB de tamanho e depende de serviços externos de LLM e incorporação.
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --platform linux/amd64 --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
Esta imagem tem cerca de 9 GB de tamanho. Como inclui modelos de incorporação, depende apenas de serviços externos de LLM.
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --platform linux/amd64 -f Dockerfile -t infiniflow/ragflow:nightly .
Instale o uv, ou pule esta etapa se ele já estiver instalado:
pipx install uv pre-commit
Clone o código-fonte e instale as dependências Python:
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
uv sync --python 3.10 --all-extras # instala os módulos Python dependentes do RAGFlow
uv run download_deps.py
pre-commit install
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 ao arquivo /etc/hosts para resolver todos os hosts especificados em docker/.env para 127.0.0.1:
127.0.0.1 es01 infinity mysql minio redis sandbox-executor-manager
Se não conseguir acessar o HuggingFace, defina a variável de ambiente HF_ENDPOINT para usar um site espelho:
export HF_ENDPOINT=https://hf-mirror.com
Se o seu sistema operacional não tiver jemalloc, instale-o da seguinte maneira:
# ubuntu
sudo apt-get install libjemalloc-dev
# centos
sudo yum instalar jemalloc
Lance o serviço de back-end:
source .venv/bin/activate
export PYTHONPATH=$(pwd)
bash docker/launch_backend_service.sh
Instale as dependências do front-end:
cd web
npm install
Lance o serviço de front-end:
npm run dev
O seguinte resultado confirma o lançamento bem-sucedido do sistema:
Pare os serviços de front-end e back-end do RAGFlow após a conclusão do desenvolvimento:
pkill -f "ragflow_server.py|task_executor.py"
Veja o RAGFlow Roadmap 2025
O RAGFlow prospera por meio da colaboração de código aberto. Com esse espírito, abraçamos contribuições diversas da comunidade. Se você deseja fazer parte, primeiro revise nossas Diretrizes de Contribuição.