A Privacy-First Cultural Journey Planner

My Inspiration

I was truly inspired by the incredible possibilities offered by Qloo's Cultural Intelligence platform. The thought of going beyond simple keyword searches or demographic stereotypes to discover places that genuinely resonate with someone's individual tastes was just fascinating. I envisioned an app that could link a passion for a specific film genre to a unique dining experience or architectural style - like having a knowledgeable local guide who not only suggests places but also explains why they’d be perfect for you.

The Qloo LLM Hackathon presented the ideal opportunity to create this "Privacy-First Cultural Journey Planner."

This was built in less than 2 days as I found out about the hackathon only on the 30th :)

What I Built

I named it QlooVoyage, a personalized travel planning app. You just choose a destination city and pick your interests - like Ambient Music, Scandinavian Design, or your favorite cuisine. The app then taps into Qloo's robust APIs to uncover spots in that city that have strong cultural ties to those interests. But it goes beyond just providing a list. I incorporated a local Large Language Model (LLM) to craft clear, engaging explanations for each recommendation, using real data from Qloo to address questions like: "Why would a fan of X also enjoy Y?" This results in a curated, reliable, and easy-to-follow itinerary. Users can share their unique plans with a simple link, download them as a PDF, or even ask the app to regenerate the explanations for a fresh perspective.

How I Built It

I developed QlooVoyage as a responsive web application with a mobile-first design. The backend runs on Node.js, with a simple front-end. The core of the app lies in the integration with Qloo's APIs.

  • I leverage the Qloo Search API and Tags API to convert user-friendly interest terms into specific Qloo entity or tag IDs.
  • Then, I send these IDs along with the chosen city to the Qloo Insights API to retrieve a list of culturally relevant places.
  • For each location, I pull in the Qloo data - like the name, type, description, and affinity scores - and combine it with the user's original interests. I then feed this information into a local LLM using a Retrieval-Augmented Generation (RAG) approach. This way, the explanations are firmly rooted in Qloo's data, avoiding any of those pesky "hallucinations."
  • The frontend loads these explanations gradually, ensuring a smooth and speedy experience for users.
  • When it comes to completed itineraries, they’re saved in a MySQL database, allowing users to easily access and share their past adventures with absolutely no PII.

My Challenges

Integrating all these different components was quite the challenge. I had to be meticulous about passing the right parameters between Qloo's various APIs.

Getting the LLM prompt just right so it would produce concise and relevant explanations based solely on the Qloo data involved a lot of trial and error. I also had to navigate some tricky asynchronous operations on the frontend for that progressive loading effect and manage database saves at just the right moments.

What I'm Proud Of

I’m really proud of how I managed to build a sophisticated integration with Qloo's Taste AI, going beyond simple recommendations to create something truly unique and explainable. I crafted a complete, mobile-first user experience from the ground up, featuring swipeable interest selection, detailed place cards, PDF downloads, and itinerary sharing. Implementing the "Regenerate Explanation" feature was a significant win, adding a new layer of interactivity.

Most importantly, I adhered to the "privacy-first" principle, ensuring that no personal information is used.

What I Learned

I picked up some great skills in using specific Qloo API endpoints and learned how to structure requests to get the most relevant results.

The idea of Retrieval-Augmented Generation (RAG) became super clear to me - it’s essential for leveraging Qloo's data to ensure the outputs from the LLM are both accurate and relevant. I also gained some experience in managing complex asynchronous frontend interactions and keeping track of the state during a multi-step process, like generating and saving a complete itinerary.

What's Next for QlooVoyage

I have a ton of ideas for the future of QlooVoyage.

I’m eager to expand its capabilities to include multi-day itinerary planning that smartly groups recommendations by location and time. Integrating user feedback could make future suggestions even more intelligent and adaptive. I definitely want to build the next step of this which is users can give a voice prompt so that I can extract information from the same and use the same APIs to generate a custom itinierary for the users.

By tapping into more advanced features of Qloo's API, like demographic filtering or deeper geofencing, we could add even more depth.

A natural next step would be to introduce user accounts, allowing people to save their favorite places and itineraries across devices.

I’m also really excited about the potential for deeper LLM integration, maybe even letting users ask follow-up questions about their trip using the same RAG-powered approach.

Built With

Share this project:

Updates