Update conversation_logic.py
Browse files- conversation_logic.py +16 -9
conversation_logic.py
CHANGED
|
@@ -956,6 +956,7 @@ class ConversationEngine:
|
|
| 956 |
)
|
| 957 |
result.solved = False
|
| 958 |
result.meta["explainer_used"] = True
|
|
|
|
| 959 |
elif resolved_help_mode == "hint" and explainer_understood and not use_solver_steps_for_hint:
|
| 960 |
reply = format_explainer_response(
|
| 961 |
result=explainer_result,
|
|
@@ -967,6 +968,7 @@ class ConversationEngine:
|
|
| 967 |
)
|
| 968 |
result.solved = False
|
| 969 |
result.meta["explainer_used"] = True
|
|
|
|
| 970 |
else:
|
| 971 |
reply_core = _compose_reply(
|
| 972 |
result=result,
|
|
@@ -976,7 +978,7 @@ class ConversationEngine:
|
|
| 976 |
hint_stage=hint_stage,
|
| 977 |
explainer_scaffold=explainer_scaffold,
|
| 978 |
)
|
| 979 |
-
|
| 980 |
reply = format_reply(
|
| 981 |
reply_core,
|
| 982 |
tone=tone,
|
|
@@ -986,22 +988,27 @@ class ConversationEngine:
|
|
| 986 |
hint_stage=hint_stage,
|
| 987 |
topic=result.topic,
|
| 988 |
)
|
| 989 |
-
|
| 990 |
-
|
| 991 |
-
|
| 992 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 993 |
result.meta["can_reveal_answer"] = bool(
|
| 994 |
result.solved
|
| 995 |
and _is_direct_solve_request(user_text or solver_input, resolved_intent)
|
| 996 |
and hint_stage >= 3
|
| 997 |
)
|
| 998 |
-
|
| 999 |
if not result.meta.get("can_reveal_answer", False):
|
| 1000 |
result.answer_letter = None
|
| 1001 |
result.answer_value = None
|
| 1002 |
result.internal_answer = None
|
| 1003 |
result.meta["internal_answer"] = None
|
| 1004 |
-
|
| 1005 |
state = _update_session_state(
|
| 1006 |
state,
|
| 1007 |
question_text=solver_input,
|
|
@@ -1013,7 +1020,7 @@ class ConversationEngine:
|
|
| 1013 |
topic=result.topic,
|
| 1014 |
category=inferred_category,
|
| 1015 |
)
|
| 1016 |
-
|
| 1017 |
result.reply = reply
|
| 1018 |
result.help_mode = resolved_help_mode
|
| 1019 |
result.meta["help_mode"] = resolved_help_mode
|
|
@@ -1025,5 +1032,5 @@ class ConversationEngine:
|
|
| 1025 |
result.meta["user_last_input_type"] = input_type
|
| 1026 |
result.meta["built_on_previous_turn"] = built_on_previous_turn
|
| 1027 |
result.meta["session_state"] = state
|
| 1028 |
-
|
| 1029 |
return result
|
|
|
|
| 956 |
)
|
| 957 |
result.solved = False
|
| 958 |
result.meta["explainer_used"] = True
|
| 959 |
+
|
| 960 |
elif resolved_help_mode == "hint" and explainer_understood and not use_solver_steps_for_hint:
|
| 961 |
reply = format_explainer_response(
|
| 962 |
result=explainer_result,
|
|
|
|
| 968 |
)
|
| 969 |
result.solved = False
|
| 970 |
result.meta["explainer_used"] = True
|
| 971 |
+
|
| 972 |
else:
|
| 973 |
reply_core = _compose_reply(
|
| 974 |
result=result,
|
|
|
|
| 978 |
hint_stage=hint_stage,
|
| 979 |
explainer_scaffold=explainer_scaffold,
|
| 980 |
)
|
| 981 |
+
|
| 982 |
reply = format_reply(
|
| 983 |
reply_core,
|
| 984 |
tone=tone,
|
|
|
|
| 988 |
hint_stage=hint_stage,
|
| 989 |
topic=result.topic,
|
| 990 |
)
|
| 991 |
+
|
| 992 |
+
# Force non-answer modes to remain non-solved
|
| 993 |
+
if resolved_help_mode in {"hint", "walkthrough", "explain", "instruction"}:
|
| 994 |
+
result.solved = False
|
| 995 |
+
result.answer_letter = None
|
| 996 |
+
result.answer_value = None
|
| 997 |
+
result.internal_answer = None
|
| 998 |
+
result.meta["internal_answer"] = None
|
| 999 |
+
|
| 1000 |
result.meta["can_reveal_answer"] = bool(
|
| 1001 |
result.solved
|
| 1002 |
and _is_direct_solve_request(user_text or solver_input, resolved_intent)
|
| 1003 |
and hint_stage >= 3
|
| 1004 |
)
|
| 1005 |
+
|
| 1006 |
if not result.meta.get("can_reveal_answer", False):
|
| 1007 |
result.answer_letter = None
|
| 1008 |
result.answer_value = None
|
| 1009 |
result.internal_answer = None
|
| 1010 |
result.meta["internal_answer"] = None
|
| 1011 |
+
|
| 1012 |
state = _update_session_state(
|
| 1013 |
state,
|
| 1014 |
question_text=solver_input,
|
|
|
|
| 1020 |
topic=result.topic,
|
| 1021 |
category=inferred_category,
|
| 1022 |
)
|
| 1023 |
+
|
| 1024 |
result.reply = reply
|
| 1025 |
result.help_mode = resolved_help_mode
|
| 1026 |
result.meta["help_mode"] = resolved_help_mode
|
|
|
|
| 1032 |
result.meta["user_last_input_type"] = input_type
|
| 1033 |
result.meta["built_on_previous_turn"] = built_on_previous_turn
|
| 1034 |
result.meta["session_state"] = state
|
| 1035 |
+
|
| 1036 |
return result
|