pradeepodela's picture
Update app.py
d2e162c verified
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()