Skip to main content
Cette page répertorie les comportements qui pourraient vous surprendre. Nous préférons que vous les lisiez ici plutôt que de les découvrir sur une facture.

Une requête OpenAI annulée coûte la réponse complète

Si vous annulez une requête OpenAI en cours de route, vous payez pour la réponse complète. Vous ne payez pas seulement pour la partie que vous avez lue. Une annulation similaire sur un modèle Anthropic ou Google arrête la facturation au moment où vous l’avez interrompue. Cela s’applique lorsque nous appelons Anthropic ou Google directement. Si vous épinglez une requête à Bedrock ou Vertex, nous la lisons jusqu’à la fin, comme nous le faisons pour OpenAI. L’annulation met fin immédiatement à votre connexion, de sorte que rien ne continue à être diffusé en continu vers votre application. C’est la génération chez OpenAI qui se poursuit, et vous la payez. OpenAI ne nous offre aucun moyen d’arrêter une réponse en streaming et ne signale aucune utilisation pour une réponse arrêtée prématurément, nous n’avons donc aucune donnée précise à vous facturer à la place. Nous travaillons sur une alternative, et cette page sera mise à jour dès qu’elle sera disponible. Vos journaux affichent une requête arrêtée comme “Canceled”. Le nombre de tokens correspond à celui que le fournisseur a signalé avant votre arrêt. Deux choses peuvent vous aider en attendant. Définissez max_output_tokens afin qu’une requête annulée ne puisse pas dépasser une longueur que vous acceptez. Utilisez les modèles Anthropic ou Google lorsque l’arrêt est plus important que le choix du modèle.

Un flux qui échoue en cours de route commence tout de même par un succès

Une requête peut échouer après que la réponse a commencé à arriver. La ligne d’état indique déjà que la requête a réussi, et HTTP ne permet pas de revenir en arrière. L’échec arrive plutôt à l’intérieur du flux. Il se présente sous la forme d’un événement d’erreur, et non d’une fin normale. Lisez l’événement terminal plutôt que le code de statut lorsque vous utilisez le streaming. Nous marquons une requête ayant échoué de cette manière comme “failed” (échouée), dans vos journaux et dans le tableau de bord. Ce que vous y voyez est donc précis.