Bot de voz con Amazon Lex

Las plataformas de IA actuales ofrecen capacidades avanzadas con bots de voz y texto, motores de transcripción y motores de análisis de sentimientos.

Estas funciones ayudan a los desarrolladores a crear bots que cumplan multitud de funciones, como ayudar a los usuarios a hacer pedidos, reservas, resolver problemas y mucho más.

En esta guía, te guiaremos en la configuración de un bot básico de Amazon Lex, la configuración de una conexión de referencia de Lex y una aplicación de muestra de Vonage Voice API, que te permitirá llamar a un número de teléfono e interactuar con el bot de Lex a través de la voz.

En la primera sección, configuraremos un bot de Amazon Lex de ejemplo.

A continuación, configuraremos una conexión de referencia Lex. Esta conexión de referencia Lex permite la transmisión bidireccional de audio de la voz de la persona que llama y las respuestas del bot Lex a través de WebSockets. También transmite las transcripciones y las puntuaciones de Lex bot a la aplicación Voice API.

A continuación, configuraremos una aplicación de ejemplo utilizando API de voz de Vonage para gestionar una llamada entrante, establecer el WebSocket, recibir las transcripciones de la persona que llama y del bot, y las puntuaciones del análisis de sentimiento de las frases de la persona que llama.

El siguiente diagrama muestra una visión general de este ejemplo de arquitectura de integración.

A diagram that outlines how Amazon Lex and the Vonage Voice API work together to create a voice bot

Requisitos previos

Para realizar las acciones descritas en los pasos siguientes, necesitará una cuenta de Amazon Web Services. Si no dispone de una, puede crear uno antes de empezar.

Cuenta API de Vonage

Para completar esta guía, necesitará Cuenta API de Vonage. Si aún no tienes una, puedes registrarte hoy mismo y empezar a construir con crédito gratis. Una vez que tenga una Account, podrá encontrar su API Key y su API Secret en la parte superior de la página Panel de API de Vonage.

Esta guía también utiliza un número de teléfono virtual. Para adquirir uno, vaya a Numbers > Comprar números y busque uno que se ajuste a sus necesidades.

Start developing in minutes with free credits on us. No credit card required!

Configurar un bot de Amazon Lex de ejemplo

Inicie sesión en su consola de administración de AWS o Crear una Account AWS si aún no tiene uno.

Busque y, a continuación, vaya al servicio Amazon Lex, haga clic en Cree para iniciar el proceso de configuración del bot.

The Amazon Lex service dashboard

Como parte del proceso de configuración, se le presentará la opción de Cree el suyo propio bot o a Pruebe una muestra. Necesitarás un bot de muestra para este ejemplo, así que haz clic en ScheduleAppointment.

The Amazon Lex Bot Creation Dashboard

A continuación, puedes configurar el bot.

  • Puedes mantener el nombre preestablecido del bot o introducir uno diferente
  • anota el nombre del bot (por ejemplo ScheduleAppointment), lo necesitará más adelante
The Lex bot setup screen from Amazon Web Services
  • Seleccione el idioma deseado
  • Seleccione para el análisis de sentimientos
  • Para este ejemplo concreto de bot, puede seleccionar No para COPPA

Una vez completados los ajustes, pulse Cree.

Final steps in the bot setup process

Cuando el proceso de creación del bot haya finalizado, verás una pantalla similar a la que se muestra a continuación.

The bot has been created successfully

A continuación, para utilizar tu bot, tienes que publicarlo haciendo clic en Publique. Se te pedirá que elijas un alias para el bot. Los alias son buenos para nombrar diferentes versiones de tu bot, como la que usas para desarrollo o la que usas para producción.

Anote el nombre del alias que ha introducido (por ejemplo, staging). Lo necesitará más adelante.

Adding an alias name to your Amazon Lex Bot

Haciendo clic en Publique una vez más finalizará la configuración de tu bot de muestra.

Notification that the bot has been published

Configurar la conexión de referencia Lex

  • Clonar el lex-reference-connection de GitHub y siga las instrucciones descritas en el archivo Léame.
  • Seleccione uno de los tipos de despliegue tal y como se explica en la sección Ejecución del código de conexión de referencia de Lex.
  • anote el LEX_REFERENCE_CONNECTION (por ejemplo xxxx.ngrok.ioo myserver.mycompany.com:40000), ya que lo necesitará más adelante.

