import gradio as gr import joblib import numpy as np BUNDLE_PATH = "RF_bundle_40_diseases.pkl" bundle = joblib.load(BUNDLE_PATH) model = bundle["model"] symptoms = bundle["features"] def predict_disease(selected_symptoms): if not selected_symptoms: return "Please select at least one symptom." input_vector = np.zeros(len(symptoms)) for symptom in selected_symptoms: if symptom in symptoms: index = symptoms.index(symptom) input_vector[index] = 1 prediction = model.predict([input_vector]) return prediction[0] demo = gr.Interface( fn=predict_disease, inputs=gr.Dropdown( choices=symptoms, label="Type and Select Symptoms", multiselect=True, filterable=True # Enables auto-search ), outputs="text", title="Disease Detection System", description="Start typing a symptom and select from suggestions." ) demo.launch()