docs
UAEN
Docs/Рецепти

Рецепти

Готові приклади інтеграції Rekognita для типових задач. Кожен рецепт містить повний код, який ви можете скопіювати та адаптувати під свій проєкт.

Масове розпізнавання документів

Якщо вам потрібно обробити велику кількість документів — використовуйте пакетну відправку з паралельними запитами:

import asyncio
from rekognita import AsyncClient

async def process_batch(files: list[str]):
    client = AsyncClient(api_key="YOUR_API_KEY")

    tasks = [
        client.documents.create(
            file=open(f, "rb"),
            language="uk"
        )
        for f in files
    ]
    results = await asyncio.gather(*tasks)
    
    for r in results:
        print(f"{r.id}: {r.status}")

asyncio.run(process_batch([
    "invoice_1.pdf",
    "invoice_2.pdf",
    "invoice_3.pdf",
]))
Порада: Обмежуйте паралельність до 10 запитів одночасно, щоб не перевищити rate limit.

Інтеграція з Google Sheets

Автоматично записуйте результати розпізнавання у Google Таблицю через Google Sheets API:

const { Rekognita } = require('@rekognita/sdk');
const { google } = require('googleapis');

const rekognita = new Rekognita({ apiKey: process.env.REKOGNITA_API_KEY });

// 1. Розпізнати документ
const doc = await rekognita.documents.create({
  file: fs.createReadStream('receipt.jpg'),
  language: 'uk',
});

// 2. Дочекатись результату
const result = await rekognita.documents.waitForResult(doc.id);

// 3. Записати у Google Sheets
const sheets = google.sheets({ version: 'v4', auth });
await sheets.spreadsheets.values.append({
  spreadsheetId: 'YOUR_SHEET_ID',
  range: 'A:C',
  valueInputOption: 'RAW',
  requestBody: {
    values: [[result.text, result.confidence, new Date().toISOString()]]
  }
});

Webhook обробка з Express

Налаштуйте сервер для отримання результатів через вебхуки:

const express = require('express');
const app = express();

app.use(express.json());

app.post('/webhooks/rekognita', (req, res) => {
  const { document_id, status, result } = req.body;
  
  if (status === 'completed') {
    console.log(`Document ${document_id} processed!`);
    console.log(`Text: ${result.text}`);
    console.log(`Confidence: ${result.confidence}`);
    
    // Збережіть результат у вашу базу даних
    // await db.documents.update(document_id, { text: result.text });
  }
  
  res.sendStatus(200);
});

app.listen(3000);
Не забудьте вказати URL вашого вебхука при створенні документа через параметр webhook_url. Детальніше — у розділі Вебхуки.