跳到主要内容

Route(路由)

  • id: 路由的唯一标识,多个路由不可重复,在产出相关日志时会带上该 id 作为 route_id
  • name:路由名称,无实际作用,但建议将用户配置的路由名称(如有)作为 name 传递,以供排查问题时使用
  • prefix:路由前缀,必须以 / 开头,后续内容只可以包含字母和数字,多个路由不可重复
  • upstream:配置上游服务地址
  • auth:配置访问该路由时需要提供的认证信息
  • capabilities:配置该路由所启用的能力
  • allow_unknown_routes:(已弃用)请使用 capabilities 配置中的 forward-unknown 能力代替
  • labels:自定义标签,使用 google.protobuf.Struct 格式(key 必须为 string、value 支持任意的 JSON 兼容数据结构)。标签会在日志输出时原样携带,便于为路由附加业务侧需要持久化存储的标签。【标签总数上限为 10 个】
  • plugins:配置该路由的特定插件配置

Capabilities

Capabilities 用于控制路由所支持的特定能力。

路由Capability描述
/v1/modelsopenai-models获取支持的模型列表
/v1/chat/completionsopenai-chat支持 chat 能力(Open AI 规范)
/v1/embeddingsopenai-embeddings支持 embeddings 能力(OpenAI 规范)
任意未知路由forward-unknown原样向上转发

对于未启用的能力,如果开启了 forward-unknown 能力,则会原样向上转发,否则会直接返回 404 错误。

如果未指定 capabilities 字段,则默认启用 openai-modelsopenai-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 的请求
备注

v1.3.0 起,request_check_mode/request_check_contextresponse_check_mode/response_check_context 已弃用,请改用:

  • detect_chat_request.mode ← 原 request_check_mode
  • detect_chat_request.context ← 原 request_check_context
  • detect_chat_response.mode ← 原 response_check_mode
  • detect_chat_response.context ← 原 response_check_context