mohamedahraf273 commited on
Commit
48d759b
·
1 Parent(s): 2a1882c

Fix FastAPI app with proper Pydantic models

Browse files
Files changed (1) hide show
  1. app.py +20 -3
app.py CHANGED
@@ -1,10 +1,13 @@
1
  import pickle
 
2
 
3
  import numpy as np
4
  from fastapi import FastAPI
 
5
 
6
  app = FastAPI()
7
 
 
8
  with open("model.pkl", "rb") as f:
9
  model = pickle.load(f)
10
 
@@ -12,9 +15,23 @@ with open("label_encoder.pkl", "rb") as f:
12
  le = pickle.load(f)
13
 
14
 
15
- @app.post("/predict")
16
- def predict(embedding: np.ndarray):
17
- embedding = embedding.reshape(1, -1)
 
 
 
 
 
 
 
 
18
  pred = model.predict(embedding)
19
  pred_class = le.inverse_transform(pred)[0]
20
  return {"result": pred_class}
 
 
 
 
 
 
 
1
  import pickle
2
+ from typing import List
3
 
4
  import numpy as np
5
  from fastapi import FastAPI
6
+ from pydantic import BaseModel
7
 
8
  app = FastAPI()
9
 
10
+ # Load model and encoder
11
  with open("model.pkl", "rb") as f:
12
  model = pickle.load(f)
13
 
 
15
  le = pickle.load(f)
16
 
17
 
18
+ class EmbeddingInput(BaseModel):
19
+ embedding: List[float]
20
+
21
+
22
+ class PredictionOutput(BaseModel):
23
+ result: str
24
+
25
+
26
+ @app.post("/predict", response_model=PredictionOutput)
27
+ def predict(data: EmbeddingInput):
28
+ embedding = np.array(data.embedding).reshape(1, -1)
29
  pred = model.predict(embedding)
30
  pred_class = le.inverse_transform(pred)[0]
31
  return {"result": pred_class}
32
+
33
+
34
+ @app.get("/")
35
+ def read_root():
36
+ return {"message": "OpenMP Loop Classifier API", "status": "running"}
37
+