跳到主要内容
版本:3.10.x

使用令牌限流控制 AI 成本

本文介绍如何使用 ai-rate-limiting 插件为大模型流量配置基于令牌的限流策略。相比只按请求数限流,令牌限流更适合大模型计费和资源治理场景。

为什么需要令牌限流

传统 API 通常按请求数限流,但大模型调用的成本和资源消耗主要取决于令牌数量。一个请求可能只消耗几十个令牌,也可能因为长上下文和长输出消耗数万令牌。

对比项请求数限流令牌限流
计量单位HTTP 请求数大模型消耗的令牌数
精细度较粗,所有请求权重相同更细,贴近实际资源消耗
成本控制难以识别超长请求与模型计费方式更一致
适用场景传统 API大模型调用

配置令牌限流

以下示例将路由的总令牌预算限制为每小时 10,000 个令牌:

curl "http://127.0.0.1:7080/apisix/admin/routes?gateway_group_id=default" -X PUT \
-H "X-API-KEY: $ADMIN_API_KEY" \
-d '{
"id": "ai-rate-limited",
"service_id": "'"$SERVICE_ID"'",
"paths": ["/ai"],
"plugins": {
"ai-proxy": {
"provider": "openai",
"auth": { "header": { "Authorization": "Bearer '"$OPENAI_API_KEY"'" } },
"options": { "model": "gpt-4o" }
},
"ai-rate-limiting": {
"limit_strategy": "total_tokens",
"limit": 10000,
"time_window": 3600
}
}
}'

常见策略

  • total_tokens:同时统计提示词令牌和生成令牌,适合预算控制。
  • prompt_tokens:限制输入上下文,适合防止超长提示词。
  • completion_tokens:限制输出消耗,适合防止异常长回答。

配额设计建议

  • 按消费者或消费者组设置配额,区分团队、业务线和环境。
  • 对测试环境设置较小配额,避免压测或调试请求误用生产预算。
  • 对高成本模型设置更严格的令牌预算。
  • 将限流命中写入日志和告警系统,便于发现异常调用。