SaswatML123 commited on
Commit
9ead7fd
·
verified ·
1 Parent(s): adb1139

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +25 -3
main.py CHANGED
@@ -6,13 +6,14 @@ Port 7860 (required by HuggingFace Spaces)
6
  import uvicorn
7
  from fastapi import FastAPI, File, UploadFile, HTTPException
8
  from fastapi.middleware.cors import CORSMiddleware
 
9
  from contextlib import asynccontextmanager
10
  from PIL import Image
11
  import io
12
 
13
  from model_loader import (
14
- load_pneumo_model, load_skin_models,
15
- predict_pneumonia, predict_skin
16
  )
17
 
18
 
@@ -23,6 +24,7 @@ async def lifespan(app: FastAPI):
23
  print("=" * 50)
24
  load_pneumo_model()
25
  load_skin_models()
 
26
  print("=" * 50)
27
  print(" All models ready!")
28
  print("=" * 50)
@@ -43,6 +45,17 @@ app.add_middleware(
43
  )
44
 
45
 
 
 
 
 
 
 
 
 
 
 
 
46
  @app.get("/")
47
  def root():
48
  return {
@@ -50,6 +63,7 @@ def root():
50
  "endpoints": {
51
  "pneumonia": "POST /predict/pneumonia",
52
  "skin": "POST /predict/skin",
 
53
  "docs": "/docs",
54
  }
55
  }
@@ -90,5 +104,13 @@ async def skin_endpoint(file: UploadFile = File(...)):
90
  raise HTTPException(500, f"Inference error: {e}")
91
 
92
 
 
 
 
 
 
 
 
 
93
  if __name__ == "__main__":
94
- uvicorn.run(app, host="0.0.0.0", port=7860)
 
6
  import uvicorn
7
  from fastapi import FastAPI, File, UploadFile, HTTPException
8
  from fastapi.middleware.cors import CORSMiddleware
9
+ from pydantic import BaseModel
10
  from contextlib import asynccontextmanager
11
  from PIL import Image
12
  import io
13
 
14
  from model_loader import (
15
+ load_pneumo_model, load_skin_models, load_diabetes_model,
16
+ predict_pneumonia, predict_skin, predict_diabetes
17
  )
18
 
19
 
 
24
  print("=" * 50)
25
  load_pneumo_model()
26
  load_skin_models()
27
+ load_diabetes_model()
28
  print("=" * 50)
29
  print(" All models ready!")
30
  print("=" * 50)
 
45
  )
46
 
47
 
48
+ class DiabetesInput(BaseModel):
49
+ pregnancies: float
50
+ glucose: float
51
+ blood_pressure: float
52
+ skin_thickness: float
53
+ insulin: float
54
+ bmi: float
55
+ diabetes_pedigree: float
56
+ age: float
57
+
58
+
59
  @app.get("/")
60
  def root():
61
  return {
 
63
  "endpoints": {
64
  "pneumonia": "POST /predict/pneumonia",
65
  "skin": "POST /predict/skin",
66
+ "diabetes": "POST /predict/diabetes",
67
  "docs": "/docs",
68
  }
69
  }
 
104
  raise HTTPException(500, f"Inference error: {e}")
105
 
106
 
107
+ @app.post("/predict/diabetes")
108
+ async def diabetes_endpoint(payload: DiabetesInput):
109
+ try:
110
+ return predict_diabetes(payload.dict())
111
+ except Exception as e:
112
+ raise HTTPException(500, f"Inference error: {e}")
113
+
114
+
115
  if __name__ == "__main__":
116
+ uvicorn.run(app, host="0.0.0.0", port=7860)