Inspiration
As aspiring travel-oriented gentlemen, we sometimes find ourselves disenchanted with the mundanity of day-to-day life. "Let's go see the world or something, bruh" is oftentimes quoted among us, as if merely saying these words is enough to spur us into adventuring. However, it seems to be that everyone is always down until you actually commence the trip-planning process. Part of the reason we feel, is the complexity behind generating a sound, personalized travel itinerary. We get overwhelmed with the options available to us and perhaps even a little fearful in missing out on stuff or dealing with regret when a certain (expensive) attraction could be underwhelming, despite Google's 4 star review.
Websites like TripAdvisor and Expedia aim to simplify the process, but they mandate a form-filling process specifying location, budgets, dates, etc. Or if you're anything like me, you'd scroll through Reddit and opt for real user stories on a particular destination and curate your itinerary that way. But what if all we needed was a simple natural language input to generate accurate itineraries for your specific tastes? We built itiner.ai to do exactly that.
What it does
A user can specify a simple natural language to be curated personalized itineraries. For example, "Build me a 7-day itinerary through Seoul that would make Gordon Ramsey a happy camper" would be all you needed to generate a reasonable list of food spots, organized by rating, in the South Korean capital.
How we built it
We used Pinecone to store embeddings of attraction data. To retrieve this data, we scraped TripAdvisor's website for each destination (this set of destinations were pre-curated by us) . We then developed the chatbot functionality using Next.js and LangChain, where our app was then deployed to Vercel. More specifically, when a user inputs their query, we utilize GPT to extract the relevant location data and encode the query using text-ada-002. We then conduct a similarity search using Pinecone, extracting only results that matches the user's location using metadata filtering.
Challenges we ran into
Scraping TripAdvisor for the relevant data was a pain. Travel data is expensive and well-known APIs like Google Places API charge a pretty penny for the data we wanted. So we had to resort to web-scraping and hoping we didn't get IP-blocked. Additionally, we planned on using HuggingFace's Zero-Shot Classification Inference Endpoint to classfy attraction data (description + user reviews) into a set of likely travel categories. We planned to do the same during inference time and use these categories as further metadata filtering.
Accomplishments that we're proud of
Learning how to embed using OpenAI and familiarizing ourselves with the HuggingFace and Pinecone environments.
What we learned
Next.js is a powerful framework. HuggingFace is a great asset.
What's next for itiner.ai
Definitely improve our app by implementing zero-shot classification for better similarity search. Provide support for worldwide destinations, because at the moment our query capabilities are only relegated to certain U.S. destinations.
Built With
- huggingface
- langchain
- nextjs
- openai
- pinecone
- tailwindcss
- vercel
Log in or sign up for Devpost to join the conversation.