API-AI-070:用户 AI 消费额度、每日 Token 预算与限流执行 #184

Open
opened 2026-06-10 21:03:51 +08:00 by wangdl · 0 comments
Owner

目标

实现用户级 AI 消费额度控制,防止用户无限制创建 AI Job 或消耗平台模型成本。

需要覆盖

  1. 创建 Job 前检查用户今日 AI Job 数量。
  2. 创建 Job 前检查用户今日 token 预算。
  3. Runtime 调用完成后,根据 ModelInvocationLog 更新用户消耗统计。
  4. 支持 platform_key 和 user_deepseek_key 两种模式。
  5. 支持 maxDailyAiJobs。
  6. 支持 maxDailyTokenBudget。
  7. 支持超限后的拒绝策略。

建议新增模型

UserAiUsageDaily
  id
  userId
  localDate
  apiKeyMode
  jobCount
  inputTokens
  outputTokens
  totalTokens
  costEstimate
  createdAt
  updatedAt

规则

platform_key:消耗用户平台额度,也计入平台总预算。

user_deepseek_key:默认不消耗平台 token 预算,但仍计入 jobCount,用于防滥用。

超限行为

  1. 创建 Job 时超限:直接拒绝。
  2. Runtime 执行中超限:不应发生,除非调用前估算不足;完成后记录 over_budget warning。
  3. 不做自动排队。
  4. 不自动降级到平台 key。

验收标准

  1. 创建 analysis job 前执行额度检查。
  2. 创建 quiz_generation job 前执行额度检查。
  3. 创建 flashcard_generation job 前执行额度检查。
  4. Runtime 提交 invocation log 后更新 UserAiUsageDaily。
  5. 超过 maxDailyAiJobs 时拒绝创建 job。
  6. 超过 maxDailyTokenBudget 时拒绝创建 job。
  7. user_deepseek_key 不计入平台 token 预算。
  8. 提供单元测试。
## 目标 实现用户级 AI 消费额度控制,防止用户无限制创建 AI Job 或消耗平台模型成本。 ## 需要覆盖 1. 创建 Job 前检查用户今日 AI Job 数量。 2. 创建 Job 前检查用户今日 token 预算。 3. Runtime 调用完成后,根据 ModelInvocationLog 更新用户消耗统计。 4. 支持 platform_key 和 user_deepseek_key 两种模式。 5. 支持 maxDailyAiJobs。 6. 支持 maxDailyTokenBudget。 7. 支持超限后的拒绝策略。 ## 建议新增模型 ``` UserAiUsageDaily id userId localDate apiKeyMode jobCount inputTokens outputTokens totalTokens costEstimate createdAt updatedAt ``` ## 规则 platform_key:消耗用户平台额度,也计入平台总预算。 user_deepseek_key:默认不消耗平台 token 预算,但仍计入 jobCount,用于防滥用。 ## 超限行为 1. 创建 Job 时超限:直接拒绝。 2. Runtime 执行中超限:不应发生,除非调用前估算不足;完成后记录 over_budget warning。 3. 不做自动排队。 4. 不自动降级到平台 key。 ## 验收标准 1. 创建 analysis job 前执行额度检查。 2. 创建 quiz_generation job 前执行额度检查。 3. 创建 flashcard_generation job 前执行额度检查。 4. Runtime 提交 invocation log 后更新 UserAiUsageDaily。 5. 超过 maxDailyAiJobs 时拒绝创建 job。 6. 超过 maxDailyTokenBudget 时拒绝创建 job。 7. user_deepseek_key 不计入平台 token 预算。 8. 提供单元测试。
wangdl added this to the M-API-AI-RUNTIME:API AI Runtime 调度与落库 milestone 2026-06-10 21:03:51 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/api-server#184
No description provided.