Modellkatalog

5.1 Modelle auflisten

GET /lmsp/v1/models?capability=chat&ready_only=false
Authorization: Bearer <token>
Abfrageparameter Bedeutung
capability Gibt nur Modelle zurück, die die genannte Fähigkeit haben, zum Beispiel chat, embeddings oder tools.
ready_only Bei true werden nur Modelle zurückgegeben, deren status ready ist. Standardwert ist 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
      }
    }
  ]
}

Damit Clients nicht immer wieder den vollständigen Katalog abrufen müssen, SOLLTE ein Dienst einen ETag-Header, ein Feld catalog_revision oder beides zurückgeben:

  • catalog_revision ist eine opake Zeichenfolge, die sich ändert, sobald sich der Katalog ändert.
  • Ein Dienst, der ETag sendet, SOLLTE auf ein passendes If-None-Match mit 304 Not Modified antworten.

5.2 Modellobjekt

Feld Bedeutung
id Stabile Modellkennung, die in jeder Anfrage verwendet wird, die ein Modell benennt.
object Immer "model".
display_name Menschenlesbarer Name. Der Nutzer kann ihn ändern.
aliases Optionale Liste alternativer Namen. Sie sind rein informativ.
owned_by Woher das Modell stammt. local für auf diesem Gerät installierte Modelle.
family Modellfamilie, etwa qwen3.
revision Digest des Modellinhalts, etwa sha256:8f27....
status Lebenszyklus-Zustand (Abschnitt 5.3).
capabilities Boolesche Schalter: chat, completion, embeddings, tools, vision, structured_output und streaming.
input_modalities, output_modalities Die Arten von Inhalt, die das Modell liest und schreibt. text ist die einzige in 1.0 definierte Modalität.
context_window Maximale Anzahl an Kontext-Tokens.
max_output_tokens Maximale Anzahl an Tokens in einer Antwort.
runtime backend (zum Beispiel llama.cpp), device (zum Beispiel metal) und load_on_demand.
error Vorhanden, wenn status error ist. Ein Problemobjekt (Abschnitt 9.3).

Die id eines Modells MUSS stabil sein. Anzeigename und Aliase kann der Nutzer ändern; sie DÜRFEN NICHT als Primärschlüssel verwendet werden.

5.3 Modell-Lebenszyklus

installed --> loading --> ready --> unloading --> installed
                 |
                 +-----> error
Status Bedeutung
installed Das Modell existiert, ist aber nicht geladen.
loading Speicher wird zugewiesen oder die Laufzeitumgebung wird initialisiert.
ready Das Modell kann Anfragen sofort verarbeiten.
unloading Ressourcen werden freigegeben.
error Das Laden ist fehlgeschlagen. Das Modellobjekt SOLLTE einen strukturierten Fehler enthalten.

Eine neue Ladeanfrage versetzt ein Modell im Zustand error zurück nach loading.

Benennt eine Anfrage ein Modell, das installed ist und dessen runtime.load_on_demand true ist, lädt der Dienst es im Rahmen der Anfrage. Kann das Modell nicht sofort verwendet werden und wird nicht bei Bedarf geladen, antwortet der Dienst mit 409 und model_not_ready. Schlägt das Laden fehl, lautet der Fehler model_load_failed.

5.4 Modelloperationen

GET /lmsp/v1/models/{model_id} gibt ein Modellobjekt zurück. Eine unbekannte ID ergibt 404 mit model_not_found.

Zwei optionale Endpunkte steuern das Laden explizit. Sie sind verfügbar, wenn die Fähigkeit model_management true ist, und erfordern den Scope models:manage (Abschnitt 10.3):

Endpunkt Verhalten
POST /lmsp/v1/models/{model_id}/load Lädt das Modell vorab. Gibt das Modellobjekt mit 202 Accepted zurück, wenn das Laden begonnen hat, oder mit 200, wenn es bereits ready ist.
POST /lmsp/v1/models/{model_id}/unload Entlädt das Modell. Gibt das Modellobjekt zurück. Die Wiederholung der Anfrage ist harmlos.

Beide akzeptieren einen Idempotency-Key (Abschnitt 9.2).