跳到主要内容

额度控制与计费机制

为了防止群友滥用高昂的闭源大模型,Yunzai-LLM-Plugin 打造了一套高精度的多维计费与滚动额度控制系统。


计费维度与滚动窗口​

插件不仅按调用次数计算,而是根据各大模型实际消耗的 Token 数量与单价换算成美元(USD)进行精确扣费:

  • 输入 Token (Input Tokens)
  • 输出 Token (Output Tokens)
  • 缓存读取命中 (Cache Read Tokens):享受大幅折扣
  • 缓存写入存储 (Cache Creation Tokens)
  • 深度思考与推理 (Reasoning Tokens)
  • 联网搜索调用费

两大时间窗口​

  1. 5 小时滚动窗口 (5h):防止短时间内高频轰炸或刷量,随着时间推移额度自动逐步释放。
  2. 7 天滚动窗口 (week):控制用户与群聊在最近 7 天内的总消费上限,防止账单意外透支。

三重受控范围​

  • user(单人限制):限制每个独立用户在该模型上的消费上限。
  • group(单群限制):限制特定群聊内部所有成员在该模型上的消费总和。
  • global(全局限制):整个机器人实例在此模型上的总体预算保护。

价格表与动态同步​

  • 自动抓取价格:插件每 24 小时(pricing.refreshHours)从 LiteLLM / OpenRouter 价格表 拉取每百万 Token 价格,自动计算每次对话的实际美元花费。
  • 原生计费直传:接口返回实际费用时(如 OpenRouter),插件直接使用该费用。
  • 自定义手动覆盖:可在 models[].pricing 中为任意模型手动指定价格(输入/输出/缓存每 1M token 价格),或用 pricingId 指定价格表中的模型名。

额度超限与备用切换​

当某个用户或群聊触及额度上限时:

  1. 备用模型切换:若配置了 fallbackModels,系统会自动切换至备用模型继续服务。
  2. 用尽提示与冷却:若所有可用模型额度均已耗尽,机器人会给出用量提示,同一个人在 quota.notifyCooldown(默认 1800 秒)内只提示一次。

管理员默认不受 user / group 额度限制(quota.exemptAdmins),global 额度仍然生效。


常用管理指令​

#llm额度 # 普通用户查看个人剩余额度与当前消费
#llm额度设置 deepseek-pro user 5h=0.5 week=1.5 # 设置每人每5小时 $0.5,每7天 $1.5
#llm额度设置 deepseek group 5h=5 week=20 # 设置每群每5小时 $5,每7天 $20