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']}
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(