Transport und Betrieb

2.1 Standardbetrieb

Ein Dienst MUSS standardmäßig auf den Loopback-Adressen 127.0.0.1 und ::1 lauschen. Der übliche Port ist 17832, wodurch die Standard-Basisadresse http://127.0.0.1:17832 lautet.

Eintrag Wert
Lauschadressen 127.0.0.1 und ::1
Transport HTTP/1.1 oder HTTP/2 mit JSON
Streaming Server-Sent Events, Content-Type: text/event-stream
Präfix der Kernschnittstelle /lmsp/v1
OpenAI-kompatibles Präfix /v1
Dienstbeschreibung GET /.well-known/lmsp.json
Maschinenlesbarer Vertrag GET /lmsp/v1/openapi.json
Optionaler lokaler Kanal Unix-Domain-Socket oder Windows Named Pipe

Anfragen und Antworten verwenden JSON in UTF-8 (Content-Type: application/json), außer Streams (text/event-stream) und Fehlern (application/problem+json). Zeitstempel sind ganze Zahlen: Sekunden seit der Unix-Epoche. Bezeichner sind opake Zeichenfolgen; ein Typpräfix wie resp_ oder task_ ist EMPFOHLEN.

Der Schnittstellenvertrag ist ein OpenAPI-3.2-Dokument. OpenAPI 3.2 kann Server-Sent Events, JSON Lines und JSON Sequences beschreiben, sodass die Streaming-Endpunkte im selben Dokument wie alles andere spezifiziert werden. Der Vertrag für diese Version ist unter /lmsp/1.0/openapi.json veröffentlicht.

Ein Dienst KANN außerdem Verbindungen über einen Unix-Domain-Socket oder eine Windows Named Pipe mit derselben HTTP-Semantik annehmen. In 1.0 bleibt es Erweiterungen überlassen, wie solche Endpunkte bekannt gemacht werden.

2.2 Dauerbetrieb

Ein Dienst SOLLTE vom Betriebssystem gehostet werden: launchd unter macOS, systemd unter Linux und der Windows-Dienstmanager unter Windows.

Der Dienstprozess und die Modellprozesse SOLLTEN getrennt sein. Ein Modellabsturz SOLLTE nur die Aufgaben betreffen, die dieses Modell verwenden. Er SOLLTE NICHT die Diensterkennung, den Modellkatalog oder Abfragen zu früheren Aufgaben unverfügbar machen.