flexway
FRENParler à un expert

Inférence compatible OpenAI

GuideDéveloppeursDepuis la version 0.1.0

Markdown

Sur cette page

/v1/chat/completions, /v1/embeddings et /v1/models au 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.

Étapes suivantes