← Voltar a RAG — Arquitetura de Ingestion e Retrieval
📊 Modelo Canónico
RAG — Arquitetura de Ingestion e RetrievalApresentação
2. Modelo Canónico
Todas as fontes passam por uma representação interna comum antes de ir para qualquer backend (vector DB, SQL, graph).
A. DocumentRecord
Para conteúdo textual (md, txt, pdf, yaml textualizado).
{
"record_id": "doc_security_policy_v3",
"logical_id": "security_policy",
"version": 3,
"content": "...",
"format": "markdown",
"title": "Security Policy",
"source_path": "...",
"checksum": "...",
"valid_from": "...",
"valid_to": null,
"tags": ["policy", "security"]
}
| Campo | Descrição |
|---|---|
record_id | ID único por versão |
logical_id | Identificador estável do documento |
version | Número de versão |
content | Conteúdo normalizado |
format | markdown, text, pdf, etc. |
valid_from / valid_to | Janela de validade temporal |
B. StructuredRecord
Para SQL, CSV e tabelas estruturadas.
{
"record_id": "budget_finance_q1_v2",
"entity_type": "budget",
"logical_id": "budget_finance_q1",
"version": 2,
"fields": {
"team_id": "team_finance",
"quarter": "2026Q1",
"allocated": 120000,
"spent": 115000
},
"valid_from": "...",
"valid_to": null
}
| Campo | Descrição |
|---|---|
record_id | ID único por versão |
entity_type | Tipo de entidade (budget, incident, etc.) |
logical_id | Business key estável |
fields | Campos estruturados |
valid_from / valid_to | Para SCD Type 2 |
C. GraphRecord
Para nós e relações do grafo.
Nó:
{
"record_id": "node_team_finance_v2",
"record_type": "node",
"logical_id": "team_finance",
"version": 2,
"labels": ["Team"],
"properties": {
"name": "Finance",
"budget_owner": true
},
"valid_from": "...",
"valid_to": null
}
Edge:
{
"record_id": "edge_team_owns_service_001_v2",
"record_type": "edge",
"logical_id": "team_finance_owns_billing_api",
"version": 2,
"from_id": "team_finance",
"to_id": "svc_billing_api",
"relation": "TEAM_OWNS_SERVICE",
"properties": {},
"valid_from": "...",
"valid_to": null
}
| Campo | Descrição |
|---|---|
record_type | "node" ou "edge" |
from_id / to_id | Referências para edges |
relation | Tipo de relação |
labels | Labels do nó (Neo4j-style) |
Vantagens do Modelo Canónico
| Vantagem | Explicação |
|---|---|
| Consistência | Mesma semântica em todos os backends |
| Versioning | valid_from / valid_to em todo o lado |
| Change detection | Diff funciona sobre estrutura comum |
| Reprocessamento | Saber exatamente o que reprocessar |
| Auditoria | Linhagem e histórico uniforme |
Zona de prática
Sem perguntas. Clica em Editar para adicionar.