跳到主要内容

Qwen(阿里云)

Qwen 是阿里云的语言和多模态模型系列,通过百炼 Model Studio(又称 DashScope)提供服务。应用通过稳定的 AISIX 别名调用 Qwen,网关负责保管 DashScope 凭证。

准备工作

开始前,请准备以下内容:

  • 一套 AISIX 环境:
    • 对于 AISIX Cloud,需要一个已关联网关的环境和具有写入作用域的 Admin Token。对于 On-Premises,请按照 AISIX Cloud 快速入门操作。如需申请 Hybrid Cloud 访问权限,请联系 API7
    • 对于开源 AISIX 网关,请准备本地 AISIX 安装,或使用开源 AISIX 网关快速入门中的 Docker 环境。配置网关以加载声明式资源文件。
  • 阿里云百炼 Model Studio 获取的、适用于计划使用区域的 DashScope API Key。
  • curljq

使用 AISIX Cloud 配置

导出 AISIX Cloud 连接信息:

# AISIX_CP 是 Admin API 基础 URL;应包含 /api,且末尾不带斜杠
# 本地 On-Premises 快速入门使用 http://localhost:8080/api
export AISIX_CP="YOUR_AISIX_CLOUD_ADMIN_API_URL"
export AISIX_TOKEN="YOUR_ADMIN_TOKEN"
export ENV_ID="YOUR_ENVIRONMENT_ID"

为由 Qwen 提供支持的 Chat Completions 路由创建服务提供方密钥、模型别名和调用方 API Key。示例使用新加坡区域端点。

由于阿里云百炼 Model Studio 提供 OpenAI 兼容端点,AISIX 通过 openai 适配器连接,并使用创建凭证所在区域的 DashScope API 根地址。

创建服务提供方密钥

DashScope API Key 和端点具有区域属性。AISIX 目录为国际站和中国大陆分别提供服务提供方 ID,默认 API 根地址如下:

服务提供方 ID默认 API 根地址范围
alibabahttps://dashscope-intl.aliyuncs.com/compatible-mode/v1国际站,使用新加坡端点
alibaba-cnhttps://dashscope.aliyuncs.com/compatible-mode/v1中国大陆,使用北京端点

一个区域签发的 API Key 无法用于另一区域的端点。如果需要同时路由到两个区域,请为每个区域创建一个服务提供方密钥。国际流量使用 alibaba,中国大陆流量使用 alibaba-cn,使用量记录和成本报告归属到匹配的目录。

阿里云建议生产环境使用工作区专属域名。上述共享 DashScope 根地址仍可用于现有集成,但专属域名提供工作区隔离和更高并发。下方示例使用新加坡形式;请将 YOUR_WORKSPACE_ID 替换为签发 API Key 的工作区。其他区域请使用 Model Studio 控制台中的匹配域名。

创建用于存储 DashScope 凭证和 API 根地址的服务提供方密钥,并获取其 ID:

# 请替换为实际值
export DASHSCOPE_API_KEY="YOUR_PROVIDER_API_KEY"

PROVIDER_KEY_ID=$(curl -sS -X POST "$AISIX_CP/provider_keys" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "qwen-prod",
"provider": "alibaba",
"api_key": "'"${DASHSCOPE_API_KEY}"'",
"api_base": "https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
"allowed_environments": ["'"${ENV_ID}"'"]
}' | jq -r '.provider_key.id')

provideralibaba,即 Model Studio 国际区域的目录服务提供方 ID。中国大陆区域请使用 alibaba-cn。AISIX Cloud Admin API 会从目录服务提供方派生适配器;仅 BYO 服务提供方密钥接受适配器字段。

api_key 存储 DashScope API Key。其行为遵循服务提供方密钥中的凭证处理方式。

api_base 已包含 /compatible-mode/v1 路径。请使用签发 API Key 的工作区和区域。省略该字段时,AISIX Cloud 会为 alibaba 使用共享国际根地址,为 alibaba-cn 使用共享北京根地址;这些目录默认值不会选择工作区专属域名。

创建模型

创建调用方将在请求中发送的模型别名,并获取其 ID:

MODEL_ID=$(curl -sS -X POST "$AISIX_CP/environments/$ENV_ID/models" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "qwen-plus-prod",
"model_name": "qwen3.7-plus",
"provider_key_id": "'"${PROVIDER_KEY_ID}"'"
}' | jq -r '.model.id')

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

model_name 是 Qwen 模型 ID。此示例使用当前的 qwen3.7-plus 模型;创建别名前,请在 Model Studio 模型列表中检查该模型在目标区域的可用性。

provider_key_id 将别名关联到 Qwen 服务提供方密钥。

创建调用方 API Key

创建可访问模型别名的调用方 API Key 资源。明文密钥由服务器生成,并仅在响应中返回一次:

