Se connecterContactCommencer gratuitement
Reliability and Routing22 juin 2026Big Y

Stratégie de retry pour les API d’IA : quand réessayer, changer de modèle, mettre en file d’attente ou échouer en mode fermé

Utilisez une stratégie de retry pour les API d’IA afin de décider quand réessayer, changer de modèle, mettre le travail en file d’attente ou échouer en mode fermé, sans masquer des incidents de quota, d’authentification ou de routage.

Stratégie de retry pour les API d’IA : quand réessayer, changer de modèle, mettre en file d’attente ou échouer en mode fermé

La stratégie de réessai de l'API IA est la politique qui décide de ce que votre application doit faire après qu'une requête au modèle échoue, ralentit ou renvoie un résultat partiel. La mauvaise politique est coûteuse : si vous réessayez chaque erreur, vous multipliez la pression sur le quota ; si vous changez de modèle trop tôt, vous modifiez la qualité des réponses ; si vous mettez en file d'attente un travail interactif, les utilisateurs attendent ; si vous laissez passer les échecs de sécurité ou d'authentification, vous masquez un véritable incident.

Ce guide est une échelle de décision pratique pour les équipes de production utilisant une passerelle IA, un routeur multi-fournisseurs ou une URL de base compatible OpenAI. Il couvre quand réessayer avec le même fournisseur, quand changer de modèle, quand mettre le travail en file d'attente et quand échouer en mode fermé. L'objectif d'une stratégie de réessai de l'API IA n'est pas de faire réussir chaque requête à tout prix. L'objectif est de se remettre des échecs transitoires sans masquer les mauvaises requêtes, les problèmes d'authentification, l'épuisement du quota, les repliements dangereux ou les incidents de routage.

Flatkey convient à ce problème parce que le texte public de son produit met l'accent sur une seule clé API, une URL de base compatible OpenAI à https://router.flatkey.ai/v1, une tarification claire, une facturation unifiée et un tableau de bord unique pour les clés, l'utilisation et le routage. Flatkey décrit également la commutation automatique et l'équilibrage de charge. Ces fonctionnalités nécessitent toujours une politique de réessai explicite afin que les équipes puissent expliquer pourquoi une requête a été réessayée, a changé de modèle, a été mise en file d'attente ou a échoué en mode fermé.

Réponse rapide : l’échelle de stratégie de nouvelle tentative pour l’API IA

Utilisez cette échelle de décision comme l’atout de valeur pour votre stratégie de nouvelle tentative de l’API IA. Elle maintient le comportement de retry lié au responsable de l’échec, au flux de travail utilisateur et au rayon d’impact, plutôt qu’à une règle générale de « réessayer ».

Signal d’échec Action par défaut Quand passer à l’étape supérieure Condition d’arrêt
Expiration du délai réseau avant que le fournisseur n’ait accepté la requête Réessayez une fois avec une temporisation aléatoire si l’opération est idempotente ou utilise un ID de requête client. Changez de route après avoir épuisé le budget de retry et si la cible de secours est approuvée pour le même flux de travail. Arrêtez-vous après le budget de route ; renvoyez une réponse contrôlée de réessayer plus tard.
Limite de débit HTTP 429 avec consigne de nouvelle tentative Respectez le signal d’attente renvoyé, ralentissez l’appelant et réduisez la concurrence. Mettez le travail en file d’attente en arrière-plan ou basculez vers une route approuvée avec un quota séparé. Échouez de manière fermée si le quota est épuisé, si le budget est plafonné ou s’il ne reste aucune route autorisée.
HTTP 500, 502, 503, 504, ou surcharge du fournisseur Réessayez un petit nombre de fois avec une backoff exponentielle et une temporisation aléatoire. Basculez vers des modèles ou des fournisseurs uniquement après avoir confirmé que le repli respecte les règles de qualité et de conformité. Arrêtez-vous lorsque la requête dépasserait les limites de latence, de jetons, de coût ou de tentatives.
Requête invalide 400, erreur de schéma, paramètre non pris en charge, ou dépassement de contexte Ne réessayez pas sans modification. Corrigez la requête, réduisez le contexte ou renvoyez une erreur que l’utilisateur peut corriger. Routez vers un modèle avec un contexte plus large uniquement si le produit accepte le changement de comportement et de coût. Échouez de manière fermée en cas d’erreurs répétées de forme de requête.
401, 403, clé désactivée, IP non autorisée, ou échec d’autorisation Échouez de manière fermée et alertez le propriétaire de la clé. Faites pivoter les clés ou réparez l’accès au compte via un flux de travail opérateur. Ne basculez jamais silencieusement vers un autre compte, sauf si votre politique de sécurité l’autorise explicitement.
Blocage de sécurité, blocage de politique, échec d’autorisation d’outil, ou problème de frontière de données Échouez de manière fermée avec un message sûr et consignez la raison liée à la politique. Escaladez vers une revue si le blocage semble incorrect ou a un impact sur le client. Ne réessayez pas sur un modèle moins restrictif juste pour obtenir une réponse.
Le streaming démarre, puis se fige ou se déconnecte Ne réessayez que si l’opération peut être rejouée en toute sécurité et si l’expérience utilisateur prend en charge une nouvelle réponse. Changez de route pour les requêtes futures après que les journaux montrent une défaillance répétée au niveau du flux. N’ajoutez pas une deuxième réponse du modèle à une réponse partiellement livrée, sauf si l’interface est conçue pour cela.

