Reserva de viaje - Amazon Lex V1

Si utiliza Amazon Lex V2, consulte la guía de Amazon Lex V2.

 

Si utiliza Amazon Lex V1, le recomendamos que actualice los bots a Amazon Lex V2. Hemos dejado de agregar nuevas características a V1, por lo que recomendamos encarecidamente utilizar V2 para todos los nuevos bots.

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.

Reserva de viaje

Este ejemplo muestra cómo se crea un bot configurado para respaldar múltiples intenciones. El ejemplo también ilustra cómo puede utilizar los atributos de la sesión para el intercambio de información entre intenciones. Después de crear el bot, debe utilizar un cliente de pruebas en la consola de Amazon Lex para probar el bot (BookTrip). El cliente utiliza la operación de la API en tiempo de ejecución PostText para enviar una solicitud a Amazon Lex por cada entrada del usuario.

El bot BookTrip en este ejemplo está configurado con dos intenciones (BookHotel y BookCar). Por ejemplo, suponga que un usuario reserva primero un hotel. Durante la interacción, el usuario proporciona información como, por ejemplo, la fecha de llegada, la ubicación y el número de noches. Una vez cumplida la intención, el cliente puede conservar esta información gracias a los atributos de la sesión. Para obtener más información acerca de los atributos de la sesión, consulte PostText.

Ahora suponga que el usuario reserva un automóvil. Al usar la información que el usuario ha especificado en la intención BookHotel anterior (es decir, ciudad de destino y fechas de llegada y de salida), el enlace de código (función Lambda), que ha configurado para inicializar y validar la intención BookCar, inicializa los datos de slot para la intención BookCar (es decir, destino, ciudad de recogida, fecha de recogida y fecha de devolución). Con ello se ilustra cómo el intercambio de información entre intenciones le permite crear bots que pueden participar en una conversación dinámica con el usuario.

En este ejemplo utilizamos los siguientes atributos de la sesión. Solo el cliente y la función de Lambda pueden definir y actualizar los atributos de la sesión. Amazon Lex solo los pasa entre el cliente y la función de Lambda. Amazon Lex no mantiene ni modifica los atributos de la sesión.

  • currentReservation: contiene los datos de la ranura para una reserva en curso y demás información relevante. Por ejemplo, a continuación presentamos un ejemplo de solicitud del cliente a Amazon Lex. En él se muestra el atributo de la sesión currentReservation en el cuerpo de la solicitud.

    POST /bot/BookTrip/alias/$LATEST/user/wch89kjqcpkds8seny7dly5x3otq68j3/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText":"Chicago", "sessionAttributes":{ "currentReservation":"{\"ReservationType\":\"Hotel\", \"Location\":\"Moscow\", \"RoomType\":null, \"CheckInDate\":null, \"Nights\":null}" } }

     

  • lastConfirmedReservation: contiene información similar de una intención anterior, si la hay. Por ejemplo, si el usuario reserva un hotel y, a continuación, reserva un automóvil, este atributo de la sesión almacena los datos de slot de la intención BookHotel anterior.

     

  • confirmationContext: la función de Lambda lo fija en AutoPopulate cuando rellena previamente algunos de los datos de ranura basados en datos de ranura de la reserva anterior (si la hay). Esto permite el intercambio de información entre intenciones. Por ejemplo, si el usuario ya ha reservado un hotel y ahora quiere reservar un automóvil, Amazon Lex puede solicitar al usuario que confirme (o deniegue) que está reservado el automóvil para la misma ciudad y las mismas fechas que la reserva de hotel.

En este ejercicio utilizará esquemas para crear un bot de Amazon Lex y una función de Lambda. Para obtener más información acerca de los proyectos, consulte Esquemas de Amazon Lex y AWS Lambda.

Paso siguiente

Paso 1: revisión de los proyectos utilizados en este ejercicio