diff --git a/app.py b/app.py index e4a94f72528ef745111c2f9294f2d4b42e938685..bc9b5eaf44a670adb2c12b3c9b4f244dedfe03b9 100644 --- a/app.py +++ b/app.py @@ -59,7 +59,80 @@ menu = st.sidebar.selectbox("Select a Feature", ["Chatbot", "Data Explorer", "Vi def show_chatbot_section(): st.subheader("Chat with Airline Assistant") - st.write("Chatbot functionality goes here...") + + # Initialize session states for conversation flow + if "greeted" not in st.session_state: + st.session_state.greeted = False + if "help_query" not in st.session_state: + st.session_state.help_query = False + if "details_fetched" not in st.session_state: + st.session_state.details_fetched = False + if "farewell" not in st.session_state: + st.session_state.farewell = False + + # Reset button functionality + if st.button("Reset Chatbot"): + st.session_state.greeted = False + st.session_state.help_query = False + st.session_state.details_fetched = False + st.session_state.farewell = False + st.success("The chatbot has been reset. How can I help you?") + + # Greeting and initial input + if not st.session_state.greeted: + user_input = st.text_input("Start by saying 'Hey', 'Good Morning', or 'Hello':") + if user_input: + if any(greet in user_input.lower() for greet in ["hey", "good morning", "hello", "hi", "greetings"]): + st.write("Hello! How can I assist you today?") + st.session_state.greeted = True + else: + st.warning("Please start with a greeting like 'Hey' or 'Good Morning'.") + + # Respond to user query + if st.session_state.greeted and not st.session_state.help_query: + user_query = st.text_input("What would you like assistance with? (e.g., 'I want to know my flight details'):") + if user_query: + if "details" in user_query.lower(): + st.success("Understood, let's proceed to fetch your details.") + st.session_state.help_query = True + else: + st.info("Let me know how I can assist you further.") + + # Fetch and display user details + if st.session_state.help_query and not st.session_state.details_fetched: + passenger_id = st.text_input("Please enter your Passenger ID:") + last_name = st.text_input("Please enter your Last Name:") + + if st.button("Get Flight Details"): + if not passenger_id: + st.warning("Please enter your Passenger ID.") + elif not last_name: + st.warning("Please enter your Last Name.") + else: + result = df[df["Passenger ID"] == passenger_id] + result = result[result["Last Name"].str.lower() == last_name.lower()] + if not result.empty: + st.success("Here are your flight details:") + st.write(result) + st.session_state.details_fetched = True + else: + st.error("No matching records found. Please check the Passenger ID or Last Name.") + + # Further assistance or goodbye + if st.session_state.details_fetched and not st.session_state.farewell: + further_assistance = st.text_input("Do you need any further assistance? (Yes/No)") + if further_assistance: + if further_assistance.lower() == "no": + st.success("Thank you! Have a great day!") + st.session_state.farewell = True + elif further_assistance.lower() == "yes": + st.info("Please describe your next query.") + else: + st.warning("Please respond with 'Yes' or 'No'.") + + # Reset chatbot after farewell + if st.session_state.farewell: + st.info("Press the Reset Chatbot button to restart the conversation.") def show_data_explorer_section(): st.subheader("Explore the Airline Dataset")