Soumission d’un lot d’invites à l’aide de l’API OpenAI Batch - Amazon Bedrock

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Soumission d’un lot d’invites à l’aide de l’API OpenAI Batch

Vous pouvez exécuter une tâche d’inférence par lots utilisant l’API par lots Create OpenAI avec des modèles OpenAI Amazon Bedrock.

Vous pouvez appeler l’API OpenAI de création de lot des manières suivantes :

  • Effectuer une requête HTTP avec un point de terminaison d’exécution d’Amazon Bedrock.

  • Utiliser une demande de kit SDK OpenAI avec un point de terminaison d’exécution d’Amazon Bedrock.

Choisissez une rubrique pour en savoir plus :

Modèles et régions pris en charge pour l’API de lot OpenAI

Vous pouvez utiliser l'API OpenAI Create batch avec tous les OpenAI modèles pris en charge dans Amazon Bedrock et dans les AWS régions qui prennent en charge ces modèles. Pour plus d’informations sur les modèles et régions pris en charge, consultez Modèles de fondation pris en charge dans Amazon Bedrock.

Conditions préalables à l’utilisation de l’API de lot OpenAI

Pour connaître les conditions préalables à l’utilisation des opérations d’API par lots OpenAI, choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

OpenAI SDK
  • Authentification : le kit OpenAI SDK prend uniquement en charge l’authentification avec une clé d’API Amazon Bedrock. Générez une clé d’API Amazon Bedrock pour authentifier votre demande. Pour en savoir plus sur les clés d'API Amazon Bedrock et sur la façon de les générer, consultez la section Clés d'API du chapitre Build.

  • Point de terminaison : recherchez le point de terminaison correspondant à la AWS région à utiliser dans les points de terminaison et les quotas Amazon Bedrock Runtime. Si vous utilisez un AWS SDK, il se peut que vous deviez uniquement spécifier le code de région et non le point de terminaison complet lors de la configuration du client.

  • Accès au modèle : demandez l’accès à un modèle Amazon Bedrock compatible avec cette fonctionnalité. Pour de plus amples informations, veuillez consulter Gérez l'accès aux modèles à l'aide du SDK et de la CLI.

  • Installer un kit SDK OpenAI : pour plus d’informations, consultez Libraries dans la documentation OpenAI.

  • Fichier JSONL par lots chargé sur S3 : suivez les étapes décrites dans Prepare your batch file dans la documentation OpenAI pour préparer votre fichier par lots au format correct. Chargez-le dans un compartiment Amazon S3.

  • Autorisations IAM : assurez-vous de disposer des identités IAM suivantes avec les autorisations appropriées :

HTTP request
  • Authentification — Vous pouvez vous authentifier avec vos AWS informations d'identification ou avec une clé d'API Amazon Bedrock.

    Configurez vos AWS informations d'identification ou générez une clé d'API Amazon Bedrock pour authentifier votre demande.

  • Point de terminaison : recherchez le point de terminaison correspondant à la AWS région à utiliser dans les points de terminaison et les quotas Amazon Bedrock Runtime. Si vous utilisez un AWS SDK, il se peut que vous deviez uniquement spécifier le code de région et non le point de terminaison complet lors de la configuration du client.

  • Accès au modèle : demandez l’accès à un modèle Amazon Bedrock compatible avec cette fonctionnalité. Pour de plus amples informations, veuillez consulter Gérez l'accès aux modèles à l'aide du SDK et de la CLI.

  • Fichier JSONL par lots chargé sur S3 : suivez les étapes décrites dans Prepare your batch file dans la documentation OpenAI pour préparer votre fichier par lots au format correct. Chargez-le dans un compartiment Amazon S3.

  • Autorisations IAM : assurez-vous de disposer des identités IAM suivantes avec les autorisations appropriées :

Création d’une tâche par lot OpenAI

Pour plus de détails sur l’API OpenAI de création de lot, consultez les ressources suivantes dans la documentation OpenAI :

  • Créer un lot : détaille à la fois la demande et la réponse.

  • L’objet de sortie de la demande : détaille les champs de la sortie générée par la tâche par lot. Consultez cette documentation lorsque vous interprétez les résultats dans votre compartiment S3.

Formulation de la demande

Lorsque vous formulez la demande d’inférence par lots, notez les champs et valeurs spécifiques à Amazon Bedrock suivants :

En-têtes de demandes
Paramètres du corps de la demande :
  • endpoint : doit être v1/chat/completions.

  • input_file_id : spécifiez l’URI S3 de votre fichier JSONL par lot.

Recherche des résultats générés