Pourquoi une boucle de nouvelle tentative aveugle casse les produits d’IA

La plupart des services web peuvent utiliser un schéma standard de nouvelle tentative pour les échecs transitoires. Les API d’IA nécessitent plus de précautions, car la requête peut être coûteuse, avec état, diffusée en flux, utiliser des outils et être sensible au modèle. Une boucle aveugle de reprises des API LLM peut créer quatre défaillances en elle-même :

  • Amplification du quota : retenter les 429 de manière trop agressive peut consommer la capacité même en requêtes ou en jetons qui est déjà limitée.
  • Dérive de qualité : un modèle de secours peut répondre différemment, ignorer un schéma d’outil ou modifier le format de sortie.
  • Surprise de coût : une solution de secours réussie peut être plus coûteuse que le chemin principal, en particulier pour les contextes longs, le raisonnement, les images ou la vidéo.
  • Masquage d’incident : un succès final peut masquer cinq tentatives échouées, sauf si les journaux conservent la chaîne de reprises.

Une bonne stratégie de reprise des API d’IA est donc à la fois une politique de routage, une politique d’observabilité et une politique produit. Elle doit préciser quelle récupération est autorisée, quelles preuves doivent être consignées et quelle expérience utilisateur est acceptable lorsque la récupération échoue.

Classifiez l’échec avant de réessayer

Commencez chaque stratégie de nouvelle tentative pour une API d’IA avec une taxonomie normalisée des échecs. La documentation des fournisseurs diffère, mais les catégories opérationnelles sont suffisamment stables pour être transformées en politique :

Classe Exemples Responsable Position de reprise
Défaut du demandeur JSON mal formé, paramètre invalide, schéma d’outil non pris en charge, contexte trop long. Application ou pipeline d’invite. Ne pas réessayer sans changement.
Authentification ou autorisation Clé invalide, clé désactivée, appartenance au projet, liste d’autorisation IP, autorisation du compte. Propriétaire des identifiants ou responsable sécurité. Échec fermé et alerte.
Limite de débit Requêtes par minute, jetons par minute, limites d’accélération, limites de concurrence. Propriétaire du trafic et du quota. Ralentir, mettre en file d’attente, réduire la concurrence ou basculer vers un pool de quota approuvé.
Quota ou budget épuisé Crédits épuisés, plafond de dépenses mensuel, quota d’équipe, quota client, limite de solde prépayé. Finance, propriétaire du plan ou du client. Échec fermé ou mise en file derrière approbation ; ne pas consommer silencieusement un autre budget.
Panne transitoire du fournisseur Erreur interne du serveur, service surchargé, erreur de passerelle temporaire, délai d’attente. Fournisseur ou chemin réseau. Réessayer avec un petit budget, puis acheminer vers un fallback si approuvé.
Blocage de politique ou de sécurité Blocage de modération, sortie restreinte, frontière de données, échec d’autorisation d’outil. Sécurité, sûreté ou politique produit. Échec fermé sauf si un parcours de remédiation approuvé par un humain existe.

Le guide des codes d’erreur d’OpenAI distingue les limites de débit 429 de l’épuisement du quota, documente les cas 500 et 503 comme des situations où il faut réessayer après attente, et traite les problèmes d’authentification comme des corrections de clé ou d’organisation plutôt que comme des candidats à la nouvelle tentative. La documentation des erreurs d’Anthropic sépare également les catégories requête invalide, authentification, autorisation, limite de débit, erreur API et surcharge. Ces distinctions expliquent pourquoi le seul code d’état ne suffit pas ; votre passerelle doit conserver dans le journal le type d’erreur du fournisseur et le code d’erreur sécurisé.

