Iniciar una transmisión de conversación en un bot de Amazon Lex V2 - Amazon Lex

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.

Iniciar una transmisión de conversación en un bot de Amazon Lex V2

Utiliza la StartConversationoperación para iniciar una transmisión entre el usuario y el bot Amazon Lex V2 de su aplicación. La solicitud POST de la aplicación establece una conexión entre su aplicación y el bot Amazon Lex V2. Esto permite que la aplicación y el bot comiencen a intercambiar información entre sí a través de eventos.

La StartConversation operación solo se admite en los siguientes casosSDKs:

El primer evento que su solicitud debe enviar al bot Amazon Lex V2 es un ConfigurationEvent. Este evento incluye información como el formato del tipo de respuesta. Los siguientes son los parámetros que puede usar en un evento de configuración:

  • responseContentType— Determina si el bot responde a las entradas del usuario con texto o voz.

  • sessionState— Información relacionada con la sesión de streaming con el bot, como la intención predeterminada o el estado del diálogo.

  • welcomeMessages— Especifica los mensajes de bienvenida que se reproducen para el usuario al principio de su conversación con un bot. Estos mensajes se reproducen antes de que el usuario introduzca nada. Para activar un mensaje de bienvenida, también debe especificar valores para los parámetros sessionState y dialogAction.

  • disablePlayback— Determina si el bot debe esperar una señal del cliente antes de empezar a escuchar las entradas de la persona que llama. De forma predeterminada, la reproducción está activada, por lo que el valor de este campo es false.

  • requestAttributes— Proporciona información adicional para la solicitud.

Para obtener información sobre cómo especificar los valores de los parámetros anteriores, consulte el tipo de ConfigurationEventdatos de la StartConversationoperación.

Cada transmisión entre un bot y su aplicación solo puede tener un evento de configuración. Una vez que la aplicación haya enviado un evento de configuración, el bot puede recibir comunicaciones adicionales desde la aplicación.

Si especificó que su usuario utiliza el audio para comunicarse con el bot de Amazon Lex V2, su aplicación puede enviar los siguientes eventos al bot durante esa conversación:

  • AudioInputEvent— Contiene un fragmento de audio con un tamaño máximo de 320 bytes. La aplicación debe usar varios eventos de entrada de audio para enviar un mensaje desde el servidor al bot. Todos los eventos de entrada de audio de la transmisión deben tener el mismo formato de audio.

  • DTMFInputEvent— Envía una DTMF entrada al bot. Cada DTMF pulsación de tecla corresponde a un solo evento.

  • PlaybackCompletionEvent— Informa al servidor de que se le ha reproducido una respuesta de la entrada del usuario. Debe utilizar un evento de finalización de la reproducción si va a enviar una respuesta de audio al usuario. Si disablePlayback de su evento de configuración es true, no puede usar esta funcionalidad.

  • DisconnectionEvent— Informa al bot de que el usuario se ha desconectado de la conversación.

Si especificó que el usuario utiliza el texto para comunicarse con el bot, su aplicación puede enviar los siguientes eventos al bot durante esa conversación:

  • TextInputEvent— Texto que se envía desde tu aplicación al bot. Puede tener 512 caracteres como máximo en un evento de entrada de texto.

  • PlaybackCompletionEvent— Informa al servidor de que se le ha reproducido una respuesta de la entrada del usuario. Debe usar este evento si está reproduciendo audio para el usuario. Si disablePlayback de su evento de configuración es true, no puede usar esta funcionalidad.

  • DisconnectionEvent— Informa al bot de que el usuario se ha desconectado de la conversación.

Debe codificar todos los eventos que envíe a un bot de Amazon Lex V2 en el formato correcto. Para obtener más información, consulte Codificar secuencias de eventos.

Cada evento tiene un ID de evento. Para ayudar a solucionar cualquier problema que pueda producirse en la transmisión, asigne un ID de evento único a cada evento de entrada. A continuación, podrá solucionar cualquier fallo de procesamiento con el bot.

Amazon Lex V2 también utiliza marcas de tiempo para cada evento. Puede usar estas marcas de tiempo además del ID del evento para ayudar a solucionar cualquier problema de transmisión de la red.

