Qu’est-ce qu’une API compatible avec OpenAI ?

De nombreux fournisseurs de LLM et serveurs d’inférence auto-hébergés — OpenAI lui-même, Azure OpenAI, Groq, OpenRouter, Together AI, Mistral, DeepSeek, vLLM, le serveur de llama.cpp, LM Studio et le mode compatible avec OpenAI d’Ollama — exposent tous la même interface REST popularisée par OpenAI : des requêtes JSON vers des endpoints tels que /v1/chat/completions, authentifiées avec un token Bearer dans l’en-tête Authorization. Cela vous permet de changer de fournisseur sans réécrire le code de votre intégration.

Rédiger manuellement une commande cURL correcte pour ces endpoints implique de renseigner exactement l’URL, les en-têtes et le corps JSON, en particulier lors du réglage des paramètres d’échantillonnage tels que la température et les pénalités, ou lors du passage entre les requêtes de chat, de complétion legacy et d’embeddings.

Description de l’outil

Cet outil génère des commandes cURL prêtes à l’emploi pour toute API compatible avec OpenAI. Définissez l’URL de base, l’endpoint, le modèle et les paramètres, puis obtenez instantanément une commande cURL correctement formatée, prête à être collée dans votre terminal ou vos scripts.

Exemples

Complétion de chat :

curl -X POST "https://api.openai.com/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
  "model": "gpt-4o-mini",
  "messages": [
    { "role": "system", "content": "Vous êtes un assistant compétent en programmation." },
    { "role": "user", "content": "Écrivez une fonction Python pour inverser une string" }
  ],
  "temperature": 0.3,
  "stream": false
}'

Serveur auto-hébergé (vLLM, llama.cpp, LM Studio, ...) :

curl -X POST "http://localhost:8000/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
  "model": "llama-3-8b-instruct",
  "messages": [
    { "role": "user", "content": "Résumez l’intrigue d’Hamlet en deux phrases" }
  ],
  "stream": true
}'

Embeddings :

curl -X POST "https://api.openai.com/v1/embeddings" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
  "model": "text-embedding-3-small",
  "input": "Le vif renard brun saute par-dessus le chien paresseux"
}'

Fonctionnalités

  • Prend en charge les trois endpoints compatibles avec OpenAI les plus courants : /chat/completions, /completions et /embeddings
  • Fonctionne avec toute URL de base compatible, ce qui permet de l’utiliser aussi bien avec OpenAI, Azure, Groq, OpenRouter et Together AI qu’avec des serveurs auto-hébergés
  • Paramètres d’échantillonnage configurables : température, top-p, pénalité de fréquence, pénalité de présence, nombre maximal de tokens, nombre de complétions, séquences d’arrêt et seed
  • Format de réponse facultatif sous forme d’objet JSON pour les complétions de chat
  • Rien n’est envoyé où que ce soit : la commande cURL est entièrement générée dans votre navigateur et aucune clé API ne quitte jamais votre machine

Explication des options

Option Description Valeur par défaut Plage
URL de base Racine de l’API, sans le chemin de l’endpoint. https://api.openai.com/v1 Toute URL
Endpoint Endpoint de l’API à cibler. /chat/completions chat, completions, embeddings
Température Contrôle le caractère aléatoire de la sortie. Les valeurs faibles produisent un texte plus ciblé, tandis que les valeurs élevées augmentent la créativité. 1 0-2
Top P Seuil d’échantillonnage nucleus. Le modèle prend en compte les tokens dont la probabilité cumulée atteint cette valeur. 1 0-1
Pénalité de fréquence Pénalise les tokens en fonction de leur fréquence d’apparition, afin de réduire les répétitions textuelles exactes. 0 -2-2
Pénalité de présence Pénalise les tokens déjà apparus, même une seule fois, afin d’encourager le modèle à introduire de nouveaux sujets. 0 -2-2
Nombre maximal de tokens Nombre maximal de tokens à générer dans la réponse. Laissez ce champ vide pour l’omettre et utiliser la valeur par défaut du fournisseur. - Tout entier
Complétions (n) Nombre de choix de chat ou de complétion à générer pour l’entrée. 1 Tout entier
Seed Seed fixe pour obtenir, dans la mesure du possible, une sortie reproductible. Laissez ce champ vide pour obtenir des résultats aléatoires. - Tout entier
Séquences d’arrêt Liste de séquences séparées par des virgules à partir desquelles l’API cesse de générer d’autres tokens. - Tout texte
Format de réponse Définissez ce paramètre sur objet JSON pour forcer le modèle à renvoyer une sortie JSON valide (endpoint de chat uniquement). Aucun Aucun / objet JSON
Flux Lorsque cette option est activée, la réponse est envoyée sous forme d’événements envoyés par le serveur. Désactivez-la pour recevoir la réponse complète en une seule fois. Désactivé Activé / Désactivé