File size: 3,125 Bytes
ac591b3
 
 
 
 
 
 
 
 
 
 
 
 
d2e162c
ac591b3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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()