Your AI-Powered Travel Planning Assistant
TripMate AI is an intelligent travel planning application that generates comprehensive, personalized travel plans in minutes. Built with Streamlit and powered by DeepSeek AI, it creates detailed itineraries, packing lists, budget estimates, and cultural guides tailored to your destination and preferences.
- Detailed cost breakdown by category (accommodation, food, transport, activities)
- Multi-traveler calculations
- Travel style adjustment (Budget/Moderate/Luxury)
- Currency information with exchange rates and local payment tips
- Money-saving recommendations
- Clothing-focused recommendations (appears first)
- Weather-appropriate suggestions with real-time forecasts
- Laundry-smart packing - adjusts quantities based on laundry availability
- Electronics with adapter specifications
- Travel style considerations
- Luggage recommendations (carry-on vs checked)
- Day-by-day activity planning
- Interest-based recommendations (sightseeing, food, adventure, culture, etc.)
- Time-efficient routing
- Local insider tips
- Weather integration for outdoor activities
- Metro/subway/bus/tram system details
- Ticket purchasing and pass information
- Operating hours and frequency
- Airport connection guides
- Tourist-specific navigation tips
- Ride-sharing app recommendations
- Local greetings and customs
- Dress code recommendations
- Dining etiquette
- 10+ essential local phrases
- Do's and Don'ts (5-7 each)
- Religious sensitivity guidelines
- Tipping culture and bargaining norms
- 7 dietary filter options: Vegetarian, Vegan, Halal, Kosher, Gluten-Free, Dairy-Free, Nut Allergies
- Budget (
$), mid-range ($ $), and upscale ($$$) categories - Must-try local dishes
- Food markets and street food spots
- Dining tips and reservation advice
- Modern pastel blue color scheme
- 2-column responsive grid layout
- Color-coded sections with dashed borders:
- π Budget (Purple)
- π Packing (Pink)
- π Itinerary (Blue)
- π Transport (Green)
- π§‘ Culture (Orange)
- π Restaurant (Teal)
- π Currency (Lavender)
- Dropdown with "City, Country" format
- Reads from
cities_geonames_1000.csv - Smart column detection
- Fallback to manual text input
- Python 3.8 or higher
- DeepSeek API key (Get one here)
- OpenWeather API key (Get one here) - Optional
-
Clone the repository
git clone https://github.com/yourusername/tripmate-ai.git cd tripmate-ai -
Install dependencies
pip install -r requirements.txt
-
Set up environment variables
Create a
.envfile in the root directory:DEEPSEEK_API_KEY=your_deepseek_api_key_here OPENWEATHER_API_KEY=your_openweather_api_key_here
-
Add optional assets (optional but recommended)
Place these files in the root directory:
background.png- Background pattern imagelogo.png- Your logo (displayed at top)cities_geonames_1000.csv- City database for dropdown
-
Run the application
streamlit run app.py
-
Open in browser
Navigate to
http://localhost:8501
- Open the sidebar
- Select or enter your destination (City, Country format)
- Choose start and end dates
- Set travel style (Budget/Moderate/Luxury)
- Enter number of travelers
-
Select your interests (multiple choices):
- Sightseeing
- Food & Dining
- Adventure
- Culture
- Nightlife
- Shopping
- Nature
- Relaxation
-
Choose any dietary restrictions:
- Vegetarian
- Vegan
- Halal
- Kosher
- Gluten-Free
- Dairy-Free
- Nut Allergies
Choose which sections to generate (all enabled by default):
- βοΈ Budget Estimate
- βοΈ Packing List
- βοΈ Itinerary
- βοΈ Transport Guide
- βοΈ Cultural Tips
- βοΈ Restaurant Guide
- Click "π Generate Travel Plan"
- Watch the progress bar (2-3 minutes)
- Review your personalized travel plan
- Scroll to the download section
- Click "β¬οΈ Download Complete Travel Plan (PDF)"
- Save to your device
tripmate-ai/
βββ app.py # Main Streamlit application
βββ agent.py # TripMate AI agent (DeepSeek integration)
βββ requirements.txt # Python dependencies
βββ .env # Environment variables (create this)
βββ README.md # This file
βββ CHANGELOG.md # Version history and changes
βββ background.png # Optional: Background image
βββ logo.png # Optional: Logo image
βββ cities_geonames_1000.csv # Optional: City database
| Variable | Required | Description |
|---|---|---|
DEEPSEEK_API_KEY |
Yes | Your DeepSeek API key |
OPENWEATHER_API_KEY |
No | OpenWeather API key for weather data |
| File | Purpose | Format |
|---|---|---|
cities_geonames_1000.csv |
City dropdown data | CSV with name and country columns |
background.png |
Background pattern | PNG image (400x400px recommended) |
logo.png |
App logo | PNG image (150px width recommended) |
name,country
Paris,France
London,United Kingdom
Tokyo,Japan
New York,United StatesEdit the CSS in app.py to customize colors:
# Change primary color (line ~58)
--primary-color: #A8D8EA; # Your color here
# Change sidebar gradient (line ~197)
background: linear-gradient(180deg, #D4EBF8 0%, #A8D8EA 100%);
# Change box border colors (lines ~98-133)
.budget-box { border: 4px dashed #C7B8EA; } # Your colorModify token limits in agent.py:
# Budget section (line ~86)
max_tokens=900 # Increase/decrease
# Packing section (line ~122)
max_tokens=800 # Increase/decrease- Create a new method in
TripMateAgentclass (agent.py) - Add checkbox in sidebar (app.py)
- Add generation logic in main function
- Add display section with custom styling
| Metric | Value |
|---|---|
| Generation time | 2-3 minutes |
| API tokens used | ~3,500 tokens |
| Cost per plan | ~$0.01 USD |
| Output length | ~1,500 words |
| Sections available | 6 core + 1 currency |
- Model: DeepSeek Chat
- Average tokens per section: 500-900
- Temperature: 0.5-0.6 (factual) / 0.7 (creative)
- Total API calls: 7 per complete plan
Q: "Please enter a destination!" error
- A: Make sure you've entered a destination in the sidebar, or select one from the dropdown if CSV is loaded.
Q: API key error
- A: Check that your
.envfile exists and contains valid API keys. Restart the app after adding keys.
Q: City dropdown is empty
- A: The
cities_geonames_1000.csvfile is missing or has incorrect columns. Use manual text input instead or add the CSV file.
Q: PDF won't download
- A: Check browser popup blocker. Try a different browser. Ensure ReportLab is installed (
pip install reportlab).
Q: Weather data not showing
- A: Weather API only works for trips within 5 days. Add
OPENWEATHER_API_KEYto.envfile.
Q: Sections not generating
- A: Check that checkboxes are enabled in sidebar. Verify API key is valid. Check internet connection.
Q: HTML tags showing in output
- A: This has been fixed in v2.0.0. Update to the latest version.
See CHANGELOG.md for detailed version history and updates.
- β Added 4 new core features
- β Redesigned UI with pastel theme
- β 50% performance improvement
- β¨ Be specific with interests for better recommendations
- π Choose realistic travel dates (not too far in future for weather data)
- π₯ Accurate traveler count affects budget calculations
- π΄ Select dietary restrictions for personalized restaurant suggestions
- Select appropriate travel style (Budget/Moderate/Luxury)
- Review currency exchange rates provided
- Check money-saving tips for discounts
- Weather data is most accurate within 5 days of travel
- Laundry availability affects clothing quantities
- Check adapter type carefully for your electronics
- Book ahead based on AI suggestions, especially for upscale dining
- Try recommended food markets for authentic experiences
- Use provided local phrases when ordering
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Hanan Abu Kwaider
- LinkedIn: linkedin.com/in/hananabukwaider
- DeepSeek AI for the powerful language model
- Streamlit for the amazing web framework
- OpenWeather for weather data integration
- ReportLab for PDF generation capabilities
If you find TripMate AI helpful, please consider:
- β Starring the repository
- π Reporting bugs
- π‘ Suggesting new features
- π’ Sharing with friends
For questions, feedback, or support:
- Open an issue on GitHub
- Connect on LinkedIn
Made with β€οΈ for travelers worldwide