Contoh kode untuk Throughput yang Disediakan di Amazon Bedrock - Amazon Bedrock

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Contoh kode untuk Throughput yang Disediakan di Amazon Bedrock

Contoh kode berikut menunjukkan cara membuat, menggunakan, dan mengelola Provisioned Throughput dengan dan Python AWS CLI SDK.

AWS CLI

Buat Throughput Penyediaan tanpa komitmen yang dipanggil MyPT berdasarkan model khusus yang disebut MyCustomModel yang disesuaikan dari model Anthropic Claude v2.1 dengan menjalankan perintah berikut di terminal.

aws bedrock create-provisioned-model-throughput \ --model-units 1 \ --provisioned-model-name MyPT \ --model-id arn:aws:bedrock:us-east-1::custom-model/anthropic.claude-v2:1:200k/MyCustomModel

Respons mengembalikan aprovisioned-model-arn. Berikan waktu untuk pembuatan selesai. Untuk memeriksa statusnya, berikan nama atau ARN dari model yang disediakan seperti provisioned-model-id pada perintah berikut.

aws bedrock get-provisioned-model-throughput \ --provisioned-model-id MyPT

Ubah nama Provisioned Throughput dan kaitkan dengan model berbeda yang disesuaikan dari v2.1. Anthropic Claude

aws bedrock update-provisioned-model-throughput \ --provisioned-model-id MyPT \ --desired-provisioned-model-name MyPT2 \ --desired-model-id arn:aws:bedrock:us-east-1::custom-model/anthropic.claude-v2:1:200k/MyCustomModel2

Jalankan inferensi dengan model penyediaan Anda yang diperbarui dengan perintah berikut. Anda harus memberikan ARN dari model yang disediakan, dikembalikan dalam UpdateProvisionedModelThroughput tanggapan, sebagai. model-id Output ditulis ke file bernama output.txt di folder Anda saat ini.

aws bedrock-runtime invoke-model \ --model-id ${provisioned-model-arn} \ --body '{"inputText": "What is AWS?", "textGenerationConfig": {"temperature": 0.5}}' \ --cli-binary-format raw-in-base64-out \ output.txt

Hapus Provisioned Throughput menggunakan perintah berikut. Anda tidak akan lagi dikenakan biaya untuk Throughput yang Disediakan.

aws bedrock delete-provisioned-model-throughput --provisioned-model-id MyPT2
Python (Boto)

Buat Throughput Penyediaan tanpa komitmen yang dipanggil MyPT berdasarkan model khusus yang disebut MyCustomModel yang disesuaikan dari model Anthropic Claude v2.1 dengan menjalankan cuplikan kode berikut.

import boto3 bedrock = boto3.client(service_name='bedrock') bedrock.create_provisioned_model_throughput( modelUnits=1, provisionedModelName='MyPT', modelId='arn:aws:bedrock:us-east-1::custom-model/anthropic.claude-v2:1:200k/MyCustomModel' )

Respons mengembalikan aprovisionedModelArn. Berikan waktu untuk pembuatan selesai. Anda dapat memeriksa statusnya dengan cuplikan kode berikut. Anda dapat memberikan nama Throughput yang Disediakan atau ARN yang dikembalikan dari respons sebagai. CreateProvisionedModelThroughputprovisionedModelId

bedrock.get_provisioned_model_throughput(provisionedModelId='MyPT')

Ubah nama Provisioned Throughput dan kaitkan dengan model berbeda yang disesuaikan dari v2.1. Anthropic Claude Kemudian kirim GetProvisionedModelThroughputpermintaan dan simpan ARN dari model yang disediakan ke variabel yang akan digunakan untuk inferensi.

bedrock.update_provisioned_model_throughput( provisionedModelId='MyPT', desiredProvisionedModelName='MyPT2', desiredModelId='arn:aws:bedrock:us-east-1::custom-model/anthropic.claude-v2:1:200k/MyCustomModel2' ) arn_MyPT2 = bedrock.get_provisioned_model_throughput(provisionedModelId='MyPT2').get('provisionedModelArn')

Jalankan inferensi dengan model penyediaan Anda yang diperbarui dengan perintah berikut. Anda harus memberikan ARN dari model yang disediakan sebagai. modelId

import json import logging import boto3 from botocore.exceptions import ClientError class ImageError(Exception): "Custom exception for errors returned by the model" def __init__(self, message): self.message = message logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) def generate_text(model_id, body): """ Generate text using your provisioned custom model. Args: model_id (str): The model ID to use. body (str) : The request body to use. Returns: response (json): The response from the model. """ logger.info( "Generating text with your provisioned custom model %s", model_id) brt = boto3.client(service_name='bedrock-runtime') accept = "application/json" content_type = "application/json" response = brt.invoke_model( body=body, modelId=model_id, accept=accept, contentType=content_type ) response_body = json.loads(response.get("body").read()) finish_reason = response_body.get("error") if finish_reason is not None: raise ImageError(f"Text generation error. Error is {finish_reason}") logger.info( "Successfully generated text with provisioned custom model %s", model_id) return response_body def main(): """ Entrypoint for example. """ try: logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") model_id = arn_myPT2 body = json.dumps({ "inputText": "what is AWS?" }) response_body = generate_text(model_id, body) print(f"Input token count: {response_body['inputTextTokenCount']}") for result in response_body['results']: print(f"Token count: {result['tokenCount']}") print(f"Output text: {result['outputText']}") print(f"Completion reason: {result['completionReason']}") except ClientError as err: message = err.response["Error"]["Message"] logger.error("A client error occurred: %s", message) print("A client error occured: " + format(message)) except ImageError as err: logger.error(err.message) print(err.message) else: print( f"Finished generating text with your provisioned custom model {model_id}.") if __name__ == "__main__": main()

Hapus Provisioned Throughput dengan cuplikan kode berikut. Anda tidak akan lagi dikenakan biaya untuk Throughput yang Disediakan.

bedrock.delete_provisioned_model_throughput(provisionedModelId='MyPT2')