
Sends each Image to an OCR vision-language model served by a local vLLM sidecar over the OpenAI-compatible chat endpoint, then emits a joined String transcript or per-block regions with Polygon<Double>/Rectangle<Double> bounds and confidence.
OCR document pages from files and post-process the transcript with a text model on the same vLLM capacity.
Pull frames over HTTP, OCR them, and deliver the structured regions.
String transcript, a region consumer pins per-block records with Polygon<Double> or Rectangle<Double> bounds. The bounded arms are filled from the model's layout JSON; a model that returns prose only fills a single page-spanning block.prompt and model_name must agree — the default prompt is the dots.ocr layout-parsing instruction and only a layout-emitting model produces the per-block JSON the bounded arms read; a general vision model needs a plain extraction prompt and supports the String arm only.temperature, max_tokens and timeout_seconds are re-read per page, while model_name, prompt, image_format and jpeg_quality are bound once at startup.image_format.jpeg or image_format.png and base64-embedded into the request, so high resolutions and dense pages inflate payload size and per-call latency.Rebuild against the current pipeml