The heart of TravelBot - A sophisticated Retrieval-Augmented Generation (RAG) system that combines:
- TravelQueryAnalyzer for natural language understanding
- VectorSearchService for semantic similarity search
- SearchResultRanker for multi-criteria result ranking
- RAGContextBuilder for context aggregation
- TravelPreferenceTracker for user personalization
PostgreSQL pgvector implementation with AWS Bedrock integration:
- pgvector extension with HNSW indexes for fast similarity search
- AWS Bedrock Titan V2 embeddings (1024 dimensions)
- Semantic search across destinations, resorts, and amenities
- AI-powered data seeding system
- Async embedding generation with Symfony Messenger
| Component | Technology |
|---|---|
| Backend | Symfony 7.3, PHP 8.1+ (8.3 in Docker), Doctrine ORM |
| AI | Claude AI via AWS Bedrock, Titan V2 Embeddings |
| Database | PostgreSQL with pgvector extension (v15 local, Neon cloud in production) |
| Frontend | Twig, Hotwire Turbo, Tailwind CSS 4 |
| Infrastructure | AWS ECS Fargate, CloudWatch, Neon PostgreSQL |
The system provides several REST API endpoints documented in the RAG system documentation:
POST /chat/query-analysis- Analyze travel queriesGET /chat/personalized-recommendations- Get personalized recommendationsPOST /chat/track-interaction- Track user interactionsGET /chat/conversation-context/{id}- Get conversation contextGET /chat/smart-suggestions/{id}- Get contextual suggestionsGET /chat/stream/{id}- Server-sent events for streaming responses