* fix: make OCR portable and reliable * fix: harden OCR installation portability * fix: pin OCR partials across downloads * fix: make OCR execution reliably asynchronous * fix: harden OCR portability and docs routes * fix: preserve decoder and docs safeguards
6.7 KiB
description, i18n_output_hash, i18n_source_hash, i18n_provenance
| description | i18n_output_hash | i18n_source_hash | i18n_provenance |
|---|---|---|---|
| Витягуйте текст зі сканованих PDF-файлів локально за допомогою вбудованого Tesseract або додаткового високоточного середовища виконання RapidOCR. | 8bee2f949f3f | a19ba25a1ca8 | human |
PDF OCR
Витягуйте текст зі сканованих документів PDF сторінка за сторінкою, не надсилаючи PDF до зовнішньої служби. Вбудований рівень fast використовує Tesseract. Додаткові рівні balanced і best використовують RapidOCR із закріпленими моделями PP-OCR ONNX.
::: info Сумісність OCR для корейської мови
Швидкий OCR підтримує auto, en, de, es, fr, zh і ja, але не корейську мову (ko). Для корейської потрібен пакет точного OCR і рівень balanced або best. Пакет працює в офіційних контейнерах Linux amd64 і arm64, зокрема на вузлах NVIDIA, де OCR і далі виконується на CPU. Непідтримувані системи отримують явну помилку сумісності без прихованого переходу на fast. Корейська з fast або застарілим псевдонімом tesseract відхиляється до постановки в чергу з FEATURE_INCOMPATIBLE і fast-korean-unsupported.
:::
API Endpoint
POST /api/v1/tools/pdf/ocr-pdf
Приймає багаточастинні (multipart) дані форми з файлом PDF та необов'язковим полем JSON settings.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| file | file | так | - | Файл PDF (багатокомпонентний), закодований до 512 MiB; все ще застосовується нижчий ліміт завантаження оператора |
| quality | string | немає | Динамічний | Рівень якості OCR: fast, balanced або best |
| language | string | No | "auto" |
Мова документа: auto, en, de, fr, es, zh, ja, ko |
| pages | string | No | "all" |
Вибір сторінок, наприклад "all", "1-3", "1,3,5" |
| enhance | boolean | немає | Залежно від рівня | Покращте локальний контраст перед розпізнаванням. Fast застосовує його безпосередньо; Balanced і Best зберігають варіант лише тоді, коли відкалібрована оцінка покращує результат. За замовчуванням true для best і false для fast/balanced |
| engine | string | немає | - | Застарілий псевдонім сумісності. Натомість використовуйте quality. tesseract відображається на fast; застаріле значення paddleocr відображається на balanced, але не завантажує PaddlePaddle |
Якщо quality і engine не задано, SnapOtter вибирає найкращий доступний рівень у порядку best, balanced, fast. Для корейської мови fast ніколи не вибирається: використовується best, потім balanced, або повертається помилка встановлення чи сумісності точного середовища виконання.
Example Request
curl -X POST http://localhost:1349/api/v1/tools/pdf/ocr-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@scanned.pdf" \
-F 'settings={"quality": "best", "language": "en", "pages": "1-5", "enhance": true}'
Example Response
Повертає 202 Accepted. Відстежуйте перебіг через SSE за адресою /api/v1/jobs/{jobId}/progress.
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
Notes
- Прийнятний формат вхідних даних:
.pdf. fastвбудований і додає близько 25 MiB до офіційного образу. Дляbalancedіbestпотрібен додатковий точний пакет OCR (приблизно 208-234 MiB для завантаження та 409-488 MiB для встановлення, залежно від цілі).- Точний пакет підтримує Linux amd64 і arm64 і використовує ONNX Runtime на CPU, в тому числі на хостах NVIDIA.
- Явно запитаний рівень ніколи мовчки не знижується. Якщо
balancedабоbestнедоступні, API повертає501ізFEATURE_NOT_INSTALLEDабоFEATURE_INCOMPATIBLE. - Сторінки PDF растеризуються у високій роздільній здатності перед OCR.
bestзапускає високоточні моделі PP-OCRv6 із середньою точністю та оцінює орієнтацію та варіанти покращення, покращуючи розпізнавання за рахунок швидкості. - Налаштування мови
autoдозволяє розпізнавати підтримуваний набір сценаріїв; явна підказка може покращити результати для відомої мови документа. - Ви можете націлюватися на конкретні сторінки за допомогою діапазонів (
"1-3"), списків через кому ("1,3,5") або"all"для кожної сторінки. - Запит може обробити не більше 50 сторінок. Обсяг растеризованих скретч-даних – 512 MiB, а сукупна відповідь UTF-8 OCR – 1 000 000 байт; надліміт завдань не виконується, а не повертає частковий текст.
- Для PDF, які вже містять текст із можливістю виділення, розгляньте використання швидшого інструмента PDF to Text.