diff --git a/src/chat/utils/chat_message_builder.py b/src/chat/utils/chat_message_builder.py index 8915e810..22d9e22d 100644 --- a/src/chat/utils/chat_message_builder.py +++ b/src/chat/utils/chat_message_builder.py @@ -983,8 +983,8 @@ async def build_bare_messages(messages: List[DatabaseMessages]) -> str: output_lines = [] for msg in messages: - # 获取纯文本内容 - content = msg.processed_plain_text or "" + # 获取纯文本内容,优先使用processed_plain_text,回退到display_message + content = msg.processed_plain_text or getattr(msg, "display_message", None) or "" # 处理图片ID pic_pattern = r"\[picid:[^\]]+\]" diff --git a/src/express/expression_learner.py b/src/express/expression_learner.py index 4d2894fb..ff7f8874 100644 --- a/src/express/expression_learner.py +++ b/src/express/expression_learner.py @@ -438,7 +438,12 @@ class ExpressionLearner: continue prev_original_idx = bare_lines[pos - 1][0] - up_content = filter_message_content(random_msg[prev_original_idx].processed_plain_text or "") + source_content = ( + random_msg[prev_original_idx].processed_plain_text + or getattr(random_msg[prev_original_idx], "display_message", None) + or "" + ) + up_content = filter_message_content(source_content) if not up_content: # 上一句为空,跳过该表达 continue @@ -493,8 +498,8 @@ class ExpressionLearner: bare_lines: List[Tuple[int, str]] = [] for idx, msg in enumerate(messages): - content = msg.processed_plain_text or "" - content = filter_message_content(content) + raw_content = msg.processed_plain_text or getattr(msg, "display_message", None) or "" + content = filter_message_content(raw_content) # 即使content为空也要记录,防止错位 bare_lines.append((idx, content))