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

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

UsageMéthode du SDK OpenAICompté
Conversationchat.completions.createau token
Imageimages.generateà l'image
Synthèse vocaleaudio.speech.createau caractère
Transcriptionaudio.transcriptions.createà la seconde d'audio
Embeddingsembeddings.createau token
OCRrequête POST /v1/ocrà la page
Vidéovideos.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é.