Quand relancer le même modèle

Relancez le même modèle lorsque l’échec semble transitoire, que la requête peut être rejouée en toute sécurité et que la tentative de reprise n’aggravera pas l’incident. C’est la partie la plus étroite mais la plus utile d’une stratégie de retry pour API d’IA.

Les bons candidats à un retry sur le même itinéraire incluent :

  • Un timeout de connexion avant que le fournisseur n’ait accepté la requête.
  • Une réponse temporaire 500, 502, 503 ou 504.
  • Une réponse de limite de débit avec une courte fenêtre d’attente et un budget de latence utilisateur restant suffisant.
  • Une erreur de configuration du streaming avant qu’un jeton visible par l’utilisateur n’ait été livré.

Utilisez un backoff exponentiel avec jitter plutôt que des attentes synchronisées. La documentation de retry de Google Cloud décrit le backoff exponentiel tronqué avec jitter comme la forme normale de retry, car il évite les retries en tempête. Pour les API d’IA, ajoutez aussi un petit budget de retry par workflow. Une requête de chat interactive peut obtenir une ou deux tentatives. Un lot de synthèse nocturne peut attendre plus longtemps et réessayer plus prudemment. Un workflow de paiement, de sécurité ou d’action client doit être plus strict.

Chaque retry sur le même itinéraire doit consigner l’index de tentative, la route, l’ID de requête du fournisseur lorsqu’il est disponible, le code d’état, la classe d’erreur, le temps d’attente et le résultat final. Associez cela à la checklist des journaux d’observabilité des API d’IA afin que le succès final n’efface pas les tentatives échouées.

Quand basculer entre les modèles ou les fournisseurs

Un essai de repli de modèle n’est pas un simple nouvel essai. Il modifie le modèle, le fournisseur, le compte, la ligne de coût, le comportement et parfois la frontière de conformité. Ne basculez que si le repli a été préapprouvé pour ce flux de travail exact.

Basculez entre les modèles ou les fournisseurs lorsque tous les critères suivants sont réunis :

  1. Le chemin principal a épuisé son budget de nouvelles tentatives courtes ou a renvoyé une défaillance côté fournisseur.
  2. Le modèle de repli est approuvé pour la même classe de données, le même niveau de client, la même famille de points de terminaison, le même comportement d’outil et le même format de sortie.
  3. Le responsable produit accepte la différence de qualité et l’expérience utilisateur.
  4. Le responsable financier accepte la différence de coût et de quota.
  5. Le journal enregistre à la fois le chemin demandé et le chemin sélectionné.

Ne basculez pas lorsque la requête est mal formée, non autorisée, bloquée par une politique de sécurité, ou liée à une fonctionnalité spécifique au fournisseur que le repli ne prend pas en charge. La documentation de Vercel sur le fallback de modèle de l’AI Gateway décrit les modèles de repli ordonnés comme un moyen de récupérer après des défaillances ou une indisponibilité. Considérez cela comme un modèle de routage public utile, mais définissez tout de même vos propres tests d’acceptation avant d’utiliser le repli en production.

Pour les acheteurs de Flatkey, la question opérationnelle est concrète : si un chemin amont rencontre des erreurs, quels chemins de repli sont autorisés, combien de tentatives sont autorisées, et où l’ingénierie peut-elle voir plus tard la chaîne de routage ? Le guide de répartition de charge et basculement pour les API d’IA est le complément pour concevoir cette échelle de routage.

Quand mettre en file d’attente au lieu de réessayer de manière synchrone

Mettez le travail en file d’attente lorsque l’utilisateur n’a pas besoin d’une réponse immédiate, lorsque la capacité du fournisseur est temporairement contrainte, ou lorsque le volume de requêtes relève d’un traitement par lots. Une file d’attente n’est pas un échec ; c’est un moyen d’éviter que la stratégie de réessai de l’API IA n’entre en conflit avec les limites synchrones.

Le guide des limites de débit d’OpenAI distingue les limites de requêtes synchrones des traitements par lots et indique que les cas d’usage non immédiats peuvent utiliser une exécution de type batch sans impacter les limites de débit des requêtes synchrones. Le même principe produit s’applique au-delà d’un seul fournisseur : déplacez le travail non urgent hors du trafic interactif.

Les bons candidats à la mise en file d’attente incluent :

  • Enrichissement en masse, résumé, génération d’embeddings, revue de modération ou génération de rapports.
  • Tâches visibles pour le client qui disposent déjà d’une page de statut asynchrone ou d’un webhook.
  • Rattrapages et migrations où l’actualité est mesurée en minutes ou en heures.
  • Fenêtres de retry-after qui dépassent le budget de latence interactive de l’utilisateur mais conviennent à une file de travaux.

