Exemples de code - 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.

Exemples de code

Note

L’inférence par lots est actuellement disponible en version préliminaire et susceptible d’être modifiée. L’inférence par lots n’est actuellement disponible que via l’API. Accédez aux API par lots via les kits SDK suivants.

Nous vous recommandons de créer un environnement virtuel pour utiliser le SDK. Les API d'inférence par lots ne étant pas disponibles dans les derniers SDK, nous vous recommandons de désinstaller la dernière version du SDK de l'environnement virtuel avant d'installer la version avec les API d'inférence par lots. Pour un exemple guidé, voirExemples de code.

Sélectionnez une langue pour voir un exemple de code permettant d’appeler les opérations de l’API d’inférence par lots.

Python

Après avoir téléchargé le SDK Python et les fichiers CLI contenant les opérations de l'API d'inférence par lots, accédez au dossier contenant les fichiers et exécutez-le ls dans un terminal. Vous devriez voir au moins les 2 fichiers suivants.

botocore-1.32.4-py3-none-any.whl boto3-1.29.4-py3-none-any.whl

Créez et activez un environnement virtuel pour les API d'inférence par lots en exécutant les commandes suivantes dans un terminal. Vous pouvez remplacer bedrock-batch par le nom de votre choix pour l'environnement.

python3 -m venv bedrock-batch source bedrock-batch/bin/activate

Pour vous assurer qu'il n'y a aucun artefact provenant d'une version ultérieure de boto3 etbotocore, désinstallez les versions existantes en exécutant les commandes suivantes dans un terminal.

python3 -m pip uninstall botocore python3 -m pip uninstall boto3

Installez le SDK Python contenant les API du plan de contrôle Amazon Bedrock en exécutant les commandes suivantes dans un terminal.

python3 -m pip install botocore-1.32.4-py3-none-any.whl python3 -m pip install boto3-1.29.4-py3-none-any.whl

Exécutez tout le code suivant dans l'environnement virtuel que vous avez créé.

Créez une tâche d’inférence par lots avec un fichier nommé abc.jsonl que vous avez chargé dans S3. Écrivez la sortie dans un compartiment dans s3://output-bucket/output/. Obtenez le jobArn à partir de la réponse.

import boto3 bedrock = boto3.client(service_name="bedrock") inputDataConfig=({ "s3InputDataConfig": { "s3Uri": "s3://input-bucket/input/abc.jsonl" } }) outputDataConfig=({ "s3OutputDataConfig": { "s3Uri": "s3://output-bucket/output/" } }) response=bedrock.create_model_invocation_job( roleArn="arn:aws:iam::123456789012:role/MyBatchInferenceRole", modelId="amazon.titan-text-express-v1", jobName="my-batch-job", inputDataConfig=inputDataConfig, outputDataConfig=outputDataConfig ) jobArn = response.get('jobArn')

Renvoyez le statut (status) de la tâche.

bedrock.get_model_invocation_job(jobIdentifier=jobArn)['status']

Affichez les tâches d’inférence par lots qui ont échoué.

bedrock.list_model_invocation_jobs( maxResults=10, statusEquals="Failed", sortOrder="Descending" )

Arrêtez la tâche que vous avez commencée.

bedrock.stop_model_invocation_job(jobIdentifier=jobArn)
Java
package com.amazon.aws.sample.bedrock.inference; import com.amazonaws.services.bedrock.AmazonBedrockAsync; import com.amazonaws.services.bedrock.AmazonBedrockAsyncClientBuilder; import com.amazonaws.services.bedrock.model.CreateModelInvocationJobRequest; import com.amazonaws.services.bedrock.model.CreateModelInvocationJobResult; import com.amazonaws.services.bedrock.model.GetModelInvocationJobRequest; import com.amazonaws.services.bedrock.model.GetModelInvocationJobResult; import com.amazonaws.services.bedrock.model.InvocationJobInputDataConfig; import com.amazonaws.services.bedrock.model.InvocationJobOutputDataConfig; import com.amazonaws.services.bedrock.model.InvocationJobS3InputDataConfig; import com.amazonaws.services.bedrock.model.InvocationJobS3OutputDataConfig; import com.amazonaws.services.bedrock.model.ListModelInvocationJobsRequest; import com.amazonaws.services.bedrock.model.ListModelInvocationJobsResult; import com.amazonaws.services.bedrock.model.StopModelInvocationJobRequest; import com.amazonaws.services.bedrock.model.StopModelInvocationJobResult; public class BedrockAsyncInference { private final AmazonBedrockAsync amazonBedrockAsyncClient = AmazonBedrockAsyncClientBuilder.defaultClient(); public void createModelInvokeJobSampleCode() { final InvocationJobS3InputDataConfig invocationJobS3InputDataConfig = new InvocationJobS3InputDataConfig() .withS3Uri("s3://Input-bucket-name/input/abc.jsonl") .withS3InputFormat("JSONL"); final InvocationJobInputDataConfig inputDataConfig = new InvocationJobInputDataConfig() .withS3InputDataConfig(invocationJobS3InputDataConfig); final InvocationJobS3OutputDataConfig invocationJobS3OutputDataConfig = new InvocationJobS3OutputDataConfig() .withS3Uri("s3://output-bucket-name/output/"); final InvocationJobOutputDataConfig invocationJobOutputDataConfig = new InvocationJobOutputDataConfig() .withS3OutputDataConfig(invocationJobS3OutputDataConfig); final CreateModelInvocationJobRequest createModelInvocationJobRequest = new CreateModelInvocationJobRequest() .withModelId("anthropic.claude-v2") .withJobName("unique-job-name") .withClientRequestToken("Client-token") .withInputDataConfig(inputDataConfig) .withOutputDataConfig(invocationJobOutputDataConfig); final CreateModelInvocationJobResult createModelInvocationJobResult = amazonBedrockAsyncClient .createModelInvocationJob(createModelInvocationJobRequest); System.out.println(createModelInvocationJobResult.getJobArn()); } public void getModelInvokeJobSampleCode() { final GetModelInvocationJobRequest getModelInvocationJobRequest = new GetModelInvocationJobRequest() .withJobIdentifier("jobArn"); final GetModelInvocationJobResult getModelInvocationJobResult = amazonBedrockAsyncClient .getModelInvocationJob(getModelInvocationJobRequest); } public void listModelInvokeJobSampleCode() { final ListModelInvocationJobsRequest listModelInvocationJobsRequest = new ListModelInvocationJobsRequest() .withMaxResults(10) .withNameContains("matchin-string"); final ListModelInvocationJobsResult listModelInvocationJobsResult = amazonBedrockAsyncClient .listModelInvocationJobs(listModelInvocationJobsRequest); } public void stopModelInvokeJobSampleCode() { final StopModelInvocationJobRequest stopModelInvocationJobRequest = new StopModelInvocationJobRequest() .withJobIdentifier("jobArn"); final StopModelInvocationJobResult stopModelInvocationJobResult = amazonBedrockAsyncClient .stopModelInvocationJob(stopModelInvocationJobRequest); } }