Skip to content

The model catalogue advertises Cohere Embed v3 as text-only, but the gateway accepts and bills images on it #197

Description

@JGoutin

Found while closing #193, and confirmed live against Bedrock in us-east-1.

cohere.embed-english-v3 and cohere.embed-multilingual-v3 embed an image: a 64x64 PNG returns a 1024-dimension vector and image metadata, and reports no input-token count — which is exactly why #193 records input_images for them. The gateway accepts the request because stdapi/routes/cohere_embed.py:96 calls validate_model(request.model, "EMBEDDING") with no input_modality, so the declaration never gates it.

But docs/models/catalog.json publishes both models as ["TEXT"], because that is what AWS's inputModalities declares. So /v1/models, /search_models and the public Models page all say a path does not exist that the gateway serves and bills for.

#193 resolved the immediate contradiction in documentation — a note under the Cohere model table naming the gap, the filter behaviour and the billing consequence — because a catalogue override would have fixed the docs page while /search_models, which that page tells clients to use, kept answering TEXT-only.

The real fix is one place: an _advertised_input_modalities twin of the existing _advertised_output_modalities in stdapi/models/__init__.py, so the model layer corrects AWS's declaration once and every surface agrees.

Ref: stdapi/models/__init__.py (_advertised_output_modalities), stdapi/models/embedding/cohere_embed.py:245-252, .claude/skills/stdapi-model-catalog

Metadata

Metadata

Assignees

No one assigned

    Labels

    api embeddingsEmbeddings and vector store APIsbugSomething isn't workingmodelAI/LLM model specific

    Type

    No type

    Projects

    • Status
      In review

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions