• Stefy Lanza (nextime / spora )'s avatar
    ocr: let a client ask what this install can read pages with (v0.3.10) · 6970e4e1
    Stefy Lanza (nextime / spora ) authored
    Naming an engine an install had not enabled was a 400, and there was no way to
    find out beforehand — the client had to know, or guess and handle the refusal.
    
    GET /v1/ocr/engines answers it from this install's own config: every engine
    with `enabled` and, when it is not, a `reason` that names the setting to
    change (an unaccepted licence is reported as such rather than as merely
    disabled, because that is a different checkbox). Each row also carries `kind`
    — an engine owns its weights, a pipeline drives a model — the `aliases` that
    also resolve to it, and `returns`, so a caller that needs coordinates can see
    that olmOCR has none rather than discovering it in an empty field. The top
    level reports both what the operator wrote as the default and what it resolves
    to.
    
    Where the model runs is deliberately not in the answer. It is configuration,
    it can differ between two requests, and a client that could see it would start
    depending on it. A test asserts the payload mentions no pod, node or address.
    Co-Authored-By: 's avatarClaude Opus 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01PxYHWbCAjjjD7A1rhFKtaW
    6970e4e1
manager.py 29.2 KB