eogreen commited on
Commit
29f9510
1 Parent(s): 09467e0

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +78 -0
app.py ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import uuid
3
+ import joblib
4
+ import json
5
+
6
+ import gradio as gr
7
+ import pandas as pd
8
+
9
+ from huggingface_hub import CommitScheduler
10
+ from pathlib import Path
11
+
12
+ log_file = Path("logs/") / f"data_{uuid.uuid4()}.json"
13
+ log_folder = log_file.parent
14
+
15
+ scheduler = CommitScheduler(
16
+ repo_id="machine-failure-logs",
17
+ repo_type="dataset",
18
+ folder_path=log_folder,
19
+ path_in_repo="data",
20
+ every=2
21
+ )
22
+
23
+ machine_failure_predictor = joblib.load('model.joblib')
24
+
25
+ air_temperature_input = gr.Number(label='Air temperature [K]')
26
+ process_temperature_input = gr.Number(label='Process temperature [K]')
27
+ rotational_speed_input = gr.Number(label='Rotational speed [rpm]')
28
+ torque_input = gr.Number(label='Torque [Nm]')
29
+ tool_wear_input = gr.Number(label='Tool wear [min]')
30
+ type_input = gr.Dropdown(
31
+ ['L', 'M', 'H'],
32
+ label='Type'
33
+ )
34
+
35
+ model_output = gr.Label(label="Machine failure")
36
+
37
+ def predict_machine_failure(air_temperature, process_temperature, rotational_speed, torque, tool_wear, type):
38
+ sample = {
39
+ 'Air temperature [K]': air_temperature,
40
+ 'Process temperature [K]': process_temperature,
41
+ 'Rotational speed [rpm]': rotational_speed,
42
+ 'Torque [Nm]': torque,
43
+ 'Tool wear [min]': tool_wear,
44
+ 'Type': type
45
+ }
46
+ data_point = pd.DataFrame([sample])
47
+ prediction = machine_failure_predictor.predict(data_point).tolist()
48
+
49
+ with scheduler.lock:
50
+ with log_file.open("a") as f:
51
+ f.write(json.dumps(
52
+ {
53
+ 'Air temperature [K]': air_temperature,
54
+ 'Process temperature [K]': process_temperature,
55
+ 'Rotational speed [rpm]': rotational_speed,
56
+ 'Torque [Nm]': torque,
57
+ 'Tool wear [min]': tool_wear,
58
+ 'Type': type,
59
+ 'prediction': prediction[0]
60
+ }
61
+ ))
62
+ f.write("\n")
63
+
64
+ return prediction[0]
65
+
66
+ demo = gr.Interface(
67
+ fn=predict_machine_failure,
68
+ inputs=[air_temperature_input, process_temperature_input, rotational_speed_input,
69
+ torque_input, tool_wear_input, type_input],
70
+ outputs=model_output,
71
+ title="Machine Failure Predictor",
72
+ description="This API allows you to predict the machine failure status of an equipment",
73
+ allow_flagging="auto",
74
+ concurrency_limit=8
75
+ )
76
+
77
+ demo.queue()
78
+ demo.launch(share=False)