Route(路由)
- id: 路由的唯一标识,多个路由不可重复,在产出相关日志时会带上该 id 作为 route_id
- name:路由名称,无实际作用,但建议将用户配置的路由名称(如有)作为 name 传递,以供排查问题时使用
- prefix:路由前缀,必须以 / 开头,后续内容只可以包含字母和数字,多个路由不可重复
- tenant_id:归属租户 ID。结合 Redis 动态配置中的
tenant/<tenant-id>字段,可为该路由应用对应租户的限额策略;为空时表示未绑定租户。当设置该字段时,tenants列表中必须存在同名租户,否则配置会被判定为无效。 - upstream:配置上游服务地址
- auth:配置访问该路由时需要提供的认证信息
- passthrough_auth_token:控制是否透传请求中的 Token(Authorization 头)到上游。设置为
true时,会将请求的 Authorization 头原样传递给上游,不做任何修改;设置为false(默认)时,仅当未配置 upstream.token 时保留原始 Authorization 头,否则使用 upstream.token。(注意:不能同时配置 auth 和 passthrough_auth_token=true) - capabilities:配置该路由所启用的能力
- allow_unknown_routes:(已弃用)请使用
capabilities配置中的forward-unknown能力代替 - labels:自定义标签,使用
google.protobuf.Struct格式(key 必须为 string、value 支持任意的 JSON 兼容数据结构)。标签会在日志输出时原样携带,便于为路由附加业务侧需要持久化存储的标签。【标签总数上限为 10 个】 - plugins:配置该路由的特定插件配置
Capabilities
Capabilities 用于控制路由所支持的特定能力。
| 路由 | Capability | 描述 |
|---|---|---|
/v1/models | openai-models | 获取支持的模型列表 |
/v1/chat/completions | openai-chat | 支持 chat 能力(Open AI 规范) |
/v1/embeddings | openai-embeddings | 支持 embeddings 能力(OpenAI 规范) |
| 任意未知路由 | forward-unknown | 原样向上转发 |
对于未启用的能力,如果开启了 forward-unknown 能力,则会原样向上转发,否则会直接返回 404 错误。
如果未指定 capabilities 字段,则默认启用 openai-models 和 openai-chat 能力。要启用 Embeddings,请显式添加 openai-embeddings。
Plugins
Plugins 用于提供路由级别的插件配置覆盖
Guard
指定路由的请求和响应的检测规则。可选 detect_chat_request 检测 Chat 请求、 detect_chat_response 检测 Chat 响应;不指定代表不开启对应的检测。
检测配置类型为 GuardPluginConfig.DetectConfig,由 mode 与 context 组成
mode:检测模式,可选 disabled 关闭检测、block 当检测到不安全内容时,阻断请求或 log_only 仅记录日志。
context:检测上下文,将透明传递给检测服务。
目前支持检测:
detect_chat_request: /v1/chat/completions 的请求detect_chat_response: /v1/chat/completions 的响应detect_embeddings_request: /v1/embeddings 的请求
Inbound Rate Limit
控制入口限速插件(inboundratelimitplugin,插件 ID:inbound-ratelimit)在响应中返回限速信息的策略:
headers_mode:取值为ALWAYS/ON_LIMIT/NEVER,分别表示始终返回限速头、仅在返回 429 时返回、或完全不返回。默认值可在静态配置中通过rate-limit.headers_mode指定,未设置时默认为ON_LIMIT。
插件具体行为及返回头部请参阅 入口限速。