An AI-powered travel intelligence platform for personalized trip planning, intelligent recommendations, and culturally grounded travel experiences.
NovaTripAI is a full-stack AI travel assistant designed to make trip planning more personalized, contextual, and useful than conventional itinerary generators.
Instead of treating travel planning as a simple prompt โ itinerary problem, NovaTripAI combines LLM-powered interaction, retrieval-augmented generation (RAG), semantic search, geographic reasoning, itinerary optimization, and cultural storytelling into a unified travel platform.
The system is built around a modular Python/FastAPI backend with dedicated components for planning, retrieval, language-model interaction, conversational experiences, voice, and travel narratives.
Generate structured travel plans based on a user's destination, preferences, duration, interests, and constraints.
The planning engine contains dedicated components for:
- Point-of-interest selection
- Route construction
- Distance calculations
- Transport considerations
- POI filtering and rules
- Clustering of destinations
- Itinerary validation
- Cold-start handling
The planner is organized as an independent module, making it possible to evolve the itinerary engine without coupling it tightly to the presentation layer.
NovaTripAI integrates language-model capabilities for understanding travel requests and generating natural, contextual responses.
The LLM layer is separated into dedicated components for:
- User-intent intake
- LLM client interaction
- Structured model definitions
- Travel narration
- AI-generated responses
This separation allows the application to combine deterministic travel logic with generative AI instead of relying entirely on an LLM for itinerary generation.
The application includes a dedicated RAG subsystem for grounding travel responses in curated destination information.
The architecture includes:
- Semantic embeddings
- Query retrieval
- Curated travel data
- City-specific data
- POI information
- Chunked knowledge representations
The repository includes structured datasets such as chunks.json, chunks_city.json, chunks_curated.json, and pois.json.
The application also warms the local embedding model during startup so that the first retrieval request does not incur the full model initialization delay.
Travel is more than a list of locations.
NovaTripAI includes a dedicated Katha layer for presenting destinations through cultural and narrative context, helping users understand the stories, heritage, and significance behind the places they visit.
This component is integrated alongside the planner, RAG system, and LLM layer rather than being treated as a separate static information page.
The application includes a dedicated chat subsystem that allows users to interact with the travel assistant conversationally.
This makes it possible to refine a trip through natural conversation rather than repeatedly filling out rigid travel forms.
A dedicated voice module provides the foundation for voice-based travel interaction, allowing the platform to move beyond purely text-based travel planning.
The system's planning architecture incorporates:
- Geographic distance calculations
- POI clustering
- Route generation
- Transportation considerations
- Destination validation
This allows generated itineraries to be structured around practical travel constraints rather than simply producing an arbitrary list of attractions.
At a high level, NovaTripAI follows a modular architecture:
โโโโโโโโโโโโโโโโโโโโโโโ
โ User โ
โ Web / Chat / Voice โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ FastAPI Layer โ
โ API + Web Pages โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ Planner โ โ RAG โ โ LLM โ
โ โ โ โ โ โ
โ Routes โ โ Embeddings โ โ Intake โ
โ Distance โ โ Retrieval โ โ Narration โ
โ POIs โ โ Knowledge โ โ Responses โ
โ Transport โ โ โ โ โ
โโโโโโโโฌโโโโโโโ โโโโโโโโฌโโโโโโโ โโโโโโโโฌโโโโโโโ
โ โ โ
โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Travel Experience โ
โ โ
โ Itinerary โ
โ Recommendations โ
โ Cultural Katha โ
โ Conversational AI โ
โโโโโโโโโโโโโโโโโโโโโโโ
The main FastAPI application exposes the API and web interface, mounts static assets, and initializes the retrieval subsystem during application startup.
- Python 3.12+
- FastAPI
- Uvicorn
- Pydantic
- Jinja2
- Large Language Models
- Sentence Transformers
- Semantic Embeddings
- Retrieval-Augmented Generation (RAG)
- NumPy
- PostgreSQL
- pgvector
- Psycopg
- REST API architecture
- Modular Python application structure
- Environment-based configuration
- Database migrations
- Automated testing with Pytest
- Code quality with Ruff
The project's dependency configuration specifies Python 3.12+, FastAPI, sentence-transformers, pgvector, PostgreSQL connectivity, Pydantic, Uvicorn, and related tooling.
NovaTripAI/
โ
โโโ app/
โ โโโ api/ # REST API routes
โ โ
โ โโโ chat/ # Conversational travel assistant
โ โ
โ โโโ katha/ # Cultural storytelling layer
โ โ
โ โโโ llm/ # LLM integration and narration
โ โ
โ โโโ planner/ # Itinerary and route planning engine
โ โ โโโ cluster.py
โ โ โโโ distance.py
โ โ โโโ engine.py
โ โ โโโ models.py
โ โ โโโ poi_rules.py
โ โ โโโ route.py
โ โ โโโ transport.py
โ โ โโโ validate.py
โ โ
โ โโโ rag/ # Retrieval-Augmented Generation
โ โ
โ โโโ static/ # Frontend/static assets
โ โ
โ โโโ templates/ # Web templates
โ โ
โ โโโ voice/ # Voice interaction
โ โ
โ โโโ accounts.py # User/account functionality
โ โโโ main.py # FastAPI application entry point
โ โโโ web.py # Web routes
โ
โโโ data/
โ โโโ chunks.json
โ โโโ chunks_city.json
โ โโโ chunks_curated.json
โ โโโ pois.json
โ โโโ verification_report.md
โ
โโโ db/
โ โโโ migrations/ # Database migrations
โ
โโโ docs/ # Project documentation
โโโ scripts/ # Utility/setup scripts
โโโ tests/ # Automated tests
โ
โโโ .env.example
โโโ pyproject.toml
โโโ uv.lock
โโโ README.md
The repository currently follows this modular structure, separating application logic, datasets, database migrations, documentation, scripts, and tests.
Make sure you have:
- Python 3.12+
- PostgreSQL
pgvector- Git
- An LLM provider/configuration required by your environment
git clone https://github.com/Pushkar69RS/NovaTripAI.git
cd NovaTripAIpython -m venv .venvActivate it:
Windows
.venv\Scripts\activateLinux / macOS
source .venv/bin/activateUsing pip:
pip install -e .Or, if you use uv:
uv syncThe repository includes a pyproject.toml and uv.lock for dependency management.
Create a local environment file:
cp .env.example .envOn Windows CMD:
copy .env.example .envAdd the required configuration values to .env.
Never commit
.envor API keys to GitHub.
Create the required PostgreSQL database and enable the pgvector extension.
Then apply the project's database migrations.
Database configuration may vary depending on the environment. Refer to the migration files under
db/migrations/and the environment configuration used by your installation.
Run the FastAPI application with:
uvicorn app.main:app --reloadThe application will be available at:
http://localhost:8000
Health check:
http://localhost:8000/health
The application exposes a /health endpoint returning the service status.
The backend is built around FastAPI and exposes application functionality through an API layer under:
/api
The application also serves web pages outside the API namespace.
This separation allows the same backend to support both programmatic API access and the web interface.
For interactive API exploration during development, FastAPI provides its standard documentation endpoints:
http://localhost:8000/docs
Run the test suite with:
pytestThe project is configured to discover tests from:
tests/
and includes Pytest as a development dependency.
NovaTripAI uses a retrieval-oriented knowledge layer to improve the relevance of travel responses.
A simplified pipeline is:
Travel Knowledge
โ
โผ
Data Processing
โ
โผ
Chunking / Curation
โ
โผ
Embeddings
โ
โผ
Vector Retrieval
โ
โผ
Relevant Context
โ
โผ
LLM
โ
โผ
Grounded Travel Response
The repository maintains multiple knowledge datasets for general chunks, city-specific information, curated content, and points of interest.
The itinerary engine is designed around deterministic travel constraints before generating the final experience.
User Preferences
โ
โผ
Destination / POI Selection
โ
โผ
POI Filtering
โ
โผ
Geographic Clustering
โ
โผ
Distance Calculation
โ
โผ
Route Construction
โ
โผ
Transport Consideration
โ
โผ
Validation
โ
โผ
Final Itinerary
This approach helps reduce impractical itineraries by incorporating geographic and logistical reasoning into the planning process.
NovaTripAI aims to address several limitations of conventional travel-planning tools:
- Generate personalized itineraries rather than generic destination lists
- Incorporate geographic and transportation constraints
- Ground AI responses using curated travel knowledge
- Provide culturally meaningful destination narratives
- Support conversational travel planning
- Create a modular architecture that can evolve with additional AI capabilities
Potential areas for further development include:
- Real-time weather-aware itinerary adaptation
- Live transport and traffic integration
- Hotel and accommodation recommendations
- Budget-aware itinerary optimization
- Multi-city trip planning
- Personalized travel profiles
- More regional and multilingual cultural content
- Advanced voice-based interaction
- Mobile application support
- Production deployment and observability
- More extensive automated evaluation of generated itineraries
Contributions are welcome.
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature- Make your changes
- Run the test suite
pytest- Commit your changes
git commit -m "Add: your feature"- Push the branch
git push origin feature/your-feature- Open a Pull Request
Add the project's chosen license here.
If this project is intended to be open source, consider adding an appropriate license file such as MIT, Apache-2.0, or GPL-3.0.
NovaTripAI AI-powered travel planning and cultural intelligence platform.
Built with Python, FastAPI, RAG, semantic search, PostgreSQL/pgvector, and LLMs.
โญ If you find the project useful, consider giving the repository a star.