Abbas0786 commited on
Commit
4c4166c
·
verified ·
1 Parent(s): 304e4da

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -11
app.py CHANGED
@@ -6,23 +6,19 @@ import folium
6
  from folium import plugins
7
  import pandas as pd
8
  from streamlit.components.v1 import html
9
- from dotenv import load_dotenv
10
-
11
- # Load environment variables from .env file
12
- load_dotenv()
13
 
14
  # Use environment variables to store sensitive data
15
  GROQ_API_KEY = os.getenv("GROQ_API_KEY", "default_value_if_key_missing")
16
  ORS_API_KEY = os.getenv("ORS_API_KEY", "default_value_if_key_missing")
17
 
18
- # Initialize Groq client with the API key from the environment variable (assuming Groq client exists)
19
- # Make sure to install and use the correct library for Groq or replace it with another AI provider.
20
- # client = Groq(api_key=GROQ_API_KEY) # This line assumes Groq is a valid library.
21
 
22
  # Set up the title and description for the Streamlit app
23
  st.set_page_config(page_title="Gaia: Women Safety App", page_icon="🤖", layout="centered")
24
 
25
- # Function to get AI response (Groq model) - assuming Groq API works similarly to OpenAI's API
26
  def get_response(user_input):
27
  """Get response from Groq AI model."""
28
  if 'messages' not in st.session_state:
@@ -47,7 +43,7 @@ def get_response(user_input):
47
  st.sidebar.title('Features')
48
  page = st.sidebar.radio("Choose a feature", ["Personal Information", "AI-Powered Support", "Emergency Call", "Dangerous Area Map", "ORS Route"])
49
 
50
- # Personal Information Page
51
  if page == "Personal Information":
52
  st.title("Personal Information Page")
53
  st.write("Please fill in the following details:")
@@ -142,7 +138,7 @@ elif page == "Dangerous Area Map":
142
  map_html = m._repr_html_()
143
  html(map_html, height=500)
144
 
145
- # ORS Route Page
146
  elif page == "ORS Route":
147
  st.title("OpenRouteService: Route Calculator")
148
  st.write("Enter your current location and destination to calculate the route:")
@@ -176,4 +172,35 @@ elif page == "ORS Route":
176
  # Plot the route on the map
177
  folium.PolyLine(locations=[(lat, lon) for lon, lat in route], color='blue', weight=5).add_to(route_map)
178
 
179
- # Display the route
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  from folium import plugins
7
  import pandas as pd
8
  from streamlit.components.v1 import html
9
+ from groq import Groq
 
 
 
10
 
11
  # Use environment variables to store sensitive data
12
  GROQ_API_KEY = os.getenv("GROQ_API_KEY", "default_value_if_key_missing")
13
  ORS_API_KEY = os.getenv("ORS_API_KEY", "default_value_if_key_missing")
14
 
15
+ # Initialize Groq client with the API key from the environment variable
16
+ client = Groq(api_key=GROQ_API_KEY)
 
17
 
18
  # Set up the title and description for the Streamlit app
19
  st.set_page_config(page_title="Gaia: Women Safety App", page_icon="🤖", layout="centered")
20
 
21
+ # Function to get AI response (Groq model)
22
  def get_response(user_input):
23
  """Get response from Groq AI model."""
24
  if 'messages' not in st.session_state:
 
43
  st.sidebar.title('Features')
44
  page = st.sidebar.radio("Choose a feature", ["Personal Information", "AI-Powered Support", "Emergency Call", "Dangerous Area Map", "ORS Route"])
45
 
46
+ # Personal Information Page (First Page)
47
  if page == "Personal Information":
48
  st.title("Personal Information Page")
49
  st.write("Please fill in the following details:")
 
138
  map_html = m._repr_html_()
139
  html(map_html, height=500)
140
 
141
+ # ORS Route Page (New Page)
142
  elif page == "ORS Route":
143
  st.title("OpenRouteService: Route Calculator")
144
  st.write("Enter your current location and destination to calculate the route:")
 
172
  # Plot the route on the map
173
  folium.PolyLine(locations=[(lat, lon) for lon, lat in route], color='blue', weight=5).add_to(route_map)
174
 
175
+ # Display the route map in the app
176
+ st.subheader("Calculated Route")
177
+ route_html = route_map._repr_html_()
178
+ html(route_html, height=500)
179
+ else:
180
+ st.error(f"Error: {response.status_code}")
181
+ except requests.exceptions.HTTPError as err:
182
+ st.error(f"HTTP error occurred: {err}")
183
+ except Exception as err:
184
+ st.error(f"An error occurred: {err}")
185
+ else:
186
+ st.error("Please enter valid coordinates for both start and end locations.")
187
+
188
+ # Styling the chat window (Optional)
189
+ st.markdown("""
190
+ <style>
191
+ .css-1v3fvcr {
192
+ font-family: 'Arial', sans-serif;
193
+ background-color: #f0f2f6;
194
+ border-radius: 12px;
195
+ padding: 15px;
196
+ box-shadow: 0 0 20px rgba(0,0,0,0.1);
197
+ }
198
+ .css-15zrgwt {
199
+ font-size: 1.1rem;
200
+ line-height: 1.5;
201
+ }
202
+ .css-10hldgk {
203
+ font-size: 1rem;
204
+ }
205
+ </style>
206
+ """, unsafe_allow_html=True)