La réponse de création inclut un ID de lot. Les résultats et la journalisation des erreurs de la tâche d’inférence par lots sont écrits dans le dossier S3 contenant le fichier d’entrée. Les résultats seront placés dans un dossier portant le même nom que l’ID de lot, comme dans la structure de dossiers suivante :

---- {batch_input_folder} |---- {batch_input}.jsonl |---- {batch_id} |---- {batch_input}.jsonl.out |---- {batch_input}.jsonl.err

Pour voir des exemples d’utilisation de l’API OpenAI de création de lot avec différentes méthodes, choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

OpenAI SDK (Python)

Pour créer une tâche par lot à l’aide du kit SDK OpenAI, procédez comme suit :

  1. Importez le kit OpenAI SDK et configurez le client avec les champs suivants :

    • base_url : préfixez le point de terminaison d’exécution d’Amazon Bedrock avec /openai/v1, comme dans le format suivant :

      https://${bedrock-runtime-endpoint}/openai/v1
    • api_key : spécifiez une clé d’API Amazon Bedrock.

    • default_headers : si vous devez inclure des en-têtes, vous pouvez les inclure sous forme de paires clé-valeur dans cet objet. Vous pouvez également spécifier des en-têtes dans extra_headers lorsque vous effectuez un appel d’API spécifique.

  2. Utilisez la méthode batches.create () avec le client.

Avant d’exécuter l’exemple suivant, remplacez les espaces réservés dans les champs suivants :

  • api_key — Remplacez par votre clé $AWS_BEARER_TOKEN_BEDROCK d'API réelle.

  • X-Amzn-BedrockRoleArn — arn:aws:iam::123456789012:role/BatchServiceRole Remplacez-le par le rôle de service d'inférence par lots que vous avez configuré.

  • input_file_id — Remplacez par s3://amzn-s3-demo-bucket/openai-input.jsonl l'URI S3 réel vers lequel vous avez chargé votre fichier JSONL par lots.

L’exemple appelle l’API OpenAI de création de tâche par lot dans la région us-west-2 et inclut un seul élément de métadonnée.

