import gradio as gr from autogluon.tabular import TabularPredictor from huggingface_hub import snapshot_download import pandas as pd model_dir = snapshot_download(repo_id="DeltaSatellite1/grade_prediction") predictor = TabularPredictor.load(model_dir) def grade_predict(gpa,t_gpa,cls_grade,a_date,due_date,field,field_avg,category,category_w,category_avg,dha,dbd,diff,field_prof,teacher_exp,wdp,incentive,confidence,attendence,participation,procrastination): df = pd.DataFrame([{ "weighted gpa":gpa, "term gpa":t_gpa, "class grade":cls_grade, "assigned date":a_date, "due date":due_date, "field":field, "field average (%)":field_avg, "category":category, "category weight":category_w, "category average":category_avg, "daily hours available":dha, "days before due":dbd, "difficulty":diff, "field proficiency":field_prof, "teacher experience": teacher_exp, "work day positivity": wdp, "incentive":incentive, "confidence":confidence, "attendence":attendence, "participation":participation, "procrastination": procrastination }]) result = predictor.predict(df) return result demo = gr.Interface( title="Grade Prediction Model", description="idk", fn=grade_predict, inputs=[ gr.Number(label="Weighted GPA"), gr.Number(label="Term GPA"), gr.Number(label="Class grade"), gr.DateTime(label="Assigned date", include_time=True), gr.DateTime(label="Due date", include_time=True), gr.Dropdown(["Math", "Reading", "History", "Science", "Computer Science"], label="Field"), gr.Slider(0, 100, step=1, label="Field Average(%)"), gr.Dropdown(["normal", "quiz", "test", "essay", "project", "lab"], label="Category"), gr.Slider(0, 1, step=0.05, label="Category weight (0.00 - 1.00)"), gr.Number(label="Category average"), gr.Slider(0, 24, step=1, label="Average hours available per day"), gr.Slider(0, 30, step=1, label="Days before due"), gr.Dropdown(["high", "medium", "low"], label="Difficulty"), gr.Dropdown(["high", "medium", "low"], label="Field proficiency"), gr.Dropdown(["high", "medium", "low"], label="Teacher experience"), gr.Dropdown(["high", "medium", "low"], label="Work-day positivity"), gr.Dropdown(["high", "medium", "low"], label="Incentive"), gr.Dropdown(["high", "medium", "low"], label="Confidence"), gr.Dropdown(["high", "medium", "low"], label="Attendence"), gr.Dropdown(["high", "medium", "low"], label="Participation"), gr.Dropdown(["high", "medium", "low"], label="Procrastination"), ], outputs=gr.Textbox(label="Score")) demo.launch()