Entirary isn't just another travel recommendation engine. We leverage the power of Retrieval-Augmented Generation (RAG) to understand your unique travel preferences and match you with destinations that truly resonate. Forget generic lists – Entirary dives deep to find hidden gems and popular spots that align with your individual tastes.
- Personalized Recommendations: Our RAG-based system analyzes your preferences with remarkable accuracy, going beyond basic filters.
- Precise Similarity Matching: We use vector embeddings to understand the semantic similarity between your preferences and destination characteristics.
- Rich Destination Information: Get comprehensive details about recommended locations, helping you make informed decisions.
- Intuitive User Interface: Easily input your preferences and explore tailored suggestions powered by React.
- Seamless Exploration: Discover new possibilities you might never have considered.
Entirary employs a sophisticated process to deliver your ideal travel recommendations:
- Preference Input: You tell us about your ideal trip – your interests (e.g., hiking, museums, food), travel style (e.g., budget-friendly, luxurious, adventurous), desired atmosphere (e.g., relaxing, vibrant, historical), and more.
- Embedding Generation: Your preferences are converted into a numerical vector embedding using Google Gemini via the
@google/generative-ailibrary. This embedding captures the semantic meaning of your input. - Vector Database Retrieval: This preference embedding is then used to query our PostgreSQL database (with the vector extension) to find destination embeddings that are semantically similar. We use the cosine distance (
<->) to measure this similarity. - Recommendation Generation (RAG): The retrieved destination information, along with your original preferences, is used by a generative model (likely Google Gemini) to create personalized recommendations and descriptions, highlighting why these destinations are a good fit for you.
- Tailored Suggestions: You receive a curated list of destinations, ordered by their similarity to your preferences, with detailed explanations.
Visit the deployed website to experience personalized travel recommendations:
- Frontend: React.js
- UI Components:
@radix-ui/react-*,lucide-react - Styling:
tailwindcss,tailwindcss-animate - Forms:
react-hook-form,formik,yup,zod - Data Fetching:
axios - Routing:
react-router-dom - Animations:
motion,popmotion - Other:
date-fns,react-icons,react-spinners,react-toastify,clsx,rc-slider
- UI Components:
- Backend:
- Framework:
express - LLM & Embeddings:
@google/generative-ai(using Google Gemini for both text generation and embeddings withembedding-001model) - Database: PostgreSQL with the
vectorextension - Database Interaction:
pg-promise - Authentication:
bcrypt,jsonwebtoken - Middleware:
cors - Environment Variables:
dotenv - CSV Parsing:
csv-parser - Development:
nodemon
- Framework:
- Vector Search: Utilizes the
vectorextension in PostgreSQL with cosine distance (<->) for efficient similarity search.
- Integration with booking platforms.
- User accounts to save past trips.
- More granular preference options.
- Visualizations of destination similarities.
- Community features for sharing travel experiences.
- Support for multiple languages.