Inspiration
Most trip planners begin with broad categories such as food, museums, or nightlife. Those filters are useful, but they flatten the cultural signals that make a trip personal. Two travelers who both select “art and cafés” can have completely different tastes yet receive nearly identical recommendations.
TasteRoute starts with specific cultural references a traveler already loves—films, musicians, books, brands, and places—and uses Qloo’s cultural intelligence to discover relevant real-world places at the destination.
What it does
A traveler enters a destination and dates, searches Qloo for one or more taste signals, and chooses pace, budget, and practical constraints. TasteRoute then:
- Resolves the destination to a canonical Qloo locality.
- Uses Qloo Search to resolve the selected cultural references.
- Uses Qloo Insights to discover strictly local places connected to those interests.
- Validates coordinates, provenance, exclusions, and duplicates.
- Runs a bounded planning loop that selects only controller-approved actions.
- Composes a day-by-day itinerary using only validated Qloo candidates.
- Checks dates, ordering, non-empty completion, place provenance, and known driving feasibility.
- Displays Taste DNA, Qloo evidence, the real agent decision trace, and MapLibre routes with optional OSRM driving geometry.
If routing is unavailable, the itinerary remains usable with a geometric map fallback. If upstream evidence is incomplete, the UI reports a partial or failed result instead of inventing attractions.
Why Qloo is essential
Qloo is the factual grounding layer, not a decorative enrichment step. Search resolves both the traveler’s taste seeds and the destination locality. Insights discovers local places and supplies coordinates, affinity, tags, and explainability contributions. Every itinerary item must reference a place returned and validated from Qloo.
Without Qloo, TasteRoute would lose the cross-domain cultural relationships that make its recommendations distinctive and would no longer have a trustworthy candidate set for the planning agent.
How we built it
The Vue 3 and TypeScript frontend streams real planning progress from a FastAPI backend. The backend combines Qloo Search and Insights with a bounded observe/decide/act controller. Deterministic guards expose a closed action set; a structured LangChain policy chooses only among those safe actions. The composer receives validated candidates plus an optional OSRM driving matrix and gets at most one repair pass.
Pydantic models, candidate validation, provenance checks, route-response validation, public-safe errors, rate limits, caching, and bounded concurrency make the public demo resilient. MapLibre uses Qloo coordinates and OpenFreeMap, while OSRM adds degradable driving evidence.
The app ships as one Docker image. GitHub Actions runs backend tests, frontend tests, type checking, a production build, and a container build before deploying to Render. CD then verifies the deployed commit with automated smoke tests.
Challenges we ran into
The hardest reliability issue was preventing broad or unmappable recommendations when a destination could not be resolved precisely. We changed discovery to resolve a Qloo locality ID first, perform strict local discovery, and allow only one bounded nearby retry.
We also had to make LLM behavior useful without making it authoritative. The solution was to separate Qloo discovery, deterministic safety checks, bounded policy decisions, structured composition, and one repair pass. This lets the model organize evidence while code enforces truth and completion invariants.
Accomplishments that we're proud of
- Qloo remains indispensable from user input through the final itinerary.
- Completed plans cannot contain fabricated places or zero stops.
- The result explains why each stop relates to the selected tastes.
- Agent decisions and generation progress are real rather than simulated percentages.
- The map works globally and degrades honestly when routing is unavailable.
- Automated CI/CD deploys only tested commits and smoke-tests production.
What we learned
Agentic applications become more trustworthy when the model does not own the whole workflow. Specialized cultural intelligence, deterministic validation, and a bounded action space produce recommendations that are both more personal and easier to audit.
What's next for TasteRoute
Next steps include saved and collaborative trips, feedback-driven taste refinement, opening-hours evidence, reservation integrations, and richer multimodal taste signals while preserving the same Qloo provenance boundary.
Try it out
No account is required. Open the live demo, enter a destination and travel dates, search for one or more Qloo taste signals, then select Generate TasteRoute. For the reference scenario, use Shanghai, November 10–12, 2026, and the first book and movie results for Jane Eyre. The page streams the real agent decisions before showing Qloo evidence, a three-day itinerary, and MapLibre/OSRM routes. A sleeping Render instance may need a short initial wake-up.
Built With
- docker
- fastapi
- github
- langchain
- maplibre
- osrm
- python
- qloo
- render
- typescript
- vue.js
Log in or sign up for Devpost to join the conversation.