MrZaper commited on
Commit
0ea8ed5
·
1 Parent(s): d658624

Add application file

Browse files
Files changed (5) hide show
  1. Dockerfile +0 -0
  2. api.py +53 -0
  3. exoplanet_lgb_model.pkl +3 -0
  4. requirements.txt +6 -0
  5. scaler.pkl +3 -0
Dockerfile ADDED
File without changes
api.py ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from pydantic import BaseModel
3
+ import numpy as np
4
+ import joblib
5
+ from fastapi.middleware.cors import CORSMiddleware
6
+ # ----------------------
7
+ # 1. Ініціалізація FastAPI
8
+ # ----------------------
9
+ app = FastAPI(title="Exoplanet Classifier API")
10
+ app.add_middleware(
11
+ CORSMiddleware,
12
+ allow_origins=["*"],
13
+ allow_credentials=True,
14
+ allow_methods=["POST"],
15
+ allow_headers=["*"],
16
+ )
17
+ # ----------------------
18
+ # 2. Загрузка моделі та скейлера
19
+ # ----------------------
20
+ model = joblib.load("exoplanet_lgb_model.pkl")
21
+ scaler = joblib.load("scaler.pkl")
22
+
23
+ # ----------------------
24
+ # 3. Схема запиту
25
+ # ----------------------
26
+ class SampleData(BaseModel):
27
+ features: list # список числових значень, відповідних X
28
+
29
+ # ----------------------
30
+ # 4. Ендпоінт для прогнозу
31
+ # ----------------------
32
+ @app.post("/predict")
33
+ def predict(data: SampleData):
34
+ # Перетворюємо в numpy array та масштабування
35
+ X = np.array([data.features])
36
+ X_scaled = scaler.transform(X)
37
+
38
+ # Прогноз
39
+ y_prob = model.predict(X_scaled)
40
+ y_label = int(y_prob[0] > 0.6)
41
+ confidence = float(y_prob[0])
42
+
43
+ return {
44
+ "predicted_label": y_label,
45
+ "confidence": confidence
46
+ }
47
+
48
+ # ----------------------
49
+ # 5. Ендпоінт для перевірки API
50
+ # ----------------------
51
+ @app.get("/")
52
+ def root():
53
+ return {"message": "Exoplanet Classifier API is running!"}
exoplanet_lgb_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cfcc037d4964c8ecc9981eeab92e6940c0c86fb72d854639a0bc944d1b027220
3
+ size 1594994
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ fastapi
2
+ uvicorn
3
+ numpy
4
+ scikit-learn
5
+ joblib
6
+ lightgbm
scaler.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c4d255bbe092fed9b3f3f52e591451b5c74ff9ffcd3d7052fcc20f428f05a600
3
+ size 1007