* 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
4.7 KiB
description, i18n_output_hash, i18n_source_hash, i18n_provenance
| description | i18n_output_hash | i18n_source_hash | i18n_provenance |
|---|---|---|---|
| Ekstrak teks dari PDF yang dipindai secara lokal dengan Tesseract bawaan atau runtime RapidOCR opsional dengan akurasi tinggi. | 773cab1835b3 | a19ba25a1ca8 | human |
PDF OCR
Ekstrak teks dari dokumen PDF yang dipindai halaman demi halaman tanpa mengirim PDF ke layanan eksternal. Tingkat fast bawaan menggunakan Tesseract. Tingkat opsional balanced dan best menggunakan RapidOCR dengan model PP-OCR ONNX yang disematkan.
::: info Kompatibilitas OCR bahasa Korea
OCR Cepat mendukung auto, en, de, es, fr, zh, dan ja, tetapi tidak mendukung bahasa Korea (ko). Bahasa Korea memerlukan paket OCR Akurat dan balanced atau best. Paket berjalan pada kontainer resmi Linux amd64 dan arm64, termasuk host NVIDIA dengan OCR tetap memakai CPU. Sistem yang tidak didukung menerima kesalahan kompatibilitas yang jelas dan tidak pernah diam-diam kembali ke fast. Bahasa Korea dengan fast atau alias lama tesseract ditolak sebelum antre dengan FEATURE_INCOMPATIBLE dan fast-korean-unsupported.
:::
API Endpoint
POST /api/v1/tools/pdf/ocr-pdf
Menerima data form multipart berisi file PDF dan sebuah field JSON settings opsional.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| file | file | Ya | - | File PDF (multibagian), hingga 512 MiB dikodekan; batas unggah operator yang lebih rendah masih berlaku |
| quality | string | TIDAK | Dinamis | Tingkat kualitas OCR: fast, balanced, atau best |
| language | string | No | "auto" |
Bahasa dokumen: auto, en, de, fr, es, zh, ja, ko |
| pages | string | No | "all" |
Pemilihan halaman, mis. "all", "1-3", "1,3,5" |
| enhance | boolean | TIDAK | Bergantung pada tingkatan | Tingkatkan kontras lokal sebelum pengenalan. Fast menerapkannya secara langsung; Seimbang dan Terbaik mempertahankan varian hanya jika penilaian yang dikalibrasi meningkatkan hasilnya. Defaultnya adalah true untuk best dan false untuk fast/balanced |
| engine | string | TIDAK | - | Alias kompatibilitas yang tidak digunakan lagi. Gunakan quality sebagai gantinya. tesseract dipetakan ke fast; nilai paddleocr lama dipetakan ke balanced tetapi tidak memuat PaddlePaddle |
Jika quality dan engine tidak diberikan, SnapOtter memilih tingkat terbaik yang tersedia dengan urutan best, balanced, lalu fast. Untuk bahasa Korea, fast tidak pernah dipilih; sistem memakai best, lalu balanced, atau mengembalikan kesalahan instalasi maupun kompatibilitas runtime akurat.
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
Mengembalikan 202 Accepted. Lacak progres melalui SSE di /api/v1/jobs/{jobId}/progress.
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
Notes
- Format input yang diterima:
.pdf. fastsudah terpasang dan menambahkan sekitar 25 MiB ke gambar resmi.balanceddanbestmemerlukan paket OCR opsional yang akurat (sekitar 208-234 MiB untuk diunduh dan 409-488 MiB diinstal, tergantung pada targetnya).- Paket akurat mendukung Linux amd64 dan arm64 dan menggunakan ONNX Runtime di CPU, termasuk pada host NVIDIA.
- Tingkat yang diminta secara eksplisit tidak pernah diturunkan secara diam-diam. Jika
balancedataubesttidak tersedia, API mengembalikan501denganFEATURE_NOT_INSTALLEDatauFEATURE_INCOMPATIBLE. - Halaman PDF diraster pada resolusi tinggi sebelum OCR.
bestmenjalankan model PP-OCRv6 medium dengan akurasi lebih tinggi dan menilai varian orientasi dan peningkatan, meningkatkan pengenalan dengan mengorbankan kecepatan. - Pengaturan bahasa
automemungkinkan pengenalan di seluruh kumpulan skrip yang didukung; petunjuk eksplisit dapat meningkatkan hasil untuk bahasa dokumen yang dikenal. - Anda dapat menargetkan halaman tertentu menggunakan rentang (
"1-3"), daftar yang dipisahkan koma ("1,3,5"), atau"all"untuk setiap halaman. - Permintaan dapat memproses paling banyak 50 halaman. Data awal yang diraster dibatasi pada 512 MiB dan respons agregat UTF-8 OCR dibatasi pada 1.000.000 byte; pekerjaan yang melebihi batas gagal daripada mengembalikan sebagian teks.
- Untuk PDF yang sudah berisi teks yang dapat dipilih, pertimbangkan untuk menggunakan alat PDF to Text yang lebih cepat.