TaskScheduling / app.py
ghtmarco's picture
Update app.py
00a3ce8 verified
raw
history blame
1.54 kB
import pandas as pd
import joblib
import gradio as gr
from datetime import datetime, timedelta
# Load model
model = joblib.load('random_forest_model.pkl')
def predict_task_duration(task_name, duration, deadline):
try:
start_date = datetime(2024, 10, 20)
deadline_date = datetime.strptime(deadline, '%Y-%m-%d')
deadline_days = (deadline_date - start_date).days
input_data = pd.DataFrame({
'duration': [duration],
'deadline_days': [deadline_days]
})
priority = model.predict(input_data)
priority_map = {
1: "Rendah",
2: "Sedang",
3: "Tinggi"
}
result = priority_map.get(priority[0], "Tidak diketahui")
return f'Prioritas Tugas: {result}'
except Exception as e:
return f"Error: {str(e)}"
# Membuat interface Gradio
iface = gr.Interface(
fn=predict_task_duration,
inputs=[
gr.Dropdown(
choices=["Meeting", "Bekerja", "Belajar"],
label="Nama Tugas"
),
gr.Slider(
minimum=1,
maximum=10,
value=5,
step=0.1,
label="Durasi Tugas (dalam jam)"
),
gr.Date(label="Deadline") # Menambahkan input deadline
],
outputs=gr.Text(label="Hasil Prediksi"),
title="Sistem Prediksi Prioritas Tugas",
description="Masukkan nama tugas, durasi, dan deadline untuk memprediksi prioritasnya"
)
# Launch the interface
iface.launch()