JSON Schema — витягування структурованих даних
Визначте JSON-схему, і Rekognita витягне саме ті дані, які вам потрібні — з будь-якого документа. Ідеально для автоматизації обробки інвойсів, медичних записів, контрактів тощо.
Як це працює
- Ви визначаєте JSON-схему з полями, які хочете витягнути
- Rekognita аналізує документ і знаходить відповідні дані
- Повертає структуровані дані у вашому форматі + координати (bounding box) кожного поля
Приклад: Інвойс
Схема
{
"invoice_number": "string",
"date": "string",
"due_date": "string",
"vendor": {
"name": "string",
"address": "string"
},
"total_amount": "number",
"currency": "string",
"line_items": [
{
"description": "string",
"quantity": "number",
"unit_price": "number",
"amount": "number"
}
]
}Результат
{
"data": {
"invoice_number": "INV-2847",
"date": "2024-12-15",
"due_date": "2025-01-14",
"vendor": {
"name": "Acme Corporation",
"address": "123 Business Ave, Suite 400, New York, NY 10001"
},
"total_amount": 848.00,
"currency": "USD",
"line_items": [
{
"description": "Document Processing API — Pro Plan",
"quantity": 1,
"unit_price": 499.00,
"amount": 499.00
},
{
"description": "Additional API calls (10,000)",
"quantity": 10,
"unit_price": 25.00,
"amount": 250.00
}
]
},
"citations": {
"invoice_number": { "page": 1, "bbox": [350, 42, 480, 58] },
"total_amount": { "page": 1, "bbox": [400, 320, 490, 338] }
},
"confidence": 0.97
}SDK
from rekognita import RekognitaClient
client = RekognitaClient()
result = client.documents.extract(
file="invoice.pdf",
schema={
"invoice_number": "string",
"total_amount": "number",
"line_items": [{
"description": "string",
"quantity": "number",
"price": "number"
}]
},
model="rekognita-accurate"
)
print(result.data["invoice_number"]) # "INV-2847"
print(result.data["total_amount"]) # 848.00
print(result.confidence) # 0.97
# Координати кожного поля для аудиту
for field, citation in result.citations.items():
print(f"{field}: page {citation.page}, bbox {citation.bbox}")Підтримувані типи полів
| Тип | Опис | Приклад |
|---|---|---|
string | Текстове значення | "INV-2847" |
number | Числове значення | 848.00 |
boolean | Так/Ні | true |
date | Дата (ISO 8601) | "2024-12-15" |
array | Масив об'єктів | [{...}, {...}] |
object | Вкладений об'єкт | {"name": "...", "address": "..."} |
enum | Одне з визначених значень | "paid" | "pending" | "overdue" |
Citations & Аудит
Кожне витягнуте поле має citation — координати (bounding box) на оригінальній сторінці. Це дозволяє:
- Верифікувати результати візуально
- Будувати аудит-trail для compliance
- Показувати джерело даних користувачам