TravelForge is an AI-powered travel itinerary generator designed to create personalized travel plans tailored to your unique preferences. TravelForge leverages multi-agent workflows to streamline the travel planning process, ensuring you get a customized and enjoyable travel experience.
We use the LangGraph Library to design our agentic workflow. The following agents work together to create a seamless and personalized travel itinerary:
- Researcer: Gathers information about destinations, attractions, accommodations, and more.
- Recommender: Suggests activities and accommodations options based on user preferences and interests upon recieving the research results.
- Itinerary Generator: Creates a detailed itinerary based on the user's preferences and the recommendations provided by the Recommender.
- Itinerary Formatter: Formats the API's response for presentation and delivery to the user.
- (WIP) Feedback Agent: Collects user feedback on the itinerary and makes adjustments based on the feedback.
- (WIP) Mapper: Generates an interactive map of all the sites and activities in the itinerary for the user to explore.
https://www.loom.com/share/bd4506ed6f394c45886ec034a04c2cda?sid=94765c4d-fd73-4c63-b33e-5993d3b4f613
- Personalized Itineraries: Create travel plans that align with your interests and preferences.
- Comprehensive Planning: Includes details on attractions, accommodations, dining, and activities.
- Engaging Design: Enjoy a visually appealing and well-organized itinerary layout with expandable cards.
- Quality Assurance: Iterative feedback and refinement ensure a satisfying travel plan.
- User-Friendly Interface: Easy-to-use platform for setting preferences and generating itineraries.
- Setting Preferences: Users input their travel interests, preferred destinations, and travel dates.
- Automated Curation: The Research Agent gathers information on destinations, attractions, accommodations, and activities.
- Itinerary Creation: The Recommender Agent suggests activities and accommodations based on user preferences, and the Itinerary Generator creates a detailed itinerary.
- Delivery: The Itinerary Formatter formats the itinerary for presentation and delivery to the user.
You will need API keys from both Tavily and OpenAI to run the app. You can sign up for a free account on their respective websites to get your API keys.
- Clone the repo
git clone https://github.com/taimurshaikh/travelforge.git
- Export your API Keys
...OR add them to an
export TAVILY_API_KEY=<YOUR_TAVILY_API_KEY> export OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>
.env
file in the root directoryTAVILY_API_KEY=<YOUR_TAVILY_API_KEY> OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>
- Install required packages for both the frontend and backend
cd frontend npm install cd ../backend python -m venv venv && source venv/bin/activate pip install -r requirements.txt
- The simplest way to start the app is to run the shell script in the root directory. First, ensure the script is executable:
Then run the script:
chmod +x startup-script.sh
./startup-script.sh
- The app should now be running on
http://localhost:5173
. - Start planning your next adventure
✈️ ✈️ ✈️ ! Note: You should exit the app by pressingCtrl+D
in the terminal to stop the server and kill both frontend and backend tasks.
Checklist of features and functionalities that are planned for future releases. These will be turned into GitHub milestones in the future.
- Docker Support: Finish dockerizing the application for easy deployment and scaling.
- Feedback Agent: Collect user feedback on the itinerary and make adjustments based on the feedback.
- Mapper: Generate an interactive map of all the sites and activities in the itinerary for the user to explore.
- Multi-User Support: Allow multiple users to create and manage their travel itineraries.
- Collaborative Planning: Enable users to share and collaborate on travel plans with friends and family.
- Mobile App: Look into developing a mobile app version of TravelForge for on-the-go travel planning.
These will be migrated to the issues tab in the future.
- Docker Support: Docker support is still a work in progress. There is an open bug with the frontend Dockerfile not including the packages for building to all targets (see this issue)that needs to be resolved.
- Accomodation Images: The current algorithm for matching the images returned by the Researcher's Tavily Request to the accomodations is a heuristic, and sometimes leads to incorrect images being displayed for a given accomodation.
- Days with No Activities: Depending on the OpenAI call, there may be days where no activities are suggested. This is a known issue and will be addressed in future releases.
Contributing could be as simple as opening an issue to report a bug or request a new feature. If you would like to contribute to the codebase, please make a fork and open a pull request with your changes. We would love to see your contributions! As the project scales, we will be adding more detailed contribution guidelines.
For support or inquiries, please reach out to us:
Join us in revolutionizing the travel planning experience with TravelForge!
Tavily OpenAI LangGraph LangChain
We would like to sincerely thank the team at Tavily for providing inspiration for this project as part of their take-home challenge.