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.
Descripción de las sesiones de bots de Amazon Lex V2
Cuando un usuario inicia una conversación con un bot, Amazon Lex V2 crea una sesión. La información que se intercambia entre la aplicación y Amazon Lex V2 conforma el estado de la sesión de la conversación. Cuando realiza una solicitud, la sesión se identifica utilizando el nombre del bot y el identificador de usuario que especifique. Para obtener más información sobre el identificador de sesión, consulte el sessionId
campo de la RecognizeUtteranceoperación RecognizeTexto.
Puede modificar el estado de la sesión enviado entre la aplicación y el bot. Por ejemplo, puede crear y modificar atributos que contengan información personalizada sobre la sesión y cambiar el flujo de la conversación estableciendo el contexto del diálogo para poder interpretar el siguiente enunciado.
Hay tres formas de actualizar el estado de la sesión.
-
Transfiera la información de la sesión en línea como parte de una llamada a la operación
RecognizeText
oRecognizeUtterance
. -
Utilice la función de Lambda con la operación
RecognizeText
oRecognizeUtterance
que se invoca después de cada turno de la conversación. Para obtener más información, consulte Integrar un AWS Lambda función en tu bot. La otra es utilizar el tiempo de ejecución de Amazon Lex V2 API en la aplicación para realizar cambios en el estado de la sesión. -
Utilice operaciones que le permitan administrar la información de la sesión en una conversación con el bot. Las operaciones son la PutSessionoperación, la GetSessionoperación y la DeleteSessionoperación. Puede utilizar estas operaciones para obtener información sobre el estado de la sesión del usuario con el bot y para tener un control pormenorizado sobre dicho estado.
Utilice la operación GetSession
cuando desee obtener el estado actual de la sesión. La operación devuelve el estado actual de la sesión, incluido el estado del diálogo con el usuario, los atributos de sesión que se hayan establecido y los valores de slot de la intención actual y cualquier otra intención que Amazon Lex V2 haya identificado como posibles intenciones y coincidan con el enunciado del usuario.
La operación PutSession
le permite manipular directamente la sesión actual. Puede configurar la sesión, incluido el tipo de acción de diálogo que el bot realizará a continuación y los mensajes que Amazon Lex V2 enviará al usuario. De este modo, tendrá control sobre el flujo de la conversación con el bot. Establezca el campo type
de la acción de diálogo en Delegate
para que Amazon Lex V2 determine la siguiente acción del bot.
Puede utilizar la operación PutSession
para crear una nueva sesión con un bot y establecer la intención con la que el bot debería comenzar. También puede usar la operación PutSession
para cambiar de una intención a otra. Al crear una sesión o cambiar la intención, también puede establecer el estado de sesión; por ejemplo, los valores de slot y los atributos de sesión. Cuando la nueva intención haya terminado, tendrá la posibilidad de reiniciar la intención anterior.
La respuesta de la operación PutSession
contiene la misma información que la operación RecognizeUtterance
. Puede utilizar esta información para preguntar al usuario por la siguiente información, igual que haría con la respuesta de la operación RecognizeUtterance
.
Utilice la operación DeleteSession
para eliminar una sesión existente y comenzar de nuevo con una nueva sesión. Por ejemplo, si va a probar un bot, puede utilizar la operación DeleteSession
para eliminar las sesiones de prueba desde el bot.
Las operaciones de sesión pueden utilizarse con las funciones de Lambda de realización. Por ejemplo, si la función de Lambda devuelve Failed
como estado de realización, puede utilizar la operación PutSession
para establecer el tipo de acción del diálogo en close
y fulfillmentState
en ReadyForFulfillment
para intentar de nuevo el paso de cumplimiento.
Estas son algunas de las cosas que puede hacer con las operaciones de sesión:
-
Hacer que el bot inicie una conversación en lugar de esperar al usuario.
-
Cambiar las intenciones durante una conversación.
-
Volver a una intención anterior.
-
Iniciar o reiniciar una conversación en mitad de la interacción.
-
Validar los valores de slot y hacer que el bot vuelva a solicitar los valores que no son válidos.
Cada una de acciones se describe a continuación.
Iniciar una nueva sesión
Si desea que el bot comience la conversación con el usuario, puede utilizar la operación PutSession
.
-
Cree una intención de bienvenida sin slots y un mensaje de conclusión que le pida al usuario que indique una intención. Por ejemplo, «¿Qué desea pedir?» Puede decir «Una bebida» o «Una pizza».
-
Llame a la operación
PutSession
. Especifique el nombre de la intención de bienvenida y establezca la acción del diálogo enDelegate
. -
Amazon Lex responderá con el mensaje de la intención de bienvenida para iniciar la conversación con el usuario.
Cambiar intenciones
Puede utilizar la operación PutSession
para cambiar de una intención a otra. También puede utilizar esta operación para volver a una intención anterior. Puede utilizar la operación PutSession
para establecer los atributos de sesión o los valores de slot de la nueva intención.
-
Llame a la operación
PutSession
. Especifique el nombre de la intención y establezca la acción del diálogo enDelegate
. También puede definir los atributos de sesión o los valores de slot necesarios para la nueva intención. -
Amazon Lex comenzará una conversación con el usuario utilizando la nueva intención.
Reanudar una intención anterior
Si desea reanudar una intención anterior, utilice la operación GetSession
para obtener el estado de la intención, lleve a cabo la interacción necesaria y utilice después la operación PutSession
para establecer la intención en el estado del diálogo anterior.
-
Llame a la operación
GetSession
. Guarde el estado de la intención. -
Realice otra interacción, como cumplir una intención diferente.
-
Con la información guardada para la intención anterior, llame a la operación
PutSession
. De este modo, devolverá al usuario a la intención anterior en el mismo lugar de la conversación.
En algunos casos puede ser necesario reanudar la conversación del usuario con el bot. Por ejemplo, supongamos que ha creado un bot de atención al cliente. La aplicación determina que el usuario debe hablar con un representante del servicio de atención al cliente. Después de hablar con el usuario, el representante puede dirigir la conversación de nuevo al bot con la información que se ha recopilado.
Para reanudar una sesión, siga un procedimiento similar a este:
-
La aplicación determina que el usuario debe hablar con un representante del servicio de atención al cliente.
-
Utilice la operación
GetSession
para obtener el estado actual de la intención del diálogo. -
El representante del servicio de atención al cliente habla con el usuario y resuelve el problema.
-
Utilice la operación
PutSession
para establecer el estado de la intención del diálogo. Para ello, tal vez necesite configurar los valores de slot, configurar los atributos de sesión o cambiar la intención. -
El bot reanuda la conversación con el usuario.
Validar valores de slot
Puede validar las respuestas que recibe el bot utilizando la aplicación cliente. Si la respuesta no es válida, puede utilizar la operación PutSession
para obtener una nueva respuesta del usuario. Por ejemplo, suponga que un bot para pedir flores solo puede vender tulipanes, rosas y lirios. Si el usuario pide claveles, la aplicación puede hacer lo siguiente:
-
Examinar el valor de slot devuelto desde
PostText
oPostContent
. -
Si el valor de slot no es válido, llamar a la operación
PutSession
. La aplicación debe borrar el valor de slot, definir el camposlotToElicit
y establecer el valor dedialogAction.type
enelicitSlot
. También puede configurar los camposmessage
ymessageFormat
si desea cambiar el mensaje que Amazon Lex utiliza para obtener el valor de slot.