Champs de coût dans les réponses
Suivre les coûts en temps réel
Chaque réponse de l’API Grok contient des informations détaillées sur la consommation de tokens et le coût de la requête. Ces champs sont essentiels pour construire un suivi financier de votre utilisation et détecter les anomalies de coût avant qu’elles n’impactent votre budget.
L’objet usage
Chaque réponse de l’API inclut un objet usage qui détaille la consommation de tokens :
{
"usage": {
"prompt_tokens": 1250,
"completion_tokens": 340,
"total_tokens": 1590,
"cached_tokens": 800,
"cost_in_usd_ticks": 5000000000,
"cost_in_nano_usd": 500000000
}
}
Champs de comptage
prompt_tokens: nombre de tokens en entrée (votre prompt complet)completion_tokens: nombre de tokens en sortie (la réponse du modèle)total_tokens: somme des tokens en entrée et en sortiecached_tokens: nombre de tokens d’entrée servis depuis le cache (inclus dansprompt_tokens)
Champs de coût
L’API Grok fournit le coût de chaque requête dans deux formats différents, offrant une précision maximale sans erreurs d’arrondi.
cost_in_usd_ticks
Ce champ exprime le coût en “ticks” où 10 milliards de ticks équivalent à 1 dollar USD :
- 10 000 000 000 ticks = $1.00 USD
- 5 000 000 000 ticks = $0.50 USD
- 1 000 000 ticks = $0.0001 USD
Pour convertir en dollars :
cout_usd = cost_in_usd_ticks / 10_000_000_000
cost_in_nano_usd
Ce champ exprime le coût en nano-dollars où 1 milliard de nano-dollars équivaut à 1 dollar USD :
- 1 000 000 000 nano-USD = $1.00 USD
- 500 000 000 nano-USD = $0.50 USD
- 1 000 nano-USD = $0.000001 USD
Pour convertir en dollars :
cout_usd = cost_in_nano_usd / 1_000_000_000
Pourquoi deux formats ?
Les deux champs représentent le même coût avec des échelles différentes. cost_in_nano_usd est plus intuitif (1 milliard = 1 dollar), tandis que cost_in_usd_ticks offre une précision légèrement supérieure (10 milliards = 1 dollar). En pratique, utilisez celui qui vous convient le mieux.
Construire un suivi de coûts
En production, agrégez ces champs pour construire un tableau de bord de suivi :
class SuiviCouts:
def __init__(self):
self.total_nano_usd = 0
self.requetes = 0
self.tokens_entree = 0
self.tokens_sortie = 0
self.tokens_caches = 0
def enregistrer(self, usage):
self.total_nano_usd += usage.get("cost_in_nano_usd", 0)
self.requetes += 1
self.tokens_entree += usage.get("prompt_tokens", 0)
self.tokens_sortie += usage.get("completion_tokens", 0)
self.tokens_caches += usage.get("cached_tokens", 0)
@property
def cout_total_usd(self):
return self.total_nano_usd / 1_000_000_000
@property
def taux_cache(self):
if self.tokens_entree == 0:
return 0
return self.tokens_caches / self.tokens_entree
Alertes budgétaires
Implémentez des alertes pour prévenir les dépassements :
- Alerte jaune : 80 % du budget quotidien atteint
- Alerte rouge : 95 % du budget quotidien atteint
- Coupure automatique : 100 % du budget atteint, arrêt des requêtes non critiques
Analyser le taux de cache
Le champ cached_tokens vous permet de mesurer l’efficacité de votre stratégie de cache. Un taux de cache élevé réduit significativement vos coûts :
- 0-20 % : pas de cache effectif, optimisez la structure de vos prompts
- 20-50 % : cache partiel, vérifiez que vos system prompts sont stables
- 50-80 % : bon taux de cache pour des conversations
- 80 %+ : excellent, typique des applications avec des prompts longs et stables
Points clés à retenir
- Chaque réponse API contient un objet
usageavec le détail des tokens et le coût cost_in_usd_ticks: 10 milliards de ticks = $1 USDcost_in_nano_usd: 1 milliard de nano-USD = $1 USD- Le champ
cached_tokenspermet de mesurer l’efficacité du cache - Construisez un suivi de coûts en production avec des alertes budgétaires