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
+35
View File
@@ -0,0 +1,35 @@
[project]
name = "suya-ocr-api"
version = "0.1.0"
description = "FastAPI OCR service using Surya OCR with vLLM-backed inference."
requires-python = ">=3.10,<4"
dependencies = [
"fastapi==0.115.7",
"uvicorn==0.37.0",
"python-multipart==0.0.20",
"requests==2.32.4",
"PyYAML==6.0.2",
"pillow==10.4.0",
"pydantic==2.11.7",
"pydantic-settings==2.9.1",
"pypdfium2==4.30.0",
"pandas==2.3.0",
"openai>=1.55.0,<2",
"httpx>=0.27.0,<0.28",
"beautifulsoup4>=4.12.0,<5",
"platformdirs==4.3.8",
"filelock==3.18.0",
"python-dotenv==1.1.0",
]
[tool.uv]
package = false
[project.optional-dependencies]
trtllm = [
"flash-linear-attention==0.5.0",
]
[tool.pytest.ini_options]
pythonpath = ["."]
testpaths = ["tests"]