Skip to content

Latest commit

 

History

History
352 lines (252 loc) · 14.5 KB

README_pt_br.md

File metadata and controls

352 lines (252 loc) · 14.5 KB

English | 简体中文 | 日本語 | 한국어 | Bahasa Indonesia | Português (Brasil)

seguir no X(Twitter) Badge Estático docker pull infiniflow/ragflow:v0.15.1 Última Versão licença

📕 Índice

💡 O que é o RAGFlow?

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.

🎮 Demo

Experimente nossa demo em https://demo.ragflow.io.

🔥 Últimas Atualizações

  • 18-12-2024 Atualiza o modelo de Análise de Layout de Documentos no Deepdoc.
  • 04-12-2024 Adiciona suporte para pontuação de pagerank na base de conhecimento.
  • 22-11-2024 Adiciona mais variáveis para o Agente.
  • 01-11-2024 Adiciona extração de palavras-chave e geração de perguntas relacionadas aos blocos analisados para melhorar a precisão da recuperação.
  • 22-08-2024 Suporta conversão de texto para comandos SQL via RAG.
  • 02-08-2024 Suporta GraphRAG inspirado pelo graphrag e mapa mental.

🎉 Fique Ligado

⭐️ 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! 🌟

🌟 Principais Funcionalidades

🍭 "Qualidade entra, qualidade sai"

  • Extração de conhecimento baseada em entendimento profundo de documentos a partir de dados não estruturados com formatos complicados.
  • Encontra a "agulha no palheiro de dados" de literalmente tokens ilimitados.

🍱 Fragmentação baseada em templates

  • Inteligente e explicável.
  • Muitas opções de templates para escolher.

🌱 Citações fundamentadas com menos alucinações

  • Visualização da fragmentação de texto para permitir intervenção humana.
  • Visualização rápida das referências chave e citações rastreáveis para apoiar respostas fundamentadas.

🍔 Compatibilidade com fontes de dados heterogêneas

  • Suporta Word, apresentações, excel, txt, imagens, cópias digitalizadas, dados estruturados, páginas da web e mais.

🛀 Fluxo de trabalho RAG automatizado e sem esforço

  • Orquestração RAG simplificada voltada tanto para negócios pessoais quanto grandes empresas.
  • Modelos LLM e de incorporação configuráveis.
  • Múltiplas recuperações emparelhadas com reclassificação fundida.
  • APIs intuitivas para integração sem problemas com os negócios.

🔎 Arquitetura do Sistema

🎬 Primeiros Passos

📝 Pré-requisitos

  • CPU >= 4 núcleos
  • RAM >= 16 GB
  • Disco >= 50 GB
  • Docker >= 24.0.0 & Docker Compose >= v2.26.1

    Se você não instalou o Docker na sua máquina local (Windows, Mac ou Linux), veja Instalar Docker Engine.

🚀 Iniciar o servidor

  1. Certifique-se de que vm.max_map_count >= 262144:

    Para verificar o valor de vm.max_map_count:

    $ sysctl vm.max_map_count

    Se necessário, redefina vm.max_map_count para um valor de pelo menos 262144:

    # Neste caso, defina para 262144:
    $ sudo sysctl -w vm.max_map_count=262144

    Essa 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_count em /etc/sysctl.conf:

    vm.max_map_count=262144
  2. Clone o repositório:

    $ git clone https://github.com/infiniflow/ragflow.git
  3. Inicie o servidor usando as imagens Docker pré-compiladas:

    O comando abaixo baixa a edição v0.15.1-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.15.1-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.15.1 para a edição completa v0.15.1.

    $ cd ragflow
    $ docker compose -f docker/docker-compose.yml up -d
    Tag da imagem RAGFlow Tamanho da imagem (GB) Possui modelos de incorporação? Estável?
    v0.15.1 ~9 ✔️ Lançamento estável
    v0.15.1-slim ~2 Lançamento estável
    nightly ~9 ✔️ Instável build noturno
    nightly-slim ~2 Instável build noturno
  4. Verifique o status do servidor após tê-lo iniciado:

    $ docker logs -f ragflow-server

    O seguinte resultado confirma o lançamento bem-sucedido do sistema:

         ____   ___    ______ ______ __
        / __ \ /   |  / ____// ____// /____  _      __
       / /_/ // /| | / / __ / /_   / // __ \| | /| / /
      / _, _// ___ |/ /_/ // __/  / // /_/ /| |/ |/ /
     /_/ |_|/_/  |_|\____//_/    /_/ \____/ |__/|__/
    
     * Rodando em todos os endereços (0.0.0.0)
     * Rodando em http://127.0.0.1:9380
     * Rodando em http://x.x.x.x:9380
     INFO:werkzeug:Pressione CTRL+C para sair

    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 para mais informações.

O show está no ar!

🔧 Configurações

Quando se trata de configurações do sistema, você precisará gerenciar os seguintes arquivos:

  • .env: Contém as configurações fundamentais para o sistema, como SVR_HTTP_PORT, MYSQL_PASSWORD e MINIO_PASSWORD.
  • service_conf.yaml.template: Configura os serviços de back-end. As variáveis de ambiente neste arquivo serão automaticamente preenchidas quando o contêiner Docker for iniciado. Quaisquer variáveis de ambiente definidas dentro do contêiner Docker estarão disponíveis para uso, permitindo personalizar o comportamento do serviço com base no ambiente de implantação.
  • docker-compose.yml: O sistema depende do docker-compose.yml para iniciar.

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/docker-compose.yml up -d

Mudar o mecanismo de documentos de Elasticsearch para Infinity

O RAGFlow usa o Elasticsearch por padrão para armazenar texto completo e vetores. Para mudar para o Infinity, siga estas etapas:

  1. Pare todos os contêineres em execução:

    $ docker compose -f docker/docker-compose.yml down -v
  2. Defina DOC_ENGINE no docker/.env para infinity.

  3. Inicie os contêineres:

    $ docker compose -f docker/docker-compose.yml up -d

[!ATENÇÃO] A mudança para o Infinity em uma máquina Linux/arm64 ainda não é oficialmente suportada.

🔧 Criar uma imagem Docker sem modelos de incorporação

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 --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .

🔧 Criar uma imagem Docker incluindo modelos de incorporação

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 -f Dockerfile -t infiniflow/ragflow:nightly .

🔨 Lançar o serviço a partir do código-fonte para desenvolvimento

  1. Instale o uv, ou pule esta etapa se ele já estiver instalado:

    pipx install uv
  2. 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
  3. 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
    
  4. 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
  5. Lance o serviço de back-end:

    source .venv/bin/activate
    export PYTHONPATH=$(pwd)
    bash docker/launch_backend_service.sh
  6. Instale as dependências do front-end:

    cd web
    npm install
  7. Lance o serviço de front-end:

    npm run dev

    O seguinte resultado confirma o lançamento bem-sucedido do sistema:

📚 Documentação

📜 Roadmap

Veja o RAGFlow Roadmap 2025

🏄 Comunidade

🙌 Contribuindo

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.