Files
LangBot/plugins/misc/DailyLimitPlugin/readme/README_zh_Hans.md

2.5 KiB

每日对话限制插件

按会话限制 LangBot 每天的对话次数,并内置可视化管理页面,可查看、配置和重置各会话的限制——可用于生产环境。

功能

  • 按会话的每日限制——每个私聊 / 群聊独立计数
  • 管理页面(位于 LangBot 后台),可以:
    • 查看所有被追踪的会话,含今日用量与进度条
    • 设置新会话的默认上限
    • 为单个会话单独设置上限
    • 手动重置单个会话计数,或一键全部重置
    • 停止追踪(移除)某个会话
    • 修改超限提示语、静默模式、重置时区与重置时间点——无需重启
  • 静默模式——超限消息直接丢弃,不回复
  • 时区感知重置——可配置每日重置的 UTC 偏移与时间点
  • 持久化——所有状态存储在插件存储中,重启后依然保留

组件

路径 类型 作用
main.py Plugin 共享状态、计数/限制/重置逻辑、持久化
components/event_listener/ EventListener 对每次对话计数,达到上限时拦截
components/pages/manage/ Page 管理界面(会话、默认值、手动重置)

配置项

以下为初始默认值;所有项均可在管理页面中实时修改。

选项 类型 默认值 说明
daily_limit integer 50 每个会话每天的默认对话次数上限。0 表示不限制。
limit_message string 您今天的对话次数已达上限,请明天再来吧~ 超出限制时显示的提示语。
reset_timezone_offset integer 8 每日重置的 UTC 偏移小时数(如东八区为 8,东九区为 9)。
reset_hour integer 0 每天重置计数器的时间点(按配置的时区)。
silent_mode boolean false 开启后超限消息将被静默丢弃。

工作原理

一个会话即 {类型}:{ID}——某个具体的私聊或群聊。监听器挂接 PersonNormalMessageReceived 与 GroupNormalMessageReceived,对每条消息检查该会话计数是否 达到其有效上限(会话单独设置的值,或全局默认值)。达到上限时,根据配置回复提示语或静默丢弃 (静默模式),并阻止默认的 LLM 流程。

计数器在配置时区的配置时间点滚动重置。管理页面通过插件的 handle_api 读写同一份内存 + 持久化 状态,因此修改会立即生效。