Vad är ett OpenAI-kompatibelt API?

Många LLM-leverantörer och självhostade inferensservrar – OpenAI själva, Azure OpenAI, Groq, OpenRouter, Together AI, Mistral, DeepSeek, vLLM, llama.cpp:s server, LM Studio och Ollamas OpenAI-kompatibla läge – exponerar alla samma REST-gränssnitt som populariserats av OpenAI: JSON-förfrågningar till endpoints som /v1/chat/completions, autentiserade med en Bearer-token i Authorization-headern. Det gör att du kan byta leverantör utan att skriva om din integrationskod.

Att skriva ett korrekt cURL-kommando för dessa endpoints för hand innebär att URL, headers och JSON-innehåll måste bli exakt rätt, särskilt när du justerar parametrar för sampling, som temperatur och straffvärden, eller växlar mellan förfrågningar för chatt, äldre completions och embeddings.

Verktygsbeskrivning

Det här verktyget genererar färdiga cURL-kommandon för alla OpenAI-kompatibla API:er. Ange bas-URL, endpoint, modell och parametrar för att direkt få ett korrekt formaterat cURL-kommando som är klart att klistra in i terminalen eller dina skript.

Exempel

Chatt-completion:

curl -X POST "https://api.openai.com/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer DIN_API_NYCKEL" \
  -d '{
  "model": "gpt-4o-mini",
  "messages": [
    { "role": "system", "content": "Du är en hjälpsam kodningsassistent." },
    { "role": "user", "content": "Skriv en Python-funktion som vänder på en string" }
  ],
  "temperature": 0.3,
  "stream": false
}'

Självhostad server (vLLM, llama.cpp, LM Studio, ...):

curl -X POST "http://localhost:8000/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer DIN_API_NYCKEL" \
  -d '{
  "model": "llama-3-8b-instruct",
  "messages": [
    { "role": "user", "content": "Sammanfatta handlingen i Hamlet i två meningar" }
  ],
  "stream": true
}'

Embeddings:

curl -X POST "https://api.openai.com/v1/embeddings" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer DIN_API_NYCKEL" \
  -d '{
  "model": "text-embedding-3-small",
  "input": "Den snabba bruna räven hoppar över den lata hunden"
}'

Funktioner

  • Stöder de tre vanligaste OpenAI-kompatibla endpoints: /chat/completions, /completions och /embeddings
  • Fungerar med alla kompatibla bas-URL:er, så det passar lika bra för OpenAI, Azure, Groq, OpenRouter, Together AI och självhostade servrar
  • Konfigurerbara samplingparametrar: temperatur, top-p, frekvensstraff, närvarostraff, maximalt antal tokens, antal completions, stopsekvenser och seed
  • Valfritt svarsformat med JSON-objekt för chatt-completions
  • Ingenting skickas någonstans – cURL-kommandot skapas helt i din webbläsare och ingen API-nyckel lämnar någonsin din dator

Alternativ förklarade

Alternativ Beskrivning Standardvärde Intervall
Bas-URL API-roten utan endpoint-sökvägen. https://api.openai.com/v1 Valfri URL
Endpoint Vilken API-endpoint som ska användas. /chat/completions chat, completions, embeddings
Temperatur Styr slumpmässigheten i resultatet. Lägre värden ger mer fokuserad text, medan högre värden ökar kreativiteten. 1 0-2
Top P Tröskel för nucleus-sampling. Modellen tar hänsyn till tokens vars kumulativa sannolikhet når detta värde. 1 0-1
Frekvensstraff Bestraffar tokens baserat på hur ofta de redan har förekommit, vilket minskar ordagrann upprepning. 0 -2-2
Närvarostraff Bestraffar tokens som redan har förekommit över huvud taget, vilket uppmuntrar modellen att introducera nya ämnen. 0 -2-2
Maximalt antal tokens Maximalt antal tokens som ska genereras i svaret. Lämna tomt för att utelämna värdet och använda leverantörens standardvärde. - Valfritt heltal
Completions (n) Hur många chatt-/completion-alternativ som ska genereras för indata. 1 Valfritt heltal
Seed Fast seed för bästa möjliga reproducerbara resultat. Lämna tomt för slumpmässiga resultat. - Valfritt heltal
Stopsekvenser Kommaseparerad lista med sekvenser där API:et slutar generera fler tokens. - Valfri text
Svarsformat Ange JSON-objekt för att tvinga modellen att returnera giltig JSON-output (endast för chatt-endpointen). Inget Inget / JSON-objekt
Stream När detta är aktiverat strömmas svaret som server-sända händelser. Inaktivera för att ta emot hela svaret på en gång. Av På / Av