Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import pandas as pd | |
| import numpy as np | |
| import joblib | |
| import random | |
| # MODEL | |
| model = joblib.load("DeliveryTime.pkl") | |
| model_features = joblib.load("DTFeatures.pkl") | |
| # --------------------------- | |
| # RANDOM GENERATOR | |
| # --------------------------- | |
| def generate_driver(): | |
| return { | |
| "age": random.randint(18, 50), | |
| "rating": round(random.uniform(3.5, 5.0), 2), | |
| "vehicle": random.randint(1, 5), | |
| "deliveries": random.randint(0, 3) | |
| } | |
| # --------------------------- | |
| # YEMEK → PREP TIME | |
| # --------------------------- | |
| def get_prep_time(food): | |
| prep_map = { | |
| "Pizza": random.randint(15, 25), | |
| "Burger": random.randint(10, 20), | |
| "Sushi": random.randint(20, 35), | |
| "Kebab": random.randint(15, 30), | |
| "Dessert": random.randint(5, 15) | |
| } | |
| return prep_map.get(food, 15) | |
| # --------------------------- | |
| # PREDICT | |
| # --------------------------- | |
| def predict(food, distance, traffic, weather, weekend): | |
| driver = generate_driver() | |
| prep_time = get_prep_time(food) | |
| df = pd.DataFrame([{ | |
| "Delivery_person_Age": driver["age"], | |
| "Delivery_person_Ratings": driver["rating"], | |
| "distance": distance, | |
| "Vehicle_condition": driver["vehicle"], | |
| "multiple_deliveries": driver["deliveries"], | |
| "Road_traffic_density": traffic, | |
| "Weatherconditions": weather, | |
| "prep_time": prep_time, | |
| "is_weekend": weekend | |
| }]) | |
| df = pd.get_dummies(df) | |
| df = df.reindex(columns=model_features, fill_value=0) | |
| pred = model.predict(df)[0] | |
| return f""" | |
| 🚴 Courier Info: | |
| - Age: {driver['age']} | |
| - Rating: {driver['rating']} | |
| - Vehicle Condition: {driver['vehicle']} | |
| - Active Deliveries: {driver['deliveries']} | |
| 🍽️ Food: {food} | |
| ⏱️ Prep Time: {prep_time} min | |
| 🚚 Estimated Delivery Time: | |
| 👉 {round(pred,2)} minutes | |
| """ | |
| # --------------------------- | |
| # UI | |
| # --------------------------- | |
| interface = gr.Interface( | |
| fn=predict, | |
| inputs=[ | |
| gr.Dropdown(["Pizza","Burger","Sushi","Kebab","Dessert"], label="Food Type"), | |
| gr.Number(label="Distance"), | |
| gr.Dropdown(["Low","Medium","High","Jam"], label="Traffic"), | |
| gr.Dropdown(["Sunny","Stormy","Fog","Sandstorms"], label="Weather"), | |
| gr.Radio([0,1], label="Weekend") | |
| ], | |
| outputs="text", | |
| title="🚚 Delivery Simulator Game", | |
| description="Choose your order → system generates courier → predict delivery time" | |
| ) | |
| interface.launch() |