Inférence compatible OpenAI
GuideDéveloppeursDepuis la version 0.1.0
Sur cette page
/v1/chat/completions,/v1/embeddingset/v1/modelsau format d'OpenAI : un SDK existant change seulement son URL de base.Côté produit : IA et inférence ; côté exploitation : Servir l'inférence.
Appeler
from openai import OpenAI
client = OpenAI(base_url="https://api.example.com/v1", api_key=token) # jeton OIDC, envoyé en Bearer
r = client.chat.completions.create(model="default", messages=[{"role": "user", "content": "Bonjour"}])Une clé d'API Flexway passe par Authorization: ApiKey, donc par un en-tête par défaut du SDK
(default_headers={"Authorization": f"ApiKey {key}"}). Le modèle effectivement appelé est
choisi par la politique de l'exploitant parmi ceux qu'il déclare ; stream: true relaie les évènements
au fil de l'eau. Images en entrée et embeddings sont servis quand le backend choisi les sait faire.
Ce que vous pouvez recevoir
Toutes les réponses de /v1/*, refus de la passerelle compris, sont dans l'enveloppe d'OpenAI
({"error": {"type", "code", "message"}}).
| Statut | code |
Quand |
|---|---|---|
401 |
tenant_required |
Aucune identité, ou une identité sans tenant |
429 |
budget_exceeded |
Le budget du tenant, en tokens ou en euros, serait dépassé - avant tout appel |
403 |
sensitive_no_internal_backend |
Requête marquée sensible sans backend interne |
502 |
backend_unavailable |
Backend et replis en panne ; pendant un flux, un dernier évènement d'erreur |
400 |
capability_unavailable |
Le backend choisi ne sert pas une image ou des embeddings |
| En-tête de réponse | Sens |
|---|---|
Flexway-Budget: soft |
Votre tenant a dépassé le seuil souple : la réponse vient d'un backend moins cher |
Flexway-Degraded: backend-fallback |
Servie par un backend de repli |
Une requête sensible est marquée par l'en-tête que l'exploitant déclare (par exemple
X-Sensitive: true) : elle ne quitte jamais un backend interne.