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.
Temas
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 elidleSessionTTLinSeconds
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
opromptSessionAttributes
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.
-
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>.
-
Escribe el código de tu solicitud para enviar una InvokeAgentsolicitud con el siguiente cuerpo:
{ "inputText": "
<request>
", "sessionState": { "sessionAttributes": { "firstName": "<first_name>
" } } } -
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.
-
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.
-
Escriba el código de la aplicación para almacenar la solicitud del usuario en una variable llamada
<request>.
-
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>.
-
Escribe tu solicitud para enviar una InvokeAgentsolicitud con el siguiente cuerpo:
{ "inputText": "
<request>
", "sessionState": { "promptSessionAttributes": { "timeZone": "<timezone>
" } } } -
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. -
Por ejemplo, si un usuario pregunta
I 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». -
El atributo prompt session se puede utilizar en los siguientes pasos.
-
Si incluye el marcador de posición $prompt_session_attributes$ en la plantilla de mensaje de orquestación, el mensaje de orquestación del FM incluye los atributos de sesión del mensaje.
-
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 elinvocationId
devuelto en el ReturnControlPayloadobjeto delreturnControl
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 lareturnControlInvocationResults
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.