feat: 添加转发消息配置,支持图片数量阈值设置
parent
efd98b022f
commit
3ec1499324
|
|
@ -14,6 +14,7 @@ from src.config.config_base import ConfigBase
|
|||
from src.config.official_configs import (
|
||||
ChatConfig,
|
||||
DebugConfig,
|
||||
ForwardConfig,
|
||||
MaiBotServerConfig,
|
||||
NapcatServerConfig,
|
||||
NicknameConfig,
|
||||
|
|
@ -117,6 +118,7 @@ class Config(ConfigBase):
|
|||
maibot_server: MaiBotServerConfig
|
||||
chat: ChatConfig
|
||||
voice: VoiceConfig
|
||||
forward: ForwardConfig
|
||||
debug: DebugConfig
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -77,6 +77,14 @@ class VoiceConfig(ConfigBase):
|
|||
"""是否启用TTS功能"""
|
||||
|
||||
|
||||
@dataclass
|
||||
class ForwardConfig(ConfigBase):
|
||||
"""转发消息相关配置"""
|
||||
|
||||
image_threshold: int = 3
|
||||
"""图片数量阈值:转发消息中图片数量超过此值时,使用占位符代替base64发送,避免麦麦VLM处理卡死"""
|
||||
|
||||
|
||||
@dataclass
|
||||
class DebugConfig(ConfigBase):
|
||||
level: Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] = "INFO"
|
||||
|
|
|
|||
|
|
@ -662,14 +662,17 @@ class MessageHandler:
|
|||
forward_header = Seg(type="text", data="========== 转发消息开始 ==========\n")
|
||||
forward_footer = Seg(type="text", data="========== 转发消息结束 ==========")
|
||||
|
||||
if image_count < 5 and image_count > 0:
|
||||
# 处理图片数量小于5的情况,此时解析图片为base64
|
||||
logger.trace("图片数量小于5,开始解析图片为base64")
|
||||
# 图片阈值:超过此数量使用占位符避免麦麦VLM处理卡死
|
||||
image_threshold = global_config.forward.image_threshold
|
||||
|
||||
if image_count < image_threshold and image_count > 0:
|
||||
# 处理图片数量小于阈值的情况,此时解析图片为base64
|
||||
logger.trace(f"图片数量({image_count})小于{image_threshold},开始解析图片为base64")
|
||||
parsed_message = await self._recursive_parse_image_seg(handled_message, True)
|
||||
return Seg(type="seglist", data=[forward_header, parsed_message, forward_footer])
|
||||
elif image_count > 0:
|
||||
logger.trace("图片数量大于等于5,开始解析图片为占位符")
|
||||
# 处理图片数量大于等于5的情况,此时解析图片为占位符
|
||||
logger.trace(f"图片数量({image_count})大于等于{image_threshold},开始解析图片为占位符")
|
||||
# 处理图片数量大于等于阈值的情况,此时解析图片为占位符
|
||||
parsed_message = await self._recursive_parse_image_seg(handled_message, False)
|
||||
return Seg(type="seglist", data=[forward_header, parsed_message, forward_footer])
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -31,5 +31,8 @@ enable_poke = true # 是否启用戳一戳功能
|
|||
[voice] # 发送语音设置
|
||||
use_tts = false # 是否使用tts语音(请确保你配置了tts并有对应的adapter)
|
||||
|
||||
[forward] # 转发消息处理设置
|
||||
image_threshold = 3 # 图片数量阈值:转发消息中图片数量超过此值时使用占位符(避免麦麦VLM处理卡死)
|
||||
|
||||
[debug]
|
||||
level = "INFO" # 日志等级(DEBUG, INFO, WARNING, ERROR, CRITICAL)
|
||||
|
|
|
|||
Loading…
Reference in New Issue