Skip to main content
Vos propres clés de fournisseur n’ont pas de plafond financier. Les clés gérées (Managed Keys) dépensent un solde prépayé, elles peuvent donc s’épuiser. Deux en-têtes de réponse signalent ce qu’il vous reste. GET /v1/limits fournit une vue d’ensemble complète en un seul appel.

Vos propres clés n’ont pas de plafond financier

Nous ne fixons aucune allocation de requêtes ni aucun plafond mensuel. Vous ne détenez aucun solde à épuiser. Consultez tarification et facturation. Un seul plafond s’applique. Votre organisation exécute un nombre fixe de flex races simultanément. Au-delà de ce nombre, nous exécutons la requête sur le niveau standard. Vous perdez la réduction, pas la réponse. Le rapport nomme ce nombre own_keys.flex_race_slots.

Ce qui peut s’épuiser avec les clés gérées (Managed Keys)

Un examen des risques peut suspendre les requêtes gérées en plus de ces quatre limites. Il renvoie account_under_review. Vos propres routes de clés continuent de fonctionner. Quatre autres limites couvrent toutes les organisations. Trois comptent les requêtes par minute provenant d’une organisation, d’une clé et d’une adresse IP. La quatrième compte les tentatives d’authentification échouées depuis une adresse IP. Nous refusons également un corps de requête de plus de 50 000 000 octets comme request_too_large. Le rapport nomme chaque limite par minute avec sa fenêtre et sa portée. Il omet le nombre, car Cloudflare compte chacune d’elles dans chaque emplacement où elle s’exécute, et un seul nombre ne constituerait pas un budget sur lequel vous pourriez vous baser. Attendez plutôt le nombre de secondes indiqué dans Retry-After.

Deux en-têtes de réponse signalent vos dépenses

Une réponse avec vos propres clés les contient une fois que ses routes sont résolues, et une réponse gérée les contient dès la retenue du solde. Trois types de réponses n’ont aucun de ces en-têtes : une que nous avons refusée plus tôt, le catalogue de modèles, et une requête gérée dont nous n’avons pas pu lire le solde. Nous omettons les en-têtes plutôt que de deviner. Nous lisons les deux au moment où nous avons admis cette requête. Le nombre couvre ce qu’il vous restait avant que cette requête ne règle son propre coût. Un nombre négatif signifie que nous refusons toute requête gérée. L’ajout d’argent répare un solde négatif. Un solde quotidien négatif se rétablit au prochain minuit UTC ou avec un plafond relevé, jamais avec une recharge. Lisez ces en-têtes sur le trafic que vous envoyez déjà. Interroger le point de terminaison avant chaque requête coûte un aller-retour et ne vous en dit pas plus que l’en-tête.

Le point de terminaison des limites

GET /v1/limits prend votre clé FlexInference. Il signale les plafonds sous lesquels votre organisation fonctionne. Il lit les enregistrements qui admettent vos requêtes, il ne revendique donc jamais un espace que nous refuserions. Nous ne mettons jamais la réponse en cache.
Chaque champ monétaire est un entier micro-USD. Un USD équivaut à 1 000 000 de ces unités. Les trois derniers champs expliquent pourquoi votre nombre de concurrence et votre plafond quotidien s’affichent comme ils le font. Une organisation exempte n’a pas de plafond à expliquer, donc les trois affichent null. Un solde en pause signale la suspension au lieu d’un nombre. Aucun chiffre positif ne peut alors être interprété comme une permission d’envoyer. Ces nombres sont valides à as_of et ne promettent rien concernant votre prochaine requête. Une autre requête les modifie, tout comme un règlement, une recharge ou un remboursement. Une clé manquante ou incorrecte renvoie 401 avec invalid_api_key. Lorsque nous ne pouvons pas lire l’un de ces enregistrements, le point de terminaison renvoie 503 avec limits_unavailable. Il refuse plutôt que de vous donner un chiffre mis en cache, ce qui pourrait revendiquer un espace que votre prochaine requête n’obtiendrait pas. Les requêtes continuent de fonctionner dans les deux cas.

Coût dans un flux

Une réponse que vous n’avez pas diffusée en continu signale son coût deux fois, dans l’en-tête x-flexinference-cost et le bloc usage.cost. Une réponse diffusée en continu ne peut pas utiliser l’en-tête, car nous envoyons les en-têtes avant que la réponse n’existe et nous ne connaissons pas le coût à ce moment-là. Envoyez include_cost: true pour déplacer le coût à l’intérieur du flux.
Le coût est alors inclus dans le cadre d’utilisation que le point de terminaison envoie déjà. Un bloc usage.routing se trouve à côté et nomme la route qui a exécuté la requête.
L’option est désactivée par défaut. Un flux pour lequel vous n’avez pas demandé cela correspond exactement à ce que le fournisseur a envoyé, octet par octet. /v1/chat/completions rend le cadre d’utilisation lui-même optionnel chez OpenAI. Envoyez également "stream_options": {"include_usage": true}. Sans cela, le coût n’a pas de cadre où s’insérer. Une requête gérée signale ce que le fournisseur nous a facturé. Une requête avec vos propres clés signale le prix catalogue du fournisseur au niveau qui l’a exécutée. Une requête que nous ne pouvons pas tarifer ne signale aucun cost. Interprétez un bloc manquant comme rien à signaler, et non comme zéro. Deux en-têtes de routage sont présents sur chaque réponse, quoi qu’il arrive. Ce sont x-flexinference-served-provider et x-flexinference-routing-reason. Un appelant en streaming qui ignore include_cost voit toujours quelle route a exécuté la requête et pourquoi. Voir lire le résultat. include_cost n’atteint jamais le fournisseur. Nous le supprimons du corps avant de transmettre la requête.