Catálogo de modelos
- Normativa
- Rascunho 1.0
- Atualizado em
- Ver como Markdown
5.1 Listar modelos
GET /lmsp/v1/models?capability=chat&ready_only=false
Authorization: Bearer <token>
| Parâmetro de consulta | Significado |
|---|---|
capability |
Retorna apenas os modelos que têm a capacidade informada, por exemplo chat, embeddings ou tools. |
ready_only |
Quando true, retorna apenas os modelos cujo status é ready. O padrão é false. |
{
"object": "list",
"catalog_revision": "42",
"data": [
{
"id": "qwen3:14b-q4_k_m",
"object": "model",
"display_name": "Qwen3 14B Q4_K_M",
"owned_by": "local",
"family": "qwen3",
"revision": "sha256:8f27c1a4e9b05d36f2a7c8e1b4d90a63c5e2f7b8a1d4c9e60b3f5a7d2c8e1b04",
"status": "ready",
"capabilities": {
"chat": true,
"completion": true,
"embeddings": false,
"tools": true,
"vision": false,
"structured_output": true,
"streaming": true
},
"input_modalities": ["text"],
"output_modalities": ["text"],
"context_window": 32768,
"max_output_tokens": 8192,
"runtime": {
"backend": "llama.cpp",
"device": "metal",
"load_on_demand": true
}
}
]
}
Para poupar os clientes de buscar o catálogo completo repetidamente, um serviço DEVERIA retornar um cabeçalho ETag, um campo catalog_revision, ou ambos:
catalog_revisioné uma string opaca que muda sempre que o catálogo muda.- Um serviço que envia
ETagDEVERIA responder a umIf-None-Matchcorrespondente com304 Not Modified.
5.2 Objeto de modelo
| Campo | Significado |
|---|---|
id |
Identificador estável do modelo, usado em toda requisição que nomeia um modelo. |
object |
Sempre "model". |
display_name |
Nome legível. O usuário pode alterá-lo. |
aliases |
Lista opcional de nomes alternativos. São apenas informativos. |
owned_by |
De onde vem o modelo. local para modelos instalados neste dispositivo. |
family |
Família do modelo, como qwen3. |
revision |
Digest do conteúdo do modelo, como sha256:8f27.... |
status |
Estado do ciclo de vida (seção 5.3). |
capabilities |
Flags booleanas: chat, completion, embeddings, tools, vision, structured_output e streaming. |
input_modalities, output_modalities |
Os tipos de conteúdo que o modelo lê e escreve. text é a única modalidade definida na 1.0. |
context_window |
Número máximo de tokens de contexto. |
max_output_tokens |
Número máximo de tokens em uma resposta. |
runtime |
backend (por exemplo llama.cpp), device (por exemplo metal) e load_on_demand. |
error |
Presente quando status é error. Um objeto de problema (seção 9.3). |
O id de um modelo DEVE ser estável. O nome de exibição e os aliases podem ser alterados pelo usuário, portanto NÃO DEVEM ser usados como chave primária.
5.3 Ciclo de vida do modelo
installed --> loading --> ready --> unloading --> installed
|
+-----> error
| Status | Significado |
|---|---|
installed |
O modelo existe, mas não está carregado. |
loading |
A memória está sendo alocada ou o ambiente de execução está sendo inicializado. |
ready |
O modelo pode processar requisições imediatamente. |
unloading |
Os recursos estão sendo liberados. |
error |
O carregamento falhou. O objeto de modelo DEVERIA carregar um erro estruturado. |
Uma nova requisição de carregamento move um modelo no estado error de volta para loading.
Quando uma requisição nomeia um modelo que está installed e cujo runtime.load_on_demand é true, o serviço o carrega como parte da requisição. Se o modelo não puder ser usado imediatamente e não for carregado sob demanda, o serviço responde 409 com model_not_ready. Se o carregamento falhar, o erro é model_load_failed.
5.4 Operações com modelos
GET /lmsp/v1/models/{model_id} retorna um objeto de modelo. Um ID desconhecido resulta em 404 com model_not_found.
Dois endpoints opcionais controlam o carregamento explicitamente. Eles estão disponíveis quando a capacidade model_management é true e exigem o escopo models:manage (seção 10.3):
| Endpoint | Comportamento |
|---|---|
POST /lmsp/v1/models/{model_id}/load |
Pré-carrega o modelo. Retorna o objeto de modelo com 202 Accepted quando o carregamento começou, ou 200 quando ele já está ready. |
POST /lmsp/v1/models/{model_id}/unload |
Descarrega o modelo. Retorna o objeto de modelo. Repetir a requisição é inofensivo. |
Ambos aceitam um Idempotency-Key (seção 9.2).