OpenAI- und Ollama-Kompatibilität
- Normativ
- Entwurf 1.0
- Aktualisiert
- Als Markdown anzeigen
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.