コードサンプル - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コードサンプル

注記

バッチ推論は現在プレビューにつき、今後変更される可能性があります。バッチ推論は現在 API を通じてのみ利用できます。バッチ API には次の SDK からアクセスします。

SDK を使用する仮想環境を作成することをお勧めします。バッチ推論 API は最新の SDK では使用できないため、バッチ推論 API を含むバージョンをインストールする前に、仮想環境から最新バージョンの SDK をアンインストールすることをお勧めします。ガイド付きの例については、を参照してください。コードサンプル

言語を選択すると、バッチ推論 API オペレーションを呼び出すコードサンプルが表示されます。

Python

バッチ推論 API 操作を含む Python SDK ファイルと CLI ファイルをダウンロードしたら、ファイルが含まれているフォルダーに移動し、lsターミナルで実行します。少なくとも、次の 2 つのファイルが表示されるはずです。

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

ターミナルで以下のコマンドを実行して、バッチ推論 API 用の仮想環境を作成して有効にします。bedrock-batch は環境に適した名前に置き換えることができます。

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

boto3およびの新しいバージョンからのアーティファクトがないことを確認するにはbotocore、ターミナルで以下のコマンドを実行して既存のバージョンをアンインストールします。

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

ターミナルで以下のコマンドを実行して、Amazon Bedrock コントロールプレーン API を含む Python SDK をインストールします。

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

作成した仮想環境で、次のコードをすべて実行します。

S3 にアップロードした abc.jsonl という名前のファイルを使用してバッチ推論ジョブを作成します。出力を s3://output-bucket/output/ のバケットに書き込みます。レスポンスから jobArn を取得します。

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

ジョブの status を返します。

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

失敗したバッチ推論ジョブを一覧表示します。

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

開始したジョブを停止します。

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