Crear Chatbot
Project detail
ada vez más, las empresas requieren aplicar nuevas formas de comunicarse con sus clientes, facilitar la interacción con ellos y mejorar sus canales de venta. Así pues, para esta práctica, el alumno actuará como consultor freelance, siendo contratado por una empresa para llevar a cabo un pequeño bot para la gestión de consultas y pedidos.
La empresa Sky2travel (empresa ficticia) contrata al alumno para llevar a cabo un bot transaccional; para ello le solicita llevar a cabo una primera demo del proyecto para comprobar la viabilidad de los requisitos. Sky2travel es una empresa centrada en la búsqueda de vuelos y viajes. Su gran base de clientes se encuentra entre los 18 y los 40 años, y que hace un gran uso intensivo del teléfono móvil lo que hace que el 70 % de sus ventas se realicen desde estos dispositivos.
Han detectado la necesidad de sus clientes de buscar y comprar vuelos desde su teléfono móvil de forma más rápida y cómoda, por lo que buscan integrar su bot con WhatsApp, Telegram y sus otras plataformas, como el chat en la web, Facebook Messenger y similares.
El objetivo es que, con un simple mensaje de texto del estilo “Billetes de Madrid a Londres en agosto para tres días” o “Billetes baratos a Berlín con Lufthansa”, la aplicación pueda procesar la petición del cliente y enviarle la información de forma sencilla a su teléfono móvil junto con un enlace directo a la página de pago.
Para la demo se solicita que el script pueda generar las peticiones que posteriormente se enviarán al software de reservas Amadeus en formato JSON. Será suficiente con crear un notebook en formato IPYNB para hacerles la demo de la funcionalidad.
Se pide
Los estudiantes deberán ser capaces de convertir una frase introducida por el usuario en un JSON.
Parte básica:
Generar una tabla o JSON que contenga la siguiente información de cada mensaje:
Para el mensaje: “Comprar tres billetes para el 15 de octubre con Iberia de Madrid a Bilbao”.
Se debe obtener:
2- Parte intermedia:
Crear un asistente virtual.
Al ejecutar la función asistent(), el usuario debe escuchar el mensaje “Hola, bienvenido a sky2travel. ¿Cómo te puedo ayudar?”. A continuación, indicará lo que quiere; por ejemplo, “Billete de Berlín a Madrid con Iberia”; posteriormente, se lanzará el bot creado en la parte básica y se devolverá el mensaje por voz: “Perfecto. Comienzo la búsqueda de tu viaje a X desde Y para el con ”.
La conversión de text a audio y viceversa es un plus. Al menos se debe interactuar como un chat escrito.
3- Parte avanzada:
Una vez se han podido detectar los datos básicos del pedido, Amadeus para poder tramitar o buscar los vuelos no puede trabajar con el nombre de la ciudad, necesita el código IATA del aeropuerto.
Para obtener dicho código habrá que hacer uso de la API abierta “Air-Port-Codes”. En la sección de Recursos puede encontrar más información sobre esta API.
En la parte final de la práctica, los alumnos deberán de generar un JSON como en la parte básica, pero incluyendo los siguientes campos:
Origen: ‘Madrid’ -> String nombre ciudad
Destino: ‘Frankfurt’ -> String nombre ciudad
IATA_FROM: ‘MAD’ -> String 3 carácteres
IATA_TO: ‘FRA’ -> String 3 carácteres
Fecha: ‘15-08-2021’ -> Fecha (formato dd-mm-yyy o string)
Pax: 3 -> Int
Recursos:
Frases de ejemplo: “frases-travel.txt”.
Corpus tagueado travel para entrenamiento: “corpus-travel.txt”.
Etiquetas EAGLES: https://www.cs.upc.edu/~nlp/tools/parole-sp.html
“Air-Port-Codes” API:
a) Para registrarse en la API, acceder a: https://www.air-port-codes.com/auth/register/
b) La API que se deberá utilizar es: /api/v1/multi.
c) La API solo admite nombre de ciudades en inglés (por ejemplo, en lugar de Londres, habrá que enviarle London; en el caso de Berlín, Berlin). Está permitido utilizar cualquier librería o API para traducir nombres de ciudades si fuese necesario.