mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-11-10 21:32:43 +08:00
292 lines
14 KiB
Markdown
292 lines
14 KiB
Markdown
<div align="center">
|
|
<a href="https://cloud.ragflow.io/">
|
|
<img src="https://raw.githubusercontent.com/infiniflow/ragflow/main/web/src/assets/logo-with-text.svg" width="520" alt="ragflow logo">
|
|
</a>
|
|
</div>
|
|
|
|
<p align="center">
|
|
<a href="./README.md"><img alt="README in English" src="https://img.shields.io/badge/English-DFE0E5"></a>
|
|
<a href="./README_zh.md"><img alt="简体中文版自述文件" src="https://img.shields.io/badge/简体中文-DFE0E5"></a>
|
|
<a href="./README_tzh.md"><img alt="繁體版中文自述文件" src="https://img.shields.io/badge/繁體中文-DFE0E5"></a>
|
|
<a href="./README_ja.md"><img alt="日本語のREADME" src="https://img.shields.io/badge/日本語-DFE0E5"></a>
|
|
<a href="./README_ko.md"><img alt="한국어" src="https://img.shields.io/badge/한국어-DFE0E5"></a>
|
|
<a href="./README_fr.md"><img alt="README en Français" src="https://img.shields.io/badge/Français-DFE0E5"></a>
|
|
<a href="./README_id.md"><img alt="Bahasa Indonesia" src="https://img.shields.io/badge/Bahasa Indonesia-DFE0E5"></a>
|
|
<a href="./README_pt_br.md"><img alt="Português(Brasil)" src="https://img.shields.io/badge/Português(Brasil)-DBEDFA"></a>
|
|
<a href="./README_ar.md"><img alt="README in Arabic" src="https://img.shields.io/badge/Arabic-DFE0E5"></a>
|
|
<a href="./README_tr.md"><img alt="Türkçe README" src="https://img.shields.io/badge/Türkçe-DFE0E5"></a>
|
|
<a href="./README_ru.md"><img alt="Русская версия README" src="https://img.shields.io/badge/Русский-DFE0E5"></a>
|
|
</p>
|
|
|
|
<p align="center">
|
|
<a href="https://x.com/intent/follow?screen_name=infiniflowai" target="_blank">
|
|
<img src="https://img.shields.io/twitter/follow/infiniflow?logo=X&color=%20%23f5f5f5" alt="seguir no X(Twitter)">
|
|
</a>
|
|
<a href="https://cloud.ragflow.io" target="_blank">
|
|
<img alt="Badge Estático" src="https://img.shields.io/badge/Get-Started-4e6b99">
|
|
</a>
|
|
<a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
|
|
<img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/infiniflow/ragflow-stats/main/badges/docker-pulls.json&style=flat-square&logo=docker&logoColor=white" alt="RAGFlow Docker image downloads">
|
|
</a>
|
|
<a href="https://github.com/infiniflow/ragflow/releases/latest">
|
|
<img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=%C3%9Altima%20Release" alt="Última Release">
|
|
</a>
|
|
<a href="https://github.com/infiniflow/ragflow/blob/main/LICENSE">
|
|
<img height="21" src="https://img.shields.io/badge/License-Apache--2.0-ffffff?labelColor=d4eaf7&color=2e6cc4" alt="licença">
|
|
</a>
|
|
</p>
|
|
|
|
<h4 align="center">
|
|
<a href="https://cloud.ragflow.io">Cloud</a> |
|
|
<a href="https://ragflow.io/docs/dev/">Documentação</a> |
|
|
<a href="https://github.com/infiniflow/ragflow/issues/12241">Roadmap</a> |
|
|
<a href="https://discord.gg/NjYzJD3GM3">Discord</a>
|
|
</h4>
|
|
|
|
<div align="center" style="margin-top:20px;margin-bottom:20px;">
|
|
<img alt="RAGFlow in the GitHub Octoverse" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/image/image/ragflow-octoverse.png" width="1200"/>
|
|
</div>
|
|
|
|
<div align="center">
|
|
<a href="https://trendshift.io/repositories/9064" target="_blank"><img src="https://trendshift.io/api/badge/repositories/9064" alt="infiniflow%2Fragflow | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
|
</div>
|
|
|
|
<details open>
|
|
<summary><b>📕 Índice</b></summary>
|
|
|
|
- 💡 [O que é o RAGFlow?](#-o-que-é-o-ragflow)
|
|
- 🎮 [Primeiros Passos](#-primeiros-passos)
|
|
- 🔥 [Últimas Atualizações](#-últimas-atualizações)
|
|
- 🌟 [Principais Funcionalidades](#-principais-funcionalidades)
|
|
- 🔎 [Arquitetura do Sistema](#-arquitetura-do-sistema)
|
|
- 🏠 [Implantação local](#-implantação-local)
|
|
- 📚 [Documentação](#-documentação)
|
|
- 📜 [Roadmap](#-roadmap)
|
|
- 🏄 [Comunidade](#-comunidade)
|
|
- 🙌 [Contribuindo](#-contribuindo)
|
|
|
|
</details>
|
|
|
|
## 💡 O que é o RAGFlow?
|
|
|
|
[RAGFlow](https://ragflow.io/) é um mecanismo de [RAG](https://ragflow.io/basics/what-is-rag) (Retrieval-Augmented Generation) open-source líder que fusiona tecnologias RAG de ponta com funcionalidades Agent para criar uma camada contextual superior para LLMs. Oferece um fluxo de trabalho RAG otimizado adaptável a empresas de qualquer escala. Alimentado por [um motor de contexto](https://ragflow.io/basics/what-is-agent-context-engine) convergente e modelos Agent pré-construídos, o RAGFlow permite que desenvolvedores transformem dados complexos em sistemas de IA de alta fidelidade e pronto para produção com excepcional eficiência e precisão.
|
|
|
|
## 🎮 Primeiros Passos
|
|
|
|
Experimente o nosso serviço na nuvem em [https://cloud.ragflow.io](https://cloud.ragflow.io).
|
|
|
|
<div align="center" style="margin-top:20px;margin-bottom:20px;">
|
|
<img alt="Chunking demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/image/image/chunking.gif" width="1200"/>
|
|
<img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/image/image/agentic-dark.gif" width="1200"/>
|
|
</div>
|
|
|
|
## 🔥 Últimas Atualizações
|
|
|
|
- 2026-09-29 Lançamento do RAGFlow 1.0.0-rc1.
|
|
|
|
- 2026-09-10 Adicionada a ingestão de conteúdo da Web por meio de sitemaps.
|
|
- 2026-08-19 Lançado o Knowledge Compilation, que gera Wikis, Graphs, Trees, PageIndex, Mind Maps, Timelines e Skills nos níveis de documento e dataset.
|
|
- 2026-08-19 Lançado o Agentic RAG com os modos de pensamento Low, Medium, High e Ultra.
|
|
- 2026-07-02 Adicionadas a ingestão de dados do Google BigQuery e a sincronização incremental.
|
|
|
|
Consulte as [notas de versão completas](https://ragflow.io/docs/dev/release_notes) para ver outras atualizações.
|
|
|
|
## 🌟 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.
|
|
|
|
### 🧩 **Compilação de conhecimento (Knowledge Compilation)**
|
|
|
|
- Organize conteúdo de documentos e conjuntos de dados em artefatos estruturados, como Wiki, Graph, Tree, PageIndex, Mind Map, Timeline e Skills.
|
|
- Configure modelos de compilação e regras de processamento e visualize, atualize ou gere novamente os artefatos.
|
|
|
|
### 🧠 **Recuperação agêntica (Agentic Retrieval)**
|
|
|
|
- O modelo analisa perguntas complexas e, quando necessário, divide a questão, pesquisa conhecimentos e verifica evidências em várias etapas.
|
|
- Os modos Low, Medium, High e Ultra permitem ajustar a profundidade da busca e do raciocínio à complexidade da pergunta.
|
|
|
|
### 🌱 **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 documentos Word, apresentações PowerPoint, planilhas Excel, arquivos TXT, imagens, PDFs, 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
|
|
|
|
<div align="center" style="margin-top:20px;margin-bottom:20px;">
|
|
<img src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/main/images/structure.jpg" alt="RAGFlow system architecture" width="1000" />
|
|
</div>
|
|
|
|
## 🏠 Implantação local
|
|
|
|
O Docker é indicado para avaliação rápida, testes de integração e produção; o código-fonte é indicado para desenvolvimento e depuração. O Docker não exige Go. O código-fonte requer a versão do Go em `go.mod`; o frontend também requer Node.js e npm.
|
|
|
|
### 🐳 Implantação com Docker
|
|
|
|
#### 📝 Pré-requisitos
|
|
|
|
- Configuração inicial recomendada: 4 núcleos de CPU, 16 GB de RAM e 50 GB de espaço livre em disco.
|
|
- Docker ≥ 24.0.0, Docker Compose ≥ v2.26.1.
|
|
|
|
#### 🚀 Iniciar o servidor
|
|
|
|
1. Se você usa Elasticsearch, defina `vm.max_map_count` como pelo menos `262144` no host Docker antes de iniciar o Compose. Com Infinity, normalmente essa etapa não é necessária:
|
|
|
|
> Para verificar o valor atual de `vm.max_map_count`:
|
|
>
|
|
> ```bash
|
|
> sysctl vm.max_map_count
|
|
> ```
|
|
>
|
|
> Se o valor for inferior a `262144`, redefina-o:
|
|
>
|
|
> ```bash
|
|
> sudo sysctl -w vm.max_map_count=262144
|
|
> ```
|
|
>
|
|
> Essa alteração será perdida após a reinicialização do sistema. Para mantê-la, adicione `vm.max_map_count=262144` a **/etc/sysctl.conf**.
|
|
|
|
2. `git clone https://github.com/infiniflow/ragflow.git`
|
|
|
|
3. Docker:
|
|
|
|
```bash
|
|
cd ragflow/docker
|
|
git checkout v1.0.0
|
|
docker compose -f docker-compose.yml up -d
|
|
```
|
|
|
|
4. Verifique o estado dos serviços e a prontidão da API:
|
|
|
|
```bash
|
|
curl -f http://localhost/api/v1/system/healthz
|
|
docker logs --tail 50 ragflow-cpu
|
|
```
|
|
|
|
5. Abra `http://IP_OF_YOUR_MACHINE` no navegador e faça login. Com a configuração padrão, a porta HTTP `80` pode ser omitida.
|
|
|
|
6. Adicione LLM, Embedding e Reranker na página de provedores de modelos. Consulte [llm_api_key_setup](https://ragflow.io/docs/dev/llm_api_key_setup).
|
|
|
|
Consulte o [guia de início rápido](./docs/quickstart.mdx).
|
|
|
|
#### ⚙️ Configuração e ajustes do Docker
|
|
|
|
Use `docker/.env` e `docker/docker-compose.yml`. Consulte a [configuração do Docker](./docker/README.md) e o [build da imagem e suporte de plataforma](./docs/develop/build_docker_image.mdx). O macOS não é suportado atualmente.
|
|
|
|
### 🔨 Executar pelo código-fonte
|
|
|
|
#### 📝 Pré-requisitos
|
|
|
|
1. Clone o repositório e instale o Go indicado em `go.mod`, Clang 20, LLD 20, CMake ≥ 4.0, PCRE2 e as bibliotecas nativas exigidas pelo CGO.
|
|
|
|
```bash
|
|
git clone https://github.com/infiniflow/ragflow.git
|
|
cd ragflow
|
|
```
|
|
|
|
2. Execute os scripts de download de dependências para preparar as bibliotecas nativas estáticas que a compilação do Go utiliza (`download_dev_deps.py`) e os recursos de modelo / tokenizador carregados em tempo de execução pelo backend (`download_deps.py`):
|
|
|
|
```bash
|
|
uv run tools/scripts/download_dev_deps.py
|
|
uv run deps/download_deps.py
|
|
```
|
|
|
|
`download_dev_deps.py` baixa e descompacta pdfium, pdf_oxide, office_oxide e onnxruntime em `~/ragflow-native-libs`; `download_deps.py` baixa o vocabulário cl100k, os modelos DeepDoc e os recursos de tokenizadores de embedding em `deps/`. Ambos são scripts Python; o `uv run` instala automaticamente as dependências declaradas (`requests`, além de `huggingface-hub` para os downloads de modelos e tokenizadores). Pule esta etapa se você já preparou os mesmos recursos por outros meios. Quando iniciado a partir da raiz do repositório, os serviços Go encontram `internal/rag/res/deepdoc` automaticamente; para iniciar de outro diretório, defina `DEEPDOC_MODEL_DIR` com seu caminho absoluto.
|
|
|
|
3. Compile os serviços:
|
|
|
|
```bash
|
|
./build.sh --all
|
|
```
|
|
|
|
4. Inicie as dependências locais:
|
|
|
|
```bash
|
|
sudo sysctl -w vm.max_map_count=262144
|
|
docker compose --env-file docker/.env -f docker/docker-compose-base.yml up -d --wait es01 mysql minio nats kvrocks
|
|
```
|
|
|
|
5. Migre o banco de dados:
|
|
|
|
```bash
|
|
./bin/ragflow_server --migrate
|
|
```
|
|
|
|
6. Inicie os quatro serviços em quatro terminais:
|
|
|
|
Terminal 1: Admin (`9381`).
|
|
|
|
```bash
|
|
./bin/ragflow_server --admin
|
|
```
|
|
|
|
```bash
|
|
./bin/ragflow_server --ingestor
|
|
```
|
|
|
|
Terminal 3: Syncer.
|
|
|
|
```bash
|
|
./bin/ragflow_server --syncer
|
|
```
|
|
|
|
Terminal 4: API (`9380`).
|
|
|
|
```bash
|
|
./bin/ragflow_server --api
|
|
```
|
|
|
|
7. Somente para o frontend, instale Node.js e npm e verifique a API:
|
|
|
|
```bash
|
|
cd web
|
|
npm install
|
|
curl -f http://127.0.0.1:9380/api/v1/system/healthz
|
|
```
|
|
|
|
Consulte [Iniciar pelo código-fonte](./docs/develop/launch_ragflow_from_source.md) para detalhes.
|
|
|
|
> **Notas operacionais:** para tornar o ajuste do Elasticsearch permanente, adicione `vm.max_map_count=262144` a `/etc/sysctl.conf`. Com o MySQL padrão, o entrypoint Docker executa a migração antes de iniciar Admin, Syncer, Ingestor e API. No open source 1.0, o DeepDoc usa CPU para layout, OCR e tabelas. Após alterar o Docker, reinicie os serviços e siga o [guia Docker](./docker/README.md) para manter ou remover dados. `download_dev_deps.py` prepara as bibliotecas nativas e `download_deps.py` os modelos e recursos de tokenizadores; ambos são executados via `uv run`. `--migrate` migra e encerra; `--admin` inicia o serviço de administração, `--ingestor` o serviço de ingestão, `--syncer` o serviço de sincronização de fontes de dados externas e `--api` o serviço de API para a interface Web e os SDKs. HTTP 200 indica que a API está pronta.
|
|
|
|
## 📚 Documentação
|
|
|
|
- [Quickstart](https://ragflow.io/docs/dev/)
|
|
- [Configuration](https://ragflow.io/docs/dev/configurations)
|
|
- [Release notes](https://ragflow.io/docs/dev/release_notes)
|
|
- [User guides](https://ragflow.io/docs/category/user-guides)
|
|
- [Developer guides](https://ragflow.io/docs/category/developer-guides)
|
|
- [References](https://ragflow.io/docs/dev/category/references)
|
|
- [FAQs](https://ragflow.io/docs/dev/faq)
|
|
|
|
## 📜 Roadmap
|
|
|
|
Veja o [RAGFlow Roadmap 2026](https://github.com/infiniflow/ragflow/issues/12241)
|
|
|
|
## 🏄 Comunidade
|
|
|
|
- [Discord](https://discord.gg/NjYzJD3GM3)
|
|
- [X](https://x.com/infiniflowai)
|
|
- [GitHub Discussions](https://github.com/orgs/infiniflow/discussions)
|
|
|
|
## 🙌 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](https://ragflow.io/docs/dev/contributing).
|