diff --git a/app.py b/app.py index bc9b5eaf44a670adb2c12b3c9b4f244dedfe03b9..172f5e833202cb01842ac7bb3cb680f6dfaaa0a8 100644 --- a/app.py +++ b/app.py @@ -80,9 +80,9 @@ def show_chatbot_section(): # Greeting and initial input if not st.session_state.greeted: - user_input = st.text_input("Start by saying 'Hey', 'Good Morning', or 'Hello':") + user_input = st.text_input("Start by saying 'Hey', 'Good Morning', or ask your question:") if user_input: - if any(greet in user_input.lower() for greet in ["hey", "good morning", "hello", "hi", "greetings"]): + if any(greet in user_input.lower() for greet in ["hey", "good morning", "hello", "hi"]): st.write("Hello! How can I assist you today?") st.session_state.greeted = True else: @@ -90,15 +90,15 @@ def show_chatbot_section(): # 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'):") + user_query = st.text_input("What would you like assistance with?") if user_query: - if "details" in user_query.lower(): - st.success("Understood, let's proceed to fetch your details.") + if any(keyword in user_query.lower() for keyword in ["details", "my details", "know my details"]): + st.success("Understood, let's proceed.") st.session_state.help_query = True else: st.info("Let me know how I can assist you further.") - # Fetch and display user details + # Passenger ID and Last Name functionality 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:") @@ -109,11 +109,23 @@ def show_chatbot_section(): elif not last_name: st.warning("Please enter your Last Name.") else: - result = df[df["Passenger ID"] == passenger_id] + result = df[df.applymap(lambda x: passenger_id.lower() in str(x).lower() if pd.notnull(x) else False).any(axis=1)] 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.success("**Here are your flight details:**") + for index, row in result.iterrows(): + st.markdown(f"**Passenger ID:** <code>{row['Passenger ID']}</code>", unsafe_allow_html=True) + st.markdown(f"**First Name:** <code>{row['First Name']}</code>", unsafe_allow_html=True) + st.markdown(f"**Last Name:** <code>{row['Last Name']}</code>", unsafe_allow_html=True) + st.markdown(f"**Gender:** <code>{row['Gender']}</code>", unsafe_allow_html=True) + st.markdown(f"**Age:** <code>{row['Age']}</code>", unsafe_allow_html=True) + st.markdown(f"**Nationality:** <code>{row['Nationality']}</code>", unsafe_allow_html=True) + st.markdown(f"**Airport Name:** <code>{row['Airport Name']}</code>", unsafe_allow_html=True) + st.markdown(f"**Departure Date:** <code>{row['Departure Date']}</code>", unsafe_allow_html=True) + st.markdown(f"**Arrival Airport:** <code>{row['Arrival Airport']}</code>", unsafe_allow_html=True) + st.markdown(f"**Pilot Name:** <code>{row['Pilot Name']}</code>", unsafe_allow_html=True) + st.markdown(f"**Flight Status:** <code>{row['Flight Status']}</code>", unsafe_allow_html=True) + st.write("---") st.session_state.details_fetched = True else: st.error("No matching records found. Please check the Passenger ID or Last Name.") @@ -122,17 +134,18 @@ def show_chatbot_section(): 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!") + if "no" in further_assistance.lower() or "goodbye" in further_assistance.lower(): + st.success("Happy to assist you!") st.session_state.farewell = True - elif further_assistance.lower() == "yes": - st.info("Please describe your next query.") + elif "yes" in further_assistance.lower(): + st.info("Please describe your next query or ask for more details.") else: st.warning("Please respond with 'Yes' or 'No'.") - # Reset chatbot after farewell + # Reset message after farewell if st.session_state.farewell: - st.info("Press the Reset Chatbot button to restart the conversation.") + st.info("Press the **Reset Chatbot** button to restart the conversation and ask for other details.") + def show_data_explorer_section(): st.subheader("Explore the Airline Dataset")