Catalogue de modèles
- Normative
- Brouillon 1.0
- Mis à jour
- Afficher en Markdown
5.1 Lister les modèles
GET /lmsp/v1/models?capability=chat&ready_only=false
Authorization: Bearer <token>
| Paramètre de requête | Signification |
|---|---|
capability |
Ne renvoie que les modèles qui possèdent la capacité nommée, par exemple chat, embeddings ou tools. |
ready_only |
Si la valeur est true, ne renvoie que les modèles dont le status est ready. Vaut false par défaut. |
{
"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
}
}
]
}
Pour éviter aux clients de récupérer sans cesse le catalogue complet, un service DEVRAIT renvoyer un en-tête ETag, un champ catalog_revision, ou les deux :
catalog_revisionest une chaîne opaque qui change chaque fois que le catalogue change.- Un service qui envoie
ETagDEVRAIT répondre304 Not Modifiedà unIf-None-Matchcorrespondant.
5.2 Objet modèle
| Champ | Signification |
|---|---|
id |
Identifiant stable du modèle, utilisé dans chaque requête qui nomme un modèle. |
object |
Toujours "model". |
display_name |
Nom lisible. L’utilisateur peut le modifier. |
aliases |
Liste facultative de noms alternatifs. Ils sont purement informatifs. |
owned_by |
Provenance du modèle. local pour les modèles installés sur cet appareil. |
family |
Famille du modèle, comme qwen3. |
revision |
Empreinte du contenu du modèle, comme sha256:8f27.... |
status |
État du cycle de vie (section 5.3). |
capabilities |
Indicateurs booléens : chat, completion, embeddings, tools, vision, structured_output et streaming. |
input_modalities, output_modalities |
Les types de contenu que le modèle lit et écrit. text est la seule modalité définie dans la version 1.0. |
context_window |
Nombre maximal de tokens de contexte. |
max_output_tokens |
Nombre maximal de tokens dans une réponse. |
runtime |
backend (par exemple llama.cpp), device (par exemple metal) et load_on_demand. |
error |
Présent lorsque status vaut error. Un objet problème (section 9.3). |
L’id d’un modèle DOIT être stable. L’utilisateur peut modifier le nom d’affichage et les alias ; ils NE DOIVENT PAS servir de clé primaire.
5.3 Cycle de vie du modèle
installed --> loading --> ready --> unloading --> installed
|
+-----> error
| État | Signification |
|---|---|
installed |
Le modèle existe mais n’est pas chargé. |
loading |
De la mémoire est en cours d’allocation ou l’environnement d’exécution s’initialise. |
ready |
Le modèle peut traiter immédiatement des requêtes. |
unloading |
Les ressources sont en cours de libération. |
error |
Le chargement a échoué. L’objet modèle DEVRAIT porter une erreur structurée. |
Une nouvelle demande de chargement fait repasser à loading un modèle à l’état error.
Lorsqu’une requête nomme un modèle à l’état installed dont le runtime.load_on_demand vaut true, le service le charge dans le cadre de la requête. Si le modèle ne peut pas être utilisé immédiatement et n’est pas chargé à la demande, le service répond 409 avec model_not_ready. Si le chargement échoue, l’erreur est model_load_failed.
5.4 Opérations sur les modèles
GET /lmsp/v1/models/{model_id} renvoie un objet modèle. Un identifiant inconnu donne 404 avec model_not_found.
Deux points de terminaison facultatifs contrôlent explicitement le chargement. Ils sont disponibles lorsque la capacité model_management vaut true, et exigent la portée models:manage (section 10.3) :
| Point de terminaison | Comportement |
|---|---|
POST /lmsp/v1/models/{model_id}/load |
Précharge le modèle. Renvoie l’objet modèle avec 202 Accepted lorsque le chargement a commencé, ou 200 lorsqu’il est déjà ready. |
POST /lmsp/v1/models/{model_id}/unload |
Décharge le modèle. Renvoie l’objet modèle. Répéter la requête est sans conséquence. |
Les deux acceptent un Idempotency-Key (section 9.2).