-
Execute o seguinte trecho de código para carregar o AWS SDK para Python (Boto3), criar um cliente e criar um prompt que crie uma playlist de música usando duas variáveis (genreenumber) criando um endpoint de tempo de construção do CreatePromptAgents for Amazon Bedrock:
# 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")
-
Execute o seguinte trecho de código para ver o prompt que você acabou de criar (junto com qualquer outro prompt em sua conta) para criar um endpoint de tempo de construção do Agents ListPromptsfor Amazon Bedrock:
# List prompts that you've created
client.list_prompts()
-
Você deve ver o ID do prompt que criou no campo id no objeto no campo promptSummaries. Execute o seguinte trecho de código para mostrar as informações do prompt que você criou ao criar um endpoint de tempo de construção de GetPromptAgents for Amazon Bedrock:
# Get information about the prompt that you created
client.get_prompt(promptIdentifier=prompt_id)
-
Crie uma versão do prompt e obtenha sua ID executando o seguinte trecho de código para criar um endpoint de tempo de construção de CreatePromptVersionAgents for Amazon Bedrock:
# 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")
-
Visualize informações sobre a versão do prompt que você acabou de criar, juntamente com informações sobre a versão preliminar, executando o seguinte trecho de código para criar um endpoint de tempo de compilação do ListPromptsAgents for Amazon Bedrock:
# List versions of the prompt that you just created
client.list_prompts(promptIdentifier=prompt_id)
-
Visualize as informações da versão do prompt que você acabou de criar executando o seguinte trecho de código para criar um endpoint de tempo de construção do GetPromptAgents for Amazon Bedrock:
# Get information about the prompt version that you created
client.get_prompt(
promptIdentifier=prompt_id,
promptVersion=prompt_version
)
-
Teste o prompt adicionando-o a um fluxo de acordo com as etapas em Executar exemplos de código do recurso Fluxos do Amazon Bedrock. Na primeira etapa, ao criar o fluxo, execute o seguinte trecho de código para usar o prompt que você criou, em vez de definir um prompt em linha no fluxo (substitua o ARN da versão do prompt no campo promptARN pelo ARN da versão do prompt que criou):
# Import Python SDK and create client
import boto3
client = boto3.client(service_name='bedrock-agent')
FLOWS_SERVICE_ROLE = "arn:aws:iam::123456789012:role/MyPromptFlowsRole" # 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
}
)
-
Exclua a versão do prompt que você acabou de criar executando o seguinte trecho de código para criar um endpoint de tempo de construção do DeletePromptAgents for Amazon Bedrock:
# Delete the prompt version that you created
client.delete_prompt(
promptIdentifier=prompt_id,
promptVersion=prompt_version
)
-
Exclua totalmente o prompt que você acabou de criar executando o seguinte trecho de código para criar um endpoint de tempo de construção do DeletePromptAgents for Amazon Bedrock:
# Delete the prompt that you created
client.delete_prompt(
promptIdentifier=prompt_id
)