兼容 OpenAI 的公开服务提供方上游
本指南将说明如何把 AISIX AI 网关连接到公开的 OpenAI 兼容模型厂商,例如 DeepSeek、Groq、Mistral、Together.ai、Fireworks 或 Perplexity。
当应用需要继续使用 OpenAI 兼容 API 调用 AISIX,而厂商凭证、上游主机和模型映射由 AISIX 处理时,可以使用该配置。
对于私有或自托管 OpenAI 兼容服务器,请改用自定义端点。
准备工作
请先准备以下内容:
- 一个 Admin API 位于
:3001、代理 API 位于:3000的网关。 - 网关
config.yaml中的 Admin Key。 - 来自厂商 API 参考的厂商 API Key、模型 ID 和 OpenAI 兼容 base URL。以下示例使用 DeepSeek 和
https://api.deepseek.com。
配置公开服务提供方上游
为厂商上游路由创建服务提供方密钥、模型别名和调用方 API Key。示例使用 DeepSeek;替换厂商标签、base URL、凭证和模型 ID 后,同样结构也适用于其它 OpenAI 兼容厂商。
创建服务提供方密钥
为 OpenAI 兼容厂商端点创建服务提供方密钥:
export AISIX_ADMIN_KEY="admin-local-only-change-me"
export VENDOR_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" \
-d '{
"display_name": "deepseek-prod",
"provider": "deepseek",
"adapter": "openai",
"secret": "'"${VENDOR_API_KEY}"'",
"api_base": "https://api.deepseek.com"
}'
❶ 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" \
-d '{
"display_name": "deepseek-flash-prod",
"provider": "deepseek",
"model_name": "deepseek-v4-flash",
"provider_key_id": "'"${PROVIDER_KEY_ID}"'"
}'
❶ display_name 是调用方在 model 中发送的别名。
❷ model_name 是厂商期望的模型 ID。
❸ provider_key_id 将模型别名关联到你创建的服务提供方密钥。
只有当预算核算或用量报告需要计算该别名的 token 成本时,才添加 cost 块。参见模型别名。
创建调用方 API Key
选择应用发送给 AISIX 的明文调用方 API Key,然后为 Admin 资源计算哈希:
export AISIX_API_KEY="sk-deepseek-caller"
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" \
-d '{
"key_hash": "'"${CALLER_KEY_HASH}"'",
"allowed_models": ["deepseek-flash-prod"]
}'
❶ 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": "deepseek-flash-prod",
"messages": [
{"role": "user", "content": "Say hello from DeepSeek."}
]
}'
响应应为 OpenAI 兼容 chat completions 响应,并回显面向调用方的别名。如果厂商提供日志、指标、请求 ID 或用量记录,请用它们确认请求已到达预期上游账号和模型。
如果网关返回上游认证错误,请检查服务提供方密钥的 secret。如果返回上游路由错误,请检查 api_base 和 model_name 中的厂商模型 ID。
行为与限制
本指南适用于接受 OpenAI chat completions 请求的厂商。使用不同请求格式的厂商需要原生适配器。参见适配器协议族