プロンプト管理コードサンプルを実行する - Amazon Bedrock

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

プロンプト管理コードサンプルを実行する

注記

プロンプト管理はプレビュー版であり、変更される可能性があります。

プロンプト管理用のコードサンプルを試すには、選択した方法に対応するタブを選択し、ステップに従います。次のコードサンプルは、 を使用するための認証情報をセットアップしていることを前提としています。 AWS API。まだの場合は、「」を参照してくださいAWS API の開始方法

Python
  1. 次のコードスニペットを実行して をロードします。 AWS SDK for Python (Boto3)、クライアントを作成し、CreatePromptエージェント for Amazon Bedrock ビルドタイムエンドポイント を作成して、2 つの変数 (genrenumber) を使用して音楽プレイリストを作成するプロンプトを作成します。

    # Create a prompt in Prompt management import boto3 # Create an Amazon Bedrock Agents client client = boto3.client(service_name="bedrock-agent") # Create the prompt response = client.create_prompt( name="MakePlaylist", description="My first prompt.", variants=[ { "name": "Variant1", "modelId": "amazon.titan-text-express-v1", "templateType": "TEXT", "inferenceConfiguration": { "text": { "temperature": 0.8 } }, "templateConfiguration": { "text": { "text": "Make me a {{genre}} playlist consisting of the following number of songs: {{number}}." } } } ] ) prompt_id = response.get("id")
  2. 次のコードスニペットを実行して、作成したプロンプト (アカウント内の他のプロンプトに加えて) を表示し、Amazon Bedrock の ListPrompts エージェントをビルドタイムエンドポイント にします。 https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt

    # List prompts that you've created client.list_prompts()
  3. 作成したプロンプトの ID は、 idフィールドの オブジェクトの promptSummariesフィールドに表示されます。次のコードスニペットを実行して、GetPromptAgents for Amazon Bedrock ビルドタイムエンドポイント を作成することによって作成したプロンプトの情報を表示します。

    # Get information about the prompt that you created client.get_prompt(promptIdentifier=prompt_id)
  4. プロンプトのバージョンを作成し、次のコードスニペットを実行してその ID を取得し、Amazon Bedrock の CreatePromptVersion エージェントをビルドタイムエンドポイント にします。 https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt

    # Create a version of the prompt that you created response = client.create_prompt_version(promptIdentifier=prompt_id) prompt_version = response.get("version") prompt_version_arn = response.get("arn")
  5. 作成したプロンプトバージョンに関する情報とドラフトバージョンに関する情報を表示するには、次のコードスニペットを実行して ListPrompts Agents for Amazon Bedrock ビルドタイムエンドポイント を作成します。

    # List versions of the prompt that you just created client.list_prompts(promptIdentifier=prompt_id)
  6. 次のコードスニペットを実行して作成したプロンプトバージョンの情報を表示し、Amazon Bedrock の GetPrompt エージェントをビルドタイムエンドポイント にします。 https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt

    # Get information about the prompt version that you created client.get_prompt( promptIdentifier=prompt_id, promptVersion=prompt_version )
  7. 「」の手順に従って、プロンプトフローに追加してプロンプトをテストしますプロンプトフローの実行コードサンプル。フローを作成する最初のステップでは、フローでインラインプロンプトを定義する代わりに、作成したプロンプトを使用するには、代わりに次のコードスニペットを実行します ( promptARN フィールドARNのプロンプトバージョンの を、作成したプロンプトバージョンの ARN に置き換えます)。

    # Import Python SDK and create client import boto3 client = boto3.client(service_name='bedrock-agent') FLOWS_SERVICE_ROLE = "arn:aws:iam::123456789012:role/MyPromptFlowsRole" # Prompt flows service role that you created. For more information, see https://docs.aws.amazon.com/bedrock/latest/userguide/flows-permissions.html PROMPT_ARN = prompt_version_arn # ARN of the prompt that you created, retrieved programatically during creation. # Define each node # The input node validates that the content of the InvokeFlow request is a JSON object. input_node = { "type": "Input", "name": "FlowInput", "outputs": [ { "name": "document", "type": "Object" } ] } # This prompt node contains a prompt that you defined in Prompt management. # It validates that the input is a JSON object that minimally contains the fields "genre" and "number", which it will map to the prompt variables. # The output must be named "modelCompletion" and be of the type "String". prompt_node = { "type": "Prompt", "name": "MakePlaylist", "configuration": { "prompt": { "sourceConfiguration": { "resource": { "promptArn": "" } } } }, "inputs": [ { "name": "genre", "type": "String", "expression": "$.data.genre" }, { "name": "number", "type": "Number", "expression": "$.data.number" } ], "outputs": [ { "name": "modelCompletion", "type": "String" } ] } # The output node validates that the output from the last node is a string and returns it as is. The name must be "document". output_node = { "type": "Output", "name": "FlowOutput", "inputs": [ { "name": "document", "type": "String", "expression": "$.data" } ] } # Create connections between the nodes connections = [] # First, create connections between the output of the flow input node and each input of the prompt node for input in prompt_node["inputs"]: connections.append( { "name": "_".join([input_node["name"], prompt_node["name"], input["name"]]), "source": input_node["name"], "target": prompt_node["name"], "type": "Data", "configuration": { "data": { "sourceOutput": input_node["outputs"][0]["name"], "targetInput": input["name"] } } } ) # Then, create a connection between the output of the prompt node and the input of the flow output node connections.append( { "name": "_".join([prompt_node["name"], output_node["name"]]), "source": prompt_node["name"], "target": output_node["name"], "type": "Data", "configuration": { "data": { "sourceOutput": prompt_node["outputs"][0]["name"], "targetInput": output_node["inputs"][0]["name"] } } } ) # Create the flow from the nodes and connections client.create_flow( name="FlowCreatePlaylist", description="A flow that creates a playlist given a genre and number of songs to include in the playlist.", executionRoleArn=FLOWS_SERVICE_ROLE, definition={ "nodes": [input_node, prompt_node, output_node], "connections": connections } )
  8. 次のコードスニペットを実行して作成したプロンプトバージョンを削除し、Amazon Bedrock の DeletePrompt エージェントをビルドタイムエンドポイント にします。 https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt

    # Delete the prompt version that you created client.delete_prompt( promptIdentifier=prompt_id, promptVersion=prompt_version )
  9. 次のコードスニペットを実行して、先ほど作成したプロンプトを完全に削除し、Amazon Bedrock の DeletePrompt エージェントをビルドタイムエンドポイント にします。 https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt

    # Delete the prompt that you created client.delete_prompt( promptIdentifier=prompt_id )