Catálogo de modelos
- Normativa
- Borrador 1.0
- Actualizado
- 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 |
Devuelve solo los modelos que tienen la capacidad indicada, por ejemplo chat, embeddings o tools. |
ready_only |
Si es true, devuelve solo los modelos cuyo status es ready. Por defecto es 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 que los clientes no tengan que obtener el catálogo completo una y otra vez, un servicio DEBERÍA devolver una cabecera ETag, un campo catalog_revision, o ambos:
catalog_revisiones una cadena opaca que cambia cada vez que cambia el catálogo.- Un servicio que envía
ETagDEBERÍA responder con304 Not Modifieda unIf-None-Matchcoincidente.
5.2 Objeto de modelo
| Campo | Significado |
|---|---|
id |
Identificador estable del modelo, usado en toda solicitud que nombra un modelo. |
object |
Siempre "model". |
display_name |
Nombre legible. El usuario puede cambiarlo. |
aliases |
Lista opcional de nombres alternativos. Son solo informativos. |
owned_by |
De dónde procede el modelo. local para los modelos instalados en este dispositivo. |
family |
Familia del modelo, como qwen3. |
revision |
Resumen criptográfico del contenido del modelo, como sha256:8f27.... |
status |
Estado del ciclo de vida (sección 5.3). |
capabilities |
Indicadores booleanos: chat, completion, embeddings, tools, vision, structured_output y streaming. |
input_modalities, output_modalities |
Los tipos de contenido que el modelo lee y escribe. text es la única modalidad definida en 1.0. |
context_window |
Número máximo de tokens de contexto. |
max_output_tokens |
Número máximo de tokens en una respuesta. |
runtime |
backend (por ejemplo llama.cpp), device (por ejemplo metal) y load_on_demand. |
error |
Presente cuando status es error. Un objeto de problema (sección 9.3). |
El id de un modelo DEBE ser estable. El usuario puede cambiar el nombre para mostrar y los alias, así que NO DEBEN usarse como clave primaria.
5.3 Ciclo de vida del modelo
installed --> loading --> ready --> unloading --> installed
|
+-----> error
| Estado | Significado |
|---|---|
installed |
El modelo existe pero no está cargado. |
loading |
Se está asignando memoria o el entorno de ejecución se está inicializando. |
ready |
El modelo puede procesar solicitudes de inmediato. |
unloading |
Se están liberando recursos. |
error |
La carga falló. El objeto de modelo DEBERÍA incluir un error estructurado. |
Una nueva solicitud de carga devuelve a loading un modelo que está en estado error.
Cuando una solicitud nombra un modelo que está installed y su runtime.load_on_demand es true, el servicio lo carga como parte de la solicitud. Si el modelo no puede usarse de inmediato y no se carga bajo demanda, el servicio responde 409 con model_not_ready. Si la carga falla, el error es model_load_failed.
5.4 Operaciones con modelos
GET /lmsp/v1/models/{model_id} devuelve un objeto de modelo. Un id desconocido produce 404 con model_not_found.
Dos endpoints opcionales controlan la carga de forma explícita. Están disponibles cuando la capacidad model_management es true, y requieren el ámbito models:manage (sección 10.3):
| Endpoint | Comportamiento |
|---|---|
POST /lmsp/v1/models/{model_id}/load |
Precarga el modelo. Devuelve el objeto de modelo con 202 Accepted cuando la carga ha comenzado, o 200 cuando ya está ready. |
POST /lmsp/v1/models/{model_id}/unload |
Libera el modelo de la memoria. Devuelve el objeto de modelo. Repetir la solicitud es inocuo. |
Ambos aceptan un Idempotency-Key (sección 9.2).