Davidtran99 commited on
Commit
e9b83bb
·
1 Parent(s): 417256a

Fix: Enhance search query with selected topic/detail context in wizard Stage 3

Browse files
backend/hue_portal/chatbot/chatbot.py CHANGED
@@ -191,6 +191,7 @@ class Chatbot(CoreChatbot):
191
  has_doc_code_in_query = self._query_has_document_code(query)
192
  wizard_stage = session_metadata.get("wizard_stage") if session_metadata else None
193
  selected_topic = session_metadata.get("selected_topic") if session_metadata else None
 
194
  wizard_depth = session_metadata.get("wizard_depth", 0) if session_metadata else 0
195
 
196
  print(f"[WIZARD] Chatbot layer check - intent={intent}, wizard_stage={wizard_stage}, selected_doc_code={selected_doc_code}, selected_topic={selected_topic}, has_doc_code_in_query={has_doc_code_in_query}, query='{query[:50]}'")
@@ -501,7 +502,8 @@ class Chatbot(CoreChatbot):
501
 
502
  # Stage 3: Choose detail (if topic selected, ask if user wants more details)
503
  # Skip if wizard_stage is already "answer" (user wants final answer)
504
- if intent == "search_legal" and selected_doc_code and selected_topic and wizard_stage != "answer":
 
505
  # Check if user is asking for more details or saying "Không"
506
  query_lower = query.lower()
507
  wants_more = any(kw in query_lower for kw in ["có", "cần", "muốn", "thêm", "chi tiết", "nữa"])
@@ -878,10 +880,33 @@ class Chatbot(CoreChatbot):
878
  """Execute Slow Path legal handler (with fast-path + structured output)."""
879
  slow_handler = SlowPathHandler()
880
  selected_doc_code = None
 
 
881
  if session_metadata:
882
  selected_doc_code = session_metadata.get("selected_document_code")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
883
  response = slow_handler.handle(
884
- query,
885
  intent,
886
  session_id,
887
  selected_document_code=selected_doc_code,
 
191
  has_doc_code_in_query = self._query_has_document_code(query)
192
  wizard_stage = session_metadata.get("wizard_stage") if session_metadata else None
193
  selected_topic = session_metadata.get("selected_topic") if session_metadata else None
194
+ selected_detail = session_metadata.get("selected_detail") if session_metadata else None
195
  wizard_depth = session_metadata.get("wizard_depth", 0) if session_metadata else 0
196
 
197
  print(f"[WIZARD] Chatbot layer check - intent={intent}, wizard_stage={wizard_stage}, selected_doc_code={selected_doc_code}, selected_topic={selected_topic}, has_doc_code_in_query={has_doc_code_in_query}, query='{query[:50]}'")
 
502
 
503
  # Stage 3: Choose detail (if topic selected, ask if user wants more details)
504
  # Skip if wizard_stage is already "answer" (user wants final answer)
505
+ # Also skip if detail already selected (user is asking final question)
506
+ if intent == "search_legal" and selected_doc_code and selected_topic and not selected_detail and wizard_stage != "answer":
507
  # Check if user is asking for more details or saying "Không"
508
  query_lower = query.lower()
509
  wants_more = any(kw in query_lower for kw in ["có", "cần", "muốn", "thêm", "chi tiết", "nữa"])
 
880
  """Execute Slow Path legal handler (with fast-path + structured output)."""
881
  slow_handler = SlowPathHandler()
882
  selected_doc_code = None
883
+ selected_topic = None
884
+ selected_detail = None
885
  if session_metadata:
886
  selected_doc_code = session_metadata.get("selected_document_code")
887
+ selected_topic = session_metadata.get("selected_topic")
888
+ selected_detail = session_metadata.get("selected_detail")
889
+
890
+ # If we have selected topic/detail, enhance query with context
891
+ enhanced_query = query
892
+ if selected_topic or selected_detail:
893
+ context_parts = []
894
+ if selected_topic:
895
+ context_parts.append(selected_topic)
896
+ if selected_detail:
897
+ context_parts.append(selected_detail)
898
+ # Combine original query with context for better search
899
+ enhanced_query = f"{query} {' '.join(context_parts)}"
900
+ logger.info(
901
+ "[WIZARD] Enhanced query with context - original='%s', enhanced='%s', topic=%s, detail=%s",
902
+ query,
903
+ enhanced_query,
904
+ selected_topic,
905
+ selected_detail,
906
+ )
907
+
908
  response = slow_handler.handle(
909
+ enhanced_query, # Use enhanced query with context
910
  intent,
911
  session_id,
912
  selected_document_code=selected_doc_code,