|
@@ -340,13 +340,14 @@ class DialogueManager:
|
|
|
# 发送告警
|
|
|
self._send_human_intervention_alert()
|
|
|
|
|
|
- def _send_human_intervention_alert(self) -> None:
|
|
|
+ def _send_human_intervention_alert(self, reason: Optional[str] = None) -> None:
|
|
|
time_str = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
|
|
alert_message = f"""
|
|
|
人工介入告警
|
|
|
员工: {self.staff_profile.get("agent_name", "未知")}[{self.staff_id}]
|
|
|
用户: {self.user_profile.get("nickname", "未知")}[{self.user_id}]
|
|
|
时间: {time_str}
|
|
|
+ 原因:{reason if reason else "未知"}
|
|
|
最近对话:"""
|
|
|
|
|
|
alert_message = textwrap.dedent(alert_message)
|
|
@@ -376,9 +377,10 @@ class DialogueManager:
|
|
|
:return:
|
|
|
"""
|
|
|
if '<人工介入>' in llm_response:
|
|
|
- logger.warning(f'staff[{self.staff_id}], user[{self.user_id}]: human intervention triggered')
|
|
|
+ reason = llm_response.replace('<人工介入>', '')
|
|
|
+ logger.warning(f'staff[{self.staff_id}], user[{self.user_id}]: human intervention triggered, reason: {reason}')
|
|
|
self.do_state_change(DialogueState.HUMAN_INTERVENTION)
|
|
|
- self._send_human_intervention_alert()
|
|
|
+ self._send_human_intervention_alert(reason)
|
|
|
return None
|
|
|
|
|
|
"""根据当前状态处理LLM响应,如果处于人工介入状态则返回None"""
|