POC exploration
AI Itinerary Generation Engine
Itineraries in ~20–30 seconds
Architecture diagram
Grounded AI itinerary generation
Catalog retrieval narrows real attraction options before an LLM composes a day-by-day itinerary under constraints.
Traveler request
Preferences, dates, constraints
Intent
Attraction catalog
500+ grounded options
Candidate pool
Embedding retrieval
Relevant attractions and filters
Grounded context
LLM planner
OpenAI orchestration
Draft plan
Constraint checks
Timing, catalog grounding, shape
Bounded output
Generated itinerary
Delivered in ~20-30 seconds
- The POC tested the conditions under which generated plans stop being generic.
- Grounding limited the model to real inventory instead of model memory.
- Latency shaped the product decision around async/progressive UX.
Travel itinerary generation is one of those AI ideas that looks great in a demo and gets much harder when you try to make it product-grade. In this case, the platform had a catalog of more than 500 attractions and wanted generated itineraries that felt useful, not generic.
The easy version of the problem is getting a model to write something pleasant. The harder version is making sure the plan is grounded in real catalog options, respects obvious constraints, and does not quietly turn into pretty nonsense.
So the POC focused on prompt design plus catalog grounding. Attraction metadata, filters, and context selection mattered because itinerary quality depends on more than language fluency. The model has to choose from real options, sequence them sensibly, and stay within the shape of the actual inventory. Python and the OpenAI API were enough to prove the orchestration pattern, and the 20 to 30 second generation time told us something important about the eventual UX cost.
What did we learn? The model was good at composing a readable narrative and building a plausible plan. It still needed boundaries. Without grounding and constrained choice, itinerary quality slipped quickly into something that sounded smart but was not strong enough to trust.
The trade-off was speed and complexity. Better grounding meant more retrieval and more structure. It also meant accepting that 20 to 30 seconds is long enough that the user experience needs to account for waiting, async delivery, or progressive feedback.
The useful answer from the POC was not "yes, AI can make itineraries." It was "here are the conditions under which itinerary generation stops being a neat trick and starts becoming a serious product candidate."