docs
UAEN
Docs/Формати виходу/Графова структура

Графова структура документа

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)