跳到主要内容

其它 OpenAI 兼容服务提供方

许多公开模型服务提供方都暴露 OpenAI 兼容 API。当它们接受 OpenAI Chat Completions 请求时,AISIX 可以使用 openai 适配器连接这些服务提供方。

如果服务提供方已列在服务提供方上游中,请使用对应的专用指南。下面的配置适用于其它公开 OpenAI 兼容服务提供方,并以 Fireworks AI 作为经过验证的示例。

对于私有或自托管 OpenAI 兼容服务器,请改用自定义端点

前提条件

以下示例使用自托管 AISIX 网关。配置上游前,请准备以下内容:

  • 一个运行中的 AISIX 网关,Admin API 和代理 API 可用。命令使用快速开始监听地址,如有需要请替换。
  • 网关 config.yaml 中的 Admin Key。
  • 公开 OpenAI 兼容服务提供方的 API Key。

配置公开服务提供方上游

为服务提供方支持的 Chat Completions 路由创建服务提供方密钥、模型别名和调用方 API Key。示例使用 Fireworks AI、API 根地址 https://api.fireworks.ai/inference/v1 和模型 ID accounts/fireworks/models/deepseek-v3p1。对于其它兼容服务提供方,请将这些值替换为该服务提供方 API 参考中的值。

创建服务提供方密钥

为 OpenAI 兼容厂商端点创建服务提供方密钥:

# 请替换为实际值
export AISIX_ADMIN_KEY="YOUR_ADMIN_KEY"
export PROVIDER_API_KEY="YOUR_PROVIDER_API_KEY"

curl -sS -X POST "http://127.0.0.1:3001/admin/v1/provider_keys" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
--data-binary @- <<EOF
{
"display_name": "fireworks-prod",
"provider": "fireworks",
"adapter": "openai",
"secret": "${PROVIDER_API_KEY}",
"api_base": "https://api.fireworks.ai/inference/v1"
}
EOF

provider 标识公开厂商。

adapter 选择 OpenAI 兼容上游格式。

secret 存储厂商 API Key。

api_base 指向厂商的 OpenAI 兼容 base URL。

复制返回的服务提供方密钥 ID。AISIX 会在 api_base 后追加端点路径,因此当厂商要求 /v1/openai/v1 等专属前缀时,需要把它包含在 api_base 中。不要依赖 AISIX 猜测公开厂商 URL。

服务提供方密钥 secret 的处理方式遵循服务提供方凭证中说明的凭证处理行为。

创建模型

将面向调用方的别名映射到厂商模型 ID:

# 请替换为实际值
export PROVIDER_KEY_ID="YOUR_PROVIDER_KEY_ID"

curl -sS -X POST "http://127.0.0.1:3001/admin/v1/models" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
--data-binary @- <<EOF
{
"display_name": "fireworks-deepseek-prod",
"provider": "fireworks",
"model_name": "accounts/fireworks/models/deepseek-v3p1",
"provider_key_id": "${PROVIDER_KEY_ID}"
}
EOF

display_name 是调用方在 model 中发送的别名。

model_name 是厂商期望的模型 ID。

provider_key_id 将模型别名关联到你创建的服务提供方密钥。

只有当预算核算或用量报告需要计算该别名的 Token 成本时,才添加 cost 块。参见模型别名

创建调用方 API Key

选择应用发送给 AISIX 的明文调用方 API Key,然后为 Admin 资源计算哈希:

# 请替换为实际值
export AISIX_API_KEY="YOUR_CALLER_API_KEY"

CALLER_KEY_HASH=$(printf '%s' "${AISIX_API_KEY}" | shasum -a 256 | awk '{print $1}')

创建可访问厂商模型别名的 API Key 资源:

curl -sS -X POST "http://127.0.0.1:3001/admin/v1/apikeys" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
--data-binary @- <<EOF
{
"key_hash": "${CALLER_KEY_HASH}",
"allowed_models": ["fireworks-deepseek-prod"]
}
EOF

allowed_models 必须与已创建的模型别名匹配。

验证服务提供方连接

通过 AISIX 代理发送 Chat Completions 请求:

curl -sS -X POST "http://127.0.0.1:3000/v1/chat/completions" \
-H "Authorization: Bearer ${AISIX_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "fireworks-deepseek-prod",
"messages": [
{
"role": "user",
"content": "Say hello from Fireworks AI."
}
]
}'

响应应为 OpenAI 兼容 Chat Completions 响应,并回显面向调用方的别名。如果厂商提供日志、指标、请求 ID 或用量记录,请用它们确认请求已到达预期上游账号和模型。

如果网关返回上游认证错误,请检查服务提供方密钥的 secret。如果返回上游路由错误,请检查 api_basemodel_name 中的厂商模型 ID。

支持服务提供方专用行为

服务提供方必须接受 OpenAI Chat Completions 请求。使用不同请求格式的服务提供方需要原生适配器协议族。其他采用 OpenAI 请求格式的路由只有在服务提供方实现对应上游接口时才能使用,详见服务提供方兼容性

AISIX 会保留 reasoning_content,并将 reasoning 标准化为该规范字段。如果厂商从不同的 delta 路径输出推理内容,请在服务提供方密钥上使用 response.reasoning_field 覆盖项

下一步

你现在已将 AISIX 连接到一个公开的 OpenAI 兼容服务提供方。接下来可继续阅读: