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á.
Configure as funções do Lambda para enviar informações que um agente do Amazon Bedrock extrai do usuário
Você pode definir uma função Lambda para programar a lógica de negócios para um grupo de ação. Depois que um agente do Amazon Bedrock determina a API operação que precisa ser invocada em um grupo de ação, ele envia informações do API esquema junto com metadados relevantes como um evento de entrada para a função Lambda. Para escrever sua função, você precisa entender os seguintes componentes da função Lambda:
-
Evento de entrada — contém metadados relevantes e campos preenchidos do corpo da solicitação da API operação ou dos parâmetros da função para a ação que o agente determina que deve ser chamada.
-
Resposta — contém metadados relevantes e campos preenchidos para o corpo da resposta retornado da API operação ou da função.
Você escreve sua função Lambda para definir como lidar com um grupo de ação e personalizar como deseja que a API resposta seja retornada. Use as variáveis do evento de entrada para definir as funções e retornar uma resposta ao agente.
nota
Um grupo de ações pode conter até 11 API operações, mas você só pode escrever uma função Lambda. Como a função Lambda só pode receber um evento de entrada e retornar uma resposta para uma API operação por vez, você deve escrever a função considerando as diferentes API operações que podem ser invocadas.
Para que seu agente use uma função Lambda, você deve anexar uma política baseada em recursos à função para fornecer permissões para o agente. Para obter mais informações, siga as etapas emPolítica baseada em recursos para permitir que o Amazon Bedrock invoque uma função Lambda do grupo de ação. Para obter mais informações sobre políticas baseadas em recursos no Lambda, consulte Usando políticas baseadas em recursos para o Lambda no AWS Lambda Guia do desenvolvedor
Para saber como definir uma função ao criar o grupo de ações, consulteAdicione um grupo de ação ao seu agente no Amazon Bedrock.
Tópicos
Evento de entrada do Lambda originado do Amazon Bedrock
Quando um grupo de ações que utiliza uma função do Lambda é invocado, o Amazon Bedrock envia um evento de entrada do Lambda com o formato geral a seguir. Você pode definir sua função Lambda para usar qualquer um dos campos de eventos de entrada para manipular a lógica de negócios dentro da função para realizar a ação com sucesso. Para obter mais informações sobre as funções do Lambda, consulte Invocação orientada por eventos no AWS Lambda Guia do desenvolvedor
O formato do evento de entrada depende se você definiu o grupo de ações com um API esquema ou com detalhes da função:
-
Se você definiu o grupo de ações com um API esquema, o formato do evento de entrada será o seguinte:
{ "messageVersion": "1.0", "agent": { "name": "string", "id": "string", "alias": "string", "version": "string" }, "inputText": "string", "sessionId": "string", "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" }, ... ], "requestBody": { "content": { "
<content_type>
": { "properties": [ { "name": "string", "type": "string", "value": "string" }, ... ] } } }, "sessionAttributes": { "string
": "string", }, "promptSessionAttributes": { "string
": "string" } } -
Se você definiu o grupo de ação com detalhes da função, o formato do evento de entrada é o seguinte:
{ "messageVersion": "1.0", "agent": { "name": "string", "id": "string", "alias": "string", "version": "string" }, "inputText": "string", "sessionId": "string", "actionGroup": "string", "function": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" }, ... ], "sessionAttributes": { "
string
": "string", }, "promptSessionAttributes": { "string
": "string" } }
A lista a seguir descreve os campos do evento de entrada;
-
messageVersion
: a versão da mensagem que identifica o formato dos dados de evento que estão indo para a função do Lambda e o formato esperado da resposta de uma função do Lambda. O Amazon Bedrock só oferece suporte à versão 1.0. -
agent
: contém informações sobre o nome, o ID, o alias e a versão do agente ao qual o grupo de ações pertence. -
inputText
: a entrada do usuário para o turno de conversa. -
sessionId
: o identificador exclusivo da sessão do agente. -
actionGroup
: o nome do grupo de ações. -
parameters
: contém uma lista de objetos. Cada objeto contém o nome, o tipo e o valor de um parâmetro na API operação, conforme definido na OpenAPI esquema ou na função. -
Se você definiu o grupo de ações com um API esquema, o evento de entrada conterá os seguintes campos:
-
apiPath
— O caminho para a API operação, conforme definido no OpenAPI esquema. -
httpMethod
— O método da API operação, conforme definido no OpenAPI esquema. -
requestBody
— Contém o corpo da solicitação e suas propriedades, conforme definido no OpenAPI esquema para o grupo de ação.
-
-
Se você definiu o grupo de ação com detalhes da função, o evento de entrada conterá o seguinte campo:
-
function
— O nome da função conforme definido nos detalhes da função para o grupo de ação.
-
-
sessionAttributes
— Contém os atributos da sessão e seus valores. Esses atributos são armazenados em uma sessão e fornecem contexto para o agente. -
promptSessionAttributes
— Contém atributos de sessão rápida e seus valores. Esses atributos são armazenados em um turno e fornecem contexto para o agente.
Evento de resposta do Lambda ao Amazon Bedrock
O Amazon Bedrock espera uma resposta da função do Lambda no formato a seguir. A resposta consiste em parâmetros retornados da API operação. O agente pode usar a resposta da função do Lambda para orquestração adicional ou para ajudar você a retornar uma resposta ao cliente.
nota
O tamanho máximo da resposta da carga útil do Lambda é 25 KB.
O formato do evento de entrada depende se você definiu o grupo de ações com um API esquema ou com detalhes da função:
-
Se você definiu o grupo de ações com um API esquema, o formato da resposta é o seguinte:
{ "messageVersion": "1.0", "response": { "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "httpStatusCode": number, "responseBody": { "
<contentType>
": { "body": "JSON-formatted string" } } }, "sessionAttributes": { "string
": "string", ... }, "promptSessionAttributes": { "string
": "string", ... }, "knowledgeBasesConfiguration": [ { "knowledgeBaseId": "string", "retrievalConfiguration": { "vectorSearchConfiguration": { "numberOfResults": int, "overrideSearchType": "HYBRID | SEMANTIC", "filter": RetrievalFilter object } } }, ... ] } -
Se você definiu o grupo de ação com detalhes da função, o formato da resposta é o seguinte:
{ "messageVersion": "1.0", "response": { "actionGroup": "string", "function": "string", "functionResponse": { "responseState": "FAILURE | REPROMPT", "responseBody": { "
<functionContentType>
": { "body": "JSON-formatted string" } } } }, "sessionAttributes": { "string
": "string", }, "promptSessionAttributes": { "string
": "string" }, "knowledgeBasesConfiguration": [ { "knowledgeBaseId": "string", "retrievalConfiguration": { "vectorSearchConfiguration": { "numberOfResults": int, "filter": { RetrievalFilter object } } } }, ... ] }
A lista a seguir descreve os campos de resposta:
-
messageVersion
: a versão da mensagem que identifica o formato dos dados de evento que estão indo para a função do Lambda e o formato esperado da resposta de uma função do Lambda. O Amazon Bedrock só oferece suporte à versão 1.0. -
response
— Contém as seguintes informações sobre a API resposta.-
actionGroup
: o nome do grupo de ações. -
Se você definiu o grupo de ações com um API esquema, os seguintes campos podem estar na resposta:
-
apiPath
— O caminho para a API operação, conforme definido no OpenAPI esquema. -
httpMethod
— O método da API operação, conforme definido no OpenAPI esquema. -
httpStatusCode
— O código de HTTP status retornado da API operação. -
responseBody
— Contém o corpo da resposta, conforme definido no OpenAPI esquema.
-
-
Se você definiu o grupo de ação com detalhes da função, os seguintes campos podem estar na resposta:
-
responseState
(Opcional) — Defina um dos seguintes estados para definir o comportamento do agente após o processamento da ação:-
FAILURE— O agente lança um
DependencyFailedException
para a sessão atual. Aplica-se quando a execução da função falha devido a uma falha de dependência. -
REPROMPT— O agente passa uma string de resposta para o modelo para solicitá-la novamente. Aplica-se quando a execução da função falha devido a uma entrada inválida.
-
-
responseBody
— Contém um objeto que define a resposta da execução da função. A chave é o tipo de conteúdo (atualmente somenteTEXT
é suportado) e o valor é um objeto contendo obody
da resposta.
-
-
-
(Opcional)
sessionAttributes
: contém os atributos da sessão e seus valores. Para obter mais informações, consulte Atributos de sessão e sessão imediata. -
(Opcional)
promptSessionAttributes
: contém os atributos do prompt e seus valores. Para obter mais informações, consulte Atributos de sessão e sessão imediata. -
(Opcional)
knowledgeBasesConfiguration
— Contém uma lista de configurações de consulta para bases de conhecimento anexadas ao agente. Para obter mais informações, consulte Configurações de recuperação da base de conhecimento.
Exemplo de função do Lambda do grupo de ações
A seguir está um exemplo mínimo de como a função Lambda pode ser definida em Python. Selecione a guia correspondente ao fato de você ter definido o grupo de ações com um OpenAPI esquema ou com detalhes da função: