流量控制
请求链路打通后,流量控制用于决定谁可以使用这条链路,以及它在真实应用流量下如何运行。流量控制将调用方绑定到访问规则,保护共享模型容量,执行支出和内容策略,并缓存可复用的工作结果。
对于模型流量,先使用调用方 API Key,为每个应用分配受策略管理的身份和模型访问权限。已经使用身份提供方的应用可以提交 JWT,由 AISIX 将其解析为其中一个调用方 API Key。
有些控制会在 AISIX 调用服务提供方之前执行,另一些会在服务提供方返回响应之后执行。请求链路如下:
请求侧控制可以在 AISIX 调用服务提供方之前停止请求。限流、AISIX Cloud 预算和输入安全护栏会共同决定请求是否允许继续;缓存查找命中时可直接返回已存响应,未命中时 AISIX 才会调用服务提供方。
服务提供方返回后,输出安全护栏可以在 AISIX 将响应返回给调用方之前检查响应内容。
选择控制措施
先建立调用方身份,再添加工作负载需要的控制措施。
建立调用方身份与访问权限
调用方 API Key 用于认证应用,并定义它们可以使用的模型、MCP 工具、A2A Agent 和透传路由。调用方 API Key 也承载调用方专属的限流设置,并作为策略匹配和用量归属的主体。
JWT 认证允许应用提交来自 OIDC 身份提供方的短期 Token,而不必使用长期调用方密钥。AISIX 验证该 Token 并将其解析为调用方 API Key,因此该密钥的访问权限和流量控制仍然适用。如果希望根据组、部门或其他已验证声明选择共享策略密钥,而不必为每个身份维护直接主体绑定,请使用 JWT 声明映射。
如果内部上游必须依据最终用户而不是网关的身份进行授权,可以在认证后向其转发调用方自身的请求头。默认不会转发任何调用方凭证,且绝不能将调用方凭证发送给公共模型服务提供方。
保护容量与控制支出
| 目标 | 控制措施 | 行为 |
|---|---|---|
| 限制单个密钥或模型的请求量、Token 用量或并发工作量 | API Key 和模型限流 | 请求数和并发限制在调用服务提供方之前执行。Token 用量在响应报告后结算。 |
| 按团队、成员、API Key、模型、模型名称或服务提供方应用条件配额 | 限流策略 | 每个匹配的策略都会与直接配置在 API Key 和模型上的限制共同生效。 |
| 对组织各级作用域和应用身份的 AI 支出设置上限 | 预算 | AISIX Cloud 在调用服务提供方之前,评估匹配的组织、环境、调用方 API Key、模型服务提供方密钥、团队和成员预算。 |
执行内容 策略
安全护栏可以检测、阻断或脱敏敏感及不安全内容。输入安全护栏在请求服务提供方之前执行,输出安全护栏检查返回内容,挂载决定每个安全护栏覆盖哪些流量。
复用服务提供方的工作结果
根据需要复用的内容选择缓存:
| 目标 | 控制措施 | 行为 |
|---|---|---|
| 为相同的 Chat Completions 请求复用符合条件的响应 | 响应缓存 | AISIX 在网关侧精确命中缓存后直接返回响应,无需联系服务提供方。 |
| 为语义相似的提示词复用符合条件的响应 | 语义缓存 | 通过嵌入比较,将响应缓存从精确请求匹配扩展到语义匹配。 |
| 让 Anthropic 复用重复的提示词前缀 | Anthropic 提示词缓存 | AISIX 为符合条件的直连 Claude 请求添加服务提供方缓存标记;Anthropic 仍会生成每个响应。 |
多个控制措施可以在同一个请求上组合使用。例如,Chat Completions 请求可以先认证调用方、解析模型、评估输入安全护栏,并在配置预算时检查 AISIX Cloud 预算。随后 AISIX 可以预留限流容量并查找缓存响应。请独立配置各项控制措施,再使用应用实际使用的调用方 API Key 和模型别名验证组合后的链路。