Executar exemplos de código do Gerenciamento de Prompts - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Executar exemplos de código do Gerenciamento de Prompts

Para testar alguns exemplos de código do Gerenciamento de Prompts, escolha a guia correspondente ao método de sua preferência e siga as etapas. Os exemplos de código a seguir pressupõem que você configurou suas credenciais para usar a API da AWS. Se não tiver, consulte Começar a usar a API.

Python
  1. 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 (genre e number) fazendo uma solicitação CreatePrompt com um endpoint de tempo de compilação do Agentes para 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")
  2. Execute o seguinte trecho de código para ver o prompt que você acabou de criar (bem como qualquer outro prompt em sua conta) para fazer uma solicitação ListPrompts com um endpoint de tempo de compilação do Agentes para Amazon Bedrock:

    # List prompts that you've created client.list_prompts()
  3. 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 criou fazendo uma solicitação GetPrompt com um endpoint de tempo de compilação do Agentes para Amazon Bedrock:

    # Get information about the prompt that you created client.get_prompt(promptIdentifier=prompt_id)
  4. Crie uma versão do prompt e obtenha seu ID executando o seguinte trecho de código para fazer uma solicitação CreatePromptVersion com um endpoint de tempo de compilação do Agentes para 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")
  5. Visualize informações sobre a versão do prompt que você acabou de criar, bem como informações sobre a versão de rascunho, executando o seguinte trecho de código para fazer uma solicitação ListPrompts com um endpoint de tempo de compilação do Agentes para Amazon Bedrock:

    # List versions of the prompt that you just created client.list_prompts(promptIdentifier=prompt_id)
  6. Visualize as informações da versão do prompt que acabou de criar executando um trecho de código para fazer uma solicitação GetPrompt com um endpoint de tempo de compilação do Agentes para Amazon Bedrock:

    # Get information about the prompt version that you created client.get_prompt( promptIdentifier=prompt_id, promptVersion=prompt_version )
  7. 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 } )
  8. Exclua a versão do prompt que acabou de criar executando o seguinte trecho de código para fazer uma solicitação DeletePrompt com um endpoint de tempo de compilação do Agentes para Amazon Bedrock:

    # Delete the prompt version that you created client.delete_prompt( promptIdentifier=prompt_id, promptVersion=prompt_version )
  9. Exclua completamente o prompt que acabou de criar executando o seguinte trecho de código para fazer uma solicitação DeletePrompt com um endpoint de tempo de compilação do Agentes para Amazon Bedrock:

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