を使用して Amazon Bedrock APIリクエストの例を実行する AWS SDK for Python (Boto3) - Amazon Bedrock

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

を使用して Amazon Bedrock APIリクエストの例を実行する AWS SDK for Python (Boto3)

このセクションでは、 を使用して Amazon Bedrock で一般的なオペレーションを試す方法について説明します。 AWS Python アクセス許可と認証が正しく設定されていることをテストするには、 を使用します。次の例を実行する前に、次の前提条件を満たしていることを確認する必要があります。

前提条件

作成した Amazon Bedrock ロールを使用して、Amazon Bedrock のアクセス許可とアクセスキーが正しく設定されていることを確認します。これらの例では、アクセスキーを使用して環境を設定していることを前提としています。次の点に注意してください。

  • 最小限、 を指定する必要があります。 AWS アクセスキー ID と AWS シークレットアクセスキー。

  • 一時的な認証情報を使用している場合は、 も含める必要があります。 AWS セッショントークン。

環境で認証情報を指定しない場合は、Amazon Bedrock オペレーション用のクライアントを作成するときに指定できます。そのためには、クライアントの作成時に aws_access_key_idaws_secret_access_key、および (短期認証情報を使用している場合) aws_session_token引数を含めます。

Amazon Bedrock が提供する基盤モデルを一覧表示する

次の例では、Amazon Bedrock クライアントを使用して ListFoundationModelsオペレーションを実行します。 は、お使いのリージョンの Amazon Bedrock で使用できる基盤モデル (FMs) をListFoundationModels一覧表示します。Python スクリプトSDKで以下を実行して Amazon Bedrock クライアントを作成し、 ListFoundationModelsオペレーションをテストします。

# Use the ListFoundationModels API to show the models that are available in your region. import boto3 # Create an &BR; client in the &region-us-east-1; Region. bedrock = boto3.client( service_name="bedrock" ) bedrock.list_foundation_models()

スクリプトが成功すると、レスポンスは Amazon Bedrock で使用できる基盤モデルのリストを返します。

モデルにテキストプロンプトを送信し、 を使用してテキストレスポンスを生成する InvokeModel

次の例では、Amazon Bedrock クライアントを使用して InvokeModelオペレーションを実行します。 InvokeModelでは、モデルレスポンスを生成するプロンプトを送信できます。Python スクリプトSDKで以下を実行して Amazon Bedrock ランタイムクライアントを作成し、 オペレーションでテキストレスポンスを生成します。

# Use the native inference API to send a text message to Amazon Titan Text G1 - Express. import boto3 import json from botocore.exceptions import ClientError # Create an Amazon Bedrock Runtime client. brt = boto3.client("bedrock-runtime") # Set the model ID, e.g., Amazon Titan Text G1 - Express. model_id = "amazon.titan-text-express-v1" # Define the prompt for the model. prompt = "Describe the purpose of a 'hello world' program in one line." # Format the request payload using the model's native structure. native_request = { "inputText": prompt, "textGenerationConfig": { "maxTokenCount": 512, "temperature": 0.5, "topP": 0.9 }, } # Convert the native request to JSON. request = json.dumps(native_request) try: # Invoke the model with the request. response = brt.invoke_model(modelId=model_id, body=request) except (ClientError, Exception) as e: print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}") exit(1) # Decode the response body. model_response = json.loads(response["body"].read()) # Extract and print the response text. response_text = model_response["results"][0]["outputText"] print(response_text)

コマンドが成功すると、レスポンスはプロンプトに応答してモデルによって生成されたテキストを返します。

モデルにテキストプロンプトを送信し、Converse でテキストレスポンスを生成する

次の例では、Amazon Bedrock クライアントを使用して Converse オペレーションを実行します。サポートInvokeModelされている場合は、 に対して Converseオペレーションを使用することをお勧めします。これは、Amazon Bedrock モデル間で推論リクエストを統合し、マルチターン会話の管理を簡素化するためです。Python スクリプトSDKで以下を実行して Amazon Bedrock ランタイムクライアントを作成し、 Converseオペレーションでテキストレスポンスを生成します。

# Use the Conversation API to send a text message to Amazon Titan Text G1 - Express. import boto3 from botocore.exceptions import ClientError # Create an Amazon Bedrock Runtime client. brt = boto3.client("bedrock-runtime") # Set the model ID, e.g., Amazon Titan Text G1 - Express. model_id = "amazon.titan-text-express-v1" # Start a conversation with the user message. user_message = "Describe the purpose of a 'hello world' program in one line." conversation = [ { "role": "user", "content": [{"text": user_message}], } ] try: # Send the message to the model, using a basic inference configuration. response = brt.converse( modelId=model_id, messages=conversation, inferenceConfig={"maxTokens": 512, "temperature": 0.5, "topP": 0.9}, ) # Extract and print the response text. response_text = response["output"]["message"]["content"][0]["text"] print(response_text) except (ClientError, Exception) as e: print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}") exit(1)

コマンドが成功すると、レスポンスはプロンプトに応答してモデルによって生成されたテキストを返します。