- Vous devez traiter de gros volumes de données
- Les réponses immédiates ne sont pas requises
- Vous voulez optimiser l’efficacité des coûts
- Vous effectuez des évaluations ou analyses à grande échelle
API Message Batches
L’API Message Batches est un moyen puissant et rentable de traiter de manière asynchrone de gros volumes de requêtes Messages. Cette approche est bien adaptée aux tâches qui ne nécessitent pas de réponses immédiates, la plupart des lots se terminant en moins d’1 heure tout en réduisant les coûts de 50% et en augmentant le débit. Vous pouvez explorer directement la référence API, en plus de ce guide.Comment fonctionne l’API Message Batches
Lorsque vous envoyez une requête à l’API Message Batches :- Le système crée un nouveau Message Batch avec les requêtes Messages fournies.
- Le lot est ensuite traité de manière asynchrone, chaque requête étant gérée indépendamment.
- Vous pouvez interroger le statut du lot et récupérer les résultats lorsque le traitement est terminé pour toutes les requêtes.
- Évaluations à grande échelle : Traiter efficacement des milliers de cas de test.
- Modération de contenu : Analyser de gros volumes de contenu généré par les utilisateurs de manière asynchrone.
- Analyse de données : Générer des insights ou des résumés pour de gros ensembles de données.
- Génération de contenu en masse : Créer de grandes quantités de texte à diverses fins (par exemple, descriptions de produits, résumés d’articles).
Limitations des lots
- Un Message Batch est limité à soit 100 000 requêtes Message ou 256 MB de taille, selon ce qui est atteint en premier.
- Nous traitons chaque lot aussi rapidement que possible, la plupart des lots se terminant dans l’heure. Vous pourrez accéder aux résultats du lot lorsque tous les messages seront terminés ou après 24 heures, selon ce qui arrive en premier. Les lots expireront si le traitement ne se termine pas dans les 24 heures.
- Les résultats des lots sont disponibles pendant 29 jours après la création. Après cela, vous pouvez toujours voir le Batch, mais ses résultats ne seront plus disponibles au téléchargement.
- Les lots sont limités à un Workspace. Vous pouvez voir tous les lots—et leurs résultats—qui ont été créés dans le Workspace auquel appartient votre clé API.
- Les limites de taux s’appliquent à la fois aux requêtes HTTP de l’API Batches et au nombre de requêtes dans un lot en attente de traitement. Voir Limites de taux de l’API Message Batches. De plus, nous pouvons ralentir le traitement en fonction de la demande actuelle et de votre volume de requêtes. Dans ce cas, vous pourriez voir plus de requêtes expirer après 24 heures.
- En raison du débit élevé et du traitement concurrent, les lots peuvent légèrement dépasser la limite de dépenses configurée de votre Workspace.
Modèles supportés
L’API Message Batches supporte actuellement :- Claude Opus 4 (
claude-opus-4-20250514
) - Claude Sonnet 4 (
claude-sonnet-4-20250514
) - Claude Sonnet 3.7 (
claude-3-7-sonnet-20250219
) - Claude Sonnet 3.5 (
claude-3-5-sonnet-20240620
etclaude-3-5-sonnet-20241022
) - Claude Haiku 3.5 (
claude-3-5-haiku-20241022
) - Claude Haiku 3 (
claude-3-haiku-20240307
) - Claude Opus 3 (
claude-3-opus-20240229
)
Ce qui peut être traité par lots
Toute requête que vous pouvez faire à l’API Messages peut être incluse dans un lot. Cela inclut :- Vision
- Utilisation d’outils
- Messages système
- Conversations multi-tours
- Toutes les fonctionnalités bêta
Puisque les lots peuvent prendre plus de 5 minutes à traiter, considérez l’utilisation de la durée de cache d’1 heure avec la mise en cache des prompts pour de meilleurs taux de réussite de cache lors du traitement de lots avec un contexte partagé.
Tarification
L’API Batches offre des économies de coûts significatives. Toute utilisation est facturée à 50% des prix API standard.Model | Batch input | Batch output |
---|---|---|
Claude Opus 4.1 | $7.50 / MTok | $37.50 / MTok |
Claude Opus 4 | $7.50 / MTok | $37.50 / MTok |
Claude Sonnet 4 | $1.50 / MTok | $7.50 / MTok |
Claude Sonnet 3.7 | $1.50 / MTok | $7.50 / MTok |
Claude Sonnet 3.5 (deprecated) | $1.50 / MTok | $7.50 / MTok |
Claude Haiku 3.5 | $0.40 / MTok | $2 / MTok |
Claude Opus 3 (deprecated) | $7.50 / MTok | $37.50 / MTok |
Claude Haiku 3 | $0.125 / MTok | $0.625 / MTok |
Comment utiliser l’API Message Batches
Préparer et créer votre lot
Un Message Batch est composé d’une liste de requêtes pour créer un Message. La forme d’une requête individuelle comprend :- Un
custom_id
unique pour identifier la requête Messages - Un objet
params
avec les paramètres standard de l’API Messages
requests
:
custom_id
unique et contient les paramètres standard que vous utiliseriez pour un appel à l’API Messages.
Testez vos requêtes de lot avec l’API MessagesLa validation de l’objet
params
pour chaque requête de message est effectuée de manière asynchrone, et les erreurs de validation sont retournées lorsque le traitement de l’ensemble du lot est terminé. Vous pouvez vous assurer que vous construisez votre entrée correctement en vérifiant d’abord la forme de votre requête avec l’API Messages.in_progress
.
JSON
Suivre votre lot
Le champprocessing_status
du Message Batch indique l’étape de traitement dans laquelle se trouve le lot. Il commence par in_progress
, puis se met à jour à ended
une fois que toutes les requêtes du lot ont fini de traiter, et les résultats sont prêts. Vous pouvez surveiller l’état de votre lot en visitant la Console, ou en utilisant le point de terminaison de récupération :
Récupérer les résultats du lot
Une fois le traitement du lot terminé, chaque requête Messages dans le lot aura un résultat. Il y a 4 types de résultats :Type de résultat | Description |
---|---|
succeeded | La requête a réussi. Inclut le résultat du message. |
errored | La requête a rencontré une erreur et un message n’a pas été créé. Les erreurs possibles incluent des requêtes invalides et des erreurs de serveur interne. Vous ne serez pas facturé pour ces requêtes. |
canceled | L’utilisateur a annulé le lot avant que cette requête puisse être envoyée au modèle. Vous ne serez pas facturé pour ces requêtes. |
expired | Le lot a atteint son expiration de 24 heures avant que cette requête puisse être envoyée au modèle. Vous ne serez pas facturé pour ces requêtes. |
request_counts
du lot, qui montrent combien de requêtes ont atteint chacun de ces quatre états.
Les résultats du lot sont disponibles au téléchargement à la propriété results_url
sur le Message Batch, et si l’autorisation de l’organisation le permet, dans la Console. En raison de la taille potentiellement importante des résultats, il est recommandé de diffuser les résultats plutôt que de les télécharger tous en une fois.
.jsonl
, où chaque ligne est un objet JSON valide représentant le résultat d’une seule requête dans le Message Batch. Pour chaque résultat diffusé, vous pouvez faire quelque chose de différent selon son custom_id
et son type de résultat. Voici un exemple d’ensemble de résultats :
.jsonl file
result.error
sera défini sur notre forme d’erreur standard.
Les résultats des lots peuvent ne pas correspondre à l’ordre d’entréeLes résultats des lots peuvent être retournés dans n’importe quel ordre, et peuvent ne pas correspondre à l’ordre des requêtes lorsque le lot a été créé. Dans l’exemple ci-dessus, le résultat de la deuxième requête du lot est retourné avant le premier. Pour faire correspondre correctement les résultats avec leurs requêtes correspondantes, utilisez toujours le champ
custom_id
.Utiliser la mise en cache des prompts avec Message Batches
L’API Message Batches supporte la mise en cache des prompts, vous permettant de potentiellement réduire les coûts et le temps de traitement pour les requêtes de lot. Les remises de tarification de la mise en cache des prompts et des Message Batches peuvent se cumuler, offrant des économies de coûts encore plus importantes lorsque les deux fonctionnalités sont utilisées ensemble. Cependant, puisque les requêtes de lot sont traitées de manière asynchrone et concurrente, les réussites de cache sont fournies sur la base du meilleur effort. Les utilisateurs expérimentent généralement des taux de réussite de cache allant de 30% à 98%, selon leurs modèles de trafic. Pour maximiser la probabilité de réussites de cache dans vos requêtes de lot :- Incluez des blocs
cache_control
identiques dans chaque requête Message de votre lot - Maintenez un flux constant de requêtes pour empêcher les entrées de cache d’expirer après leur durée de vie de 5 minutes
- Structurez vos requêtes pour partager autant de contenu mis en cache que possible
cache_control
pour augmenter la probabilité de réussites de cache.
Meilleures pratiques pour un traitement par lots efficace
Pour tirer le meilleur parti de l’API Batches :- Surveillez régulièrement le statut de traitement des lots et implémentez une logique de nouvelle tentative appropriée pour les requêtes échouées.
- Utilisez des valeurs
custom_id
significatives pour faire correspondre facilement les résultats avec les requêtes, puisque l’ordre n’est pas garanti. - Considérez diviser de très gros ensembles de données en plusieurs lots pour une meilleure gérabilité.
- Effectuez un test à blanc d’une seule forme de requête avec l’API Messages pour éviter les erreurs de validation.
Dépannage des problèmes courants
Si vous rencontrez un comportement inattendu :- Vérifiez que la taille totale de la requête de lot ne dépasse pas 256 MB. Si la taille de la requête est trop importante, vous pourriez obtenir une erreur 413
request_too_large
. - Vérifiez que vous utilisez des modèles supportés pour toutes les requêtes du lot.
- Assurez-vous que chaque requête du lot a un
custom_id
unique. - Assurez-vous qu’il s’est écoulé moins de 29 jours depuis l’heure de
created_at
du lot (pas l’heure deended_at
du traitement). Si plus de 29 jours se sont écoulés, les résultats ne seront plus visibles. - Confirmez que le lot n’a pas été annulé.
Stockage et confidentialité des lots
- Isolation des Workspaces : Les lots sont isolés dans le Workspace dans lequel ils sont créés. Ils ne peuvent être accessibles que par les clés API associées à ce Workspace, ou les utilisateurs ayant la permission de voir les lots du Workspace dans la Console.
- Disponibilité des résultats : Les résultats des lots sont disponibles pendant 29 jours après la création du lot, permettant un temps suffisant pour la récupération et le traitement.
FAQ
Combien de temps faut-il pour qu'un lot soit traité ?
Combien de temps faut-il pour qu'un lot soit traité ?
Les lots peuvent prendre jusqu’à 24 heures pour le traitement, mais beaucoup se termineront plus tôt. Le temps de traitement réel dépend de la taille du lot, de la demande actuelle et de votre volume de requêtes. Il est possible qu’un lot expire et ne se termine pas dans les 24 heures.
L'API Batches est-elle disponible pour tous les modèles ?
L'API Batches est-elle disponible pour tous les modèles ?
Voir ci-dessus pour la liste des modèles supportés.
Puis-je utiliser l'API Message Batches avec d'autres fonctionnalités de l'API ?
Puis-je utiliser l'API Message Batches avec d'autres fonctionnalités de l'API ?
Oui, l’API Message Batches supporte toutes les fonctionnalités disponibles dans l’API Messages, y compris les fonctionnalités bêta. Cependant, le streaming n’est pas supporté pour les requêtes de lot.
Comment l'API Message Batches affecte-t-elle la tarification ?
Comment l'API Message Batches affecte-t-elle la tarification ?
L’API Message Batches offre une remise de 50% sur toute utilisation par rapport aux prix API standard. Cela s’applique aux tokens d’entrée, aux tokens de sortie et à tous les tokens spéciaux. Pour plus d’informations sur la tarification, visitez notre page de tarification.
Puis-je mettre à jour un lot après qu'il ait été soumis ?
Puis-je mettre à jour un lot après qu'il ait été soumis ?
Non, une fois qu’un lot a été soumis, il ne peut pas être modifié. Si vous devez apporter des modifications, vous devriez annuler le lot actuel et en soumettre un nouveau. Notez que l’annulation peut ne pas prendre effet immédiatement.
Y a-t-il des limites de taux pour l'API Message Batches et interagissent-elles avec les limites de taux de l'API Messages ?
Y a-t-il des limites de taux pour l'API Message Batches et interagissent-elles avec les limites de taux de l'API Messages ?
L’API Message Batches a des limites de taux basées sur les requêtes HTTP en plus des limites sur le nombre de requêtes nécessitant un traitement. Voir Limites de taux de l’API Message Batches. L’utilisation de l’API Batches n’affecte pas les limites de taux dans l’API Messages.
Comment gérer les erreurs dans mes requêtes de lot ?
Comment gérer les erreurs dans mes requêtes de lot ?
Lorsque vous récupérez les résultats, chaque requête aura un champ
result
indiquant si elle a succeeded
, errored
, été canceled
, ou expired
. Pour les résultats errored
, des informations d’erreur supplémentaires seront fournies. Consultez l’objet de réponse d’erreur dans la référence API.Comment l'API Message Batches gère-t-elle la confidentialité et la séparation des données ?
Comment l'API Message Batches gère-t-elle la confidentialité et la séparation des données ?
L’API Message Batches est conçue avec de fortes mesures de confidentialité et de séparation des données :
- Les lots et leurs résultats sont isolés dans le Workspace dans lequel ils ont été créés. Cela signifie qu’ils ne peuvent être accessibles que par les clés API de ce même Workspace.
- Chaque requête dans un lot est traitée indépendamment, sans fuite de données entre les requêtes.
- Les résultats ne sont disponibles que pendant une durée limitée (29 jours), et suivent notre politique de rétention des données.
- Le téléchargement des résultats de lot dans la Console peut être désactivé au niveau de l’organisation ou par workspace.
Puis-je utiliser la mise en cache des prompts dans l'API Message Batches ?
Puis-je utiliser la mise en cache des prompts dans l'API Message Batches ?
Oui, il est possible d’utiliser la mise en cache des prompts avec l’API Message Batches. Cependant, parce que les requêtes de lot asynchrones peuvent être traitées de manière concurrente et dans n’importe quel ordre, les réussites de cache sont fournies sur la base du meilleur effort.