Spaces:
Sleeping
Sleeping
| import os | |
| import google.generativeai as genai | |
| import streamlit as st | |
| from datetime import date | |
| st.title("Pradeep's AI Travel Planner") | |
| st.subheader('Plan your next trip with AI') | |
| # User input section in the sidebar | |
| st.sidebar.header('Enter details to generate a travel plan:') | |
| api_key = 'AIzaSyCiIfiar_7GMDI3ZPGq7tX5gGorKkfojO4' | |
| destination = st.sidebar.text_input('Destination', 'Bangalore') | |
| date_input = st.sidebar.date_input('Travel Start Date', min_value=date.today()) | |
| date = date_input.strftime('%Y-%m-%d') | |
| budget = st.sidebar.number_input('Budget', min_value=100, value=5000, step=100) | |
| traviltype = st.sidebar.selectbox('Travel Type', ['train', 'road', 'air']) | |
| # duration = st.sidebar.slider('Duration (days)', 1, 3, 3) | |
| duration = st.sidebar.number_input('Duration (days)', min_value=1, value=3, step=1) | |
| # Additional user preferences | |
| st.sidebar.subheader('Your Preferences:') | |
| # interests = st.sidebar.checklist('Interests', ['historical sites','nature','temples','food','shopeing']) | |
| interests = st.sidebar.text_input('Interests', "historical sites,nature,temples,food,shopping") | |
| specific_interests = st.sidebar.text_input('Specific Interests', 'art museums, hiking trails') | |
| accommodation_preference = st.sidebar.selectbox('Accommodation Preference', ['Hotel', 'Hostel', 'No Preference']) | |
| travel_style = st.sidebar.selectbox('Travel Style', ['Relaxed', 'Fast-Paced', 'Adventurous', 'Cultural', 'Family-Friendly']) | |
| # Function to create a detailed message for the AI | |
| def get_personalized_travel_plan(user_preferences, trip_details, api_key): | |
| genai.configure(api_key=api_key) | |
| message = ( | |
| f"Create a detailed travel itinerary focused on attractions, restaurants, and activities for a trip " | |
| f" to {trip_details['destination']}, starting on {trip_details['date']}, lasting for " | |
| f"{trip_details['duration']} days, within a budget of {trip_details['budget']}. This should include daily timings, " | |
| f"preferences for {user_preferences['accommodation_preference']} accommodations, a {user_preferences['travel_style']} travel style, " | |
| f"and interests in {user_preferences['interests']}. dietary restrictions include " | |
| f"Must-visit landmarks include . Also, provide a travel checklist relevant to the destination and duration. rech the destination by {traviltype}" | |
| ) | |
| model = genai.GenerativeModel('gemini-pro') | |
| response = model.generate_content(message) | |
| return response.text | |
| # Collecting user preferences and trip details for travel planning | |
| user_preferences = { | |
| 'interests': interests, | |
| 'specific_interests': specific_interests, | |
| 'accommodation_preference': accommodation_preference, | |
| 'travel_style': travel_style | |
| } | |
| trip_details = { | |
| 'destination': destination, | |
| 'date': date, | |
| 'budget': budget, | |
| 'duration': duration | |
| } | |
| # Generate a personalized travel plan | |
| if st.sidebar.button('Generate Travel Plan'): | |
| with st.spinner('Generating your personalized travel plan...'): | |
| response = get_personalized_travel_plan(user_preferences, trip_details, api_key) | |
| st.success(response) | |
| st.balloons() | |