| 12345678910111213141516171819202122232425 |
- package service
- import "context"
- // UserRPMCache 用户/分组级 RPM 计数器接口。
- //
- // 与账号级 RPMCache 的区别:
- // - RPMCache —— 按外部 AI provider 账号聚合(key: rpm:{accountID}:{min})。
- // - UserRPMCache —— 按用户或 (用户, 分组) 聚合,杜绝"同一用户创建多个 API Key 绕过 RPM"的路径。
- // key 形如 rpm:ug:{userID}:{groupID}:{min} 或 rpm:u:{userID}:{min}。
- type UserRPMCache interface {
- // IncrementUserGroupRPM 原子递增 (user, group) 级分钟计数并返回最新值。
- // 用于分组 rpm_limit 与 user-group rpm_override 两种命中分支。
- IncrementUserGroupRPM(ctx context.Context, userID, groupID int64) (count int, err error)
- // IncrementUserRPM 原子递增用户级分钟计数并返回最新值。
- // 用于用户全局 rpm_limit 兜底分支(分组未设且无 override 时)。
- IncrementUserRPM(ctx context.Context, userID int64) (count int, err error)
- // GetUserGroupRPM 获取 (user, group) 当前分钟已用 RPM(只读,不递增)。
- GetUserGroupRPM(ctx context.Context, userID, groupID int64) (count int, err error)
- // GetUserRPM 获取用户当前分钟已用 RPM(只读,不递增)。
- GetUserRPM(ctx context.Context, userID int64) (count int, err error)
- }
|