pushpikaLiyanagama commited on
Commit
8a6b3d6
1 Parent(s): 8d179b1

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -0
app.py ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import joblib
3
+ import numpy as np
4
+
5
+ # Load the scaler and models
6
+ scaler = joblib.load('scaler.joblib')
7
+ models = {
8
+ "processing": joblib.load('svm_model_processing.joblib'),
9
+ "perception": joblib.load('svm_model_perception.joblib'),
10
+ "input": joblib.load('svm_model_input.joblib'),
11
+ "understanding": joblib.load('svm_model_understanding.joblib'),
12
+ }
13
+
14
+ # Define the prediction function
15
+ def predict(user_input):
16
+ # Ensure the input is in the same order as your model expects
17
+ user_input_array = np.array(user_input).reshape(1, -1)
18
+
19
+ # Scale the input using the saved scaler
20
+ user_input_scaled = scaler.transform(user_input_array)
21
+
22
+ # Predict outcomes for all target variables
23
+ predictions = {}
24
+ for target, model in models.items():
25
+ prediction = model.predict(user_input_scaled)
26
+ predictions[target] = prediction[0]
27
+
28
+ return predictions
29
+
30
+ # Define Gradio interface
31
+ interface = gr.Interface(fn=predict,
32
+ inputs=gr.Dataframe(type="numpy", row_count=1, col_count=12,
33
+ headers=['course overview', 'reading file', 'abstract materiale',
34
+ 'concrete material', 'visual materials', 'self-assessment',
35
+ 'exercises submit', 'quiz submitted', 'playing', 'paused',
36
+ 'unstarted', 'buffering']),
37
+ outputs=gr.JSON(),
38
+ live=True)
39
+
40
+ # Launch the interface
41
+ interface.launch(share=True)