Note: A more detailed version of the Project Description below is on the blog post at this link.

Inspiration

Due to COVID-19, there are many things to consider when travelling to another country, such as the entry and exit requirements, and the risk level. The travel restrictions in every country can change abruptly, and we know how difficult it is to stay updated to plan your travels.

Hence, we decided to build FlightDash, a Dasha.AI-powered app with a friendly chatbot called Dash to help you easily retrieve the latest travel data and flight offers.

What it does

At FlightDash, you will be conversing with Dash, the chatbot to ask any inquiries regarding COVID-19 travel restrictions, latest data, entry/exit requirements and risk level, or flight availability. You just need to ask, and then Dash will simply answer.

With its superior conversational AI, Dash can handle any non-scripted human questions and serve you with utmost care and efficiency.

How we built it

FlightDash is built with Dasha.AI’s technology in order to have human-like conversations with the user. We build a Dasha app and use the Dasha Script Language (DSL) to build dialogs and transitions as the conversation progresses.

The script is structured like a finite state machine with nodes as states, where the first state would be the root node and it will transition to other nodes based on conditions. These conditions would usually be defined as a certain type of intent or data that the AI detects in the message when the user replies and how the AI detects these will be based on the training data we provide in data.json.

This means we just have to focus on providing good training data and designing the flow of the state machine while Dasha’s technology will do all the hard work for us (i.e., building the NLP model) which was neat.

For the latest COVID-19 data, we use NovelCOVID API and Amadeus’ COVID-19 Travel Restrictions API to determine the number of cases, entry/exit requirements as well as the disease risk level for a given country.

For the flight data, we Amadeus’ Flight Offers Search API to search available flights based on provided dates, passengers and other miscellaneous information.

Challenges we ran into

The first challenge was searching for flights and travel APIs that are free for us to use in the working demo. Fortunately for us, Amadeus Self-Service APIs were free up to about 2000 API calls. For COVID-19 data APIs, there were a lot that were not quite what we are looking for. After spending some time searching, we eventually found NovelCOVID’s API and were happy with it.

Understanding how to use a new technology like Dasha and its DashaScript was one of the challenges our team had to face in a short amount of time. For example, we encountered an error in the beginning, which were troubling due to our limited knowledge on the product. error dasha.ArgumentError: 3 INVALID_ARGUMENT: Unable to prepare config: Unable to train custom intents…

We learned that it is because the entity name cannot have white spaces.

Another roadblock we encountered when building our app is integrating the chatbot to a client. The documentation do not include a tutorial on how to integrate the output data from the server to a client. Hence, even after we finished our chatbot, we spent a lot of time digging for resources and code examples on the Dasha GitHub to figure out how to do so.

In the end, we settled on a workaround which uses the client-side speech recognition to record the conversation and have it displayed on the browser. It is not perfect because this means the conversation can be recorded differently than what it is but nevertheless, we were happy to have a working GUI.

The three deliverables (video demo, blog post and working prototype) were difficult to complete within the time limit of this hackathon. We spent a lot of time on making the app, as we wanted to incorporate everything we envisioned into the working demo.

Accomplishments that we're proud of

In less than 48 hours, we managed to build a fully functional demo of FlightDash, complete with both a client and a backend. With little video editing experience and lack of time, we are also proud to complete our video demo and all deliverables on time.

What we learned

We learned a lot about the amazing capabilities of Dasha.AI and how to build our first conversational-AI-as-a-service app. We also learned about various useful APIs to retrieve COVID-related or travel information.

What's next for FlightDash

In FlightDash's future, we envisioned our chatbot Dash to have a travel recommender AI, where it can suggest great places to visit based on the user's current destination and COVID-19 restrictions/risk level.

Currently, Dash can only list available flights given the provided information. We hope to make it into a full-fledged flight booking engine so that it can issue tickets for flights, hotels, etc. At the same time, we want to further work on Dash's human-like interaction capabilities by including more digression logic and more variety of questions that it can answer.

We also would like Dash to be able to plan/suggest itineraries based on intent of travel and length of stay. For example, if a user is going to Bali for leisure, Dash can suggest hotels and tourists attractions to visit. It would even generate a sample itinerary that the user can refer to when planning their trip.

The possibilities for FlightDash and Dash are endless. It is up to us humans to make them into reality so that Dash can be the efficient and human-like chatbot we need.

Built With

Share this project:

Updates