fix: make OCR portable and reliable across AMD64 and ARM64 (#519)

* 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
This commit is contained in:
SnapOtter
2026-07-15 03:34:24 +08:00
committed by GitHub
parent 58121f205f
commit 991c981529
409 changed files with 67151 additions and 8076 deletions
+20 -5
View File
@@ -1,8 +1,8 @@
---
description: "Eksiksiz REST API başvurusu. Araç uç noktaları, toplu işleme, işlem hatları, dosya kitaplığı, kimlik doğrulama, ekipler ve yönetici işlemleri."
i18n_source_hash: 8646977f7cc9
i18n_provenance: machine
i18n_output_hash: 4ae115bf377e
i18n_source_hash: b89b5df16af5
i18n_provenance: human
---
# REST API Başvurusu {#rest-api-reference}
@@ -178,7 +178,7 @@ Tüm yapay zeka araçları kendi donanımınızda çalışır: varsayılan olara
| `remove-background` | Arka Planı Kaldır | rembg (BiRefNet / U2-Net) | `model`, `backgroundType` (transparent/color/gradient/blur/image), `backgroundColor`, `gradientColor1`, `gradientColor2`, `gradientAngle`, `blurEnabled`, `blurIntensity`, `shadowEnabled`, `shadowOpacity` |
| `upscale` | Görüntü Ölçek Büyütme | RealESRGAN | `scale` (2/4), `model`, `faceEnhance`, `denoise`, `format`, `quality` |
| `erase-object` | Nesne Silici | LaMa (ONNX) | Maske ikinci dosya parçası olarak gönderilir (alan adı `mask`), `format`, `quality` |
| `ocr` | OCR / Metin Çıkarma | PaddleOCR / Tesseract | `quality` (fast/balanced/best), `language`, `enhance` |
| `ocr` | OCR / Metin Çıkarma | Tesseract (hızlı); RapidOCR + PP-OCR ONNX (dengeli/en iyi) | `quality` (hızlı/dengeli/en iyi), `language`, `enhance` |
| `blur-faces` | Yüz / PII Bulanıklaştırma | MediaPipe | `blurRadius`, `sensitivity` |
| `smart-crop` | Akıllı Kırpma | MediaPipe + Sharp | `mode` (subject/face/trim), `strategy` (attention/entropy), `width`, `height`, `padding`, `facePreset` (closeup/head-shoulders/upper-body/half-body), `sensitivity`, `threshold`, `padToSquare`, `padColor`, `targetSize`, `quality` |
| `image-enhancement` | Görüntü İyileştirme | Analiz tabanlı | `mode` (auto/exposure/contrast/color/sharpness), `strength` |
@@ -425,7 +425,9 @@ Bazı araçlar standart `POST /api/v1/tools/<section>/<toolId>` dışında ek u
## Toplu İşleme {#batch-processing}
Toplu işlem etkin genel bir aracı bir kerede birden çok dosyaya uygulayın. Bir ZIP arşivi döndürür. PDF imzalama, PDF OCR ve PDF'den görüntüye ön ayar yolları gibi özel çok dosyalı veya çok adımlı yollar, genel `/batch` yolu yerine kendi uç nokta sözleşmelerini kullanır.
Toplu işlem etkin genel bir aracı bir kerede birden çok dosyaya uygulayın. Bir ZIP arşivi döndürür. PDF imzalama ve PDF'den görüntüye ön ayar yolları gibi özel çok dosyalı veya çok adımlı yollar, genel `/batch` yolu yerine kendi uç nokta sözleşmelerini kullanır.
`ocr-pdf` aracı bu genel `/batch` yolunu destekler.
```bash
curl -X POST http://localhost:1349/api/v1/tools/image/compress/batch \
@@ -594,6 +596,8 @@ Sorgu parametreleri:
Yapay zeka özellik paketlerini yönetin (Docker ortamında yapay zeka modeli paketlerini kurun/kaldırın). Özel otomasyondan bir aracı etkinleştirirken araç düzeyindeki kurulum uç noktasını tercih edin: bazı yapay zeka araçları birden fazla paylaşılan pakete ihtiyaç duyar ve bu uç nokta zaten kurulu paketleri atlarken yalnızca eksik olanları kuyruğa alır.
OCR, katı bir bağımlılık yerine isteğe bağlı bir geliştirmedir. `fast` Tesseract katmanı paket olmadan çalışır; `POST /api/v1/admin/features/ocr/install`, `balanced` ve `best` için imzalı RapidOCR paketini Linux amd64 veya arm64 üzerine yükler. Doğru OCR çalışma zamanı, yalnızca CPU ve NVIDIA ana bilgisayarlarında CPU kullanır ve en az 4 GiB etkin bellek gerektirir (yapılandırılmış kapsayıcı cgroup sınırı, aksi takdirde ana bilgisayar belleği). SnapOtter, `requiredMemoryBytes`, `effectiveMemoryBytes` ve `insufficient-memory` uyumluluk nedenini bildirir ve indirmeden önce uyumsuz bir yüklemeyi reddeder. Bu bellek gereksinimi `fast` için geçerli değildir. Paket, hedefe bağlı olarak yaklaşık 208-234 MiB indirilebilir ve 409-488 MiB kuruludur; imzalı dizin, yükleme sırasında uygulanan tam boyutları bağlar.
| Yöntem | Yol | Erişim | Açıklama |
|--------|------|--------|-------------|
| `GET` | `/api/v1/features` | Kimlik doğrulamalı | Tüm özellik paketlerini ve kurulum durumlarını listele |
@@ -601,7 +605,18 @@ Yapay zeka özellik paketlerini yönetin (Docker ortamında yapay zeka modeli pa
| `POST` | `/api/v1/admin/tools/:toolId/features/install` | Yönetici (`features:manage`) | Bir aracın gerektirdiği her paketi kur; paket başına kuyruğa alınan/atlanan durumu döndürür |
| `POST` | `/api/v1/admin/features/:bundleId/uninstall` | Yönetici (`features:manage`) | Bir özellik paketini kaldır ve model dosyalarını temizle |
| `GET` | `/api/v1/admin/features/disk-usage` | Yönetici (`features:manage`) | Yapay zeka modellerinin toplam disk kullanımını al |
| `POST` | `/api/v1/admin/features/import` | Yönetici (`features:manage`) | Çevrimdışı bir yapay zeka paket arşivini içe aktar |
| `POST` | `/api/v1/admin/features/import` | Yönetici (`features:manage`) | Eski bir AI paketini (`file`) veya imzalı bir çevrimdışı OCR sürümünü (`index` artı `archive`) içe aktarın |
Hava boşluklu bir OCR içe aktarımı, sürümün imzalı `ocr-runtime-index.json`'sini ve eşleşen platform arşivini içermelidir. SnapOtter, çevrimiçi kurulumda kullanılan aynı Ed25519 imzasını, yapay karma değerini, uyumluluğu, çıkarma ve duman testi kontrollerini uygular:
```bash
curl -X POST http://localhost:1349/api/v1/admin/features/import \
-H "Authorization: Bearer <admin-token>" \
-F "index=@ocr-runtime-index.json" \
-F "archive=@ocr-linux-amd64-cpu-py312.tar.gz"
```
arm64'de `linux-arm64-cpu-py311` arşivini kullanın. Başka bir hedef için imzalanmış bir yapıt yüklenmek yerine reddedilir.
## Yönetici İşlemleri {#admin-operations}