pushpikaLiyanagama commited on
Commit
5aee938
1 Parent(s): 8960ffc

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -0
app.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.inputs.Dataframe(type="numpy", row_count=1, col_count=12, col_labels=['course overview', 'reading file', 'abstract materiale', 'concrete material', 'visual materials', 'self-assessment', 'exercises submit', 'quiz submitted', 'playing', 'paused', 'unstarted', 'buffering']),
33
+ outputs=gr.outputs.JSON(),
34
+ live=True)
35
+
36
+ # Launch the interface
37
+ interface.launch()