Format de réponse d’erreur
Toutes les erreurs renvoient un format JSON cohérent :Codes d’état HTTP
| Code | Description |
|---|---|
| 400 | Bad Request - Paramètres invalides |
| 401 | Unauthorized - Clé API invalide ou manquante |
| 402 | Payment Required - Solde insuffisant |
| 403 | Forbidden - Accès refusé ou modèle non autorisé |
| 404 | Not Found - Modèle ou ressource non trouvé |
| 413 | Payload Too Large - Taille de l’entrée ou du fichier dépassée |
| 429 | Too Many Requests - Limite de débit dépassée |
| 500 | Internal Server Error |
| 502 | Bad Gateway - Erreur du fournisseur en amont |
| 503 | Service Unavailable - Tous les canaux ont échoué |
| 504 | Gateway Timeout - La requête a expiré |
Types d’erreurs
Erreurs d’authentification (401)
| Type | Code | Description |
|---|---|---|
invalid_api_key | invalid_api_key | La clé API est manquante ou invalide |
expired_api_key | expired_api_key | La clé API a été révoquée |
Erreurs de paiement (402)
| Type | Code | Description |
|---|---|---|
insufficient_quota | insufficient_quota | Le solde du compte est trop bas |
quota_exceeded | quota_exceeded | Limite d’utilisation de la clé API atteinte |
Erreurs d’accès (403)
| Type | Code | Description |
|---|---|---|
access_denied | access_denied | Accès à la ressource refusé |
access_denied | model_not_allowed | Modèle non autorisé pour cette clé API |
Erreurs de validation (400)
| Type | Description |
|---|---|
invalid_request_error | Les paramètres de la requête sont invalides |
context_length_exceeded | Entrée trop longue pour le modèle |
model_not_found | Le modèle demandé n’existe pas |
Erreurs de limite de débit (429)
Lorsque vous dépassez les limites de débit :Payload Too Large (413)
Lorsque la taille de l’entrée ou du fichier dépasse les limites :- Fichier image trop volumineux (max 20 Mo)
- Fichier audio trop volumineux (max 25 Mo)
- Le texte d’entrée dépasse la longueur de contexte du modèle
Erreurs en amont (502, 503)
| Type | Description |
|---|---|
upstream_error | Le fournisseur a renvoyé une erreur |
all_channels_failed | Aucun fournisseur disponible |
timeout_error | La requête a expiré |
Gestion des erreurs en Python
Gestion des erreurs en JavaScript
Bonnes pratiques
Implémenter un backoff exponentiel
Implémenter un backoff exponentiel
En cas de limite de débit, attendez progressivement plus longtemps entre les tentatives :
Définir des timeouts
Définir des timeouts
Définissez toujours des délais d’expiration (timeouts) raisonnables pour éviter les requêtes bloquées :
Journaliser les erreurs pour le débogage
Journaliser les erreurs pour le débogage
Journalisez la réponse d’erreur complète, y compris l’ID de requête pour le support :
Gérer les erreurs spécifiques au modèle
Gérer les erreurs spécifiques au modèle
Certains modèles ont des exigences spécifiques (par ex., max tokens, formats d’image).
Validez les entrées avant d’effectuer des requêtes.