Capítulo 2.9 — GraphRAG e Knowledge Graphs¶
🎯 Objetivo¶
Apresentar GraphRAG como complemento - não substituto - do RAG textual, com critério claro de quando vale a pena pagar o custo de manter um grafo.
🧠 Quando GraphRAG faz sentido¶
- Perguntas multi-hop ("quem aprovou o quê que afeta o quê").
- Compliance relacional (linhagem de decisões, dependência entre contratos, impacto de uma cláusula em outras).
- Investigação (causa raiz, fraude, segurança, auditoria).
- Explicabilidade estrutural (mostrar o "caminho" que ligou A a B).
Quando não faz sentido:
- Corpus pequeno e relativamente plano.
- Perguntas predominantemente "encontre o trecho que fala sobre X".
- Time sem mandato organizacional para curar ontologia.
🧠 Componentes¶
- Knowledge graph. Entidades, relações, propriedades.
- Property graph (Neo4j, openCypher). Modelo pragmático, amplamente usado.
- Ontologia (opcional). RDF/OWL para semântica formal e inferência.
- Construção. NER + relation extraction + curadoria humana. A parte automática é necessária; a parte humana é o que separa um grafo útil de um grafo cheio de ruído.
- Consulta. Cypher, SPARQL ou Gremlin.
- Subgraph summarization. Linearização do subgrafo relevante para enviar ao LLM como contexto.
🧠 Padrões de uso¶
- Hybrid RAG + Graph. RAG textual recupera trechos; o grafo recupera relações; o prompt combina os dois.
- Graph-first para perguntas estruturadas, RAG para perguntas textuais. O roteador decide para onde vai.
- Graph como filtro. O grafo restringe o universo (ex.: "apenas contratos do tenant X assinados após Y"), e o RAG textual entrega o conteúdo.
⚠️ Cuidados¶
- Manter o grafo é caro. Extração automática produz ruído; curadoria é trabalho contínuo.
- Qualidade depende de governança. Sem owner do esquema, o grafo apodrece em meses.
- GraphRAG não substitui RAG textual para a maior parte dos casos; complementa.
- Promessas de "raciocínio simbólico" via grafo ainda não têm base empírica robusta para a maior parte dos casos de produção; trate como heurística de recuperação enriquecida, não como solver.
📚 Referências¶
- Microsoft GraphRAG: https://microsoft.github.io/graphrag/
- Microsoft Research - From Local to Global: A Graph RAG Approach to Query-Focused Summarization: https://arxiv.org/abs/2404.16130
- Neo4j GraphRAG: https://neo4j.com/docs/neo4j-graphrag-python/current/
- Google Cloud - GraphRAG with Spanner Graph: https://docs.cloud.google.com/architecture/gen-ai-graphrag-spanner