Inspiration

We had to build a travel assistant to decide where to travel with friends. Instead of having to install another app, why not just have the travel assistant help us where we already are? So we decided to build a Discord bot.

What it does

It allows for the creation of parties (to go on trips) from within a server. It then asks individually tailored questions to each user to find out their interests, constraints, etc. After having a deep understanding of what every user likes and dislikes, it presents the 5 cheapest options that are the most compatible for the party so that they can then vote on them.

How we built it

The bot is built using discord.py and we used the Google Gemini API to have the LLM have the conversation for us. An individual Gemini instance is created for every user (so as not to have crosstalk) and the data is stored in the "Traveler" class. After finding out the importance every user gives to certain parameters and what particularities every user might have, a new Gemini instance is then fed the information and tasked to find 10 cities that fit the best (taking into consideration where every user comes from). From those 10, using Skyscanner's API, the 5 cheapest (in average: they are computed by finding out the cheapest flights from every origin to that destination) are then selected and a new Gemini instance is tasked to provide a description of every place and give some useful information. Also, a table is made so that the users can find out how much travelling will cost for them.

Challenges we ran into

Most of us having never interacted with an API before and all of us never having created any sort of assistant, it was a steep learning curve. One very important challenge we ran into was the fact that, unless correctly designed, if multiple servers installed the bot, crosstalk would occur.

Accomplishments that we're proud of

We actually got an assistant that provides useful data, we overcame the majority of difficulties we faced. We're proud of having been able to make it a versatile tool, since it doesn't have any special requirements. It can be used with the Google Gemini Free Tier and on very low resources. We are also proud of having been able to adapt once we found out our initial idea was not really feasible and much of the work was already done.

What we learned

We learned a lot. We learned how to interface with different APIs, how to prompt engineer LLMs, how to connect the "text based LLM outputs" into consistent parsable data.

What's next for ALBA - Trip Counselor

There are some things that are still a work in progress: for instance, we were able to, given a personal perception of cost, find how that translates into a relative scale among the users of the party. So, if a person from a well-off country says they want to travel on a budget, it probably doesn't translate to what someone from a poor country would understand for traveling on a budget. Also, we were working on calculating the carbon footprint of every trip for every user in order to minimize it and find the most sustainable trip. Lastly, we also want the bot to be able to find specific flights for every user of the party and, if possible, host it online so that other users can benefit from it.

Share this project:

Updates

Submission history