Les enregistrements de file d’attente doivent conserver le propriétaire d’origine de la requête, la clé API, la politique de route, le nombre de tentatives, le modèle demandé, l’heure de mise en file, l’heure de la prochaine tentative et le responsable du budget. Sinon, les réessais mis en file d’attente deviennent un coût invisible.

Quand passer en échec fermé

Adoptez un échec fermé lorsque la poursuite créerait une ambiguïté en matière de sécurité, de conformité, de données, de budget ou de risque produit. C’est la partie d’une stratégie de nouvelle tentative de l’API IA qui empêche l’ingénierie de fiabilité de devenir un contournement silencieux des politiques.

Adoptez un échec fermé pour :

  • Les clés API invalides ou désactivées, les échecs d’autorisation du projet, les échecs de liste d’autorisation IP et les anomalies inattendues de propriété du compte.
  • Les blocages de sécurité, les blocages de modération, les échecs d’autorisation d’outil et les erreurs de frontière de données.
  • L’épuisement du quota ou du budget lorsqu’aucun responsable budgétaire n’a approuvé de dépassement.
  • Les requêtes mal formées qui se répéteraient à l’identique.
  • Les routes de repli qui n’ont pas passé les contrôles de qualité, de coût, de confidentialité et de conformité.
  • Les réponses en flux continu qui ont déjà livré un contenu partiel et ne peuvent pas être rejouées proprement.

Passer en échec fermé ne signifie pas renvoyer une erreur hostile. Cela signifie que le système renvoie un message contrôlé, enregistre la raison de l’arrêt, alerte le responsable lorsque c’est nécessaire et évite un changement de route caché. C’est particulièrement important pour les fonctionnalités d’IA destinées aux clients, où un repli silencieux pourrait produire une réponse matériellement différente.

Modèle de politique de retry pour les équipes de production

Utilisez ce modèle pour transformer l’échelle en un enregistrement de politique. Il est volontairement générique et doit être adapté à votre passerelle, à votre application et à vos règles de conformité.

{
  "policy_id": "chat-prod-retry-v3",
  "workflow": "customer-chat",
  "environment": "production",
  "idempotency": {
    "requires_client_request_id": true,
    "allow_replay_after_stream_started": false
  },
  "same_route_retry": {
    "retryable_status_codes": [408, 429, 500, 502, 503, 504],
    "max_attempts": 2,
    "backoff": "exponential_with_jitter",
    "max_elapsed_ms": 9000
  },
  "fallback": {
    "enabled": true,
    "allowed_reasons": ["primary_timeout", "provider_overload", "temporary_5xx"],
    "blocked_reasons": ["auth_error", "invalid_request", "safety_block", "budget_exhausted"],
    "allowed_models": ["approved-backup-chat-model"],
    "requires_quality_eval": true,
    "requires_cost_owner": true
  },
  "queue": {
    "enabled_for": ["bulk_summary", "nightly_enrichment"],
    "not_enabled_for": ["live_customer_chat"]
  },
  "fail_closed": {
    "auth_errors": true,
    "policy_errors": true,
    "unapproved_fallback": true,
    "quota_without_budget_owner": true
  },
  "logging": {
    "record_attempt_chain": true,
    "record_retry_after": true,
    "record_requested_and_selected_route": true,
    "content_logging_mode": "metadata_only"
  }
}

Il ne s’agit pas d’un contrat d’API Flatkey. C’est un modèle de revue pour les équipes d’ingénierie, produit, finance et sécurité. Le champ le plus important n’est pas le nom exact du JSON ; c’est la condition d’arrêt explicite pour chaque voie de récupération.

Liste de contrôle de déploiement de Flatkey

