medai_server / diagnosis_module.py
mnni43353's picture
Create diagnosis_module.py
4c94372 verified
raw
history blame
843 Bytes
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]