Was ist eine OpenAI-kompatible API?

Viele LLM-Anbieter und selbst gehostete Inferenzserver – OpenAI selbst, Azure OpenAI, Groq, OpenRouter, Together AI, Mistral, DeepSeek, vLLM, der Server von llama.cpp, LM Studio und der OpenAI-kompatible Modus von Ollama – stellen dieselbe von OpenAI populär gemachte REST-Schnittstelle bereit: JSON-Anfragen an Endpunkte wie /v1/chat/completions, authentifiziert mit einem Bearer-Token im Authorization-Header. Dadurch können Sie Anbieter austauschen, ohne Ihren Integrationscode neu schreiben zu müssen.

Einen korrekten cURL-Befehl für diese Endpunkte manuell zu erstellen bedeutet, URL, Header und JSON-Body exakt richtig anzugeben – insbesondere beim Anpassen von Sampling-Parametern wie Temperatur und Penalties oder beim Wechsel zwischen Anfragen für Chats, Legacy-Completions und Embeddings.

Toolbeschreibung

Dieses Tool generiert sofort einsatzbereite cURL-Befehle für jede OpenAI-kompatible API. Legen Sie Basis-URL, Endpunkt, Modell und Parameter fest und erhalten Sie sofort einen korrekt formatierten cURL-Befehl, den Sie direkt in Ihr Terminal oder Ihre Skripte einfügen können.

Beispiele

Chat-Completion:

curl -X POST "https://api.openai.com/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer IHR_API_SCHLÜSSEL" \
  -d '{
  "model": "gpt-4o-mini",
  "messages": [
    { "role": "system", "content": "Sie sind ein hilfreicher Assistent für Programmierung." },
    { "role": "user", "content": "Schreiben Sie eine Python-Funktion, die einen string umkehrt" }
  ],
  "temperature": 0.3,
  "stream": false
}'

Selbst gehosteter Server (vLLM, llama.cpp, LM Studio, ...):

curl -X POST "http://localhost:8000/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer IHR_API_SCHLÜSSEL" \
  -d '{
  "model": "llama-3-8b-instruct",
  "messages": [
    { "role": "user", "content": "Fassen Sie die Handlung von Hamlet in zwei Sätzen zusammen" }
  ],
  "stream": true
}'

Embeddings:

curl -X POST "https://api.openai.com/v1/embeddings" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer IHR_API_SCHLÜSSEL" \
  -d '{
  "model": "text-embedding-3-small",
  "input": "Der schnelle braune Fuchs springt über den faulen Hund"
}'

Funktionen

  • Unterstützt die drei gängigsten OpenAI-kompatiblen Endpunkte: /chat/completions, /completions und /embeddings
  • Funktioniert mit jeder kompatiblen Basis-URL und eignet sich daher gleichermaßen für OpenAI, Azure, Groq, OpenRouter, Together AI und selbst gehostete Server
  • Konfigurierbare Sampling-Parameter: Temperatur, Top-p, Frequency Penalty, Presence Penalty, maximale Anzahl an Tokens, Anzahl der Completions, Stop-Sequenzen und Seed
  • Optionales JSON-Objekt als Antwortformat für Chat-Completions
  • Es wird nichts übertragen – der cURL-Befehl wird vollständig in Ihrem Browser erstellt, und kein API-Schlüssel verlässt jemals Ihr Gerät

Optionen erklärt

Option Beschreibung Standardwert Bereich
Basis-URL Die API-Basis ohne den Pfad des Endpunkts. https://api.openai.com/v1 Jede URL
Endpunkt Der API-Endpunkt, an den die Anfrage gesendet werden soll. /chat/completions chat, completions, embeddings
Temperatur Steuert die Zufälligkeit der Ausgabe. Niedrigere Werte erzeugen fokussierteren Text, höhere Werte erhöhen die Kreativität. 1 0-2
Top P Schwellenwert für Nucleus-Sampling. Das Modell berücksichtigt Tokens, deren kumulative Wahrscheinlichkeit diesen Wert erreicht. 1 0-1
Frequency Penalty Bestraft Tokens abhängig davon, wie häufig sie bereits vorkamen, und reduziert so wörtliche Wiederholungen. 0 -2-2
Presence Penalty Bestraft Tokens, die bereits vorgekommen sind, und ermutigt das Modell dadurch, neue Themen einzuführen. 0 -2-2
Maximale Tokens Maximale Anzahl der Tokens, die in der Antwort generiert werden. Leer lassen, um die Option wegzulassen und den Standardwert des Anbieters zu verwenden. - Jede Ganzzahl
Completions (n) Wie viele Chat-/Completion-Auswahlen für die Eingabe generiert werden sollen. 1 Jede Ganzzahl
Seed Fester Seed für möglichst reproduzierbare Ausgaben. Leer lassen, um zufällige Ergebnisse zu erhalten. - Jede Ganzzahl
Stop-Sequenzen Durch Kommas getrennte Liste von Sequenzen, bei denen die API die Generierung weiterer Tokens beendet. - Jeder Text
Antwortformat Auf JSON-Objekt setzen, um das Modell zu zwingen, eine gültige JSON-Ausgabe zurückzugeben (nur beim Chat-Endpunkt). Keine Keine / JSON-Objekt
Stream Wenn aktiviert, wird die Antwort als serverseitige Events übertragen. Deaktivieren, um die vollständige Antwort auf einmal zu erhalten. Aus Ein / Aus