Графова структура документа
Rekognita аналізує документ і будує повну графову структуру — ієрархію елементів документа з типами, зв'язками та метаданими. Це унікальна можливість, якої не мають конкуренти.
Що таке граф документа?
На відміну від звичайного OCR, який видає плоский текст, Rekognita повертає структуроване дерево елементів. Кожен елемент (нода) має:
- type — тип елемента (heading, paragraph, table, figure, list тощо)
- content — текстовий вміст
- children — дочірні елементи
- bbox — координати на сторінці (bounding box)
- metadata — додаткові метадані (рівень заголовка, номер таблиці тощо)
Приклад відповіді
{
"document": {
"id": "doc_abc123",
"pages": 2,
"root": {
"type": "document",
"children": [
{
"type": "heading",
"level": 1,
"content": "Quarterly Financial Report",
"bbox": [72, 45, 540, 75],
"page": 1
},
{
"type": "paragraph",
"content": "This report summarizes the financial...",
"bbox": [72, 90, 540, 130],
"page": 1
},
{
"type": "table",
"caption": "Revenue by Quarter",
"bbox": [72, 150, 540, 320],
"page": 1,
"children": [
{
"type": "table_header",
"cells": ["Quarter", "Revenue", "Expenses", "Profit"]
},
{
"type": "table_row",
"cells": ["Q1", "$2.4M", "$1.8M", "$600K"]
},
{
"type": "table_row",
"cells": ["Q2", "$3.1M", "$2.1M", "$1.0M"]
}
]
},
{
"type": "figure",
"caption": "Revenue Growth Chart",
"bbox": [72, 340, 540, 520],
"page": 1,
"image_url": "/api/v1/documents/doc_abc123/images/fig_1.png"
},
{
"type": "section",
"heading": "Notes",
"children": [
{
"type": "list",
"ordered": false,
"items": [
"Net profit increased by 67% QoQ",
"New product line launched in Q2"
]
}
]
}
]
}
}
}Типи елементів
| Тип | Опис |
|---|---|
document | Кореневий елемент документа |
heading | Заголовок (рівні 1-6) |
paragraph | Текстовий параграф |
table | Таблиця з рядками та комірками |
table_header | Заголовок таблиці |
table_row | Рядок таблиці |
figure | Зображення, діаграма або графік |
list | Нумерований або маркований список |
section | Логічна секція документа |
footnote | Виноска або примітка |
reference | Посилання або цитата |
code_block | Блок коду або формула |
Використання через SDK
from rekognita import RekognitaClient
client = RekognitaClient()
result = client.documents.parse(
file="financial_report.pdf",
output_format="graph",
model="rekognita-accurate"
)
# Обхід графу
for node in result.root.children:
print(f"[{node.type}] {node.content[:50] if node.content else ''}")
if node.type == "table":
for row in node.children:
print(f" Row: {row.cells}")
if node.type == "figure":
print(f" Image: {node.image_url}")
print(f" Caption: {node.caption}")Переваги графової структури
- RAG-ready — ідеальний формат для семантичного чанкінгу та RAG-пайплайнів
- Аудитабельність — кожен елемент має bbox для трасування до оригіналу
- Повнота — усі елементи документа: таблиці, зображення, списки, footnotes
- Конвертація — граф можна конвертувати в будь-який формат (Markdown, HTML, JSON)