from openai import OpenAI client = OpenAI( base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", api_key="$AWS_BEARER_TOKEN_BEDROCK", # Replace with actual API key default_headers={ "X-Amzn-Bedrock-RoleArn": "arn:aws:iam::123456789012:role/BatchServiceRole" # Replace with actual service role ARN } ) job = client.batches.create( input_file_id="s3://amzn-s3-demo-bucket/openai-input.jsonl", # Replace with actual S3 URI endpoint="/v1/chat/completions", completion_window="24h", metadata={ "description": "test input" }, extra_headers={ "X-Amzn-Bedrock-ModelId": "openai.gpt-oss-20b-1:0", } ) print(job)
HTTP request

Pour terminer une discussion par une requête HTTP directe, procédez comme suit :

  1. Utilisez la méthode POST et spécifiez l’URL en préfixant le point de terminaison d’exécution d’Amazon Bedrock avec /openai/v1/batches, comme dans le format suivant :

    https://${bedrock-runtime-endpoint}/openai/v1/batches
  2. Spécifiez vos AWS informations d'identification ou une clé d'API Amazon Bedrock dans l'Authorizationen-tête.

Avant d’exécuter l’exemple suivant, remplacez d’abord les espaces réservés dans les champs suivants :

  • Autorisation — $AWS_BEARER_TOKEN_BEDROCK Remplacez-la par votre clé d'API réelle.

  • X-Amzn-BedrockRoleArn — arn:aws:iam::123456789012:role/BatchServiceRole Remplacez-le par le rôle de service d'inférence par lots que vous avez configuré.

  • input_file_id — Remplacez par s3://amzn-s3-demo-bucket/openai-input.jsonl l'URI S3 réel vers lequel vous avez chargé votre fichier JSONL par lots.

L’exemple appelle l’API Create chat completion dans la région us-west-2 et inclut un seul élément de métadonnée.

curl -X POST 'https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/batches' \ -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK' \ -H 'Content-Type: application/json' \ -H 'X-Amzn-Bedrock-ModelId: openai.gpt-oss-20b-1:0' \ -H 'X-Amzn-Bedrock-RoleArn: arn:aws:iam::123456789012:role/BatchServiceRole' \ -d '{ "input_file_id": "s3://amzn-s3-demo-bucket/openai-input.jsonl", "endpoint": "/v1/chat/completions", "completion_window": "24h", "metadata": {"description": "test input"} }'

Récupération d’une tâche par lot OpenAI

Pour plus de détails sur la demande et la réponse de l’API OpenAI de récupération de lot, reportez-vous à Retrieve batch.

Lorsque vous faites la demande, vous spécifiez l’ID du traitement par lots pour lequel vous souhaitez obtenir des informations. La réponse renvoie des informations sur un traitement par lots, notamment les noms des fichiers de sortie et d’erreur que vous pouvez rechercher dans vos compartiments S3.

Pour voir des exemples d’utilisation de l’API OpenAI de récupération de lot avec différentes méthodes, choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

OpenAI SDK (Python)

Pour récupérer une tâche par lot à l’aide du kit SDK OpenAI, procédez comme suit :

  1. Importez le kit OpenAI SDK et configurez le client avec les champs suivants :

    • base_url : préfixez le point de terminaison d’exécution d’Amazon Bedrock avec /openai/v1, comme dans le format suivant :

      https://${bedrock-runtime-endpoint}/openai/v1
    • api_key : spécifiez une clé d’API Amazon Bedrock.

    • default_headers : si vous devez inclure des en-têtes, vous pouvez les inclure sous forme de paires clé-valeur dans cet objet. Vous pouvez également spécifier des en-têtes dans extra_headers lorsque vous effectuez un appel d’API spécifique.

  2. Utilisez la méthode batches.retrieve () avec le client et spécifiez l’ID du lot pour lequel vous souhaitez extraire les informations.

Avant d’exécuter l’exemple suivant, remplacez les espaces réservés dans les champs suivants :

  • api_key — Remplacez par votre clé $AWS_BEARER_TOKEN_BEDROCK d'API réelle.

  • batch_id — Remplacez par votre clé $AWS_BEARER_TOKEN_BEDROCK d'API réelle.

L'exemple appelle l'API OpenAI Retrieve batch job pour un batch dont l'ID estbatch_abc123. us-west-2

from openai import OpenAI client = OpenAI( base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", api_key="$AWS_BEARER_TOKEN_BEDROCK" # Replace with actual API key ) job = client.batches.retrieve(batch_id="batch_abc123") # Replace with actual ID print(job)
HTTP request

Pour récupérer une tâche par lot à l’aide d’une demande HTTP directe, procédez comme suit :

  1. Utilisez la méthode GET et spécifiez l’URL en préfixant le point de terminaison d’exécution d’Amazon Bedrock avec /openai/v1/batches/${batch_id}, comme dans le format suivant :

    https://${bedrock-runtime-endpoint}/openai/v1/batches/batch_abc123
  2. Spécifiez vos AWS informations d'identification ou une clé d'API Amazon Bedrock dans l'Authorizationen-tête.

Avant d’exécuter l’exemple suivant, remplacez d’abord les espaces réservés dans les champs suivants :

  • Autorisation — $AWS_BEARER_TOKEN_BEDROCK Remplacez-la par votre clé d'API réelle.

  • batch_abc123 : dans le chemin, remplacez cette valeur par l’ID réel de votre tâche par lot.

L'exemple suivant appelle l'API OpenAI Retrieve batch pour une tâche par lots dont l'ID estbatch_abc123. us-west-2

curl -X GET 'https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/batches/batch_abc123' \ -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK'

Affichage des tâches par lots OpenAI

Pour plus de détails sur la demande et la réponse de l’API OpenAI d’affichage de la liste des lots, consultez List batch. La réponse renvoie un ensemble d’informations sur vos tâches par lot.

Lorsque vous faites la demande, vous pouvez inclure des paramètres de requête pour filtrer les résultats. La réponse renvoie des informations sur un traitement par lots, notamment les noms des fichiers de sortie et d’erreur que vous pouvez rechercher dans vos compartiments S3.

Pour voir des exemples d’utilisation de l’API OpenAI d’affichage de la liste des lots avec différentes méthodes, choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

OpenAI SDK (Python)

Pour afficher la liste des tâches par lot à l’aide du kit SDK OpenAI, procédez comme suit :

  1. Importez le kit OpenAI SDK et configurez le client avec les champs suivants :

    • base_url : préfixez le point de terminaison d’exécution d’Amazon Bedrock avec /openai/v1, comme dans le format suivant :

      https://${bedrock-runtime-endpoint}/openai/v1
    • api_key : spécifiez une clé d’API Amazon Bedrock.

    • default_headers : si vous devez inclure des en-têtes, vous pouvez les inclure sous forme de paires clé-valeur dans cet objet. Vous pouvez également spécifier des en-têtes dans extra_headers lorsque vous effectuez un appel d’API spécifique.

  2. Utilisez la méthode batches.list () avec le client. Vous pouvez ajouter les paramètres facultatifs suivants :

Avant d’exécuter l’exemple suivant, remplacez les espaces réservés dans les champs suivants :

  • api_key — Remplacez par votre clé $AWS_BEARER_TOKEN_BEDROCK d'API réelle.

L’exemple appelle l’API OpenAI d’affichage de la liste des tâches par lot dans la région us-west-2 et spécifie une limite de 2 résultats à renvoyer.

from openai import OpenAI client = OpenAI( base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", api_key="$AWS_BEARER_TOKEN_BEDROCK" # Replace with actual API key ) job = client.batches.retrieve(batch_id="batch_abc123") # Replace with actual ID print(job)
HTTP request

Pour afficher la liste des tâches par lot à l’aide d’une demande HTTP directe, procédez comme suit :

  1. Utilisez la méthode GET et spécifiez l’URL en préfixant le point de terminaison d’exécution d’Amazon Bedrock avec /openai/v1/batches, comme dans le format suivant :

    https://${bedrock-runtime-endpoint}/openai/v1/batches

    Vous pouvez ajouter les paramètres de requête facultatifs suivants :

  2. Spécifiez vos AWS informations d'identification ou une clé d'API Amazon Bedrock dans l'Authorizationen-tête.

Avant d’exécuter l’exemple suivant, remplacez d’abord les espaces réservés dans les champs suivants :

  • Autorisation — $AWS_BEARER_TOKEN_BEDROCK Remplacez-la par votre clé d'API réelle.

L’exemple appelle l’API OpenAI d’affichage de la liste des lots dans la région us-west-2 et spécifie une limite de 2 résultats à renvoyer.

curl -X GET 'https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/batches/batch_abc123' \ -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK'

Annulation d’une tâche par lot OpenAI

Pour plus de détails sur la demande et la réponse de l’API OpenAI d’annulation de lot, consultez Cancel batch. La réponse renvoie des informations sur la tâche par lot annulée.

Lorsque vous effectuez la demande, vous indiquez l’ID de la tâche par lot que vous souhaitez annuler.

Pour voir des exemples d’utilisation de l’API OpenAI d’annulation de lot avec différentes méthodes, choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

OpenAI SDK (Python)

Pour annuler une tâche par lot à l’aide du kit SDK OpenAI, procédez comme suit :

  1. Importez le kit OpenAI SDK et configurez le client avec les champs suivants :

    • base_url : préfixez le point de terminaison d’exécution d’Amazon Bedrock avec /openai/v1, comme dans le format suivant :

      https://${bedrock-runtime-endpoint}/openai/v1
    • api_key : spécifiez une clé d’API Amazon Bedrock.

    • default_headers : si vous devez inclure des en-têtes, vous pouvez les inclure sous forme de paires clé-valeur dans cet objet. Vous pouvez également spécifier des en-têtes dans extra_headers lorsque vous effectuez un appel d’API spécifique.

  2. Utilisez la méthode batches.cancel() avec le client et spécifiez l’ID du lot pour lequel vous souhaitez récupérer les informations.

Avant d’exécuter l’exemple suivant, remplacez les espaces réservés dans les champs suivants :

  • api_key — Remplacez par votre clé $AWS_BEARER_TOKEN_BEDROCK d'API réelle.

  • batch_id — Remplacez par votre clé $AWS_BEARER_TOKEN_BEDROCK d'API réelle.

L'exemple appelle l'API OpenAI Cancel batch job us-west-2 sur un batch dont l'ID estbatch_abc123.

from openai import OpenAI client = OpenAI( base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", api_key="$AWS_BEARER_TOKEN_BEDROCK" # Replace with actual API key ) job = client.batches.cancel(batch_id="batch_abc123") # Replace with actual ID print(job)
HTTP request

Pour annuler une tâche par lot à l’aide d’une demande HTTP directe, procédez comme suit :

  1. Utilisez la méthode POST et spécifiez l’URL en préfixant le point de terminaison d’exécution d’Amazon Bedrock avec /openai/v1/batches/${batch_id}/cancel, comme dans le format suivant :

    https://${bedrock-runtime-endpoint}/openai/v1/batches/batch_abc123/cancel
  2. Spécifiez vos AWS informations d'identification ou une clé d'API Amazon Bedrock dans l'Authorizationen-tête.

Avant d’exécuter l’exemple suivant, remplacez d’abord les espaces réservés dans les champs suivants :

  • Autorisation — $AWS_BEARER_TOKEN_BEDROCK Remplacez-la par votre clé d'API réelle.

  • batch_abc123 : dans le chemin, remplacez cette valeur par l’ID réel de votre tâche par lot.

L'exemple suivant appelle l'API OpenAI Cancel batch pour une tâche par lots dont l'ID estbatch_abc123. us-west-2

curl -X GET 'https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/batches/batch_abc123/cancel' \ -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK'