

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 速率限制指标
<a name="gateway-rate-limits-metrics"></a>

速率限制条目指定了一个或多个指标，用于定义所衡量的内容和执法的时间窗口。每种指标类型对支持的周期和目标类型都有特定的限制。

## 请求速率限制
<a name="gateway-rate-limits-metrics-requests"></a>

请求速率限制控制时间窗口内允许的 API 请求数量。
+  **支持的时段：**`second`，`minute`
+  **支持的目标类型：**所有目标类型
+  **将速率设置为 0：传播完成后**阻止所有匹配的请求（最多 30 秒）

在将请求转发到目标之前，会同步评估请求速率限制。

## 代币速率限制
<a name="gateway-rate-limits-metrics-tokens"></a>

代币速率限制控制时间窗口内消耗的代币数量（输入\+输出）。代币速率限制仅适用于推理目标。
+  **支持的时段：**`minute`
+  **支持的目标类型：仅限**推理目标（连接器目标和具有已知推理路径的提供者目标）
+  **已知的推理路径：**`/v1/chat/completions`，，`/v1/messages``/v1/responses`

代币利率限制使用基于预算的执法：

1. 在转发请求之前，网关会估算输入令牌的使用量。

1. 实际令牌数（输入 \+ 输出）将在响应完成后记录。

1. 由于响应延迟，在执法赶上之前，预算可能会暂时超过配置的费率。

**注意**  
对于直播聊天完成请求 (`/v1/chat/completions`)，网关会自动`"stream_options": {"include_usage": true}`添加到请求正文中。当代币速率限制处于活动状态且该选项尚不存在时，就会发生这种情况。它确保流式响应中提供准确的代币数量，以执行 TPM。

## 连接速率限制
<a name="gateway-rate-limits-metrics-connections"></a>

连接速率限制控制在任何给定时间允许的并发进行中请求的数量。从接受到响应完成，每个请求都会占用一个连接时段。如果新请求到达且活动连接数已达到配置的限制，则该请求将被拒绝，并发出 HTTP 429 响应。
+  **支持的时段：**`second`
+  **支持的目标类型：**所有目标类型（MCP、HTTP、推理）
+  **测量：**最大并发飞行中请求数

## 指标限制
<a name="gateway-rate-limits-metrics-constraints"></a>


| 指标 | 支持的周期 | 支持的目标 | 
| --- | --- | --- | 
|  `requests`  |  `second`, `minute`  | 全部 | 
|  `tokens`  |  `minute`  | 仅限推理目标（连接器、具有已知路径的提供商） | 
|  `connections`  |  `second`  | 全部 | 

## 综合指标
<a name="gateway-rate-limits-metrics-combined"></a>

单个速率限制条目可以指定多个指标。当一个条目有多个指标时，将独立评估所有指标——如果有任何单个指标超过其限制，则请求会受到限制。

以下示例显示了强制执行每分钟请求数和每分钟令牌的速率限制：

```
{
    "rateLimitId": "inference-rps-and-tpm",
    "dimensionKeys": ["targetName", "$.context.jwt.sub"],
    "entries": [
        {
            "dimensions": {
                "targetName": "my-inference-target",
                "$.context.jwt.sub": "*"
            },
            "requests": [{"rate": 300, "period": "minute"}],
            "tokens": [{"rate": 50000, "period": "minute"}]
        }
    ]
}
```

在此示例中，如果每个调用者超过每分钟 300 个请求或每分钟 50,000 个令牌`my-inference-target`，则以先达到的限制为准。