Ejemplos de código - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplos de código

nota

La inferencia por lotes está en versión de vista previa y sujeta a cambios. Actualmente, la inferencia por lotes solo está disponible a través de la API. Puede acceder a las API por lotes a través de los siguientes SDK.

Le recomendamos que cree un entorno virtual para usar el SDK. Como las API de inferencia por lotes no están disponibles en los SDK más recientes, le recomendamos que desinstale la última versión del SDK del entorno virtual antes de instalar la versión con las API de inferencia por lotes. Para ver un ejemplo guiado, consulte. Ejemplos de código

Seleccione un idioma para ver un ejemplo de código para llamar a las operaciones de la API de inferencia por lotes.

Python

Tras descargar los archivos CLI y del SDK de Python que contienen las operaciones de la API de inferencia por lotes, navegue hasta la carpeta que contiene los archivos y ejecútelo ls en una terminal. Deberías ver, como mínimo, los 2 archivos siguientes.

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

Cree y active un entorno virtual para las API de inferencia por lotes ejecutando los siguientes comandos en una terminal. Puede reemplazar bedrock-batch por el nombre que prefiera para el entorno.

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

Para asegurarse de que no haya artefactos de una versión posterior boto3 ybotocore, desinstale las versiones existentes ejecutando los siguientes comandos en una terminal.

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

Instale el SDK de Python que contiene las API del plano de control de Amazon Bedrock ejecutando los siguientes comandos en 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

Ejecute todo el código siguiente en el entorno virtual que ha creado.

Cree un trabajo de inferencia por lotes con un archivo denominado abc.jsonl que haya subido a S3. Escriba el resultado en un bucket en s3://output-bucket/output/. Obtenga el jobArn de la respuesta.

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')

Devuelva la parte status del trabajo.

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

Enumere los trabajos de inferencia por lotes que hayan fallado.

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

Detenga el trabajo que inició.

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); } }