Qwen(阿里云)
本指南将 AISIX AI 网关连接到阿里云 Qwen 模型。调用方可以通过网关的 OpenAI 兼容 API 访问 qwen-plus、qwen-max 和 qwen-turbo,凭证、模型允许列表、限流和用量核算由 AISIX 管理。
阿里云百炼(DashScope)提供 OpenAI 兼容端点,因此 Qwen 使用 openai 适配器并搭配 DashScope 的 api_base。当应用应使用调用方 API Key 向 AISIX 认证,而不是直接持有 DashScope 密钥时,可以使用该配置。
准备工作
请先准备以下内容:
-
一个 Admin API 位于
:3001、代理 API 位于:3000的网关。 -
网关
config.yaml中的 Admin Key。 -
来自阿里云百炼的 DashScope API Key。OpenAI 兼容 API 根地址取决于你的区域:
- 国际(新加坡):
https://dashscope-intl.aliyuncs.com/compatible-mode/v1 - 中国(北京):
https://dashscope.aliyuncs.com/compatible-mode/v1
API Key 与区域绑定。请使用与 base URL 同一区域签发的密钥。阿里云也在逐步推出按工作空间划分的端点,因此请在百炼控制台和阿里云的 OpenAI 兼容参考 中确认你账号当前的 base URL。
- 国际(新加坡):
支持的能力
Qwen 在此配置为通过 DashScope 的 OpenAI 兼容模式接入的 chat completions 上游。
| 端点 | 支持情况 | 流式 | 说明 |
|---|---|---|---|
/v1/chat/completions | 支持 | 支持 | qwen-plus、qwen-max、qwen-turbo 的主要路径。 |
/v1/images/generations | 不支持 | — | 拒绝:图片生成需要 provider: "openai"。 |
/v1/rerank | 不支持 | — | Qwen 不在 rerank 允许列表中(openai、cohere、jina)。 |
逐端点规则请参见服务提供方兼容性。
配置 Qwen 上游
为 Qwen 后端路由创建服务提供方密钥、模型别名和调用方 API Key。示例使用国际 DashScope 端点。
创建服务提供方密钥
export AISIX_ADMIN_KEY="YOUR_ADMIN_KEY"
export DASHSCOPE_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": "qwen-prod",
"provider": "qwen",
"adapter": "openai",
"secret": "'"${DASHSCOPE_API_KEY}"'",
"api_base": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}'
❶ provider 为 qwen。
❷ adapter 为 openai,因为 DashScope 的兼容模式接受 OpenAI chat completions 请求。
❸ secret 存储 DashScope API Key,遵循服务提供方凭证中的凭证处理行为。
❹ api_base 必填,且已包含 /compatible-mode/v1 路径。请使用与你 DashScope 区域匹配的根地址。
复制返回的服务提供方密钥 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": "qwen-plus-prod",
"provider": "qwen",
"model_name": "qwen-plus",
"provider_key_id": "'"${PROVIDER_KEY_ID}"'"
}'
❶ display_name 是调用方在 model 中发送的别名。
❷ model_name 是 Qwen 模型 ID,例如 qwen-plus、qwen-max 或 qwen-turbo。
❸ provider_key_id 将别名关联到 Qwen 服务提供方密钥。
创建调用方 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}')
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": ["qwen-plus-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": "qwen-plus-prod",
"messages": [{"role": "user", "content": "Say hello from Qwen."}]
}'
网关会返回回显面向调用方别名 qwen-plus-prod 的 OpenAI 兼容响应。请在百炼用量页面确认该请求。如果 AISIX 返回上游认证错误,请检查服务提供方密钥的 secret,并确认密钥和 base URL 来自同一区域。
下一步
- 模型别名:为该别名添加路由、成本元数据和限流。
- 路由与故障转移:在 Qwen 的不同区域之间,或在 Qwen 与另一个服务提供方之间进行故障转移。
- 服务提供方兼容性覆盖:当上游 API 与适配器不一致时调整请求和响应格式。
- 服务提供方兼容性:逐端点支持规则。