Durante la conversación entre el usuario y el bot de Amazon Lex V2, el bot puede enviar los siguientes eventos salientes en respuesta al usuario:

  • IntentResultEvent— Contiene la intención que Amazon Lex V2 determinó a partir de la declaración del usuario. Cada evento de resultado de intención incluye:

    • inputMode— El tipo de expresión del usuario. Los valores válidos son Speech, DTMF o Text.

    • interpretaciones: interpretaciones que Amazon Lex V2 determina a partir del enunciado del usuario.

    • requestAttributes— Si no ha modificado los atributos de la solicitud mediante una función lambda, se trata de los mismos atributos que se transmitieron al inicio de la conversación.

    • sessionId— Identificador de sesión utilizado para la conversación.

    • sessionState— El estado de la sesión del usuario con Amazon Lex V2.

  • TranscriptEvent— Si el usuario proporciona una entrada a su aplicación, este evento contiene la transcripción de lo que el usuario ha dicho al bot. Su aplicación no recibe un TranscriptEvent si no hay ninguna entrada del usuario.

    El valor del evento de transcripción enviado a tu aplicación depende de si has especificado el audio (voz yDMTF) o el texto como modo de conversación:

    • Transcripción de la entrada de voz: si el usuario está hablando con el bot, el evento de transcripción es la transcripción del audio del usuario. Es una transcripción de todo el discurso desde el momento en que el usuario comienza a hablar hasta el momento en que termina de hablar.

    • Transcripción de la DTMF entrada: si el usuario está escribiendo en un teclado, el evento de transcripción contiene todos los dígitos que el usuario presionó en la entrada.

    • Transcripción de la entrada de texto: si el usuario introduce texto, el evento de transcripción contiene todo el texto de la entrada del usuario.

  • TextResponseEvent— Contiene la respuesta del bot en formato de texto. De forma predeterminada, se devuelve una respuesta de texto. Si ha configurado Amazon Lex V2 para que devuelva una respuesta de audio, este texto se utilizará para generar una respuesta de audio. Cada evento de respuesta de texto contiene una serie de objetos de mensaje que el bot devuelve al usuario.

  • AudioResponseEvent— Contiene la respuesta de audio sintetizada a partir del texto generado en elTextResponseEvent. Para recibir eventos de respuesta de audio, debe configurar Amazon Lex V2 para que proporcione una respuesta de audio. Todos los eventos de respuesta de audio tienen el mismo formato de audio. Cada evento contiene fragmentos de audio de no más de 100 bytes. Amazon Lex V2 envía a su aplicación un fragmento de audio vacío con el campo bytes establecido en null para indicar el final del evento de respuesta de audio.

  • PlaybackInterruptionEvent— Cuando un usuario interrumpe una respuesta que el bot ha enviado a su aplicación, Amazon Lex V2 activa este evento para detener la reproducción de la respuesta.

  • HeartbeatEvent— Amazon Lex V2 devuelve este evento periódicamente para evitar que se agote el tiempo de espera de la conexión entre tu aplicación y el bot.

Secuencia temporal de eventos de una conversación de audio cuando se utiliza un bot Amazon Lex V2

Los siguientes diagramas muestran una conversación de audio en streaming entre un usuario y un bot de Amazon Lex V2. La aplicación transmite audio al bot de forma continua, y el bot busca las entradas del usuario a partir del audio. En este ejemplo, tanto el usuario como el bot utilizan la voz para comunicarse. Cada diagrama corresponde a un enunciado del usuario y a la respuesta del bot a ese enunciado.

El siguiente diagrama muestra el inicio de una conversación entre la aplicación y el bot. La transmisión comienza en el momento cero (t0).

Timeline showing audio input events from application and various response events from bot during a conversation.

En la siguiente lista se describen los eventos del diagrama anterior.

  • t0: La aplicación envía un evento de configuración al bot para iniciar la transmisión.

  • t1: La aplicación transmite datos de audio. Estos datos se dividen en una serie de eventos de entrada desde la aplicación.

  • t2: Para el enunciado 1 del usuario, el bot detecta un evento de entrada de audio cuando el usuario comienza a hablar.

  • t2: Mientras el usuario habla, el bot envía un latido para mantener la conexión. Envía estos eventos de forma intermitente para asegurarse de que la conexión no agota el tiempo de espera.

  • t3: El bot detecta el final del enunciado del usuario.

  • t4: El bot devuelve a la aplicación un evento de transcripción que contiene una transcripción del discurso del usuario. Este es el principio de la respuesta del bot al enunciado 1 del usuario.

  • t5: El bot envía un evento de resultado de intención para indicar la acción que el usuario quiere realizar.

  • t6: El bot comienza a proporcionar su respuesta como texto en un evento de respuesta de texto.

  • t7: El bot envía una serie de eventos de respuesta de audio a la aplicación para que los reproduzca el usuario.

  • t8: El bot envía otro latido del corazón para mantener la conexión de forma intermitente.

El siguiente diagrama es una continuación del diagrama anterior. Muestra a la aplicación enviando un evento de finalización de la reproducción al bot para indicar que ha dejado de reproducir la respuesta de audio para el usuario. La aplicación reproduce la respuesta del Bot al enunciado 1 del usuario. El usuario responde a la respuesta del bot al enunciado 1 del usuario con el enunciado 2 del usuario.

Timeline of audio input events from user and response events from bot, showing interaction flow.

En la siguiente lista se describen los eventos del diagrama anterior:

  • t10: La aplicación envía al usuario un evento de finalización de la reproducción para indicar que ha terminado de reproducir el mensaje del bot al usuario.

  • t11: La aplicación devuelve la respuesta del usuario al bot como enunciado 2 del usuario.

  • t12: En que el bot responda al enunciado 2 del usuario, el bot espera a que el usuario deje de hablar y, a continuación, comienza a dar una respuesta de audio.

  • t13: Mientras el bot envía a la aplicación la respuesta del bot al enunciado 2 del usuario, el bot detecta el inicio del enunciado 3 del usuario. El bot detiene la respuesta del bot al enunciado 2 del usuario y envía un evento de interrupción de la reproducción.

  • t14: El bot envía un evento de interrupción de la reproducción a la aplicación para indicar que el usuario ha interrumpido el mensaje.

El siguiente diagrama muestra la respuesta del bot al enunciado 3 del usuario y cómo la conversación continúa después de que el bot responde al enunciado del usuario.

Diagram showing events flow between application, bot, and user utterances over time.