Skip to main content

cmind/modelmanager/v1/model_capabilities.proto

Package: cmind.modelmanager.v1

Enums

ModelType

ModelType is the API surface / task family a model serves — the value clients filter on via GET /v1/models?type=. Exactly one applies; it picks the endpoint the model is invoked through (chat → /v1/chat/completions, embedding → /v1/embeddings, rerank → /v1/rerank, transcription → /v1/audio/transcriptions, image_generation → /v1/images/generations). type describes the API surface, NOT every capability: a vision-capable LLM is still CHAT, with image support expressed via input_modalities. UNSPECIFIED is treated as CHAT by consumers for backward compatibility with models created before this field existed. OCR is the exception to the endpoint rule: OCR models are invoked through /v1/chat/completions like CHAT, but are transcription engines tuned for document extraction, not conversation. The distinct type keeps them out of chat model listings (the bare /v1/models filter defaults to type=chat) and marks them as the intended fill for the RAG vision/OCR role.

ValueNumberDescription
MODEL_TYPE_UNSPECIFIED0
MODEL_TYPE_CHAT1
MODEL_TYPE_EMBEDDING2
MODEL_TYPE_RERANK3
MODEL_TYPE_TRANSCRIPTION4
MODEL_TYPE_IMAGE_GENERATION5
MODEL_TYPE_OCR6

Modality

Modality is a data shape a model consumes or produces. The same value serves both input_modalities and output_modalities; direction is carried by the field, not the value (EMBEDDING is only meaningful as an output).

ValueNumberDescription
MODALITY_UNSPECIFIED0
MODALITY_TEXT1
MODALITY_IMAGE2
MODALITY_AUDIO3
MODALITY_VIDEO4
MODALITY_EMBEDDING5

Messages

ModelCapabilities

ModelCapabilities describes what a model can do, across three independent axes that GET /v1/models filters on (combined with AND): the task type, the input modalities it accepts, and the output modalities it produces. They are separate concepts rather than one flat list so that "exactly one task" stays a structural guarantee and image-in stays distinguishable from image-out.

FieldTypeNumberDescription
typeModelType1type is the API surface / task family. UNSPECIFIED is treated as CHAT by consumers for backward compatibility.
inputModalitiesrepeated Modality2input_modalities are the data shapes the model accepts as input. When empty, consumers assume [TEXT].
outputModalitiesrepeated Modality3output_modalities are the data shapes the model produces. When empty, consumers may derive a default from type (e.g. CHAT → [TEXT]).