MMuzamilAI commited on
Commit
4b00aa2
·
verified ·
1 Parent(s): 60c1675

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +168 -0
app.py ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # app.py
2
+ import gradio as gr
3
+
4
+ forward_rules = {
5
+ "cold": ["Aconitum napellus", "Allium cepa"],
6
+ "fever": ["Gelsemium", "Belladonna", "Ferrum phosphoricum"],
7
+ "dry cough": ["Bryonia alba", "Drosera rotundifolia"],
8
+ "wet cough": ["Antimonium tartaricum", "Pulsatilla"],
9
+ "headache": ["Belladonna", "Glonoinum", "Nux vomica"],
10
+ "sore throat": ["Mercurius solubilis", "Belladonna"],
11
+ "watery eyes": ["Euphrasia", "Allium cepa"],
12
+ "runny nose": ["Allium cepa", "Arsenicum album"],
13
+ "constipation": ["Nux vomica", "Alumina", "Bryonia alba"],
14
+ "dandruff": ["Thuja occidentalis", "Sulphur", "Graphites"],
15
+ "diarrhea": ["Podophyllum peltatum", "Aloe socotrina"],
16
+ "indigestion": ["Carbo vegetabilis", "Nux vomica"],
17
+ "acidity": ["Robinia", "Natrum phosphoricum"],
18
+ "gas": ["Lycopodium clavatum", "Carbo vegetabilis"],
19
+ "toothache": ["Chamomilla", "Plantago major"],
20
+ "earache": ["Belladonna", "Pulsatilla"],
21
+ "vomiting": ["Ipecacuanha", "Arsenicum album"],
22
+ "nausea": ["Nux vomica", "Ipecacuanha"],
23
+ "menstrual pain": ["Magnesia phosphorica", "Pulsatilla"],
24
+ "acne": ["Hepar sulphuris", "Sulphur"],
25
+ "eczema": ["Graphites", "Sulphur"],
26
+ "asthma": ["Blatta orientalis", "Ipecacuanha"],
27
+ "insomnia": ["Coffea cruda", "Passiflora incarnata"],
28
+ "anxiety": ["Argentum nitricum", "Aconitum napellus"],
29
+ "depression": ["Ignatia amara", "Natrum muriaticum"],
30
+ "fatigue": ["Kali phosphoricum", "Gelsemium sempervirens"],
31
+ "sciatica": ["Colocynthis", "Gnaphalium polycephalum"],
32
+ "joint pain": ["Rhus toxicodendron", "Bryonia alba"],
33
+ "back pain": ["Calcarea phosphorica", "Rhus toxicodendron"],
34
+ "arthritis": ["Causticum", "Bryonia alba"],
35
+ "sprain": ["Arnica montana", "Ruta graveolens"],
36
+ "injury": ["Arnica montana", "Calendula officinalis"],
37
+ "burns": ["Cantharis vesicatoria", "Calendula officinalis"],
38
+ "urinary infection": ["Cantharis vesicatoria", "Berberis vulgaris"],
39
+ "kidney stone": ["Berberis vulgaris", "Lycopodium clavatum"],
40
+ "hair fall": ["Lycopodium clavatum", "Silicea"],
41
+ "allergy": ["Allium cepa", "Histaminum hydrochloricum"],
42
+ "migraine": ["Sanguinaria canadensis", "Iris versicolor"],
43
+ "psoriasis": ["Arsenicum album", "Sulphur"],
44
+ "warts": ["Thuja occidentalis", "Causticum"],
45
+ "cold sore": ["Natrum muriaticum", "Rhus toxicodendron"],
46
+ "eye infection": ["Euphrasia officinalis", "Belladonna"],
47
+ "mouth ulcer": ["Borax", "Mercurius solubilis"],
48
+ "bleeding gums": ["Phosphorus", "Arnica montana"],
49
+ "palpitation": ["Digitalis purpurea", "Cactus grandiflorus"],
50
+ "hypertension": ["Natrum muriaticum", "Crataegus oxyacantha"],
51
+ "arrhythmia": ["Digitalis purpurea", "Cactus grandiflorus"],
52
+ "high cholesterol": ["Lycopodium clavatum", "Plumbum metallicum"],
53
+ "diabetes": ["Syzygium jambolanum", "Phosphorus"],
54
+ "obesity": ["Calcarea carbonica", "Lycopodium clavatum"],
55
+ "hypothyroidism": ["Thyroidinum", "Calcarea carbonica"],
56
+ "hyperthyroidism": ["Iodum", "Spongia tosta"],
57
+ "anemia": ["Ferrum metallicum", "China officinalis"],
58
+ "bronchitis": ["Bryonia alba", "Antimonium tartaricum"],
59
+ "sinusitis": ["Kali bichromicum", "Sanguinaria canadensis"],
60
+ "rosacea": ["Belladonna", "Hepar sulphuris"],
61
+ "varicose veins": ["Hamamelis virginiana", "Pulsatilla"],
62
+ "hemorrhoids": ["Aesculus hippocastanum", "Nux vomica"],
63
+ "vertigo": ["Conium maculatum", "Gelsemium sempervirens"],
64
+ "tinnitus": ["Chininum sulphuricum", "China officinalis"],
65
+ "low libido": ["Kreosotum", "Damiana"],
66
+ "impotence": ["Caladium seguinum", "Agnus castus"],
67
+ "menopause hot flashes": ["Sepia officinalis", "Lachesis mutus"],
68
+ "menstrual irregularity": ["Pulsatilla", "Sepia officinalis"],
69
+ "pcos": ["Apis mellifica", "Lycopodium clavatum"],
70
+ "cystitis": ["Cantharis vesicatoria", "Staphysagria"],
71
+ "gastritis": ["Nux vomica", "Arsenicum album"],
72
+ "peptic ulcer": ["Arsenicum album", "Nux vomica"],
73
+ "gout": ["Benzoicum acidum", "Colchicum autumnale"],
74
+ "fibromyalgia": ["Rhus toxicodendron", "Kali phosphoricum"],
75
+ "rheumatoid arthritis": ["Causticum", "Rhus toxicodendron"],
76
+ "lupus": ["Sulphur", "Arsenicum album"],
77
+ "seborrheic dermatitis": ["Sepia officinalis", "Graphites"],
78
+ "vitiligo": ["Arsenicum bromatum", "Natrum muriaticum"],
79
+ "alopecia areata": ["Phosphorus", "Sepia officinalis"],
80
+ "copd": ["Arsenicum album", "Bryonia alba"],
81
+ "pneumonia": ["Antimonium tartaricum", "Bryonia alba"],
82
+ "influenza": ["Influenzinum", "Gelsemium sempervirens"],
83
+ "tonsillitis": ["Belladonna", "Mercurius solubilis"],
84
+ "gingivitis": ["Mercurius solubilis", "Arsenicum album"],
85
+ "halitosis": ["Mercurius solubilis", "Carbo vegetabilis"],
86
+ "oral thrush": ["Borax", "Mercurius solubilis"],
87
+ "shingles": ["Rhus toxicodendron", "Mezereum"],
88
+ "chickenpox": ["Rhus toxicodendron", "Antimonium tartaricum"],
89
+ "measles": ["Euphrasia officinalis", "Aconitum napellus"],
90
+ "mumps": ["Calcarea carbonica", "Aconitum napellus"],
91
+ "whooping cough": ["Drosera rotundifolia", "Cocculus indicus"],
92
+ "malaria": ["Chininum sulphuricum", "Gambogia"],
93
+ "dengue": ["Echinacea angustifolia", "Eupatorium perfoliatum"],
94
+ "jaundice": ["Chelidonium majus", "Carduus marianus"],
95
+ "hepatitis": ["Chelidonium majus", "Phosphorus"],
96
+ "cirrhosis": ["Chelidonium majus", "Podophyllum peltatum"],
97
+ "osteoarthritis": ["Rhus toxicodendron", "Bryonia alba"],
98
+ "osteoporosis": ["Calcarea phosphorica", "Silicea"],
99
+ "bursitis": ["Rhus toxicodendron", "Bryonia alba"],
100
+ "tendonitis": ["Arnica montana", "Ruta graveolens"],
101
+ "carpal tunnel syndrome": ["Hypericum perforatum", "Arnica montana"],
102
+ "chronic fatigue syndrome": ["Gelsemium sempervirens", "Kali phosphoricum"],
103
+ "multiple sclerosis": ["Causticum", "Plumbum metallicum"]
104
+ }
105
+
106
+ def make_tag(text, bgcolor="#e0f7fa", fgcolor="#006064"):
107
+ return f'<span style="display:inline-block; background-color:{bgcolor}; '\
108
+ f'color:{fgcolor}; padding:4px 8px; border-radius:12px; '\
109
+ f'margin:2px; font-weight:600;">{text}</span>'
110
+
111
+ def homeopathy_bot(user_input):
112
+ ui = user_input.strip().lower()
113
+ found = False
114
+ html_chunks = []
115
+
116
+ # Forward lookup
117
+ for symptom, meds in forward_rules.items():
118
+ if symptom in ui:
119
+ html_chunks.append(f"<p>💊 Suggested medicines for {make_tag(symptom)}:</p>")
120
+ med_tags = " ".join([make_tag(m, bgcolor="#e8f5e9", fgcolor="#1b5e20") for m in meds])
121
+ html_chunks.append(f"<p>{med_tags}</p>")
122
+ found = True
123
+ break
124
+
125
+ # Reverse lookup
126
+ if not found:
127
+ related = []
128
+ med_found = ""
129
+ for symptom, meds in forward_rules.items():
130
+ for med in meds:
131
+ if med.lower() in ui:
132
+ related.append(symptom)
133
+ med_found = med
134
+ if related:
135
+ html_chunks.append(f"<p>{make_tag(med_found, bgcolor='#ffe0b2', fgcolor='#e65100')} is used for:</p>")
136
+ unique_symptoms = sorted(set(related))
137
+ symptom_tags = " ".join([make_tag(s) for s in unique_symptoms])
138
+ html_chunks.append(f"<p>{symptom_tags}</p>")
139
+ found = True
140
+
141
+ if not found:
142
+ html_chunks.append(
143
+ "<p style='color:#b71c1c; font-weight:600;'>"
144
+ "❌ Sorry, I couldn’t find any matches. Try another symptom or medicine.</p>"
145
+ )
146
+
147
+ return "\n".join(html_chunks)
148
+
149
+
150
+ demo = gr.Interface(
151
+ fn=homeopathy_bot,
152
+ inputs=gr.Textbox(
153
+ lines=2,
154
+ placeholder="Type a symptom/disease (e.g., 'cold', 'headache') or a medicine name...",
155
+ label="Your Query"
156
+ ),
157
+ outputs=gr.HTML(label="Response"),
158
+ title="🩺 Homeopathy Chatbot",
159
+ description=(
160
+ "Enter a symptom/disease to get suggested homeopathic remedies, "
161
+ "or enter a medicine name to see which conditions it’s used for. "
162
+ "Results appear as colorful tags!"
163
+ ),
164
+ theme="huggingface",
165
+ allow_flagging="never" # ← disable the 🏴 flag button
166
+ )
167
+
168
+ demo.launch()