O RAG-Anything é um sistema de recuperação multimodal desenvolvido pelo grupo HKUDS que expande o conceito tradicional de Retrieval-Augmented Generation (RAG) para muito além do texto. Em vez de indexar apenas parágrafos, ele processa simultaneamente texto, tabelas, equações LaTeX e imagens — representando cada modalidade como blocos estruturados que podem ser consultados por meio de diferentes estratégias de busca.
Neste tutorial, acompanhamos a construção de um pipeline completo de RAG multimodal no Google Colab, desde a instalação das dependências até a execução de consultas híbridas que cruzam diferentes tipos de conteúdo. O notebook é prático, autocontido e seguro: a chave da API da OpenAI é capturada em tempo de execução com getpass, sem exposição acidental.
O que torna o RAG-Anything diferente
Sistemas RAG convencionais operam exclusivamente sobre texto. Mas documentos do mundo real contêm tabelas com dados estruturados, fórmulas matemáticas, gráficos e figuras — informação que se perde quando extraímos apenas o texto bruto. O RAG-Anything resolve isso ao tratar cada tipo de conteúdo como um bloco independente com metadados próprios (legendas, notas de rodapé, índice de página e caminho de imagem), permitindo que o mesmo motor de recuperação consulte todas as modalidades simultaneamente.
O sistema implementa quatro modos de recuperação:
- Naive: busca textual simples sem contexto multimodal
- Local: foco em evidências pontuais dentro de cada bloco
- Global: considera o contexto mais amplo do documento
- Híbrido: combina evidências de diferentes modalidades para responder perguntas que exigem raciocínio cruzado
Passo a passo do pipeline
1. Configuração do ambiente
O tutorial começa com a instalação do pacote raganything[image,text] e suas dependências, incluindo Pillow (com correção de versão para compatibilidade), OpenAI, ReportLab, Pandas e Matplotlib. Um helper run_shell() reutilizável mantém o código limpo e fácil de reexecutar.
2. Estrutura de diretórios e API key
Em seguida, preparamos os diretórios de trabalho, logs e variáveis de ambiente. A chave da API OpenAI é capturada via getpass.getpass() — entrada oculta que evita vazamento acidental da chave no histórico do notebook. Testamos as chamadas de chat e embedding para confirmar que tudo funciona antes de prosseguir. O tutorial usa gpt-4o-mini para chat, gpt-4o para visão e text-embedding-3-small com dimensão 1536 para embeddings.
3. Relatório multimodal sintético
Para demonstrar o sistema de forma controlada, geramos um relatório sintético com dados realistas: uma tabela de desempenho, um gráfico de barras e um PDF contendo texto, tabela, equação e figura. Esse artefato serve como corpus de teste onde podemos observar exatamente como o RAG-Anything processa cada tipo de conteúdo.
4. Conversão para content_list
O conteúdo do relatório é convertido para o formato content_list do RAG-Anything — uma estrutura JSON que representa texto, tabelas (em markdown), equações (em LaTeX) e imagens como blocos separados, cada um com caption, footnotes, page_index e caminho de imagem. Essa representação torna o fluxo transparente e reutilizável.
5. Integração com OpenAI e LightRAG
Definimos funções limpas para geração de texto (openai_chat_completion), visão (openai_vision_completion) e embeddings. A função de embedding é encapsulada com a classe EmbeddingFunc do LightRAG, que o RAG-Anything utiliza durante a indexação e recuperação. O design mantém as funções autocontidas — cada uma recebe seus parâmetros explicitamente, sem dependências ocultas.
6. Inicialização e consultas híbridas
Inicializamos o RAG-Anything com o diretório de trabalho, configurações de parser e opções multimodais ativadas. Após inserir a content_list, deixamos o sistema processar todos os blocos. Em seguida, executamos consultas nos modos naive, local, global e híbrido, comparando como cada estratégia responde a perguntas que exigem fatos diretos, contexto amplo ou raciocínio entre modalidades.
Por que isso importa
À medida que os sistemas RAG evoluem para atender aplicações empresariais, científicas e jurídicas, a capacidade de processar documentos multimodais — relatórios financeiros com tabelas e gráficos, artigos acadêmicos com equações, documentação técnica com diagramas — deixa de ser um diferencial e passa a ser requisito. O RAG-Anything mostra um caminho viável usando ferramentas que qualquer desenvolvedor pode executar no Colab.
O tutorial também serve como referência de arquitetura: a separação entre parsing de conteúdo, representação multimodal e estratégias de consulta é clara e adaptável a outros projetos. O código completo está disponível no GitHub da MarkTechPost, e o repositório oficial do RAG-Anything está em github.com/HKUDS/RAG-Anything.
Descubra mais sobre noticiAI
Assine para receber nossas notícias mais recentes por e-mail.



