diff --git a/src/chat/planner_actions/plan_filter.py b/src/chat/planner_actions/plan_filter.py index 00097870c..32ad9586b 100644 --- a/src/chat/planner_actions/plan_filter.py +++ b/src/chat/planner_actions/plan_filter.py @@ -233,11 +233,13 @@ class PlanFilter: if action not in ["no_action", "no_reply", "do_nothing", "proactive_reply"]: if target_message_id := action_json.get("target_message_id"): target_message_dict = self._find_message_by_id(target_message_id, message_id_list) - if target_message_dict is None: - target_message_dict = self._get_latest_message(message_id_list) - if target_message_dict: - from src.common.data_models.database_data_model import DatabaseMessages - target_message_obj = DatabaseMessages(**target_message_dict) + else: + # 如果LLM没有指定target_message_id,我们就默认选择最新的一条消息 + target_message_dict = self._get_latest_message(message_id_list) + + if target_message_dict: + from src.common.data_models.database_data_model import DatabaseMessages + target_message_obj = DatabaseMessages(**target_message_dict) available_action_names = list(plan.available_actions.keys()) if action not in ["no_action", "no_reply", "reply", "do_nothing", "proactive_reply"] and action not in available_action_names: diff --git a/src/chat/utils/chat_message_builder.py b/src/chat/utils/chat_message_builder.py index 38b8839ac..5bdee8cd2 100644 --- a/src/chat/utils/chat_message_builder.py +++ b/src/chat/utils/chat_message_builder.py @@ -35,6 +35,9 @@ def replace_user_references_sync( Returns: str: 处理后的内容字符串 """ + if not content: + return "" + if name_resolver is None: def default_resolver(platform: str, user_id: str) -> str: # 检查是否是机器人自己 @@ -812,8 +815,8 @@ def build_pic_mapping_info(pic_id_mapping: Dict[str, str]) -> str: description = "[图片内容未知]" # 默认描述 try: with get_db_session() as session: - image = session.execute(select(Images).where(Images.image_id == pic_id)).scalar() - if image and image.description: + image = session.execute(select(Images).where(Images.image_id == pic_id)).scalar_one_or_none() + if image and image.description: # type: ignore description = image.description except Exception: # 如果查询失败,保持默认描述