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 disebutMyCustomModel
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 a
provisioned-model-arn
. Berikan waktu untuk pembuatan selesai. Untuk memeriksa statusnya, berikan nama atau ARN dari model yang disediakan sepertiprovisioned-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 bernamaoutput.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.txtHapus 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 disebutMyCustomModel
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 a
provisionedModelArn
. 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')