DreamStream-1 commited on
Commit
756dc7b
Β·
verified Β·
1 Parent(s): 274d1f4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +82 -57
app.py CHANGED
@@ -161,65 +161,90 @@ def generate_suggestions(emotion):
161
 
162
  return suggestions.get(emotion, [])
163
 
164
- # Gradio interface
165
- def gradio_app(message, location, health_query, submit_button, history, state):
166
- if submit_button:
167
- # Chatbot interaction
168
- history, _ = chatbot(message, history)
169
-
170
- # Sentiment analysis
171
- sentiment_response = analyze_sentiment(message)
172
-
173
- # Emotion detection
174
- emotion_response = detect_emotion(message)
175
-
176
- # Health professional search and map display
177
- route_info, map_html = get_health_professionals_and_map(location, health_query)
178
-
179
- # Generate suggestions based on the detected emotion
180
- suggestions = generate_suggestions(emotion_response.split(': ')[1])
181
-
182
- # Create a DataFrame for displaying suggestions
183
- suggestions_df = pd.DataFrame(suggestions)
184
-
185
- return history, sentiment_response, emotion_response, route_info, map_html, gr.DataFrame(suggestions_df, headers=["Title", "Subject", "Link"]), state
186
- else:
187
- return history, "", "", "", "", gr.DataFrame([], headers=["Title", "Subject", "Link"]), state
188
-
189
- # Gradio UI components
190
- message_input = gr.Textbox(lines=1, label="πŸ’¬ Message")
191
- location_input = gr.Textbox(value="Honolulu, HI", label="πŸ“ Current Location")
192
- health_query_input = gr.Textbox(value="doctor", label="🩺 Health Professional Query (e.g., doctor, psychiatrist, psychologist)")
193
- submit_button = gr.Button("πŸš€ Submit")
194
-
195
- # Updated chat history component with 'messages' type
196
- chat_history = gr.Chatbot(label="Well-Being Chat History", type='messages')
197
-
198
- # Outputs
199
- sentiment_output = gr.Textbox(label="πŸ’¬ Sentiment Analysis Result")
200
- emotion_output = gr.Textbox(label="😊 Emotion Detection Result")
201
- route_info_output = gr.Textbox(label="🩺 Health Professionals Information")
202
- map_output = gr.HTML(label="πŸ—ΊοΈ Map with Health Professionals")
203
- suggestions_output = gr.DataFrame(label="πŸ“ Well-Being Suggestions", headers=["Title", "Subject", "Link"])
204
-
205
- # Create Gradio interface with custom CSS for gradient background
206
- css = """
207
  body {
208
- background: linear-gradient(to right, #6ab04c, #34e89e);
209
  font-family: Arial, sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
210
  }
211
  """
212
 
213
- # Create Gradio interface
214
- iface = gr.Interface(
215
- fn=gradio_app,
216
- inputs=[message_input, location_input, health_query_input, submit_button, gr.State()],
217
- outputs=[chat_history, sentiment_output, emotion_output, route_info_output, map_output, suggestions_output, gr.State()],
218
- allow_flagging="never",
219
- live=False,
220
- title="Well-Being App: Support, Sentiment, Emotion Detection & Health Professional Search",
221
- css=css
222
- )
223
-
224
- # Launch the Gradio interface
225
- iface.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
 
162
  return suggestions.get(emotion, [])
163
 
164
+ # Custom CSS for green gradient background and button
165
+ custom_css = """
166
+ /* Gradient Background */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  body {
168
+ background: linear-gradient(135deg, #00b894, #1dd1a1);
169
  font-family: Arial, sans-serif;
170
+ color: white;
171
+ box-shadow: inset 0 0 50px rgba(0, 0, 0, 0.1), 0 0 30px rgba(0, 0, 0, 0.1);
172
+ }
173
+
174
+ /* Green gradient submit button */
175
+ .gradio-button {
176
+ background: linear-gradient(45deg, #00b894, #1dd1a1);
177
+ border: none;
178
+ color: white;
179
+ font-weight: bold;
180
+ font-size: 16px;
181
+ padding: 10px 20px;
182
+ border-radius: 10px;
183
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
184
+ transition: background 0.3s ease, box-shadow 0.3s ease;
185
+ }
186
+
187
+ /* Hover effect for the submit button */
188
+ .gradio-button:hover {
189
+ background: linear-gradient(45deg, #1dd1a1, #00b894);
190
+ box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2);
191
+ }
192
+
193
+ /* Styling for the input box and other components */
194
+ .gradio-input, .gradio-output, .gradio-chatbot {
195
+ background: rgba(255, 255, 255, 0.1);
196
+ border-radius: 8px;
197
+ border: none;
198
+ padding: 10px;
199
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
200
+ }
201
+
202
+ .gradio-input:focus {
203
+ outline: none;
204
+ background: rgba(255, 255, 255, 0.2);
205
+ }
206
+
207
+ /* Shadow effect on components */
208
+ .gradio-box {
209
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
210
  }
211
  """
212
 
213
+ # Gradio app code (as before)
214
+ def gradio_app(message, location, health_query, history, state):
215
+ # Chatbot interaction
216
+ history, _ = chatbot(message, history)
217
+
218
+ # Sentiment analysis
219
+ sentiment_response = analyze_sentiment(message)
220
+
221
+ # Emotion detection
222
+ emotion_response = detect_emotion(message)
223
+
224
+ # Health professional search and map display
225
+ route_info, map_html = get_health_professionals_and_map(location, health_query)
226
+
227
+ # Generate suggestions based on the detected emotion
228
+ suggestions = generate_suggestions(emotion_response.split(': ')[1])
229
+
230
+ # Create a DataFrame for displaying suggestions
231
+ suggestions_df = pd.DataFrame(suggestions)
232
+
233
+ return history, sentiment_response, emotion_response, route_info, map_html, gr.DataFrame(suggestions_df, headers=["Title", "Subject", "Link"]), state
234
+
235
+ # Gradio UI components
236
+ message_input = gr.Textbox(lines=1, label="πŸ’¬ Message")
237
+ location_input = gr.Textbox(value="Honolulu, HI", lines=1, label="πŸ“ Your Location")
238
+ health_query_input = gr.Textbox(value="psychologist", lines=1, label="πŸ‘©β€βš•οΈ Health Professional Query")
239
+ history_output = gr.Chatbot()
240
+ sentiment_output = gr.Textbox()
241
+ emotion_output = gr.Textbox()
242
+ route_info_output = gr.Textbox()
243
+ map_output = gr.HTML()
244
+ suggestions_output = gr.DataFrame()
245
+
246
+ # Interface with custom CSS
247
+ gr.Interface(fn=gradio_app, inputs=[message_input, location_input, health_query_input, history_output, gr.State()],
248
+ outputs=[history_output, sentiment_output, emotion_output, route_info_output, map_output, suggestions_output],
249
+ live=True,
250
+ css=custom_css).launch()