参数
关于所有插件可用的配置选项,请参阅插件通用配置。
fallback_strategy
string or array
vaild vaule:
string:
instance_health_and_rate_limiting,http_429, orhttp_5xx
array: Any combination ofrate_limiting,http_429, andhttp_5xx回退策略。选项
instance_health_and_rate_limiting是为向后兼容保留的,功能上与rate_limiting相同。当设置为
rate_limiting或instance_health_and_rate_limiting时,如果当前实例的配额已用完,请求将转发到下一个实例(无论优先级如何)。当设置为http_429时,如果某个实例返回状态码 429,则请求会与其他实例重试。当设置为http_5xx时,如果某个实例返回 5xx 状态码,则请求会与其他实例重试。如果所有实例都失败,插件将返回最后一个错误响应码。当未设置时,如果高优先级实例的令牌用完,插件不会将请求转发到低优先级实例。
balancer
object
负载均衡配置。
algorithm
string
default:
roundrobinvaild vaule:
roundrobin或chash负载均衡算法。设置为
roundrobin时,使用加权轮询算法。设置为chash时,使用一致性哈希算法。key
string
当
type为chash时使用。当hash_on设置为header或cookie时,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-compatibleLLM 服务提供商。
当设置为
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_id和region。或者,您也可以配置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:
0vaild vaule:
大于等于 0
负载均衡中 LLM 实例的权重。
auth
object
required
认证配置。
header
object
认证请求头。
header和query至少需配置其中之一。您可以配置额外的自定义请求头,这些请求头将被转发到上游 LLM 服务。query
object
认证查询参数。
header和query至少需配置其中之一。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_tokens、temperature、top_p和stream。有关更多可用选项,请参阅您的 LLM 提供商的 API 文档。model
string
LLM 模型的名称,例如
gpt-4或gpt-3.5。有关更多可用模型,请参阅您的 LLM 提供商的 API 文档。
provider_conf
object
特定于提供商的配置。当
provider为vertex-ai时,需要配置provider_conf或override之一。在 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:
httpvaild vaule:
http、https或tcp健康检查连接类型。
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:
2vaild 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:
5vaild vaule:
1 到 254(包含)
定义不健康节点所需的 HTTP 失败次数。
timeout
integer
default:
3vaild vaule:
1 到 254(包含)
定义不健康节点所需的探测超时次数。
logging
object
日志记录配置。
summaries
boolean
default:
false如果为 true,则记录请求的 LLM 模型、持续时间、请求和响应令牌数。
payloads
boolean
default:
false如果为 true,则记录请求和响应的负载。
timeout
integer
default:
30000vaild vaule:
大于等于 1
请求 LLM 服务时的超时时间,单位为毫秒。
keepalive
boolean
default:
true如果为 true,则在请求 LLM 服务时保持连接活跃。
keepalive_timeout
integer
default:
60000vaild vaule:
大于等于 1000
请求 LLM 服务时的超时时间,单位为毫秒。
keepalive_pool
integer
default:
30与 LLM 服务连接时的 Keepalive 连接池大小。
ssl_verify
boolean
default:
true如果为 true,则验证 LLM 服务的证书。