本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
程式碼範例
注意
批次推論為預覽版,可能會有所變更。批次推論目前只能透過 API 使用。透過下列 SDK 存取批次 API。
我們建議您建立虛擬環境以使用 SDK。由於最新的 SDK 中無法使用批次推論 API,因此建議您先從虛擬環境中解除安裝最新版本的 SDK,然後再使用批次推論 API 安裝版本。如需引導範例,請參閱程式碼範例。
選取要用以查看程式碼範例語言,以呼叫批次推論 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 建立並啟動虛擬環境。您可以使用您選擇的
環境名稱來取代基礎批次
。python3 -m venv
bedrock-batch
sourcebedrock-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); } }
列出批次推論任務
提示詞工程指導方針