Spaces:
Runtime error
Runtime error
File size: 958 Bytes
3ef5978 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # app.py
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List
import joblib
import os
app = FastAPI()
# Load model once at startup
model = joblib.load("disease_model.pkl")
label_encoder = joblib.load("label_encoder.pkl")
SYMPTOM_KEYWORDS = joblib.load("symptom_keywords.pkl")
class SymptomRequest(BaseModel):
symptoms: List[str]
class PredictionResponse(BaseModel):
disease: str
confidence: float
@app.post("/predict", response_model=PredictionResponse)
def predict(request: SymptomRequest):
selected_set = set(s.lower() for s in request.symptoms)
binary_vector = [1 if s in selected_set else 0 for s in SYMPTOM_KEYWORDS]
pred = model.predict([binary_vector])[0]
probas = model.predict_proba([binary_vector])[0]
confidence = float(probas.max())
disease = label_encoder.inverse_transform([pred])[0]
return PredictionResponse(disease=disease, confidence=round(confidence, 3)) |