Utilisez cette liste de contrôle lors des tests d'une stratégie de réessai d'API IA via Flatkey ou toute passerelle IA :

  1. Commencez en environnement de préproduction : pointez un client compatible OpenAI vers https://router.flatkey.ai/v1 avec une clé non production.
  2. Choisissez un seul workflow : sélectionnez une route de chat, de résumé, d'embedding, d'image ou de vidéo plutôt que de tester tous les modèles à la fois.
  3. Définissez un budget de réessais : fixez le nombre maximal de tentatives, le temps écoulé maximal et les classes de statut ou d'erreur pouvant être retentées.
  4. Définissez l'éligibilité au fallback : exigez l'approbation du produit pour la qualité de sortie, l'approbation financière pour le coût et l'approbation sécurité pour la classe de données.
  5. Séparez le trafic de file d'attente : déplacez, lorsque c'est possible, les traitements par lots loin des requêtes interactives des utilisateurs.
  6. Échouez en mode fermé sur les problèmes de politique : ne laissez pas les échecs d'authentification, de sécurité, de budget ou de forme de requête basculer silencieusement vers une autre route.
  7. Vérifiez les journaux : confirmez que le tableau de bord ou les journaux exportés affichent la route demandée, la route sélectionnée, la chaîne de tentatives, le statut, l'utilisation, le coût et le propriétaire.
  8. Examinez les dépenses : utilisez les pratiques de gestion des quotas d'API IA et d'attribution des coûts des API IA afin que la récupération après réessai ne devienne pas une surprise budgétaire.

La page de tarification Flatkey en direct a publié côté serveur la tarification des modèles pour 638 modèles d'IA auprès de 23 fournisseurs lors de sa vérification le 18 juin 2026. Considérez cela uniquement comme une preuve de catalogue datée. Avant le trafic de production, vérifiez les lignes exactes des modèles, les types de points de terminaison, les unités de tarification, le statut de disponibilité et les champs du tableau de bord pour votre workflow.

Erreurs courantes à éviter

  • Traiter tous les 429 de la même façon : la pression liée au débit, les limites d’accélération et l’épuisement du budget nécessitent des actions différentes.
  • Réessayer des requêtes invalides : les erreurs de schéma, de contexte et de paramètre non pris en charge nécessitent des modifications de la requête, pas davantage de tentatives.
  • Recourir à un fallback sans évaluations : un modèle moins cher ou disponible n’est pas automatiquement acceptable pour le même workflow client.
  • Ignorer l’état du streaming : réessayer après une sortie partielle peut créer des réponses dupliquées ou contradictoires.
  • Supprimer les journaux de tentatives : l’examen d’un incident nécessite la chaîne complète des routes, pas seulement le succès final.
  • Laisser les retries contourner les budgets : chaque nouvelle tentative est une requête supplémentaire, un comptage de jetons supplémentaire et souvent une ligne de coût supplémentaire.

Questions fréquentes

Combien de fois une stratégie de retry d’API IA doit-elle réessayer une requête en échec ?

Pour le trafic interactif, commencez par une ou deux tentatives et un budget strict de temps écoulé. Les tâches en arrière-plan peuvent utiliser un backoff plus long et davantage de tentatives. Le bon nombre dépend de l’idempotence, de la latence utilisateur, des recommandations du fournisseur, du quota, du coût et du fait qu’un repli soit approuvé.

Les retries d’API LLM doivent-ils utiliser le même modèle ou un modèle de repli ?

Réessayez avec le même modèle pour les échecs probablement transitoires. N’utilisez un modèle de repli qu’après avoir épuisé le budget de retry sur le même chemin et si le repli a passé les vérifications de qualité, de coût, d’outils, de confidentialité et de conformité.

Quand le retry avec modèle de repli doit-il être bloqué ?

Bloquez le repli pour les échecs d’authentification, les échecs d’autorisation, les requêtes invalides, les blocages de sécurité ou de politique, l’épuisement du budget sans approbation, et tout flux de travail où un modèle différent pourrait modifier le comportement visible pour l’utilisateur au-delà de la tolérance du produit.

Que faut-il consigner pour les incidents de retry et de repli ?

Consignez l’ID de la requête parente, l’index de tentative, le chemin demandé, le chemin sélectionné, les IDs de requête du fournisseur lorsqu’ils sont disponibles, le code de statut, la classe d’erreur, les données retry-after, la latence, l’utilisation des tokens, le coût, la raison de la décision de repli et le résultat final. La journalisation centrée sur les métadonnées est généralement le bon choix par défaut.

Conclusion : Rendez la récupération explicite

Une stratégie de retry d’API IA est un contrôle de production, pas une fonction d’aide. Réessayez les échecs transitoires avec un petit budget. Ne changez de modèle que lorsque le fallback est approuvé. Mettez en file d’attente les tâches qui n’ont pas besoin d’une réponse synchrone. Échouez de manière fermée lorsque la sécurité, la sûreté, le budget ou la forme de la requête constituent le vrai problème.

Si votre équipe veut une seule clé, une URL de base compatible et un endroit plus clair pour examiner le routage des modèles, la tarification, l’utilisation et le comportement de reprise, obtenez une clé Flatkey et testez votre échelle de retry en préproduction avant le trafic de production.