

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Exemplo de código para inferência em lote
<a name="batch-inference-example"></a>

O exemplo de código neste capítulo mostra como criar um trabalho de inferência em lote, visualizar informações sobre ele e interrompê-lo. Este exemplo usa o formato `InvokeModel` da API. Para obter informações sobre como usar o formato de `Converse` API, consulte[Formatar e carregar os dados de inferência](batch-inference-data.md).

Selecione uma linguagem para ver um exemplo de código dela:

------
#### [ Python ]

Crie um arquivo JSONL chamado {{abc.jsonl}} e inclua um objeto JSON para cada registro que contenha pelo menos o número mínimo de registros (consulte o **número mínimo de registros por trabalho de inferência em lote** para ver). {{{Model}}} [Cotas do Amazon Bedrock](quotas.md) Neste exemplo, você usará o modelo Claude 3 Haiku da Anthropic. O exemplo a seguir mostra a primeira entrada JSON no arquivo:

```
{
    "recordId": "CALL0000001", 
    "modelInput": {
        "anthropic_version": "bedrock-2023-05-31", 
        "max_tokens": 1024,
        "messages": [ 
            { 
                "role": "user", 
                "content": [
                    {
                        "type": "text", 
                        "text": "Summarize the following call transcript: ..." 
                    } 
                ]
            }
        ]
    }
}
... 
# Add records until you hit the minimum
```

Crie um bucket do S3 chamado {{amzn-s3-demo-bucket-input}} e faça o upload do arquivo nele. Em seguida, crie um bucket S3 chamado {{amzn-s3-demo-bucket-output}} para gravar seus arquivos de saída. Execute o seguinte trecho de código para enviar um trabalho e obter {{jobArn}} a resposta:

```
import boto3

bedrock = boto3.client(service_name="bedrock")

inputDataConfig=({
    "s3InputDataConfig": {
        "s3Uri": "s3://amzn-s3-demo-bucket-input/abc.jsonl"
    }
})

outputDataConfig=({
    "s3OutputDataConfig": {
        "s3Uri": "s3://amzn-s3-demo-bucket-output/"
    }
})

response=bedrock.create_model_invocation_job(
    roleArn="arn:aws:iam::123456789012:role/MyBatchInferenceRole",
    modelId="anthropic.claude-3-haiku-20240307-v1:0",
    jobName="my-batch-job",
    inputDataConfig=inputDataConfig,
    outputDataConfig=outputDataConfig
)

jobArn = response.get('jobArn')
```

Retorne o `status` do trabalho.

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

Liste trabalhos de inferência em lote que{{Failed}}.

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

Interrompa o trabalho que começou.

```
bedrock.stop_model_invocation_job(jobIdentifier=jobArn)
```

------
#### [ Java ]

```
package com.amazon.aws.sample.bedrock.inference;

import software.amazon.awssdk.services.bedrock.BedrockClient;
import software.amazon.awssdk.services.bedrock.model.*;

public class BedrockBatchInference {
    private final BedrockClient bedrockClient = BedrockClient.create();

    public void createModelInvokeJobSampleCode() {

        CreateModelInvocationJobResponse response = bedrockClient.createModelInvocationJob(request -> request
                .modelId("anthropic.claude-haiku-4-5-20251001-v1:0")
                .jobName("unique-job-name")
                .roleArn("arn:aws:iam::123456789:role/bedrock-role")
                .clientRequestToken("client-token")
                .inputDataConfig(input -> input
                        .s3InputDataConfig(s3 -> s3
                                .s3Uri("s3://batch-input/abc.jsonl")
                                .s3InputFormat(S3InputFormat.JSONL)))
                .outputDataConfig(output -> output
                        .s3OutputDataConfig(s3 -> s3
                                .s3Uri("s3://batch-output/"))));

        System.out.println(response.jobArn());
    }

    public void getModelInvokeJobSampleCode() {
        GetModelInvocationJobResponse response = bedrockClient.getModelInvocationJob(request -> request
                .jobIdentifier("jobArn"));

        System.out.println(response.status());
    }

    public void listModelInvokeJobSampleCode() {
        ListModelInvocationJobsResponse response = bedrockClient.listModelInvocationJobs(request -> request
                .maxResults(10)
                .nameContains("matching-string"));

        response.invocationJobSummaries().forEach(job ->
                System.out.println(job.jobName() + ": " + job.status()));
    }

    public void stopModelInvokeJobSampleCode() {
        bedrockClient.stopModelInvocationJob(request -> request
                .jobIdentifier("jobArn"));
    }
}
```

------