AISIX_API_KEY=$(curl -sS -X POST "$AISIX_CP/environments/$ENV_ID/api_keys" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "qwen-caller",
"allowed_models": ["'"${MODEL_ID}"'"]
}' | jq -r '.plaintext')

allowed_models 值必须引用已获取的模型 ID。请妥善保存明文密钥;之后无法再次获取。

新资源会自动投射到已关联的网关,因此该路由几乎可以立即调用。

使用开源 AISIX 网关配置

导出上游凭证,并选择应用将发送给网关的调用方 API Key:

export DASHSCOPE_API_KEY="YOUR_PROVIDER_API_KEY"
export CALLER_API_KEY="YOUR_CALLER_API_KEY"

为该服务提供方创建完整的声明式资源文件:

resources.yaml
_format_version: "1"

provider_keys:
- display_name: "qwen-prod"
provider: "alibaba"
adapter: "openai"
api_key: ${DASHSCOPE_API_KEY}
api_base: "https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"

models:
- display_name: "qwen-plus-prod"
provider: "alibaba"
model_name: "qwen3.7-plus"
provider_key: "qwen-prod"

api_keys:
- display_name: "qwen-caller"
key_env: CALLER_API_KEY
allowed_models:
- "qwen-plus-prod"

如果 AISIX 安装在本地,请在加载文件前进行验证:

aisix validate --resources resources.yaml

验证后,在网关进程环境中提供文件引用的环境变量,再启动网关。仅当这些变量已经可供进程使用时,才重新加载现有网关;否则,请使用更新后的环境重启网关。

如果使用 Docker,请调整开源 AISIX 网关快速入门中的验证和启动命令。挂载此 resources.yaml 文件,并在两条命令中使用 -e 传入它引用的每个环境变量。资源加载后,准备下文共用的验证请求:

export AISIX_API_KEY="$CALLER_API_KEY"

验证服务提供方连接

导出 AISIX 网关 Origin:

# 本地快速入门使用 http://127.0.0.1:3000
export AISIX_PROXY="YOUR_AISIX_GATEWAY_ORIGIN"

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

curl -sS -X POST "$AISIX_PROXY/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."
}
]
}'

网关会返回 OpenAI 兼容响应,其中回显面向调用方的别名 qwen-plus-prod。请在 Model Studio 用量页面中确认该请求。如果请求因上游认证错误而失败,请检查服务提供方密钥的 api_key,并确认密钥与基础 URL 使用同一区域。

端点覆盖

Qwen 服务提供方密钥使用 openai 适配器,但路由支持还取决于 AISIX 服务提供方规则,以及配置的 Model Studio 基础地址上可用的 API:

路由使用 Qwen 模型别名时的行为
/v1/chat/completions支持缓冲和流式传输。
/v1/messages通过转换为 Chat Completions 支持。/v1/messages/count_tokens 仅限 Anthropic 后端模型。阿里云原生兼容 Anthropic 的 API 使用不同的 /apps/anthropic 基础地址,因此需要独立的服务提供方密钥。
/v1/responses通过 AISIX Responses 桥接支持,并非阿里云原生 Responses API。没有 Chat Completions 等价项的字段会被忽略。需要 previous_response_id 或服务提供方托管工具等原生能力时,请调用 /passthrough/alibaba/responses,并在请求体中使用确切的上游模型 ID。
/v1/embeddings别名指向同一区域可用的文本嵌入模型(例如 text-embedding-v4)时支持。AISIX 会将 /embeddings 追加到配置的 OpenAI 兼容基础地址。
/v1/videos 及其状态和内容路由仅当模型服务提供方值恰好为 alibaba 时支持;alibaba-cn 不在视频路由允许列表中。AISIX 会将请求映射到 DashScope 异步 Wan 文本生成视频 API。对于当前 Wan 2.7 模型,请省略 size,因为 AISIX size 映射面向较早的 Wan API。需要原生 resolutionratio 或多模态字段时请使用服务提供方透传;对于 alibaba-cn,这要求使用以 Model Studio 原生基础地址为根的独立服务提供方密钥。
/v1/audio/*本页配置的 OpenAI 兼容基础地址不支持。Model Studio 音频 API 使用服务提供方原生路由和请求结构。
/v1/images/generations不支持。该路由只接受配置的服务提供方为 openai 的模型;Model Studio 图片 API 需要服务提供方透传。
/v1/rerank不支持。该路由只接受 openaicoherejina 服务提供方值;Model Studio 重排模型使用服务提供方原生 API。
/passthrough/alibaba/*rest/passthrough/alibaba-cn/*rest支持 AISIX 尚未建模的原生 Model Studio API。服务提供方透传不会重写请求体中面向调用方的别名,会缓冲上游 SSE 响应,且 Token 和成本用量记录为零。原生 API 使用不同基础 URL 时,请创建独立服务提供方密钥。

完整端点和服务提供方矩阵请参阅服务提供方兼容性

后续步骤

你已将 AISIX 连接到 Qwen,并验证了模型别名。接下来可阅读以下指南: