PranayChamala commited on
Commit
b9e9312
·
1 Parent(s): 3102bab

Made changes to chatbot.py

Browse files
Files changed (1) hide show
  1. 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
- if self.reported_symptoms:
135
- symptom = random.choice(list(self.reported_symptoms - set(self.symptom_details.keys())))
 
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