Spaces:
Sleeping
Sleeping
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 |
-
|
|
|
|
| 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,
|