Configure la aplicación Voice API de ejemplo de Lex

  • Clonar el lex-muestra-voz-aplicación en GitHub y siga las instrucciones descritas en este repositorio.
  • Seleccione uno de los tipos de despliegue tal y como se explica en la sección Ejecución de la aplicación Voice API de ejemplo de Lex.
  • Anote el número de teléfono vinculado a su aplicación Voice API tal y como se explica en la sección Configura las credenciales y el número de teléfono de tu aplicación Voice API de Vonage ya que será necesario para el siguiente paso.

Interactúa por voz con el bot Lex

  • Llama al número de teléfono vinculado a tu aplicación Voice API para interactuar con el bot de Lex.
  • Verá en la consola de la aplicación de conexión de referencia de Lex y en la consola de la aplicación API de voz de ejemplo de Lex las transcripciones y los resultados del análisis de sentimiento.

Mejora del Lex Bot

Al llamar al bot de Lex utilizando el número de teléfono vinculado, habrás observado que el bot no reproduce un saludo, por lo que el interlocutor conectado no sabría cuándo empezar a hablar.

Además, el bot no reproduce un mensaje de confirmación después de que hayas confirmado verbalmente que quieres la cita.

Mejoremos nuestro bot Lex de ejemplo abordando ambos problemas.

Haz que el Lex Bot reproduzca un saludo

En su consola de AWS, vaya a Amazon Lex y, a continuación, a su bot Lex. Haz clic en el icono [+] situado junto a Intents.

The Lex Dashboard

A continuación, haga clic en Crear intención.

Creating an intent for a Lex bot

Se te pedirá que introduzcas un nombre para tu nueva intención. Una vez que haya elegido uno, puede hacer clic en Añadir para pasar al siguiente paso.

Entering a name for the intent

En Ejemplos de enunciados:

Introduzca exactamente Good morningque actualmente está codificado en la aplicación de ejemplo Voice API de Lex como TTS reproducido al bot de Lex cuando se establece el WebSocket.

Haga clic en el icono [+] para añadir el nuevo enunciado.

Adding new utterances to a Lex bot

A continuación, en Respuesta haga clic en Añadir mensaje.

Adding a new message to the bot responder

Introduzca uno o varios mensajes de bienvenida. El contenido y el número de mensajes dependen de ti. Por ejemplo, Hola, ¿en qué puedo ayudarle?o Hola, ¿cuál es el motivo de su llamada?

No olvide hacer clic en el icono [+] para cada mensaje introducido.

Adding a message response to a Lex bot

Después de añadir todos los mensajes deseados, haga clic en Guardar intención.

Listing message responses

A continuación, tendrá que reconstruir el bot haciendo clic en Construya. Una vez finalizada la compilación, siga adelante y Publique tu bot una vez más, como hiciste antes.

Se te pedirá que introduzcas un alias una vez más, y puedes usar el mismo alias que usaste antes para el bot de ejemplo.

Entering 'staging' as the alias for the Lex bot

Prueba de la actualización del Lex Bot

Llama al número de teléfono que has vinculado a la aplicación desde los pasos anteriores y escucharás "Por favor, espere". Ese TTS de la plataforma API de Vonage se reproduce tan pronto como tu llamada sea respondida por la plataforma.

Una vez configurado el WebSocket, la plataforma API de Vonage reproduce el mensaje TTS "Buenos días" al bot Lex (tú, como persona que llama, no lo escucharás).

El bot Lex reproduce uno de los mensajes de respuesta (del intento de saludo). Lo escuchas a través del teléfono, confirmando la conexión con el bot Lex.

A continuación, puede solicitar concertar una cita (con este ejemplo Lex bot).

Reproducir un mensaje de confirmación de cita

En su consola de AWS, vaya a Amazon Lex y, a continuación, a su bot Lex. Haga clic enEdita.

Editing the Lex bot

En Respuestahaga clic en Añadir mensaje.

Adding a new message to the Lex bot

Introduzca uno o varios mensajes de respuesta, por ejemplo:

Su cita para {Tipo de cita} el {Fecha} a las {Hora} ha sido confirmada. Hasta la vista.

Las palabras entre llaves corresponden a ranuras relacionadas con esta intención.

A continuación, haga clic en el icono [+] para añadir su nueva respuesta.

Adding a new message to the Lex bot

Para finalizar su nuevo mensaje, pulse Guardar intención.

Por último, para confirmar los cambios, haga clic en Construya para reconstruir el bot con los nuevos cambios. Entonces, necesitarás, una vez más, publicar una nueva versión. Puedes mantener el mismo alias que en los pasos anteriores.

A successfully published bot

Prueba del Lex Bot actualizado

Para probar estos nuevos cambios, llame al número de teléfono vinculado a su cuenta e interactúe con el bot de Lex para concertar una cita. Esta vez oirás el mensaje de confirmación que has configurado y que te leerá el bot de Lex.