DreamStream-1 commited on
Commit
2fd1c83
·
verified ·
1 Parent(s): e6396eb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -70
app.py CHANGED
@@ -155,80 +155,38 @@ def detect_emotion(user_input):
155
 
156
  return emotion_msg, resources, video_link
157
 
 
 
 
158
 
159
- # Google Geocoding API setup to convert city name to latitude/longitude
160
- geocode_url = "https://maps.googleapis.com/maps/api/geocode/json"
161
-
162
- def get_lat_lon(location, api_key):
163
- params = {
164
- "address": location,
165
- "key": api_key
166
- }
167
- response = requests.get(geocode_url, params=params)
168
- if response.status_code == 200:
169
- result = response.json()
170
- if result['status'] == 'OK':
171
- # Return the first result's latitude and longitude
172
- location = result['results'][0]['geometry']['location']
173
- return location['lat'], location['lng']
174
- return None, None
175
-
176
- # Google Places API setup for wellness professionals
177
- url = "https://maps.googleapis.com/maps/api/place/textsearch/json"
178
- places_details_url = "https://maps.googleapis.com/maps/api/place/details/json"
179
- api_key = os.getenv("GOOGLE_API_KEY") # Use environment variable for security
180
-
181
- # Function to get places data using Google Places API
182
- def get_places_data(query, location, radius, api_key, next_page_token=None):
183
- params = {
184
- "query": query,
185
- "location": location,
186
- "radius": radius,
187
- "key": api_key
188
- }
189
-
190
- if next_page_token:
191
- params["pagetoken"] = next_page_token
192
-
193
- response = requests.get(url, params=params)
194
- if response.status_code == 200:
195
- return response.json()
196
- else:
197
- return None
198
-
199
- # Web scraping function to get wellness professional data (alternative to API)
200
- def scrape_wellness_professionals(query, location):
201
- # User-Agent header to simulate a browser request
202
- headers = {
203
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
204
- }
205
 
206
- search_url = f"https://www.google.com/search?q={query}+near+{location}"
 
 
 
 
 
 
 
207
 
208
- # Make a request to the search URL with headers
209
- response = requests.get(search_url, headers=headers)
210
- if response.status_code == 200:
211
- soup = BeautifulSoup(response.text, 'html.parser')
212
-
213
- # Find the results based on HTML structure
214
- # Note: This is a simplistic example, Google search results structure may change
215
- result_divs = soup.find_all("div", class_="BVG0Nb")
216
-
217
- results = []
218
- for div in result_divs:
219
- name = div.get_text()
220
- link = div.find("a")["href"]
221
- results.append({"name": name, "link": link})
222
-
223
- return results
224
- else:
225
- return None
226
-
227
- # Initialize the chatbot interface
228
  iface = gr.Interface(
229
- fn=chat,
230
- inputs=["text", "state"],
231
- outputs=["chatbot", "state"],
 
 
232
  allow_flagging="never",
233
  live=True
234
  )
 
155
 
156
  return emotion_msg, resources, video_link
157
 
158
+ # Create the interface with multiple buttons
159
+ def interface_function(message, action, history):
160
+ history = history or []
161
 
162
+ if action == "Chat":
163
+ # Use chat function if 'Chat' button is clicked
164
+ history, _ = chat(message, history)
165
+ return history, history
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
 
167
+ elif action == "Detect Emotion":
168
+ # Detect emotion if 'Detect Emotion' button is clicked
169
+ emotion_msg, resources, video_link = detect_emotion(message)
170
+ result = f"Emotion: {emotion_msg}\nResources:\n"
171
+ for res in resources:
172
+ result += f"- {res['subject']}: {res['link']}\n"
173
+ result += f"Suggested Video: {video_link}"
174
+ return result, history
175
 
176
+ elif action == "Wellness Resources":
177
+ # Return wellness resources if 'Wellness Resources' button is clicked
178
+ result = "Here are some wellness resources you can explore:\n"
179
+ result += "1. Mental Health Support: https://www.helpguide.org/mental-health/mental-health-support.htm\n"
180
+ result += "2. Meditation Guide: https://www.headspace.com/meditation\n"
181
+ return result, history
182
+
183
+ # Gradio interface with multiple buttons
 
 
 
 
 
 
 
 
 
 
 
 
184
  iface = gr.Interface(
185
+ fn=interface_function,
186
+ inputs=[gr.Textbox(label="Enter message"),
187
+ gr.Radio(["Chat", "Detect Emotion", "Wellness Resources"], label="Choose Action"),
188
+ gr.State()],
189
+ outputs=[gr.Textbox(label="Response"), gr.State()],
190
  allow_flagging="never",
191
  live=True
192
  )