• Stefy Lanza (nextime / spora )'s avatar
    answer to the name the catalogue publishes (v0.5.7) · c010da23
    Stefy Lanza (nextime / spora ) authored
    A whisper-server model could not be used by the id /v1/models advertises for
    it. Asking for it reported the weights as a missing HuggingFace repository:
    
        500 Transcription error: whisper-large-v3-turbo-q8_0.bin is not a local
        folder and is not a valid model identifier listed on
        'https://huggingface.co/models'
    
    which reads like a broken download and is nothing of the kind. One
    whisper-server is described by TWO models.json rows: a RUNNER, carrying
    model_path + server_path + port, registered under its id (whisper0..whisper3
    here); and a MODEL row naming the weights, which registration skips on purpose
    as "the model config, not a runner". But /v1/models takes its id from the model
    row -- so the published name was the one name that matched nothing: not a
    runner key, not an alias. The lookup missed, and the request fell through to
    the generic audio path, which can only interpret a string it does not
    recognise as a hub repo id.
    
    Now every name that identifies the same runner resolves to it: its own id, an
    alias (round-robin as before), and the weights by full path, basename, or
    basename without extension. Where several runners share one file, naming the
    file prefers an idle one, so it balances the way an alias does instead of
    always landing on whichever registered first.
    
    This is the third defect in one week with the same shape -- a name in
    models.json not matching the name the runtime registered. v0.5.4 read a
    backend from the runtime map instead of the file that declares it; v0.5.5
    looked for a binary in a directory that does not exist; this one publishes an
    id it cannot resolve. The pattern is worth an audit of its own.
    
    Also pins a rule on the VRAM estimator that it already followed in most places
    and now cannot lose: an estimate of zero means NOTHING WAS MEASURED, never
    "measured as needing nothing". A stored zero was already read as absent; v0.5.6
    stopped a configured zero from claiming authority over a real measurement; the
    two tests added here also cover a zero arriving with force_vram_update, which
    is the one flag that makes a measurement beat the operator's own number.
    Co-Authored-By: 's avatarClaude Opus 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01S8LAP3ueNzQJtwzhgVbq66
    c010da23
test_whisper_server_id_routing.py 3.35 KB