Introdução
O avanço dos modelos de linguagem tem permitido novas formas de analisar grandes volumes de documentos. Em áreas como economia e finanças, onde relatórios, atas e comunicados são produzidos regularmente, surge a necessidade de transformar textos extensos em informações estruturadas que possam ser consultadas de forma rápida e precisa.
Uma das abordagens mais conhecidas para esse tipo de problema é o RAG (Retrieval-Augmented Generation), que combina recuperação de documentos com modelos de linguagem. Recentemente, uma evolução desse conceito vem ganhando destaque: o GraphRAG, que insere a camada de grafos para representar e explorar as relações entre conceitos, entidades e eventos.
Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.
O que é RAG?
O RAG, sigla para Retrieval-Augmented Generation, é uma técnica que combina mecanismos de busca com modelos de linguagem. A ideia central é enriquecer a capacidade do modelo ao oferecer a ele informações externas, em vez de depender apenas do conhecimento que foi incorporado no treinamento.
O processo ocorre em duas etapas principais. Primeiro, o sistema de recuperação identifica, em uma base de documentos, os trechos mais relevantes para a pergunta do usuário. Essa busca geralmente é feita por meio de embeddings e índices vetoriais, que permitem localizar passagens semanticamente próximas ao enunciado da consulta. Em seguida, o modelo de linguagem utiliza esses trechos como contexto adicional para gerar uma resposta fundamentada.
Esse procedimento resolve uma limitação importante dos modelos de linguagem: a tendência a produzir respostas imprecisas quando não possuem informações atualizadas ou específicas sobre determinado assunto. Com o RAG, a resposta é ancorada em documentos reais, o que aumenta tanto a precisão quanto a transparência do resultado.
O que é GraphRAG?
O GraphRAG, ou Graph-based Retrieval-Augmented Generation, é uma extensão do RAG que adiciona uma camada de estruturação ao processo de recuperação e geração de respostas. Enquanto o RAG tradicional apenas localiza trechos relevantes em documentos e os repassa ao modelo de linguagem, o GraphRAG organiza essas informações em grafos de conhecimento — redes de entidades conectadas por relações semânticas.
Na prática, o sistema não se limita a recuperar fragmentos de texto. Ele identifica entidades (como pessoas, organizações, conceitos, lugares ou indicadores) e mapeia as relações entre elas, como “pertence a”, “influenciou”, “localizado em” ou “relaciona-se com”. Cada nó do grafo representa uma entidade, enquanto cada aresta captura uma interação ou vínculo descrito nos documentos.
Essa estrutura permite que consultas explorem não apenas o que foi dito, mas também como os elementos se relacionam. Diferente do RAG tradicional, que trabalha de forma linear com trechos textuais, o GraphRAG cria uma visão conectada e relacional, possibilitando análises mais ricas, respostas mais contextuais e a descoberta de padrões que não seriam evidentes apenas pela leitura de fragmentos isolados.
Em outras palavras, o GraphRAG amplia a capacidade dos modelos de linguagem de lidar com informações complexas, indo além da simples recuperação de textos para oferecer uma compreensão mais profunda das relações presentes nos dados.
GraphRAG x RAG Tradicional
Embora tanto o RAG quanto o GraphRAG tenham como objetivo aprimorar as respostas dos modelos de linguagem por meio de informações externas, eles diferem na forma como estruturam e utilizam os dados.
O RAG tradicional é muito eficiente para perguntas diretas, pois localiza trechos relevantes em documentos e os fornece como contexto. No entanto, como trabalha de maneira fragmentada, ele não representa explicitamente as conexões entre diferentes conceitos ou eventos. Já o GraphRAG busca superar essa limitação ao transformar os documentos em grafos de conhecimento, nos quais as relações são registradas de forma explícita.
Isso faz com que o GraphRAG seja mais adequado para cenários em que é importante compreender como diferentes informações se conectam, e não apenas recuperar passagens específicas.
Comparação entre RAG e GraphRAG
Aspecto | RAG Tradicional | GraphRAG |
---|---|---|
Estrutura dos dados | Trechos textuais recuperados | Grafos de entidades e relações extraídas |
Tipo de consulta | Perguntas diretas e objetivas | Consultas relacionais e contextuais |
Vantagem principal | Rapidez e simplicidade | Maior profundidade e exploração de conexões |
Limitação | Não representa relações complexas | Requer mais processamento e estruturação inicial |
Em resumo, o RAG é ideal para perguntas simples e factuais, enquanto o GraphRAG é mais apropriado para análises que envolvem múltiplas entidades e suas interdependências.
Como implementar GraphRAG?
A implementação de um sistema de GraphRAG envolve um fluxo em camadas, no qual os documentos originais são progressivamente transformados em uma estrutura de grafo que pode ser consultada de maneira flexível. O processo pode ser resumido em quatro etapas principais:
1. Coleta dos documentos
O ponto de partida é reunir as fontes de informação que serão analisadas. Podem ser relatórios, artigos, registros administrativos ou qualquer conjunto de documentos relevantes. Essa etapa garante a matéria-prima sobre a qual todo o processo será construído.
2. Processamento e extração de entidades
Na segunda etapa, os documentos são analisados por modelos de linguagem que identificam entidades (como pessoas, organizações, conceitos, locais ou indicadores) e as relações entre elas (como “influenciou”, “localizado em”, “relaciona-se com”). Esse passo transforma o texto não estruturado em representações mais organizadas.
3. Construção do grafo
As entidades e relações extraídas formam um grafo de conhecimento, onde cada entidade é um nó e cada relação é uma aresta. Essa estrutura permite que o conhecimento não fique restrito a trechos textuais, mas seja representado em uma rede que captura conexões e interdependências.
4. Consulta e geração de respostas
Com o grafo montado, o sistema pode ser usado para responder perguntas. A diferença é que, em vez de apenas recuperar trechos de texto, o modelo agora pode navegar pelas conexões do grafo, combinando informações de múltiplos documentos e oferecendo respostas mais contextuais e explicativas.
Exemplo com LangChain e Atas do Copom
Para tornar mais concreto o funcionamento do GraphRAG, desenvolvemos um exercício prático a partir das atas do Comitê de Política Monetária (Copom) do Banco Central do Brasil. Essas atas são documentos ricos em conteúdo, pois registram as discussões e justificativas para as decisões sobre a taxa básica de juros, a Selic.
O fluxo começa pela coleta automatizada dos documentos diretamente da API do Banco Central. Esse passo garante que sempre tenhamos as versões mais recentes das atas, armazenadas em formato PDF em um diretório local.
Na etapa seguinte, os documentos são carregados e processados por um modelo de linguagem integrado via LangChain. O diferencial aqui é que, em vez de simplesmente fragmentar o texto em trechos recuperáveis, instruímos o modelo a identificar entidades e relações relevantes para o contexto das atas. Alguns exemplos incluem:
- Entidades: Copom, Banco Central, inflação, atividade econômica, Selic, PIB, câmbio.
- Relações: “foi discutido”, “influenciou”, “decidiu”, “relaciona-se com”.
A partir daí, essas informações são organizadas em um grafo de conhecimento. Cada conceito identificado se torna um nó, e as conexões entre eles formam as arestas. Assim, não temos apenas uma coleção de textos, mas uma rede estruturada que representa como os elementos econômicos discutidos nas atas se interligam.
Com o grafo construído, o próximo passo é criar uma cadeia de perguntas e respostas baseada no grafo (GraphQA). Isso nos permite formular consultas de maior complexidade. Por exemplo, em vez de apenas perguntar qual foi a última decisão sobre a taxa Selic, podemos investigar quais fatores foram mais associados a essa decisão nas atas recentes. O modelo então navega pelo grafo para trazer uma resposta estruturada, que combina múltiplas entidades e relações extraídas dos documentos.
O resultado final é uma ferramenta que vai além da leitura tradicional das atas. Enquanto um sistema de RAG simples devolveria parágrafos onde aparece a palavra “inflação” ou “atividade econômica”, o GraphRAG consegue mostrar como esses conceitos estão relacionados às decisões tomadas pelo Copom. Isso enriquece a análise e permite explorar padrões que dificilmente seriam percebidos apenas pela leitura manual dos documentos.
Quer aprender mais?
Conheça nossa Formação do Zero à Análise de Dados Econômicos e Financeiros usando Python e Inteligência Artificial. Aprenda do ZERO a coletar, tratar, construir modelos e apresentar dados econômicos e financeiros com o uso de Python e IA.
Referências
- Lewis, P., Perez, E., Piktus, A., Petroni, F., Karpukhin, V., Goyal, N., … & Riedel, S. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks.
https://arxiv.org/abs/2005.11401 - LangChain Documentation. (2025). Graph RAG Retriever. LangChain.
https://python.langchain.com/docs/integrations/retrievers/graph_rag/ - Neo4j. (2024). GraphRAG Workflow with LangChain and Neo4j. Neo4j Developer Blog.
https://neo4j.com/blog/developer/neo4j-graphrag-workflow-langchain-langgraph