Modèles et usages
La Gateway parle le format de l'API OpenAI, quel que soit le fournisseur du modèle. Vous gardez le même code et vous changez seulement le nom du modèle.
Les modèles disponibles
- Supervise publie un catalogue de modèles, chez plusieurs fournisseurs. Seuls les modèles dont le prix est connu y entrent : chaque appel a un coût.
- Votre organisation choisit ce qui est ouvert à ses membres, par fournisseur ou par modèle. Voir Administrer la Gateway.
- Vous voyez la liste à jour avec
client.models.list()ouGET /v1/models, comme dans Premier appel.
Un identifiant a toujours la forme fournisseur/modèle : anthropic/claude-sonnet-4-5, mistral/mistral-small-latest… Un modèle fermé ou inconnu répond 404.
Chaque usage n'accepte que les modèles de son type : un modèle de conversation ne génère pas d'image, et inversement.
Les usages
| Usage | Méthode du SDK OpenAI | Compté |
|---|---|---|
| Conversation | chat.completions.create | au token |
| Image | images.generate | à l'image |
| Synthèse vocale | audio.speech.create | au caractère |
| Transcription | audio.transcriptions.create | à la seconde d'audio |
| Embeddings | embeddings.create | au token |
| OCR | requête POST /v1/ocr | à la page |
| Vidéo | videos.create | à la seconde de vidéo |
Les exemples suivent le client créé dans Premier appel. Les noms de modèle sont des exemples : prenez ceux que models.list() vous renvoie.
Conversation
Le format Chat Completions d'OpenAI, avec le streaming, les appels d'outils (tools) et les réponses structurées. Les outils sont transmis au modèle tels quels : la Gateway ne les exécute jamais, c'est votre code qui le fait.
stream = client.chat.completions.create(
model="anthropic/claude-sonnet-4-5",
messages=[{"role": "user", "content": "Résume ce texte : …"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")
Image
img = client.images.generate(
model="openai/gpt-image-1",
prompt="Un phare au lever du soleil, style aquarelle",
size="1024x1024",
)
Synthèse vocale
audio = client.audio.speech.create(
model="openai/gpt-4o-mini-tts",
voice="alloy",
input="Bonjour, votre commande est prête.",
)
audio.write_to_file("message.mp3")
Formats de sortie : mp3, opus, aac, flac, wav, pcm.
Transcription
with open("reunion.mp3", "rb") as f:
t = client.audio.transcriptions.create(model="openai/whisper-1", file=f, language="fr")
print(t.text)
Formats de réponse : json, verbose_json, text.
Embeddings
e = client.embeddings.create(
model="openai/text-embedding-3-small",
input=["premier texte", "second texte"],
)
vecteurs = [d.embedding for d in e.data]
OCR
Le document est donné par une adresse (https://) ou en data:. C'est le fournisseur qui va le chercher.
$ curl -s "$GATEWAY_BASE_URL/ocr" \
-H "Authorization: Bearer $GATEWAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "mistral/mistral-ocr-latest",
"document": {"type": "document_url", "document_url": "https://exemple.fr/facture.pdf"}}'
Vidéo
Une vidéo se génère en tâche de fond : vous la créez, vous suivez son état, puis vous téléchargez le résultat. Elle n'est comptée qu'une fois terminée ; une génération qui échoue ne coûte rien.
v = client.videos.create(model="openai/sora-2", prompt="Une vague qui se brise, ralenti", seconds="4")
v = client.videos.retrieve(v.id) # à répéter jusqu'à la fin
client.videos.download_content(v.id).write_to_file("vague.mp4")
Seule l'organisation qui a créé une vidéo peut en lire l'état et le contenu. La génération à partir d'une image n'est pas proposée.
Ce que la Gateway ne garde pas
Ni vos messages, ni les réponses, ni les images, ni l'audio, ni les documents. Elle note seulement de quoi compter et suivre l'appel. Voir Sécurité et confidentialité.