加入限流策略。防止过度消耗资源

This commit is contained in:
liuwei
2025-06-25 17:06:27 +08:00
parent 11661906c4
commit ebcd8d4d55
5 changed files with 10 additions and 0 deletions

View File

@@ -7,6 +7,7 @@ from pathlib import Path
from base.plugin_common.message_plugin_interface import MessagePluginInterface
from base.plugin_common.plugin_interface import PluginStatus
from utils.decorator.plugin_decorators import plugin_stats_decorator
from utils.decorator.rate_limit_decorator import group_feature_rate_limit
from utils.robot_cmd.robot_command import Feature, PermissionStatus, GroupBotManager
from utils.decorator.points_decorator import plugin_points_cost
from wechat_ipad import WechatAPIClient
@@ -105,6 +106,7 @@ class BeautyLegPlugin(MessagePluginInterface):
@plugin_stats_decorator(plugin_name="美腿图片")
@plugin_points_cost(2, "美腿图片消耗积分", FEATURE_KEY)
@group_feature_rate_limit(max_per_minute=1, feature_key=FEATURE_KEY)
async def process_message(self, message: Dict[str, Any]) -> Tuple[bool, Optional[str]]:
"""处理消息"""
content = str(message.get("content", "")).strip()

View File

@@ -12,6 +12,7 @@ from pathlib import Path
from base.plugin_common.message_plugin_interface import MessagePluginInterface
from base.plugin_common.plugin_interface import PluginStatus
from utils.decorator.plugin_decorators import plugin_stats_decorator
from utils.decorator.rate_limit_decorator import group_feature_rate_limit
from utils.markdown_to_image import convert_md_str_to_image
from utils.revoke.message_auto_revoke import MessageAutoRevoke
from utils.robot_cmd.robot_command import Feature, PermissionStatus, GroupBotManager
@@ -135,6 +136,7 @@ class DifyPlugin(MessagePluginInterface):
@plugin_stats_decorator(plugin_name="Dify聊天")
@plugin_points_cost(2, "AI聊天消耗积分", FEATURE_KEY)
@group_feature_rate_limit(max_per_minute=1, feature_key=FEATURE_KEY)
async def process_message(self, message: Dict[str, Any]) -> Tuple[bool, Optional[str]]:
"""处理消息"""
content = str(message.get("content", "")).strip()

View File

@@ -11,6 +11,7 @@ from typing import Dict, Any, List, Optional, Tuple
from base.plugin_common.message_plugin_interface import MessagePluginInterface
from base.plugin_common.plugin_interface import PluginStatus
from utils.decorator.plugin_decorators import plugin_stats_decorator
from utils.decorator.rate_limit_decorator import group_feature_rate_limit
from utils.revoke.message_auto_revoke import MessageAutoRevoke
from utils.robot_cmd.robot_command import Feature, PermissionStatus, GroupBotManager
from utils.decorator.points_decorator import plugin_points_cost, points_reward_decorator
@@ -184,6 +185,7 @@ class GuessSongPlugin(MessagePluginInterface):
return command in self._commands
@plugin_stats_decorator(plugin_name="猜歌名游戏")
@group_feature_rate_limit(max_per_minute=1, feature_key=FEATURE_KEY)
async def process_message(self, message: Dict[str, Any]) -> Tuple[bool, Optional[str]]:
"""处理消息"""
content = str(message.get("content", "")).strip()

View File

@@ -12,6 +12,7 @@ import cv2
from base.plugin_common.message_plugin_interface import MessagePluginInterface
from base.plugin_common.plugin_interface import PluginStatus
from utils.decorator.plugin_decorators import plugin_stats_decorator
from utils.decorator.rate_limit_decorator import group_feature_rate_limit
from utils.robot_cmd.robot_command import Feature, PermissionStatus, GroupBotManager
from utils.decorator.points_decorator import plugin_points_cost
from wechat_ipad import WechatAPIClient
@@ -116,6 +117,7 @@ class VideoPlugin(MessagePluginInterface):
@plugin_stats_decorator(plugin_name="视频插件")
@plugin_points_cost(5, "视频插件消耗积分", FEATURE_KEY)
@group_feature_rate_limit(max_per_minute=3, feature_key=FEATURE_KEY)
async def process_message(self, message: Dict[str, Any]) -> Tuple[bool, Optional[str]]:
"""处理消息"""
content = str(message.get("content", "")).strip()

View File

@@ -14,6 +14,7 @@ from base.plugin_common.message_plugin_interface import MessagePluginInterface
from base.plugin_common.plugin_interface import PluginStatus
from utils.decorator.plugin_decorators import plugin_stats_decorator
from utils.decorator.points_decorator import plugin_points_cost
from utils.decorator.rate_limit_decorator import group_feature_rate_limit
from utils.robot_cmd.robot_command import Feature, PermissionStatus, GroupBotManager
from wechat_ipad import WechatAPIClient
@@ -108,6 +109,7 @@ class VideoManPlugin(MessagePluginInterface):
@plugin_stats_decorator(plugin_name="猛男视频")
@plugin_points_cost(2, "猛男视频消耗积分", FEATURE_KEY)
@group_feature_rate_limit(max_per_minute=3, feature_key=FEATURE_KEY)
async def process_message(self, message: Dict[str, Any]) -> Tuple[bool, Optional[str]]:
"""处理消息"""
content = str(message.get("content", "")).strip()