fix: address bot identity review regressions

This commit is contained in:
晴猫
2026-03-15 07:51:31 +09:00
parent c8dc9ddb60
commit 4f8ab0abb1
8 changed files with 77 additions and 17 deletions

View File

@@ -42,8 +42,12 @@ class DirectMessageSender:
segments = Seg(type="seglist", data=[Seg(type="text", data=content)])
# 获取麦麦的信息
bot_user_id = get_bot_account(chat_stream.platform)
if not bot_user_id:
logger.warning(f"[私聊][{self.private_name}]平台 {chat_stream.platform} 未配置机器人账号,发送消息时回退到 QQ 账号")
bot_user_id = str(getattr(global_config.bot, "qq_account", "")).strip()
bot_user_info = UserInfo(
user_id=get_bot_account(chat_stream.platform),
user_id=bot_user_id,
user_nickname=global_config.bot.nickname,
)

View File

@@ -1115,6 +1115,10 @@ class DefaultReplyer:
anchor_message: Optional[MaiMessage] = None,
) -> SessionMessage:
"""构建单个发送消息"""
bot_user_id = get_bot_account(self.chat_stream.platform)
if not bot_user_id:
logger.warning(f"平台 {self.chat_stream.platform} 未配置机器人账号,发送消息时回退到 QQ 账号")
bot_user_id = str(getattr(global_config.bot, "qq_account", "")).strip()
maim_message = MessageBase(
message_info=BaseMessageInfo(
@@ -1122,7 +1126,7 @@ class DefaultReplyer:
message_id=message_id,
time=thinking_start_time,
user_info=MaimUserInfo(
user_id=get_bot_account(self.chat_stream.platform),
user_id=bot_user_id,
user_nickname=global_config.bot.nickname,
),
additional_config={},

View File

@@ -955,6 +955,10 @@ class PrivateReplyer:
anchor_message: Optional[MaiMessage] = None,
) -> SessionMessage:
"""构建单个发送消息"""
bot_user_id = get_bot_account(self.chat_stream.platform)
if not bot_user_id:
logger.warning(f"平台 {self.chat_stream.platform} 未配置机器人账号,发送消息时回退到 QQ 账号")
bot_user_id = str(getattr(global_config.bot, "qq_account", "")).strip()
maim_message = MessageBase(
message_info=BaseMessageInfo(
@@ -962,7 +966,7 @@ class PrivateReplyer:
message_id=message_id,
time=thinking_start_time,
user_info=MaimUserInfo(
user_id=get_bot_account(self.chat_stream.platform),
user_id=bot_user_id,
user_nickname=global_config.bot.nickname,
),
group_info=None,

View File

@@ -1,11 +1,12 @@
from datetime import datetime
from typing import TYPE_CHECKING, List, Optional, Tuple
import ast
import json
import os
import random
import re
import time
from datetime import datetime
from typing import Optional, Tuple, List, TYPE_CHECKING
import jieba
@@ -15,12 +16,14 @@ from src.common.logger import get_logger
from src.config.config import global_config, model_config
from src.llm_models.utils_model import LLMRequest
from src.person_info.person_info import Person
from .typo_generator import ChineseTypoGenerator
if TYPE_CHECKING:
from src.common.data_models.info_data_model import TargetPersonInfo
logger = get_logger("chat_utils")
_warned_unconfigured_platforms: set[str] = set()
def is_english_letter(char: str) -> bool:
@@ -122,14 +125,16 @@ def is_bot_self(platform: str, user_id: str) -> bool:
if bot_account:
return user_id_str == bot_account
logger.warning(f"平台 {normalized_platform} 未配置机器人账号,无法判断用户 {user_id_str} 是否为机器人自己")
if normalized_platform not in _warned_unconfigured_platforms:
_warned_unconfigured_platforms.add(normalized_platform)
logger.warning(f"平台 {normalized_platform} 未配置机器人账号,无法判断用户 {user_id_str} 是否为机器人自己")
return False
def is_mentioned_bot_in_message(message: SessionMessage) -> tuple[bool, bool, float]:
"""检查消息是否提到了机器人(统一多平台实现)"""
text = message.processed_plain_text or ""
platform = message.platform or ""
platform = str(message.platform or "").strip().lower()
# 获取当前平台对应的账号
current_account = get_bot_account(platform)