Appeler n’importe quel modèle avec le OpenAI SDK
Hyperouter parle l’API d’OpenAI. N’importe quel OpenAI SDK fonctionne dès que vous changez deux choses : l’URL de base et la clé API. Ce guide effectue un appel de chat et un appel d’image en Python et en TypeScript.
1. Obtenir une clé
Connectez-vous avec Google ou GitHub et créez une clé API. Les clés commencent par sk-hr-v1- et ne sont affichées qu’une seule fois : conservez la vôtre dans une variable d’environnement.
export HYPEROUTER_API_KEY="sk-hr-v1-..."
Les requêtes sont payées sur votre solde prépayé : ouvrez une demande de recharge dans le tableau de bord avant votre premier appel. Gardez la clé côté serveur, jamais dans du code navigateur ou mobile.
2. Pointer le SDK vers Hyperouter
L’URL de base est https://api.hyperouter.app/v1.
import os from openai import OpenAI client = OpenAI( base_url="https://api.hyperouter.app/v1", api_key=os.environ["HYPEROUTER_API_KEY"], )
import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://api.hyperouter.app/v1", apiKey: process.env.HYPEROUTER_API_KEY, });
3. Chat
Nommez un modèle par son id Hyperouter, <provider>/<name>. Cet appel utilise Grok 4.3 de xAI :
res = client.chat.completions.create(
model="x-ai/grok-4.3",
messages=[{"role": "user", "content": "Explain idempotency in one sentence."}],
)
print(res.choices[0].message.content)
const res = await client.chat.completions.create({ model: "x-ai/grok-4.3", messages: [{ role: "user", content: "Explain idempotency in one sentence." }], }); console.log(res.choices[0].message.content);
La réponse est la chat completion d’OpenAI, avec deux ajouts : provider, le fournisseur qui a servi la requête, et usage.cost, son coût en USD. Définissez stream: true pour recevoir des server-sent events, comme avec OpenAI.
Pour basculer sur d’autres modèles lorsque tous les fournisseurs du premier échouent, listez-les dans models. Les OpenAI SDK l’envoient comme champ supplémentaire du corps :
res = client.chat.completions.create(
model="x-ai/grok-4.3",
messages=[{"role": "user", "content": "Hello"}],
extra_body={"models": ["x-ai/grok-4.20-0309-non-reasoning"]},
)
4. Images
L’Images API fonctionne de la même manière. Cet appel génère une image avec Grok Imagine :
img = client.images.generate(
model="x-ai/grok-imagine-image",
prompt="A lighthouse at dusk",
)
print(img.data[0].url)
const img = await client.images.generate({ model: "x-ai/grok-imagine-image", prompt: "A lighthouse at dusk", }); console.log(img.data?.[0]?.url);
Le lien est signé et valable 24 heures, et GET /v1/generations/{id} en signe un nouveau. qwen/qwen-image-2.0 s’appelle de la même façon. Sur un modèle qui répond de manière synchrone, une image qui n’est pas prête au bout de 90 secondes renvoie 503 avec le code timeout et son generation_id ; Attendre le résultat explique comment l’interroger à la place.
Et ensuite
GET /v1/modelsliste tous les modèles que votre compte peut appeler, avec leurs prix et les paramètres que chacun accepte.- La référence des chat completions couvre le streaming, les outils et l’objet de routage
provider. - Nouvelles tentatives et idempotence explique quand une nouvelle tentative est sûre.