Skip to content

Add new OCR model profiles and move local runtimes to UV-managed installs - #18

Merged
s-jse merged 28 commits into
mainfrom
wip/new_models
Apr 12, 2026
Merged

Add new OCR model profiles and move local runtimes to UV-managed installs#18
s-jse merged 28 commits into
mainfrom
wip/new_models

Conversation

@s-jse

@s-jse s-jse commented Apr 7, 2026

Copy link
Copy Markdown
Member

Summary

This PR expands Churro’s built-in OCR model coverage while simplifying runtime setup and standardizing the self-hosted serving path.

  • add UV-managed runtime installation via churro-ocr install <target> and slim package extras so heavy local runtimes are installed into the active environment on demand
  • remove the in-process vllm provider and managed vLLM runtime support; document openai-compatible as the supported path for self-hosted servers such as vLLM, and make api_key optional for that backend
  • add built-in profiles/backends for olmOCR (including FP8), datalab-to/chandra-ocr-2, LiquidAI/LFM2.5-VL-1.6B, PaddleOCR-VL-1.5, rednote-hilab/dots.mocr, and deepseek-ai/DeepSeek-OCR-2
  • add model-specific prompt, preprocessing, and postprocessing support for rich OCR outputs, including plain-text extraction plus metadata retention for Chandra HTML and olmOCR YAML/markdown responses
  • harden providers with shared transient-error retries, support for empty OCR responses, stricter pinned-model validation for Mistral, and Hugging Face runtime updates for transformers 5.x
  • retain OCR metadata in benchmark outputs, fix evaluation worker metric initialization, tune benchmark execution/progress behavior, and refresh committed leaderboard results/docs/assets

Breaking Changes

  • provider="vllm" / --backend vllm has been removed. Served local models should now be accessed through provider="openai-compatible" / --backend openai-compatible.
  • managed vLLM runtime installation is no longer part of package extras or runtime tooling
  • Mistral OCR now requires a pinned model ID (mistral-ocr-2505 or mistral-ocr-2512); mistral-ocr-latest is no longer accepted

Docs And Benchmarks

  • update the README, PyPI page, getting started guide, CLI docs, provider guide, and benchmarking docs for the new UV install flow and self-hosted backend guidance
  • refresh benchmark_results.json and the leaderboard UI with model icons plus new benchmark entries/results including dots.mocr, DeepSeek OCR 2, and Gemini 3.1 Pro Preview

s-jse added 28 commits April 5, 2026 22:45
BREAKING CHANGE: The `vllm` OCR provider and `VLLMOptions` are removed. Use a served vLLM runtime through `provider="openai-compatible"` instead.
Remove the repo-managed vLLM install and serve path in favor of external OpenAI-compatible servers.

BREAKING CHANGE: The `vllm` extra, `churro-ocr install vllm`, and `churro-ocr serve-vllm` were removed. Use an external vLLM OpenAI-compatible server with the `openai-compatible` backend instead.
Update the published HF dependency range to `transformers>=5,<6`
and refresh the lockfile accordingly.

Add and align test coverage for the Transformers v5 chat-template
contract and package metadata expectations.
Register the built-in rednote-hilab/dots.mocr profile for both Hugging Face and openai-compatible backends, export the template preset, and cover the integration with provider, CLI, benchmark, and documentation updates.
Record the CHURRO test-set vLLM benchmark entry for rednote-hilab/dots.mocr in benchmark_results.json.
@s-jse s-jse changed the title Wip/new models Add new OCR model profiles and move local runtimes to UV-managed installs Apr 12, 2026
@s-jse
s-jse merged commit 96bee02 into main Apr 12, 2026
2 checks passed
@s-jse
s-jse deleted the wip/new_models branch April 12, 2026 16:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant