From e9989a88b54d934a1a259ddfe1df2e0dad52ddda Mon Sep 17 00:00:00 2001
From: jevin3107 <j.talaviya2004@gmail.com>
Date: Sat, 25 Jan 2025 15:18:09 +0100
Subject: [PATCH] Main Streamlit File

---
 app.py | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 74 insertions(+), 1 deletion(-)

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