Spaces:
Sleeping
Sleeping
Commit
·
b9e9312
1
Parent(s):
3102bab
Made changes to chatbot.py
Browse files- app/chatbot.py +9 -8
app/chatbot.py
CHANGED
@@ -80,6 +80,7 @@ import random
|
|
80 |
# Chatbot session class
|
81 |
# -------------------------------
|
82 |
class ChatbotSession:
|
|
|
83 |
def __init__(self):
|
84 |
self.conversation_history = []
|
85 |
self.reported_symptoms = set()
|
@@ -127,21 +128,21 @@ class ChatbotSession:
|
|
127 |
for sym in ner_results:
|
128 |
if sym not in self.reported_symptoms:
|
129 |
self.reported_symptoms.add(sym)
|
130 |
-
self.symptom_details[sym] = {}
|
131 |
-
|
132 |
-
self._predict_diseases()
|
133 |
|
134 |
-
|
135 |
-
|
|
|
136 |
self.current_detail_symptom = symptom
|
|
|
137 |
self.state = "symptom_detail"
|
138 |
return f"Doctor: About your '{symptom}', when did it start? (e.g., 2 days ago)"
|
139 |
-
|
|
|
|
|
|
|
140 |
else:
|
141 |
return "Doctor: I couldn't clearly detect any medical symptoms. Could you please describe your condition differently?"
|
142 |
|
143 |
-
return "Doctor: Any other symptoms you'd like to share?"
|
144 |
-
|
145 |
def _handle_symptom_detail(self, message):
|
146 |
if self.current_detail_symptom and 'duration' not in self.symptom_details[self.current_detail_symptom]:
|
147 |
self.symptom_details[self.current_detail_symptom]['duration'] = message
|
|
|
80 |
# Chatbot session class
|
81 |
# -------------------------------
|
82 |
class ChatbotSession:
|
83 |
+
|
84 |
def __init__(self):
|
85 |
self.conversation_history = []
|
86 |
self.reported_symptoms = set()
|
|
|
128 |
for sym in ner_results:
|
129 |
if sym not in self.reported_symptoms:
|
130 |
self.reported_symptoms.add(sym)
|
|
|
|
|
|
|
131 |
|
132 |
+
unexplored_symptoms = list(self.reported_symptoms - set(self.symptom_details.keys()))
|
133 |
+
if unexplored_symptoms:
|
134 |
+
symptom = random.choice(unexplored_symptoms)
|
135 |
self.current_detail_symptom = symptom
|
136 |
+
self.symptom_details[symptom] = {} # Start collecting details only when asked
|
137 |
self.state = "symptom_detail"
|
138 |
return f"Doctor: About your '{symptom}', when did it start? (e.g., 2 days ago)"
|
139 |
+
else:
|
140 |
+
self._predict_diseases()
|
141 |
+
self.state = "pain_check"
|
142 |
+
return "Doctor: Before proceeding, are you experiencing any pain? If yes, please rate it 1-10 or type 'no'."
|
143 |
else:
|
144 |
return "Doctor: I couldn't clearly detect any medical symptoms. Could you please describe your condition differently?"
|
145 |
|
|
|
|
|
146 |
def _handle_symptom_detail(self, message):
|
147 |
if self.current_detail_symptom and 'duration' not in self.symptom_details[self.current_detail_symptom]:
|
148 |
self.symptom_details[self.current_detail_symptom]['duration'] = message
|