Suya OCR API — vLLM-backed, OpenAI-compatible OCR service

FastAPI service wrapping the Surya-OCR-2 model (datalab-to) served through vLLM:
legacy /v1/api/ai/* endpoints, an OpenAI-compatible /v1/chat/completions endpoint,
a coalescing request batcher, a local OCR CLI, Docker packaging, multilingual
example outputs, and quantization/concurrency benchmarks.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Fu Dai
2026-06-17 10:20:02 +04:00
co-authored by Claude Opus 4.8
commit 1a585693be
147 changed files with 13827 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
"""Load the fixed eval-set manifest (one image filename per line)."""
from __future__ import annotations
from pathlib import Path
from typing import List
def load_manifest(manifest_path: Path, image_root: Path) -> List[Path]:
paths: List[Path] = []
for raw in manifest_path.read_text(encoding="utf-8").splitlines():
name = raw.strip()
if not name or name.startswith("#"):
continue
image = image_root / name
if not image.exists():
raise FileNotFoundError(f"manifest image not found: {name} (looked in {image_root})")
paths.append(image)
return paths