OpenAI
将 AISIX AI 网关连接到 OpenAI,即可让应用通过网关的 OpenAI 兼容 API 调用 GPT 模型。AISIX 在网关侧保存 OpenAI 凭证,通过调用方 API Key 和允许列表控制模型访问,并统一执行限流和用量核算。
当应用应使用调用方 API Key 向 AISIX 认证,而不是直接持有 OpenAI 密钥时,可以使用该配置。OpenAI 是网关的原生上游:它使用 openai 适配器,也是唯一可以省略 api_base 的服务提供方。
前提条件
以下示例使用自托管 AISIX 网关。配置上游前,请准备以下内容:
- 一个可访问 Admin API 和代理 API 的运行中 AISIX 网关。端口请参考快速开始中的监听地址。
- 网关
config.yaml中的 Admin Key。 - 来自 OpenAI 平台 的 OpenAI API Key。
配置 OpenAI 上游
为 OpenAI 后端路由创建服务提供方密钥、模型别名和调用方 API Key。
创建服务提供方密钥
创建用于保存 OpenAI 凭证的服务提供方密钥:
# 请替换为实际值
export AISIX_ADMIN_KEY="YOUR_ADMIN_KEY"
export OPENAI_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": "openai-prod",
"provider": "openai",
"adapter": "openai",
"secret": "'"${OPENAI_API_KEY}"'"
}'
❶ provider 为 openai。这是唯一能让 AISIX 回退到默认 base URL https://api.openai.com/v1 的 provider 值。
❷ adapter 选择 OpenAI wire 格式。
❸ secret 存储 OpenAI API Key,遵循服务提供方凭证中的凭证处理行为。
OpenAI 可以省略 api_base。若要指向兼容的 OpenAI 端点,例如 Azure 前置代理或区域网关,请显式设置 api_base。复制返回的服务提供方密钥 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": "gpt-4o-prod",
"provider": "openai",
"model_name": "gpt-4o",
"provider_key_id": "'"${PROVIDER_KEY_ID}"'"
}'
❶ display_name 是调用方在 model 中发送的别名。
❷ model_name 是 OpenAI 模型 ID,例如 gpt-4o 或 gpt-4o-mini。
❸ provider_key_id 将别名关联到 OpenAI 服务提供方密钥。
创建调用方 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" \
-d '{
"key_hash": "'"${CALLER_KEY_HASH}"'",
"allowed_models": ["gpt-4o-prod"]
}'
allowed_models 必须与你创建的模型别名匹配。
网关会将调用方密钥哈希为 key_hash 后存储,绝不保存原始密钥。服务提供方密钥的 secret 在 Admin API 列表视图中会返回为 ***。
验证服务提供方连接
通过 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": "gpt-4o-prod",
"messages": [
{
"role": "user",
"content": "Say hello from OpenAI."
}
]
}'
网关会返回回显面向调用方别名 gpt-4o-prod 的 OpenAI 兼容响应。请在 OpenAI 用量控制台 确认该请求。如果 AISIX 返回上游认证错误,请检查服务提供方密钥的 secret。
使用 OpenAI SDK
将 OpenAI SDK 客户端指向网关:把 base URL 设置为 http://127.0.0.1:3000/v1,并把 API Key 设置为调用方密钥。参见 OpenAI SDK 快速开始。
下一步
你现在已将 AISIX 连接到 OpenAI,并验证了模型别名。接下来可继续阅读:
- 模型别名:添加路由、成本元数据和限流。
- Azure OpenAI:改为配置 Azure 托管的 OpenAI 部署。
- 服务提供方兼容性:查看受支持的代理端点和服务提供方专用边界。