La empresa xxxx (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
Convertir una frase introducida por el usuario en un JSON.
1. Parte básica:
Generar una tabla o JSON que contenga la siguiente información de cada mensaje:
o Para el mensaje: “Comprar tres billetes para el 15 de octubre con Iberia de Madrid a Bilbao”.
Se debe obtener:
o Para la frase “Billete de Berlín a Madrid con Lufthansa”.
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 <fecha> con <aerolínea>”.
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:
4. Origen: ‘Madrid’ -> String nombre ciudad
5. Destino: ‘Frankfurt’ -> String nombre ciudad
6. IATA_FROM: ‘MAD’ -> String 3 carácteres
7. IATA_TO: ‘FRA’ -> String 3 carácteres
8. Fecha: ‘15-08-2021’ -> Fecha (formato dd-mm-yyy o string)
9. Pax: 3 -> Int
Recursos:
En esta sección se pueden encontrar recursos de ayuda o instrucciones para hacer la práctica:
10. Frases de ejemplo: “
frases-travel.txt”.
11. Corpus tagueado travel para entrenamiento: “
corpus-travel.txt”.
12. Etiquetas EAGLES:
https://www.cs.upc.edu/~nlp/tools/parole-sp.html
13. “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.
Plazo de Entrega: 13 Enero, 2024