project11 / app.py
Abbas0786's picture
Create app.py
7b8c30f verified
raw
history blame
3.08 kB
import gradio as gr
import requests
import time
import folium
from folium import plugins
import pandas as pd
from groq import Groq
# Initialize Groq client with your API key
client = Groq(api_key="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")
# Function to get AI response (Groq model)
def get_response(user_input):
"""Get response from Groq AI model."""
if 'messages' not in gradio_state:
gradio_state['messages'] = []
gradio_state['messages'].append({"role": "user", "content": user_input})
# Call Groq API to get the AI's response
chat_completion = client.chat.completions.create(
messages=gradio_state['messages'],
model="llama3-8b-8192" # Specify model you want to use from Groq
)
ai_message = chat_completion.choices[0].message.content
gradio_state['messages'].append({"role": "assistant", "content": ai_message})
return ai_message
# Emergency call function
def emergency_call():
time.sleep(2) # Simulating a short delay
return "Emergency services have been contacted. Help is on the way!"
# Dangerous Area Map function
def dangerous_area_map():
data = {
'latitude': [40.7128, 34.0522, 51.5074, 48.8566, 35.6762],
'longitude': [-74.0060, -118.2437, -0.1278, 2.3522, 139.6503],
'area': ['New York', 'Los Angeles', 'London', 'Paris', 'Tokyo'],
'danger_level': ['High', 'Medium', 'Low', 'High', 'Medium']
}
df = pd.DataFrame(data)
map_center = [df['latitude'].mean(), df['longitude'].mean()]
m = folium.Map(location=map_center, zoom_start=2)
def get_color(danger_level):
if danger_level == 'High':
return 'red'
elif danger_level == 'Medium':
return 'orange'
else:
return 'green'
for index, row in df.iterrows():
danger_color = get_color(row['danger_level'])
folium.CircleMarker(
location=[row['latitude'], row['longitude']],
radius=10,
color=danger_color,
fill=True,
fill_color=danger_color,
fill_opacity=0.7,
popup=f"Area: {row['area']}<br> Danger Level: {row['danger_level']}"
).add_to(m)
heat_data = [[row['latitude'], row['longitude']] for index, row in df.iterrows()]
plugins.HeatMap(heat_data).add_to(m)
map_html = m._repr_html_()
return map_html
# ORS Route function
def ors_route(start_lat, start_lon, end_lat, end_lon):
api_key = '5b3ce3597851110001cf6248678e77a7fc474afbbb5ec203d721079c'
start_point = f'{start_lon},{start_lat}' # ORS expects lon, lat
end_point = f'{end_lon},{end_lat}'
# API request to OpenRouteService
url = f'https://api.openrouteservice.org/v2/directions/driving-car?api_key={api_key}&start={start_point}&end={end_point}'
response = requests.get(url)
if response.status_code == 200:
data = response.json()
# Extract the route information
route = data['features'][0]['geometry']['coordinates']
route_map = folium.Map(