Contexto da sessão de controle - 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á.

Contexto da sessão de controle

Para maior controle do contexto da sessão, você pode modificar o SessionStateobjeto em seu agente. O SessionStateobjeto contém informações que podem ser mantidas em turnos (InvokeAgentsolicitações e respostas separadas). Você pode usar essas informações para fornecer contexto de conversação para o agente durante as conversas do usuário.

O formato geral do SessionStateobjeto é o seguinte.

{ "sessionAttributes": { "<attributeName1>": "<attributeValue1>", "<attributeName2>": "<attributeValue2>", ... }, "promptSessionAttributes": { "<attributeName3>": "<attributeValue3>", "<attributeName4>": "<attributeValue4>", ... }, "invocationId": "string", "returnControlInvocationResults": [ ApiResult or FunctionResult, ... ] }

Selecione um tópico para saber mais sobre os campos no SessionStateobjeto.

Resultados da invocação do grupo de ação

Se você configurou um grupo de ação para retornar o controle em uma InvokeAgentresposta, poderá enviar os resultados da invocação do grupo sessionState de ação em uma InvokeAgentresposta subsequente, incluindo os seguintes campos:

  • invocationId— Esse ID deve corresponder ao invocationId retornado no ReturnControlPayloadobjeto no returnControl campo da InvokeAgentresposta.

  • returnControlInvocationResults— Inclui os resultados que você obtém ao invocar a ação. Você pode configurar seu aplicativo para passar o ReturnControlPayloadobjeto para realizar uma solicitação de API ou chamar uma função que você define. Em seguida, você pode fornecer os resultados dessa ação aqui. Cada membro da returnControlInvocationResults lista é um dos seguintes:

    • Um ApiResultobjeto contendo a operação de API que o agente previu que deveria ser chamada em uma InvokeAgentsequência anterior e os resultados da invocação da ação em seus sistemas. O formato geral é o seguinte:

      { "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "httpStatusCode": integer, "responseBody": { "TEXT": { "body": "string" } } }
    • Um FunctionResultobjeto contendo a função que o agente previu que deveria ser chamada em uma InvokeAgentsequência anterior e os resultados da invocação da ação em seus sistemas. O formato geral é o seguinte:

      { "actionGroup": "string", "function": "string", "responseBody": { "TEXT": { "body": "string" } } }

Os resultados fornecidos podem ser usados como contexto para orquestração adicional, enviados ao pós-processamento para que o agente formate uma resposta ou usados diretamente na resposta do agente ao usuário.

Atributos de sessão e sessão imediata

Os agentes do Amazon Bedrock permitem que você defina os seguintes tipos de atributos contextuais que persistem em partes de uma sessão:

  • SessionAttributes — Atributos que persistem durante uma sessão entre um usuário e um agente. Todas as InvokeAgentsolicitações feitas com a mesma sessionId pertencem à mesma sessão, desde que o limite de tempo da sessão (oidleSessionTTLinSeconds) não tenha sido ultrapassado.

  • promptSessionAttributes— Atributos que persistem em um único turno (uma InvokeAgentchamada). Você pode usar o espaço reservado $prompt_session_attributes$ ao editar o modelo de prompt base da orquestração. Esse espaço reservado será preenchido em tempo de execução com os atributos que você especificar no promptSessionAttributes campo.

Você pode definir os atributos do estado da sessão em duas etapas diferentes:

  • Ao configurar um grupo de ação e escrever a função Lambda, inclua sessionAttributes ou promptSessionAttributes no evento de resposta que é retornado ao Amazon Bedrock.

  • Durante o tempo de execução, ao enviar uma InvokeAgentsolicitação, inclua um sessionState objeto no corpo da solicitação para alterar dinamicamente os atributos do estado da sessão no meio da conversa.

Exemplo de atributo de sessão

O exemplo a seguir usa um atributo de sessão para personalizar uma mensagem para seu usuário.

  1. Escreva o código do aplicativo para solicitar que o usuário forneça seu primeiro nome e a solicitação que deseja fazer ao agente e armazene as respostas como variáveis <first_name><request>e.

  2. Escreva o código do aplicativo para enviar uma InvokeAgentsolicitação com o seguinte corpo:

    { "inputText": "<request>", "sessionState": { "sessionAttributes": { "firstName": "<first_name>" } } }
  3. Quando um usuário usa seu aplicativo e fornece seu primeiro nome, seu código envia o primeiro nome como um atributo de sessão e o agente armazena seu primeiro nome durante a sessão.

  4. Como os atributos da sessão são enviados no evento de entrada do Lambda, você pode se referir a esses atributos de sessão em uma função do Lambda para um grupo de ação. Por exemplo, se o esquema da API de ação exigir um primeiro nome no corpo da solicitação, você poderá usar o atributo de firstName sessão ao escrever a função Lambda para que um grupo de ações preencha automaticamente esse campo ao enviar a solicitação da API.

Exemplo de atributo de sessão rápida

O exemplo geral a seguir usa um atributo de sessão rápida para fornecer contexto temporal para o agente.

  1. Escreva o código do aplicativo para armazenar a solicitação do usuário em uma variável chamada<request>.

  2. <timezone>Escreva o código do seu aplicativo para recuperar o fuso horário no local do usuário se o usuário usar uma palavra indicando a hora relativa (como “amanhã”) no<request>, e armazene em uma variável chamada.

  3. Escreva sua inscrição para enviar uma InvokeAgentsolicitação com o seguinte corpo:

    { "inputText": "<request>", "sessionState": { "promptSessionAttributes": { "timeZone": "<timezone>" } } }
  4. Se um usuário usar uma palavra indicando tempo relativo, seu código enviará o atributo de sessão timeZone prompt e o agente o armazenará durante o turno.

  5. Por exemplo, se um usuário perguntarI need to book a hotel for tomorrow, seu código envia o fuso horário do usuário para o agente e o agente pode determinar a data exata à qual “amanhã” se refere.

  6. O atributo prompt session pode ser usado nas etapas a seguir.