Soumettre un lot de demandes à 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.

Soumettre un lot de demandes à l'aide de l'API OpenAI Batch

Vous pouvez exécuter une tâche d'inférence par lots à l'aide de l'API OpenAI Create batch avec les modèles Amazon BedrockOpenAI.

Vous pouvez appeler l'API OpenAI Create batch des manières suivantes :

  • Effectuez une requête HTTP avec un point de terminaison Amazon Bedrock Runtime.

  • Utilisez une demande de OpenAI SDK avec un point de terminaison Amazon Bedrock Runtime.

Sélectionnez un sujet pour en savoir plus :

Modèles et régions pris en charge pour l'API OpenAI batch

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 les régions pris en charge, consultezModèles de fondation pris en charge dans Amazon Bedrock.

Conditions requises pour utiliser l'API OpenAI batch

Pour connaître les conditions requises pour utiliser les opérations d'API OpenAI par lots, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

OpenAI SDK
HTTP request

Création d'une tâche OpenAI par lots

Pour plus de détails sur l'API OpenAI Create Batch, consultez les ressources suivantes de la OpenAI documentation :

  • 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 le traitement par lots. Reportez-vous à cette documentation lorsque vous interprétez les résultats dans votre compartiment S3.

Formez 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 :
  • point de terminaison — Doit êtrev1/chat/completions.

  • input_file_id — Spécifiez l'URI S3 de votre fichier JSONL batch.

Trouvez les résultats générés

La réponse de création inclut un identifiant 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'identifiant du 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 Create batch avec différentes méthodes, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

OpenAI SDK (Python)

Pour créer un traitement par lots avec le OpenAI SDK, procédez comme suit :

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

    • base_url— Préfixez le point de terminaison Amazon Bedrock Runtime à/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 le 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 Create batch job us-west-2 et inclut une 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 le chat à l'aide d'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 Amazon Bedrock Runtime sur/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 suivant appelle l'API Create chat complétion us-west-2 et inclut une 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érer une tâche OpenAI par lots

Pour plus de détails sur la demande et la réponse de l'API OpenAI Retrieve batch, 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 Retrieve batch avec différentes méthodes, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

OpenAI SDK (Python)

Pour récupérer un traitement par lots avec le OpenAI SDK, procédez comme suit :

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

    • base_url— Préfixez le point de terminaison Amazon Bedrock Runtime à/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 le 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 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 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 un traitement par lots à l'aide d'une requête HTTP directe, procédez comme suit :

  1. Utilisez la méthode GET et spécifiez l'URL en préfixant le point de terminaison Amazon Bedrock Runtime sur/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'identifiant réel de votre traitement par lots.

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'

Lister les tâches OpenAI par lots

Pour plus de détails sur la demande et la réponse de l'API OpenAI List batches, reportez-vous à List batches. La réponse renvoie un ensemble d'informations sur vos tâches par lots.

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 List batches avec différentes méthodes, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

OpenAI SDK (Python)

Pour répertorier les tâches par lots avec le OpenAI SDK, procédez comme suit :

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

    • base_url— Préfixez le point de terminaison Amazon Bedrock Runtime à/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 le extra_headers lorsque vous effectuez un appel d'API spécifique.

  2. Utilisez la méthode batches.list () avec le client. Vous pouvez inclure n'importe quel paramètre facultatif.

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 List batch jobs 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 répertorier les tâches par lots avec une requête HTTP directe, procédez comme suit :

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

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

    Vous pouvez inclure n'importe quel paramètre de requête facultatif.

  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 suivant appelle l'API OpenAI List batches 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'

Annuler une tâche OpenAI par lots

Pour plus de détails sur la demande et la réponse de l'API d'OpenAIannulation par lots, reportez-vous à la section Annuler le lot. La réponse renvoie des informations sur le traitement par lots annulé.

Lorsque vous faites la demande, vous spécifiez l'ID du traitement par lots que vous souhaitez annuler.

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

OpenAI SDK (Python)

Pour annuler un traitement par lots avec le OpenAI SDK, procédez comme suit :

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

    • base_url— Préfixez le point de terminaison Amazon Bedrock Runtime à/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 le 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 un traitement par lots à l'aide d'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 Amazon Bedrock Runtime sur/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'identifiant réel de votre traitement par lots.

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'