saherPervaiz commited on
Commit
01ec88d
Β·
verified Β·
1 Parent(s): e3e8ff9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -76
app.py CHANGED
@@ -37,86 +37,57 @@ def chatbot_interface():
37
  st.write("Hello! I’m here to assist you with well-being advice based on your responses.")
38
 
39
  # Initialize session state
40
- if 'step' not in st.session_state:
41
- st.session_state.step = 0
42
- st.session_state.user_data = {}
43
-
44
- def next_step():
45
- st.session_state.step += 1
46
-
47
- def show_input_error(message="Please provide a valid input."):
48
- st.error(message)
49
- return False
50
-
51
- # Step 0: Welcome message and initial question
52
- if st.session_state.step == 0:
53
- st.write("Hi! I'm here to assist you with well-being advice based on your responses. Let's get started!")
54
- next_step_button = st.button("Start Chat")
55
- if next_step_button:
56
- next_step()
57
-
58
- # Step 1: Ask for anxiety level
59
- elif st.session_state.step == 1:
60
- anxiety_level = st.text_input("On a scale of 1 to 10, how would you rate your anxiety level?")
61
- if anxiety_level:
62
- try:
63
- anxiety_level = int(anxiety_level)
64
- if anxiety_level < 1 or anxiety_level > 10:
65
- raise ValueError
66
- st.session_state.user_data['anxiety_level'] = anxiety_level
67
- st.write(f"Got it! Your anxiety level is {anxiety_level}.")
68
- next_step()
69
- except ValueError:
70
- show_input_error("Please enter a number between 1 and 10 for anxiety level.")
71
-
72
- # Step 2: Ask for self-esteem
73
- elif st.session_state.step == 2:
74
- self_esteem = st.text_input("On a scale of 1 to 10, how would you rate your self-esteem?")
75
- if self_esteem:
76
- try:
77
- self_esteem = int(self_esteem)
78
- if self_esteem < 1 or self_esteem > 10:
79
- raise ValueError
80
- st.session_state.user_data['self_esteem'] = self_esteem
81
- st.write(f"Got it! Your self-esteem level is {self_esteem}.")
82
- next_step()
83
- except ValueError:
84
- show_input_error("Please enter a number between 1 and 10 for self-esteem.")
85
-
86
- # Step 3: Ask for mental health history
87
- elif st.session_state.step == 3:
88
- mental_health_history = st.selectbox("How would you describe your mental health history?",
89
- ["None", "Minor Issues", "Moderate Issues", "Severe Issues"])
90
- st.session_state.user_data['mental_health_history'] = mental_health_history
91
- st.write(f"Got it! Your mental health history is: {mental_health_history}.")
92
- next_step()
93
-
94
- # Step 4: Ask for stress level
95
- elif st.session_state.step == 4:
96
- stress_level = st.radio("On a scale of 0 to 2, how would you rate your stress level?", [0, 1, 2])
97
- st.session_state.user_data['stress_level'] = stress_level
98
- st.write(f"Got it! Your stress level is: {stress_level_to_string(stress_level)}.")
99
- next_step()
100
-
101
- # Step 5: Show advice based on user input
102
- elif st.session_state.step == 5:
103
- st.write("Thank you for providing the information!")
104
- user_data = st.session_state.user_data
105
- st.write(f"Your data: {user_data}")
106
-
107
- # Show a conversational summary of the user's well-being status
108
- st.subheader("πŸ”” Here's Your Personalized Well-being Advice:")
109
- advice = get_personalized_advice(user_data)
110
- if advice:
111
- st.write(advice)
112
  else:
113
- st.write("I couldn't retrieve specific advice right now, but please check back later.")
 
 
 
 
 
114
 
115
- # Option to restart the chat
 
116
  restart_button = st.button("Start Over")
117
  if restart_button:
118
- st.session_state.step = 0
119
- st.session_state.user_data = {}
120
 
121
  # Main function to run the chatbot
122
  def main():
 
37
  st.write("Hello! I’m here to assist you with well-being advice based on your responses.")
38
 
39
  # Initialize session state
40
+ if 'messages' not in st.session_state:
41
+ st.session_state.messages = [
42
+ {"role": "bot", "content": "Hi there! I'm here to help with your well-being. Let's start! 😊"}
43
+ ]
44
+
45
+ def next_step(user_input=None):
46
+ # Save the user's message to the chat history
47
+ if user_input:
48
+ st.session_state.messages.append({"role": "user", "content": user_input})
49
+
50
+ # Proceed to next step in the conversation
51
+ if len(st.session_state.messages) == 1:
52
+ st.session_state.messages.append({"role": "bot", "content": "On a scale of 1 to 10, how would you rate your anxiety level?"})
53
+ elif len(st.session_state.messages) == 2:
54
+ anxiety_level = int(user_input)
55
+ st.session_state.user_data = {'anxiety_level': anxiety_level}
56
+ st.session_state.messages.append({"role": "bot", "content": f"Got it! Your anxiety level is {anxiety_level}. Now, on a scale of 1 to 10, how would you rate your self-esteem?"})
57
+ elif len(st.session_state.messages) == 3:
58
+ self_esteem = int(user_input)
59
+ st.session_state.user_data['self_esteem'] = self_esteem
60
+ st.session_state.messages.append({"role": "bot", "content": f"Got it! Your self-esteem level is {self_esteem}. How would you describe your mental health history?"})
61
+ elif len(st.session_state.messages) == 4:
62
+ st.session_state.user_data['mental_health_history'] = user_input
63
+ st.session_state.messages.append({"role": "bot", "content": "Thanks! Now, on a scale of 0 to 2, how would you rate your stress level?"})
64
+ elif len(st.session_state.messages) == 5:
65
+ stress_level = int(user_input)
66
+ st.session_state.user_data['stress_level'] = stress_level
67
+ st.session_state.messages.append({"role": "bot", "content": "Thank you for providing the information! Let me get your personalized advice..."})
68
+ # Get the advice from Groq API
69
+ advice = get_personalized_advice(st.session_state.user_data)
70
+ st.session_state.messages.append({"role": "bot", "content": advice or "I couldn't retrieve specific advice right now, but please check back later."})
71
+ elif len(st.session_state.messages) == 6:
72
+ st.session_state.messages.append({"role": "bot", "content": "Would you like to start over?"})
73
+
74
+ # Display conversation history
75
+ for message in st.session_state.messages:
76
+ if message['role'] == 'bot':
77
+ st.markdown(f"**Bot**: {message['content']}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  else:
79
+ st.markdown(f"**You**: {message['content']}")
80
+
81
+ # User input field for chat interaction
82
+ user_input = st.text_input("Your message:", "")
83
+ if user_input:
84
+ next_step(user_input)
85
 
86
+ # Option to restart the conversation
87
+ if len(st.session_state.messages) >= 6:
88
  restart_button = st.button("Start Over")
89
  if restart_button:
90
+ st.session_state.messages = [{"role": "bot", "content": "Hi there! I'm here to help with your well-being. Let's start! 😊"}]
 
91
 
92
  # Main function to run the chatbot
93
  def main():