Contexto de sesión de control - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Contexto de sesión de control

Para tener un mayor control del contexto de la sesión, puede modificar el SessionStateobjeto en su agente. El SessionStateobjeto contiene información que se puede conservar a lo largo de los turnos (InvokeAgentsolicitud y respuestas independientes). Puede utilizar esta información para proporcionar un contexto conversacional al agente durante las conversaciones con los usuarios.

El formato general del SessionStateobjeto es el siguiente.

{ "sessionAttributes": { "<attributeName1>": "<attributeValue1>", "<attributeName2>": "<attributeValue2>", ... }, "promptSessionAttributes": { "<attributeName3>": "<attributeValue3>", "<attributeName4>": "<attributeValue4>", ... }, "invocationId": "string", "returnControlInvocationResults": [ ApiResult or FunctionResult, ... ], "knowledgeBases": [ { "knowledgeBaseId": "string", "retrievalConfiguration": { "vectorSearchConfiguration": { "overrideSearchType": "HYBRID | SEMANTIC", "numberOfResults": int, "filter": RetrievalFilter object } } }, ... ] }

Seleccione un tema para obtener más información sobre los campos del SessionStateobjeto.

Atributos de sesión y sesión rápida

Agents for Amazon Bedrock le permite definir los siguientes tipos de atributos contextuales que persisten durante partes de una sesión:

  • SessionAttributes: atributos que persisten durante una sesión entre un usuario y un agente. Todas InvokeAgentlas solicitudes realizadas con la misma sessionId información pertenecen a la misma sesión, siempre que no se haya superado el idleSessionTTLinSeconds límite de tiempo de la sesión.

  • promptSessionAttributes— Atributos que persisten durante un solo turno (una InvokeAgentllamada). Puedes usar el marcador de posición $prompt_session_attributes$ al editar la plantilla de mensajes base de la orquestación. Este marcador de posición se rellenará en tiempo de ejecución con los atributos que especifiques en el campo. promptSessionAttributes

Puede definir los atributos del estado de la sesión en dos pasos diferentes:

  • Al configurar un grupo de acciones y escribir la función Lambda, incluya sessionAttributes o promptSessionAttributes en el evento de respuesta que se devuelve a Amazon Bedrock.

  • Durante el tiempo de ejecución, cuando envíe una InvokeAgentsolicitud, incluya un sessionState objeto en el cuerpo de la solicitud para cambiar dinámicamente los atributos del estado de la sesión en mitad de la conversación.

Ejemplo de atributo de sesión

En el siguiente ejemplo, se utiliza un atributo de sesión para personalizar un mensaje para el usuario.

  1. Escriba el código de la aplicación para pedirle al usuario que proporcione su nombre y la solicitud que desea realizar al agente y almacene las respuestas como variables <first_name>y<request>.

  2. Escribe el código de tu solicitud para enviar una InvokeAgentsolicitud con el siguiente cuerpo:

    { "inputText": "<request>", "sessionState": { "sessionAttributes": { "firstName": "<first_name>" } } }
  3. Cuando un usuario usa tu aplicación y proporciona su nombre, tu código enviará el nombre como un atributo de sesión y el agente guardará su nombre durante toda la sesión.

  4. Como los atributos de sesión se envían en el evento de entrada de Lambda, puede hacer referencia a estos atributos de sesión en una función de Lambda para un grupo de acciones. Por ejemplo, si el esquema de la API de acciones requiere un nombre en el cuerpo de la solicitud, puedes usar el atributo firstName session al escribir la función Lambda para que un grupo de acciones rellene automáticamente ese campo al enviar la solicitud de API.

Ejemplo del atributo Prompt session

El siguiente ejemplo general utiliza un atributo prompt session para proporcionar un contexto temporal al agente.

  1. Escriba el código de la aplicación para almacenar la solicitud del usuario en una variable llamada<request>.

  2. Escriba el código de la aplicación para recuperar la zona horaria en la ubicación del usuario si el usuario utiliza una palabra que indique la hora relativa (como «mañana») <request>y guárdela en una variable llamada<timezone>.

  3. Escribe tu solicitud para enviar una InvokeAgentsolicitud con el siguiente cuerpo:

    { "inputText": "<request>", "sessionState": { "promptSessionAttributes": { "timeZone": "<timezone>" } } }
  4. Si un usuario usa una palabra que indique el tiempo relativo, tu código enviará el atributo timeZone prompt session y el agente lo guardará durante el turno.

  5. Por ejemplo, si un usuario preguntaI need to book a hotel for tomorrow, tu código envía la zona horaria del usuario al agente y el agente puede determinar la fecha exacta a la que se refiere «mañana».

  6. El atributo prompt session se puede utilizar en los siguientes pasos.

Resultados de la invocación de grupos de acciones

Si ha configurado un grupo de acciones para que devuelva el control en una InvokeAgentrespuesta, puede enviar los resultados de la invocación del grupo sessionState de acciones en una InvokeAgentrespuesta posterior incluyendo los siguientes campos:

  • invocationId— Este identificador debe coincidir con el invocationId devuelto en el ReturnControlPayloadobjeto del returnControl campo de la InvokeAgentrespuesta.

  • returnControlInvocationResults— Incluye los resultados que se obtienen al invocar la acción. Puedes configurar tu aplicación para que pase el ReturnControlPayloadobjeto a una solicitud de API o llame a una función que tú definas. A continuación, puedes proporcionar los resultados de esa acción aquí. Cada miembro de la returnControlInvocationResults lista es uno de los siguientes:

    • Un ApiResultobjeto que contiene la operación de API que el agente predijo que debería invocarse en una InvokeAgentsecuencia anterior y el resultado de la invocación de la acción en sus sistemas. El formato general es el siguiente:

      { "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "httpStatusCode": integer, "responseBody": { "TEXT": { "body": "string" } } }
    • Un FunctionResultobjeto que contiene la función que el agente predijo que debería invocarse en una InvokeAgentsecuencia anterior y el resultado de invocar la acción en sus sistemas. El formato general es el siguiente:

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

Los resultados que se proporcionan se pueden usar como contexto para una mayor organización, enviarse al posprocesamiento para que el agente formatee una respuesta o usarse directamente en la respuesta del agente al usuario.

Configuraciones de recuperación de la base de conocimientos

Para modificar la configuración de recuperación de las bases de conocimiento adjuntas a su agente, incluya el knowledgeBaseConfigurations campo con una lista de configuraciones para cada base de conocimiento cuyas configuraciones desee especificar. Especifique el knowledgeBaseId. En el vectorSearchConfiguration campo, puede especificar las siguientes configuraciones de consulta (para obtener más información sobre estas configuraciones, consulteConfiguraciones de consulta):

  • Tipo de búsqueda: si la base de conocimientos busca solo incrustaciones vectoriales (SEMANTIC) o tanto incrustaciones vectoriales como texto sin procesar (). HYBRID Usa el campo. overrideSearchType

  • Número máximo de resultados recuperados: el número máximo de resultados de la recuperación de consultas que se utilizarán en la respuesta.

  • Metadatos y filtrado: filtros que puede configurar para filtrar los resultados en función de los atributos de los metadatos de los archivos de la fuente de datos.