mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 23:47:41 +08:00
Enhance MoviePilotAgent to handle empty agent messages gracefully by providing a default error response, ensuring better user experience. Refactor message processing to streamline event loop execution.
This commit is contained in:
@@ -221,6 +221,8 @@ class MoviePilotAgent:
|
|||||||
agent_message = await self.callback_handler.get_message()
|
agent_message = await self.callback_handler.get_message()
|
||||||
|
|
||||||
# 发送Agent回复给用户(通过原渠道)
|
# 发送Agent回复给用户(通过原渠道)
|
||||||
|
if agent_message:
|
||||||
|
# 发送回复
|
||||||
await self.send_agent_message(agent_message)
|
await self.send_agent_message(agent_message)
|
||||||
|
|
||||||
# 添加Agent回复到记忆
|
# 添加Agent回复到记忆
|
||||||
@@ -230,6 +232,9 @@ class MoviePilotAgent:
|
|||||||
role="agent",
|
role="agent",
|
||||||
content=agent_message
|
content=agent_message
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
agent_message = "很抱歉,智能体出错了,未能生成回复内容。"
|
||||||
|
await self.send_agent_message(agent_message)
|
||||||
|
|
||||||
return agent_message
|
return agent_message
|
||||||
|
|
||||||
|
|||||||
@@ -948,7 +948,6 @@ class MessageChain(ChainBase):
|
|||||||
session_id = self._get_or_create_session_id(userid)
|
session_id = self._get_or_create_session_id(userid)
|
||||||
|
|
||||||
# 在事件循环中处理
|
# 在事件循环中处理
|
||||||
try:
|
|
||||||
GlobalVar.CURRENT_EVENT_LOOP.run_until_complete(
|
GlobalVar.CURRENT_EVENT_LOOP.run_until_complete(
|
||||||
agent_manager.process_message(
|
agent_manager.process_message(
|
||||||
session_id=session_id,
|
session_id=session_id,
|
||||||
@@ -959,18 +958,6 @@ class MessageChain(ChainBase):
|
|||||||
username=username
|
username=username
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
except RuntimeError:
|
|
||||||
# 如果没有事件循环,创建新的
|
|
||||||
asyncio.run(
|
|
||||||
agent_manager.process_message(
|
|
||||||
session_id=session_id,
|
|
||||||
user_id=str(userid),
|
|
||||||
message=user_message,
|
|
||||||
channel=channel.value if channel else None,
|
|
||||||
source=source,
|
|
||||||
username=username
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"处理AI智能体消息失败: {e}")
|
logger.error(f"处理AI智能体消息失败: {e}")
|
||||||
|
|||||||
Reference in New Issue
Block a user