额度控制与计费机制
为了防止群友滥用高昂的闭源大模型,Yunzai-LLM-Plugin 打造了一套高精度的多维计费与滚动额度控制系统。
计费维度与滚动窗口
插件不仅按调用次数计算,而是根据各大模型实际消耗的 Token 数量与单价换算成美元(USD)进行精确扣费:
- 输入 Token (Input Tokens)
- 输出 Token (Output Tokens)
- 缓存读取命中 (Cache Read Tokens):享受大幅折扣
- 缓存写入存储 (Cache Creation Tokens)
- 深度思考与推理 (Reasoning Tokens)
- 联网搜索调用费
两大时间窗口
- 5 小时滚动窗口 (
5h):防止短时间内高频轰炸或刷量,随着时间推移额度自动逐步释放。 - 7 天滚动窗口 (
week):控制用户与群聊在最近 7 天内的总消费上限,防止账单意外透支。
三重受控范围
user(单人限制):限制每个独立用户在该模型上的消费上限。group(单群限制):限制特定群聊内部所有成员在该模型上的消费总和。global(全局限制):整个机器人实例在此模型上的总体预算保护。
价格表与动态同步
- 自动抓取价格:插件每 24 小时(
pricing.refreshHours)从 LiteLLM / OpenRouter 价格表 拉取每百万 Token 价格,自动计算每次对话的实际美元花费。 - 原生计费直传:接口返回实际费用时(如 OpenRouter),插件直接使用该费用。
- 自定义手动覆盖:可在
models[].pricing中为任意模型手动指定价格(输入/输出/缓存每 1M token 价格),或用pricingId指定价格表中的模型名。
额度超限与备用切换
当某个用户或群聊触及额度上限时:
- 备用模型切换:若配置了
fallbackModels,系统会自动切换至备用模型继续服务。 - 用尽提示与冷却:若所有可用模型额度均已耗尽,机器人会给出用量提示,同一个人在
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