跳到主要内容

参数

关于所有插件可用的配置选项,请参阅插件通用配置

  • fallback_strategy

    string or array


    vaild vaule:

    string: instance_health_and_rate_limiting, http_429, or http_5xx
    array: Any combination of rate_limiting, http_429, and http_5xx


    回退策略。选项 instance_health_and_rate_limiting 是为向后兼容保留的,功能上与 rate_limiting 相同。

    当设置为 rate_limitinginstance_health_and_rate_limiting 时,如果当前实例的配额已用完,请求将转发到下一个实例(无论优先级如何)。当设置为 http_429 时,如果某个实例返回状态码 429,则请求会与其他实例重试。当设置为 http_5xx 时,如果某个实例返回 5xx 状态码,则请求会与其他实例重试。如果所有实例都失败,插件将返回最后一个错误响应码。

    当未设置时,如果高优先级实例的令牌用完,插件不会将请求转发到低优先级实例。

  • balancer

    object


    负载均衡配置。

    • algorithm

      string


      default: roundrobin


      vaild vaule:

      roundrobinchash


      负载均衡算法。设置为 roundrobin 时,使用加权轮询算法。设置为 chash 时,使用一致性哈希算法。

    • hash_on

      string


      vaild vaule:

      varsheaderscookieconsumervars_combinations


      typechash 时使用。支持基于内置变量、请求头、Cookie、消费者或内置变量的组合进行哈希。

    • key

      string


      typechash 时使用。当 hash_on 设置为 headercookie 时,key 为必填。当 hash_on 设置为 consumer 时,key 不是必需的,因为消费者名称将自动用作键。

  • instances

    array[object]


    required


    LLM 实例配置。

    • name

      string


      required


      LLM 服务实例的名称。

    • provider

      string


      required


      vaild vaule:

      openai, deepseek, azure-openai, aimlapi, gemini, vertex-ai, anthropic, openrouter, openai-compatible


      LLM 服务提供商。

      当设置为 openai 时,插件会将请求代理到 https://api.openai.com/chat/completions

      当设置为 deepseek 时,插件会将请求代理到 https://api.deepseek.com/chat/completions

      当设置为 gemini(自 APISIX 3.15.0 和企业版 3.9.2 起可用)时,插件会将请求代理到 https://generativelanguage.googleapis.com/v1beta/openai/chat/completions。如果要将请求代理到嵌入模型,应在 override 中配置嵌入模型端点。

      当设置为 vertex-ai(自 APISIX 3.15.0 和企业版 3.9.2 起可用)时,插件会将请求代理到 Google Cloud Vertex AI。对于聊天补全,插件会将请求代理到 https://{region}-aiplatform.googleapis.com/v1beta1/projects/{project_id}/locations/{region}/endpoints/openapi/chat/completions。对于嵌入,插件会将请求代理到 https://{region}-aiplatform.googleapis.com/v1/projects/{project_id}/locations/{region}/publishers/google/models/{model}:predict。这需要在 provider_conf 中配置 project_idregion。或者,您也可以配置 override 以使用自定义端点。

      当设置为 anthropic(自 APISIX 3.15.0 和企业版 3.9.2 起可用)时,插件会将请求代理到 https://api.anthropic.com/v1/chat/completions

      当设置为 openrouter(自 APISIX 3.15.0 和企业版 3.9.2 起可用)时,插件会将请求代理到 https://openrouter.ai/api/v1/chat/completions

      当设置为 aimlapi(自 APISIX 3.14.0 和企业版 3.8.17 起可用)时,插件使用 OpenAI 兼容驱动并将请求代理到 https://api.aimlapi.com/v1/chat/completions

      当设置为 openai-compatible 时,插件会将请求代理到在 override 中配置的自定义端点。

      当设置为 azure-openai 时,插件也会将请求代理到在 override 中配置的自定义端点,并额外从用户请求中移除 model 参数。

    • priority

      integer


      default: 0


      负载均衡中 LLM 实例的优先级。priority 优先于 weight

    • weight

      string


      required


      default: 0


      vaild vaule:

      大于等于 0


      负载均衡中 LLM 实例的权重。

    • auth

      object


      required


      认证配置。

      • header

        object


        认证请求头。headerquery 至少需配置其中之一。您可以配置额外的自定义请求头,这些请求头将被转发到上游 LLM 服务。

      • query

        object


        认证查询参数。headerquery 至少需配置其中之一。

      • gcp

        object


        Vertex AI 的 GCP 服务账号认证。在 API7 企业版 3.9.2 中可用,在 APISIX 中不可用。

        • service_account_json

          string


          用于认证的 GCP 服务账号 JSON 内容。可以通过此参数配置,或通过设置 GCP_SERVICE_ACCOUNT 环境变量配置。

        • max_ttl

          integer


          GCP 访问令牌缓存的最大 TTL,单位为秒。

        • expire_early_secs

          integer


          default: 60


          访问令牌在其实际过期时间之前提前过期的时间(秒)。这可以防止在活跃请求期间令牌过期的边缘情况。

    • options

      object


      模型配置。

      除了 model,您还可以配置其他参数,这些参数将在请求体中转发到上游 LLM 服务。例如,如果您使用 OpenAI 或 DeepSeek,可以配置其他参数,如 max_tokenstemperaturetop_pstream。有关更多可用选项,请参阅您的 LLM 提供商的 API 文档。

      • model

        string


        LLM 模型的名称,例如 gpt-4gpt-3.5。有关更多可用模型,请参阅您的 LLM 提供商的 API 文档。

    • provider_conf

      object


      特定于提供商的配置。当 providervertex-ai 时,需要配置 provider_confoverride 之一。

      在 API7 企业版 3.9.2 中可用,在 APISIX 中不可用。

      • project_id

        string


        required


        Vertex AI 的 Google Cloud 项目 ID。

      • region

        string


        required


        Vertex AI 的 Google Cloud 区域。

    • override

      object


      覆盖设置。

      • endpoint

        string


        用于替换默认端点的 LLM 提供商端点。如果未配置,插件将使用默认的 OpenAI 端点 https://api.openai.com/v1/chat/completions

    • checks

      object


      健康检查配置。

      请注意,目前 OpenAI 和 DeepSeek 没有提供官方的健康检查端点。您在 openai-compatible 提供商下配置的其他 LLM 服务可能有可用的健康检查端点。

      • active

        object


        required


        主动健康检查配置。

        • type

          string


          default: http


          vaild vaule:

          httphttpstcp


          健康检查连接类型。

        • timeout

          number


          default: 1


          健康检查超时时间,单位为秒。

        • concurrency

          integer


          default: 10


          同时检查的上游节点数量。

        • host

          string


          HTTP 主机。

        • port

          integer


          vaild vaule:

          1 到 65535(包含)


          HTTP 端口。

        • http_path

          string


          default: /


          vaild vaule:

          1 到 65535(包含)


          HTTP 探测请求的路径。

        • https_verify_certificate

          boolean


          default: true


          如果为 true,则验证节点的 TLS 证书。

        • healthy

          object


          健康节点配置。

          • interval

            integer


            default: 1


            检查健康节点的时间间隔,单位为秒。

          • http_statuses

            array[integer]


            default: [200,302]


            vaild vaule:

            状态码在 200 到 599 之间(包含)


            定义健康节点的 HTTP 状态码数组。

          • successes

            integer


            default: 2


            vaild vaule:

            1 到 254(包含)


            定义健康节点所需的成功探测次数。

        • unhealthy

          object


          不健康节点配置。

          • interval

            integer


            default: 1


            检查不健康节点的时间间隔,单位为秒。

          • http_statuses

            array[integer]


            default: [429,404,500,501,502,503,504,505]


            vaild vaule:

            状态码在 200 到 599 之间(包含)


            定义不健康节点的 HTTP 状态码数组。

          • http_failures

            integer


            default: 5


            vaild vaule:

            1 到 254(包含)


            定义不健康节点所需的 HTTP 失败次数。

          • timeout

            integer


            default: 3


            vaild vaule:

            1 到 254(包含)


            定义不健康节点所需的探测超时次数。

  • logging

    object


    日志记录配置。

    • summaries

      boolean


      default: false


      如果为 true,则记录请求的 LLM 模型、持续时间、请求和响应令牌数。

    • payloads

      boolean


      default: false


      如果为 true,则记录请求和响应的负载。

  • timeout

    integer


    default: 30000


    vaild vaule:

    大于等于 1


    请求 LLM 服务时的超时时间,单位为毫秒。

  • keepalive

    boolean


    default: true


    如果为 true,则在请求 LLM 服务时保持连接活跃。

  • keepalive_timeout

    integer


    default: 60000


    vaild vaule:

    大于等于 1000


    请求 LLM 服务时的超时时间,单位为毫秒。

  • keepalive_pool

    integer


    default: 30


    与 LLM 服务连接时的 Keepalive 连接池大小。

  • ssl_verify

    boolean


    default: true


    如果为 true,则验证 LLM 服务的证书。