O que é GraphRAG e implementar usando LangChain

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

  1. 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
  2. LangChain Documentation. (2025). Graph RAG Retriever. LangChain.
    https://python.langchain.com/docs/integrations/retrievers/graph_rag/
  3. Neo4j. (2024). GraphRAG Workflow with LangChain and Neo4j. Neo4j Developer Blog.
    https://neo4j.com/blog/developer/neo4j-graphrag-workflow-langchain-langgraph

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

O que é GraphRAG e implementar usando LangChain

GraphRAG é uma técnica de recuperação de informação para LLMs que utiliza grafos de conhecimento para conectar entidades e relações, permitindo estruturar informações complexas presentes em textos. Neste exercício, mostramos como transformar as atas do Copom em um grafo capaz de compreender essas entidades e relações, respondendo a perguntas complexas de forma contextualizada. Com Python e LangChain, todo o processo se torna automatizado, simples e altamente explorável.

Shiny + Agentes de IA: como criar aplicativos web inteligentes

A combinação de interfaces de usuário interativas com o poder dos grandes modelos de linguagem (LLMs) está abrindo um universo de possibilidades. Imagine criar um aplicativo web que não apenas exibe dados, mas também conversa com o usuário, respondendo a perguntas complexas com base em uma base de conhecimento específica. Usando Shiny para Python e ferramentas de IA como as do Google, isso é mais acessível do que nunca.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.