From 44b913267faeaba548f5d924e89e38d841eb1e26 Mon Sep 17 00:00:00 2001
From: jevin3107 <j.talaviya2004@gmail.com>
Date: Sat, 25 Jan 2025 15:32:25 +0100
Subject: [PATCH] main Streamlit File

---
 app.py | 43 ++++++++++++++++++++++++++++---------------
 1 file changed, 28 insertions(+), 15 deletions(-)

diff --git a/app.py b/app.py
index bc9b5eaf..172f5e83 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")
-- 
GitLab