* 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.8 KiB
description, i18n_output_hash, i18n_source_hash, i18n_provenance
| description | i18n_output_hash | i18n_source_hash | i18n_provenance |
|---|---|---|---|
| Извлекайте текст из отсканированных PDF-файлов локально с помощью встроенного Tesseract или дополнительной высокоточной среды выполнения RapidOCR. | 2fdf67eb542c | 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 form с PDF-файлом и необязательным JSON-полем settings.
Parameters
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
| file | file | Да | - | Файл PDF (многочастный), закодированный до 512 MiB; по-прежнему действует более низкий лимит загрузки оператора |
| quality | string | Нет | Динамический | Уровень качества OCR: fast, balanced или best. |
| language | string | Нет | "auto" |
Язык документа: auto, en, de, fr, es, zh, ja, ko |
| pages | string | Нет | "all" |
Выбор страниц, например "all", "1-3", "1,3,5" |
| enhance | boolean | Нет | Зависит от уровня | Улучшите локальный контраст перед распознаванием. Fast применяет его напрямую; Сбалансированный и Лучший сохраняют вариант только в том случае, если калиброванная оценка улучшает результат. По умолчанию 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, а совокупный ответ OCR UTF-8 ограничен 1 000 000 байт; задания превышения лимита завершаются неудачей, а не возвращают частичный текст.
- Для PDF, которые уже содержат выделяемый текст, рассмотрите использование более быстрого инструмента PDF to Text.