import json from difflib import SequenceMatcher def load_diseases(): with open("diseases.json", "r", encoding="utf-8") as f: return json.load(f) def diagnose_symptoms(user_input): diseases = load_diseases() results = [] user_symptoms = [s.strip() for s in user_input.split(",")] for disease, info in diseases.items(): match_score = sum( SequenceMatcher(None, sym.lower(), us.lower()).ratio() for sym in info["symptoms"] for us in user_symptoms ) / (len(info["symptoms"]) * len(user_symptoms)) if match_score > 0.2: results.append({ "disease": disease, "score": match_score, "source": info["source"] }) results.sort(key=lambda x: x["score"], reverse=True) return results[:5]