Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -137,7 +137,7 @@ def get_health_professionals_and_map(location, query):
|
|
137 |
"""Search nearby healthcare professionals using Google Maps API."""
|
138 |
try:
|
139 |
if not location or not query:
|
140 |
-
return [
|
141 |
|
142 |
geo_location = gmaps.geocode(location)
|
143 |
if geo_location:
|
@@ -146,19 +146,16 @@ def get_health_professionals_and_map(location, query):
|
|
146 |
professionals = []
|
147 |
map_ = folium.Map(location=(lat, lng), zoom_start=13)
|
148 |
for place in places_result:
|
149 |
-
professionals.append({
|
150 |
-
"Name": place['name'],
|
151 |
-
"Address": place.get('vicinity', 'No address provided'),
|
152 |
-
})
|
153 |
folium.Marker(
|
154 |
location=[place["geometry"]["location"]["lat"], place["geometry"]["location"]["lng"]],
|
155 |
popup=f"{place['name']}"
|
156 |
).add_to(map_)
|
157 |
-
return professionals,
|
158 |
|
159 |
-
return [
|
160 |
except Exception as e:
|
161 |
-
return [
|
162 |
|
163 |
# Main Application Logic
|
164 |
def app_function(user_input, location, query, history):
|
@@ -166,16 +163,14 @@ def app_function(user_input, location, query, history):
|
|
166 |
sentiment_result = analyze_sentiment(user_input)
|
167 |
emotion_result, cleaned_emotion = detect_emotion(user_input)
|
168 |
suggestions = generate_suggestions(cleaned_emotion)
|
169 |
-
professionals,
|
170 |
-
if error_message:
|
171 |
-
professionals = [{"Message": error_message}]
|
172 |
return chatbot_history, sentiment_result, emotion_result, suggestions, professionals, map_html
|
173 |
|
174 |
-
# CSS Styling
|
175 |
custom_css = """
|
176 |
body {
|
177 |
font-family: 'Roboto', sans-serif;
|
178 |
-
background: linear-gradient(135deg, #
|
179 |
color: white;
|
180 |
}
|
181 |
|
@@ -234,7 +229,7 @@ textarea:hover, input:hover {
|
|
234 |
}
|
235 |
"""
|
236 |
|
237 |
-
# Gradio Application
|
238 |
with gr.Blocks(css=custom_css) as app:
|
239 |
gr.HTML("<h1>🌟 Well-Being Companion</h1>")
|
240 |
with gr.Row():
|
@@ -244,9 +239,12 @@ with gr.Blocks(css=custom_css) as app:
|
|
244 |
chatbot = gr.Chatbot(label="Chat History")
|
245 |
sentiment = gr.Textbox(label="Detected Sentiment")
|
246 |
emotion = gr.Textbox(label="Detected Emotion")
|
|
|
|
|
247 |
gr.Markdown("Suggestions", elem_id="suggestions-title")
|
248 |
-
|
249 |
-
|
|
|
250 |
map_html = gr.HTML(label="Interactive Map")
|
251 |
submit = gr.Button(value="Submit", variant="primary")
|
252 |
|
@@ -256,4 +254,4 @@ with gr.Blocks(css=custom_css) as app:
|
|
256 |
outputs=[chatbot, sentiment, emotion, suggestions, professionals, map_html],
|
257 |
)
|
258 |
|
259 |
-
app.launch()
|
|
|
137 |
"""Search nearby healthcare professionals using Google Maps API."""
|
138 |
try:
|
139 |
if not location or not query:
|
140 |
+
return ["Please provide both location and query."], ""
|
141 |
|
142 |
geo_location = gmaps.geocode(location)
|
143 |
if geo_location:
|
|
|
146 |
professionals = []
|
147 |
map_ = folium.Map(location=(lat, lng), zoom_start=13)
|
148 |
for place in places_result:
|
149 |
+
professionals.append(f"{place['name']} - {place.get('vicinity', 'No address provided')}")
|
|
|
|
|
|
|
150 |
folium.Marker(
|
151 |
location=[place["geometry"]["location"]["lat"], place["geometry"]["location"]["lng"]],
|
152 |
popup=f"{place['name']}"
|
153 |
).add_to(map_)
|
154 |
+
return professionals, map_._repr_html_()
|
155 |
|
156 |
+
return ["No professionals found for the given location."], ""
|
157 |
except Exception as e:
|
158 |
+
return [f"An error occurred: {e}"], ""
|
159 |
|
160 |
# Main Application Logic
|
161 |
def app_function(user_input, location, query, history):
|
|
|
163 |
sentiment_result = analyze_sentiment(user_input)
|
164 |
emotion_result, cleaned_emotion = detect_emotion(user_input)
|
165 |
suggestions = generate_suggestions(cleaned_emotion)
|
166 |
+
professionals, map_html = get_health_professionals_and_map(location, query)
|
|
|
|
|
167 |
return chatbot_history, sentiment_result, emotion_result, suggestions, professionals, map_html
|
168 |
|
169 |
+
# CSS Styling
|
170 |
custom_css = """
|
171 |
body {
|
172 |
font-family: 'Roboto', sans-serif;
|
173 |
+
background: linear-gradient(135deg, #0d0d0d, #ff5722);
|
174 |
color: white;
|
175 |
}
|
176 |
|
|
|
229 |
}
|
230 |
"""
|
231 |
|
232 |
+
# Gradio Application
|
233 |
with gr.Blocks(css=custom_css) as app:
|
234 |
gr.HTML("<h1>🌟 Well-Being Companion</h1>")
|
235 |
with gr.Row():
|
|
|
239 |
chatbot = gr.Chatbot(label="Chat History")
|
240 |
sentiment = gr.Textbox(label="Detected Sentiment")
|
241 |
emotion = gr.Textbox(label="Detected Emotion")
|
242 |
+
|
243 |
+
# Adding Suggestions Title with Styled Markdown (Centered and Bold)
|
244 |
gr.Markdown("Suggestions", elem_id="suggestions-title")
|
245 |
+
|
246 |
+
suggestions = gr.DataFrame(headers=["Title", "Link"]) # Table for suggestions
|
247 |
+
professionals = gr.Textbox(label="Nearby Professionals", lines=6)
|
248 |
map_html = gr.HTML(label="Interactive Map")
|
249 |
submit = gr.Button(value="Submit", variant="primary")
|
250 |
|
|
|
254 |
outputs=[chatbot, sentiment, emotion, suggestions, professionals, map_html],
|
255 |
)
|
256 |
|
257 |
+
app.launch()
|