Skip to content

Limitation de debit

Triggerfish inclut un limiteur de debit a fenetre glissante qui empeche d'atteindre les limites API des fournisseurs LLM. Il enveloppe tout fournisseur de maniere transparente -- la boucle de l'agent n'a pas besoin de connaitre les limites de debit. Lorsque la capacite est epuisee, les appels sont retardes automatiquement jusqu'a ce que la fenetre glisse suffisamment pour liberer de la capacite.

Fonctionnement

Le limiteur de debit utilise une fenetre glissante (60 secondes par defaut) pour suivre deux metriques :

  • Tokens par minute (TPM) -- total de tokens consommes (prompt + completion) dans la fenetre
  • Requetes par minute (RPM) -- total d'appels API dans la fenetre

Avant chaque appel LLM, le limiteur verifie la capacite disponible par rapport aux deux limites. Si l'une des deux est epuisee, l'appel attend que les entrees les plus anciennes sortent de la fenetre et liberent suffisamment de capacite. Apres chaque appel termine, l'utilisation reelle des tokens est enregistree.

Les appels en streaming et non-streaming consomment le meme budget. Pour les appels en streaming, l'utilisation des tokens est enregistree a la fin du flux.

Flux du limiteur de debit : Boucle de l'agent -> Limiteur de debit -> verification de capacite -> transfert au fournisseur ou attente

Limites par tier OpenAI

Le limiteur de debit est livre avec des valeurs par defaut integrees pour les limites publiees par tier d'OpenAI :

TierGPT-4o TPMGPT-4o RPMo1 TPMo1 RPM
Free30 00050030 000500
Tier 130 00050030 000500
Tier 2450 0005 000100 0001 000
Tier 3800 0005 000100 0001 000
Tier 42 000 00010 000200 00010 000
Tier 530 000 00010 000200 00010 000

Ce sont des valeurs par defaut basees sur les limites publiees d'OpenAI. Vos limites reelles

dependent de votre tier de compte OpenAI et de votre historique d'utilisation. Les autres fournisseurs (Anthropic, Google) gerent leurs propres limites de debit cote serveur -- le limiteur est le plus utile pour OpenAI ou le throttling cote client empeche les erreurs 429. :::

Configuration

La limitation de debit est automatique lors de l'utilisation du fournisseur enveloppe. Aucune configuration utilisateur n'est necessaire pour le comportement par defaut. Le limiteur detecte votre fournisseur et applique les limites appropriees.

Les utilisateurs avances peuvent personnaliser les limites via la configuration du fournisseur dans triggerfish.yaml :

yaml
models:
  providers:
    openai:
      model: gpt-4o
      rate_limit:
        tpm: 450000 # Tokens par minute
        rpm: 5000 # Requetes par minute
        window_ms: 60000 # Taille de la fenetre (60s par defaut)

La limitation de debit vous protege des erreurs 429 et des factures inattendues. Elle

fonctionne conjointement avec la chaine de basculement -- si les limites de debit sont atteintes et que le limiteur ne peut pas attendre (delai depasse), le basculement entre en action pour essayer le fournisseur suivant. :::

Surveillance de l'utilisation

Le limiteur de debit expose un instantane en direct de l'utilisation actuelle :

{tokensUsed, requestsUsed, tpmLimit, rpmLimit, windowMs}

La barre de progression du contexte en CLI et dans le Tide Pool affiche l'utilisation du contexte. Le statut de la limite de debit est visible dans les logs de debug :

[DEBUG] [provider] Rate limiter: 12,450/30,000 TPM, 8/500 RPM (window: 60s)

Lorsque le limiteur retarde un appel, il enregistre le temps d'attente :

[INFO] [provider] Rate limited: waiting 4.2s for TPM capacity

Limitation de debit par canal

En plus de la limitation de debit des fournisseurs LLM, Triggerfish applique des limites de debit de messages par canal pour eviter d'inonder les plateformes de messagerie. Chaque adaptateur de canal suit la frequence des messages sortants et retarde les envois lorsque les limites sont approchees.

Cela protege contre :

  • Les bannissements API des plateformes pour volume de messages excessif
  • Le spam accidentel provenant de boucles d'agent hors de controle
  • Les tempetes de messages declenchees par des webhooks

Les limites de debit par canal sont appliquees de maniere transparente par le routeur de canaux. Si l'agent genere une sortie plus rapidement que le canal ne le permet, les messages sont mis en file d'attente et livres au debit maximal autorise.

Liens connexes