DreamStream-1 commited on
Commit
b2f8731
·
verified ·
1 Parent(s): 494aa89

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -41
app.py CHANGED
@@ -145,63 +145,67 @@ def get_health_professionals_and_map(current_location, health_professional_query
145
  def generate_suggestions(emotion):
146
  suggestions = {
147
  'joy': [
148
- {"Title": "Relaxation Techniques", "Subject": "Relaxation", "Link": "https://www.helpguide.org/mental-health/meditation/mindful-breathing-meditation"},
149
- {"Title": "Dealing with Stress", "Subject": "Stress Management", "Link": "https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety"},
150
- {"Title": "Emotional Wellness Toolkit", "Subject": "Wellness", "Link": "https://www.nih.gov/health-information/emotional-wellness-toolkit"},
151
- {"Title": "Relaxation Video", "Subject": "Video", "Link": "https://youtu.be/m1vaUGtyo-A"}
152
  ],
153
  'anger': [
154
- {"Title": "Emotional Wellness Toolkit", "Subject": "Wellness", "Link": "https://www.nih.gov/health-information/emotional-wellness-toolkit"},
155
- {"Title": "Stress Management Tips", "Subject": "Stress Management", "Link": "https://www.health.harvard.edu/health-a-to-z"},
156
- {"Title": "Dealing with Anger", "Subject": "Anger Management", "Link": "https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety"},
157
- {"Title": "Relaxation Video", "Subject": "Video", "Link": "https://youtu.be/MIc299Flibs"}
158
  ],
159
  'fear': [
160
- {"Title": "Mindfulness Practices", "Subject": "Mindfulness", "Link": "https://www.helpguide.org/mental-health/meditation/mindful-breathing-meditation"},
161
- {"Title": "Coping with Anxiety", "Subject": "Anxiety Management", "Link": "https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety"},
162
- {"Title": "Emotional Wellness Toolkit", "Subject": "Wellness", "Link": "https://www.nih.gov/health-information/emotional-wellness-toolkit"},
163
- {"Title": "Relaxation Video", "Subject": "Video", "Link": "https://youtu.be/yGKKz185M5o"}
164
  ],
165
  'sadness': [
166
- {"Title": "Emotional Wellness Toolkit", "Subject": "Wellness", "Link": "https://www.nih.gov/health-information/emotional-wellness-toolkit"},
167
- {"Title": "Dealing with Anxiety", "Subject": "Anxiety Management", "Link": "https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety"},
168
- {"Title": "Relaxation Video", "Subject": "Video", "Link": "https://youtu.be/-e-4Kx5px_I"}
169
  ],
170
  'surprise': [
171
- {"Title": "Managing Stress", "Subject": "Stress Management", "Link": "https://www.health.harvard.edu/health-a-to-z"},
172
- {"Title": "Coping Strategies", "Subject": "Coping", "Link": "https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety"},
173
- {"Title": "Relaxation Video", "Subject": "Video", "Link": "https://youtu.be/m1vaUGtyo-A"}
174
  ]
175
  }
176
- return suggestions.get(emotion.lower(), [])
 
177
 
178
  # Gradio interface
179
  def gradio_app(message, location, health_query, submit_button, history, state):
180
- # Chatbot interaction
181
- history, _ = chatbot(message, history)
182
-
183
- # Sentiment analysis
184
- sentiment_response = analyze_sentiment(message)
185
-
186
- # Emotion detection
187
- emotion_response = detect_emotion(message)
188
-
189
- # Health professional search and map display
190
- route_info, map_html = get_health_professionals_and_map(location, health_query)
191
-
192
- # Generate suggestions based on the detected emotion
193
- suggestions = generate_suggestions(emotion_response.split(': ')[1])
194
-
195
- # Create a DataFrame for displaying suggestions
196
- suggestions_df = pd.DataFrame(suggestions)
197
-
198
- return history, sentiment_response, emotion_response, route_info, map_html, gr.DataFrame(suggestions_df, headers=["Title", "Subject", "Link"]), state
 
 
 
199
 
200
  # Gradio UI components
201
  message_input = gr.Textbox(lines=1, label="Message")
202
  location_input = gr.Textbox(value="Honolulu, HI", label="Current Location")
203
  health_query_input = gr.Textbox(value="doctor", label="Health Professional Query (e.g., doctor, psychiatrist, psychologist)")
204
- submit_button = gr.Button("Submit") # Submit button
205
 
206
  # Updated chat history component with 'messages' type
207
  chat_history = gr.Chatbot(label="Well-Being Chat History", type='messages')
@@ -219,9 +223,9 @@ iface = gr.Interface(
219
  inputs=[message_input, location_input, health_query_input, submit_button, gr.State()],
220
  outputs=[chat_history, sentiment_output, emotion_output, route_info_output, map_output, suggestions_output, gr.State()],
221
  allow_flagging="never",
222
- live=True,
223
  title="Well-Being App: Support, Sentiment, Emotion Detection & Health Professional Search"
224
  )
225
 
226
  # Launch the Gradio interface
227
- iface.launch()
 
145
  def generate_suggestions(emotion):
146
  suggestions = {
147
  'joy': [
148
+ {"Title": "Relaxation Techniques", "Subject": "Relaxation", "Link": '<a href="https://www.helpguide.org/mental-health/meditation/mindful-breathing-meditation" target="_blank">Mindful Breathing Meditation</a>'},
149
+ {"Title": "Dealing with Stress", "Subject": "Stress Management", "Link": '<a href="https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety" target="_blank">Tips for Dealing with Anxiety</a>'},
150
+ {"Title": "Emotional Wellness Toolkit", "Subject": "Wellness", "Link": '<a href="https://www.nih.gov/health-information/emotional-wellness-toolkit" target="_blank">Emotional Wellness Toolkit</a>'},
151
+ {"Title": "Relaxation Video", "Subject": "Video", "Link": '<a href="https://youtu.be/m1vaUGtyo-A" target="_blank">Watch Video</a>'}
152
  ],
153
  'anger': [
154
+ {"Title": "Emotional Wellness Toolkit", "Subject": "Wellness", "Link": '<a href="https://www.nih.gov/health-information/emotional-wellness-toolkit" target="_blank">Emotional Wellness Toolkit</a>'},
155
+ {"Title": "Stress Management Tips", "Subject": "Stress Management", "Link": '<a href="https://www.health.harvard.edu/health-a-to-z" target="_blank">Harvard Health: Stress Management</a>'},
156
+ {"Title": "Dealing with Anger", "Subject": "Anger Management", "Link": '<a href="https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety" target="_blank">Tips for Dealing with Anger</a>'},
157
+ {"Title": "Relaxation Video", "Subject": "Video", "Link": '<a href="https://youtu.be/MIc299Flibs" target="_blank">Watch Video</a>'}
158
  ],
159
  'fear': [
160
+ {"Title": "Mindfulness Practices", "Subject": "Mindfulness", "Link": '<a href="https://www.helpguide.org/mental-health/meditation/mindful-breathing-meditation" target="_blank">Mindful Breathing Meditation</a>'},
161
+ {"Title": "Coping with Anxiety", "Subject": "Anxiety Management", "Link": '<a href="https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety" target="_blank">Tips for Dealing with Anxiety</a>'},
162
+ {"Title": "Emotional Wellness Toolkit", "Subject": "Wellness", "Link": '<a href="https://www.nih.gov/health-information/emotional-wellness-toolkit" target="_blank">Emotional Wellness Toolkit</a>'},
163
+ {"Title": "Relaxation Video", "Subject": "Video", "Link": '<a href="https://youtu.be/yGKKz185M5o" target="_blank">Watch Video</a>'}
164
  ],
165
  'sadness': [
166
+ {"Title": "Emotional Wellness Toolkit", "Subject": "Wellness", "Link": '<a href="https://www.nih.gov/health-information/emotional-wellness-toolkit" target="_blank">Emotional Wellness Toolkit</a>'},
167
+ {"Title": "Dealing with Anxiety", "Subject": "Anxiety Management", "Link": '<a href="https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety" target="_blank">Tips for Dealing with Anxiety</a>'},
168
+ {"Title": "Relaxation Video", "Subject": "Video", "Link": '<a href="https://youtu.be/-e-4Kx5px_I" target="_blank">Watch Video</a>'}
169
  ],
170
  'surprise': [
171
+ {"Title": "Managing Stress", "Subject": "Stress Management", "Link": '<a href="https://www.health.harvard.edu/health-a-to-z" target="_blank">Harvard Health: Stress Management</a>'},
172
+ {"Title": "Coping Strategies", "Subject": "Coping", "Link": '<a href="https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety" target="_blank">Coping with Anxiety</a>'},
173
+ {"Title": "Relaxation Video", "Subject": "Video", "Link": '<a href="https://youtu.be/m1vaUGtyo-A" target="_blank">Watch Video</a>'}
174
  ]
175
  }
176
+
177
+ return suggestions.get(emotion, [])
178
 
179
  # Gradio interface
180
  def gradio_app(message, location, health_query, submit_button, history, state):
181
+ if submit_button:
182
+ # Chatbot interaction
183
+ history, _ = chatbot(message, history)
184
+
185
+ # Sentiment analysis
186
+ sentiment_response = analyze_sentiment(message)
187
+
188
+ # Emotion detection
189
+ emotion_response = detect_emotion(message)
190
+
191
+ # Health professional search and map display
192
+ route_info, map_html = get_health_professionals_and_map(location, health_query)
193
+
194
+ # Generate suggestions based on the detected emotion
195
+ suggestions = generate_suggestions(emotion_response.split(': ')[1])
196
+
197
+ # Create a DataFrame for displaying suggestions
198
+ suggestions_df = pd.DataFrame(suggestions)
199
+
200
+ return history, sentiment_response, emotion_response, route_info, map_html, gr.DataFrame(suggestions_df, headers=["Title", "Subject", "Link"]), state
201
+ else:
202
+ return history, "", "", "", "", gr.DataFrame([], headers=["Title", "Subject", "Link"]), state
203
 
204
  # Gradio UI components
205
  message_input = gr.Textbox(lines=1, label="Message")
206
  location_input = gr.Textbox(value="Honolulu, HI", label="Current Location")
207
  health_query_input = gr.Textbox(value="doctor", label="Health Professional Query (e.g., doctor, psychiatrist, psychologist)")
208
+ submit_button = gr.Button("Submit")
209
 
210
  # Updated chat history component with 'messages' type
211
  chat_history = gr.Chatbot(label="Well-Being Chat History", type='messages')
 
223
  inputs=[message_input, location_input, health_query_input, submit_button, gr.State()],
224
  outputs=[chat_history, sentiment_output, emotion_output, route_info_output, map_output, suggestions_output, gr.State()],
225
  allow_flagging="never",
226
+ live=False,
227
  title="Well-Being App: Support, Sentiment, Emotion Detection & Health Professional Search"
228
  )
229
 
230
  # Launch the Gradio interface
231
+ iface.launch()