其它 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_base 和 model_name 中的厂商模型 ID。
支持服务提供方专用行为
服务提供方必须接受 OpenAI Chat Completions 请求。使用不同请求格式的服务提供方需要原生适配器协议族。其他采用 OpenAI 请求格式的路由只有在服务提供方实现对应上游接口时才能使用,详见服务提供方兼容性。
AISIX 会保留 reasoning_content,并将 reasoning 标准化为该规范字段。如果厂商从不同的 delta 路径输出推理内容,请在服务提供方密钥上使用 response.reasoning_field 覆盖项。
下一步
你现在已将 AISIX 连接到一个公开的 OpenAI 兼容服务提供方。接下来可继续阅读: