OpenAI- und Ollama-Kompatibilität

8.1 OpenAI-kompatible Endpunkte

Ein Dienst SOLLTE neben der LMSP-Schnittstelle eine OpenAI-kompatible Schnittstelle anbieten und sie in interfaces mit kind gleich openai deklarieren. Um bestehende Clients abzudecken, MUSS ein Dienst, der das tut, mindestens diese Endpunkte unter dem Präfix /v1 implementieren:

Endpunkt Hinweise
GET /v1/models Listet die Modelle des LMSP-Katalogs auf. Jede id ist die LMSP-Modell-ID.
POST /v1/chat/completions Chat Completions, mit und ohne Streaming.
POST /v1/responses Die OpenAI-Responses-Form.
POST /v1/embeddings Die LMSP-1.0-Kernschnittstelle hat keinen Embeddings-Endpunkt. Der Adapter stellt diesen Endpunkt direkt bereit, für Modelle, deren capabilities.embeddings true ist.

Diese Endpunkte akzeptieren dieselben Bearer-Tokens wie die LMSP-Schnittstelle. Ein Client, der das OpenAI-Protokoll spricht, setzt das LMSP-Token als seinen API-Schlüssel.

Eine erste Implementierung kann mit /v1/models und /v1/chat/completions beginnen (Seite 12).

8.2 Ollama-kompatible Endpunkte

Ein Dienst SOLLTE auch diese Endpunkte bereitstellen, damit auch für Ollama geschriebene Clients funktionieren:

Endpunkt Hinweise
GET /api/tags Listet die Modelle des LMSP-Katalogs auf.
POST /api/chat Chat.
POST /api/generate Einfache Textgenerierung.

Ein Dienst, der sie bereitstellt, deklariert eine Schnittstelle mit kind gleich ollama.

8.3 Ein Ausführungskern

Die Kompatibilitätsschicht MUSS nur Daten konvertieren. Sie DARF NICHT eine zweite Modellverwaltungslogik anlegen. Eine Anfrage an eine Kompatibilitätsschnittstelle wird auf eine LMSP-Antwort abgebildet, läuft auf demselben Kern und Adapter wie eine native Anfrage und nutzt denselben Modellkatalog und dieselbe Authentifizierung.

OpenAI Chat Completions
          |  Abbildung der Anfrage
          v
     LMSP Response
          |  Backend-Anpassung
          v
llama.cpp / Ollama / vLLM / andere Laufzeitumgebungen

Auf den Endpunkten /v1 und /api SOLLTE ein Dienst Fehler in dem Format melden, das die jeweilige API definiert, damit unveränderte Clients sie auswerten können. Die LMSP-Schnittstelle verwendet immer application/problem+json.

8.4 Grenzen

Die Kompatibilität hat Grenzen, und es lohnt sich, sie klar zu benennen:

  • Ein bestehender OpenAI-kompatibler Client braucht meist nur eine geänderte base_url. Er erhält die LMSP-Erkennung nicht automatisch.
  • Nur Clients, die LMSP unterstützen, können einen Dienst automatisch erkennen, seine detaillierten Fähigkeiten lesen, Ereignisströme fortsetzen und asynchrone Aufgaben verwalten.
  • Kein serverseitiges Protokoll kann einen Client zum Laufen bringen, der sich nicht konfigurieren lässt und nur offizielle Cloud-Adressen akzeptiert.