Рецепти
Готові приклади інтеграції 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. Детальніше — у розділі Вебхуки.