
千问
用千问 API 完成第一次模型调用:密钥配置与 Python、Node.js、Java 示例
从注册账号、开通百炼、创建 API Key 到配置环境变量,再用 Python、Node.js 或 Java 发出第一次千问 API 请求。包含 OpenAI 兼容接口与 DashScope SDK 两种写法、业务空间 ID 与地域的对应关系,以及常见报错的排查方向。
千问模型可以通过 API 调用,接入方式包括 OpenAI 兼容接口和 DashScope SDK 两类。这篇教程要解决的是「第一次把请求发出去」这件事:拿到 API Key、把它安全地放进环境变量、选一门语言写一个最小可运行脚本,并看懂返回结果。适合已经会一点编程、但还没在百炼平台上跑通过一次调用的开发者。如果你只是想和模型对话而不写代码,图形化客户端更省事;需要命令行或脚本里批量调用时,可以配合 千问 这类工具页了解入口,再回到本文按步骤配置。
全文按「账号与密钥 → 环境变量 → 语言示例 → 完整跑通 → 注意事项」的顺序展开。所有示例都只依赖一个环境变量 DASHSCOPE_API_KEY,代码里不出现明文密钥。
准备工作
账号与服务开通
调用千问 API 之前需要完成三件事:
- 注册账号:没有阿里云账号的先注册。注册过程中如果遇到问题,按注册页面的提示处理。
- 开通百炼服务:用阿里云主账号进入百炼大模型服务平台,阅读并同意服务协议后会自动开通。如果没有弹出服务协议,说明该账号已经开通过了。
- 完成实名认证:开通时若提示「您尚未进行实名认证」,需要先完成实名认证,再回来开通。
创建 API Key
进入 API Key 管理页面,点击创建 API Key 即可。创建时不需要选择模型——具体调用哪个模型由请求体里的 model 参数决定,例如 model="qwen-plus"。可用模型清单以平台当前的模型列表为准。
如果希望限制这把 Key 的使用范围,创建时选择「自定义」权限,并打开「访问模型范围」开关,之后这把 Key 只能调用被勾选的模型。这个设置适合把 Key 分发给不同项目或不同同事时做隔离。
确认业务空间 ID 与地域
使用华北 2(北京)、新加坡、日本(东京)、德国(法兰克福)或中国香港地域的模型时,Base URL 中需要填入业务空间 ID(WorkspaceId)。业务空间 ID 可以在业务空间管理页面查看。不同地域的 URL 和 region 取值不同,示例代码里给的是华北 2(北京)的写法,换成其他地域时要同步修改。
把 API Key 写入环境变量
不建议把 Key 直接写进代码。推荐的做法是配置到环境变量 DASHSCOPE_API_KEY,代码通过读取环境变量获取。下面按操作系统分别说明。
Linux(永久生效):把导出语句追加到 ~/.bashrc,然后重新加载。
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bashrc
source ~/.bashrc
echo $DASHSCOPE_API_KEY
也可以手动编辑:执行 nano ~/.bashrc,在文件里加入 export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY",按 Ctrl + X、再按 Y、再按 Enter 保存退出,然后 source ~/.bashrc。最后重新打开一个终端窗口,用 echo $DASHSCOPE_API_KEY 验证。
Linux(仅当前会话):直接在当前终端执行导出命令,关闭窗口即失效。
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"
echo $DASHSCOPE_API_KEY
macOS:先执行 echo $SHELL 确认默认 Shell。Zsh 用户把导出语句追加到 ~/.zshrc;Bash 用户追加到 ~/.bash_profile。两者都是改完后 source 对应文件,再新开终端验证。
# Zsh
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.zshrc
source ~/.zshrc
# Bash
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bash_profile
source ~/.bash_profile
macOS 上的临时变量对 Zsh 和 Bash 都适用:
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"
echo $DASHSCOPE_API_KEY
Windows(图形界面,永久生效):按 Win + Q 搜索「编辑系统环境变量」,打开系统属性窗口,点击「环境变量」,在「系统变量」区域点击「新建」,变量名填 DASHSCOPE_API_KEY,变量值填你的 Key,然后依次点三个窗口的「确定」。注意两点:修改系统环境变量需要管理员权限;已经打开的命令窗口、IDE 或其他程序不会立即读到新值,需要重启程序或新开一个命令行窗口。
验证时,CMD 用 echo %DASHSCOPE_API_KEY%,PowerShell 用 echo $env:DASHSCOPE_API_KEY。
Windows(CMD):永久写入用 setx,之后必须新开窗口才生效;临时变量用 set,只在当前会话有效。
REM 永久
setx DASHSCOPE_API_KEY "YOUR_DASHSCOPE_API_KEY"
REM 临时
set DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY
echo %DASHSCOPE_API_KEY%
Windows(PowerShell):永久写入用 [Environment]::SetEnvironmentVariable 并指定 User 作用域,同样需要新开窗口;临时变量直接赋值给 $env:。
# 永久
[Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "YOUR_DASHSCOPE_API_KEY", [EnvironmentVariableTarget]::User)
# 临时
$env:DASHSCOPE_API_KEY = "YOUR_DASHSCOPE_API_KEY"
echo $env:DASHSCOPE_API_KEY
操作步骤
第一步:准备 Python 环境
Python 需要 3.9 或以上版本。先确认版本和 pip 是否可用:
python -V
pip --version
如果报「'python' 不是内部或外部命令」或 -bash: python: command not found,分两种情况处理。Windows 上确认安装 Python 时勾选了「Add python.exe to PATH」,装好后关闭当前终端重新打开;Linux 和 macOS 上先用 which python pip 查一下,如果返回的是 /usr/bin/python3 和 /usr/bin/pip3,说明系统里命令名带 3,后续命令把 python 换成 python3、pip 换成 pip3 即可。
可选地创建虚拟环境,避免和其他项目的依赖冲突:
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
然后安装 SDK。两种 SDK 任选其一:
pip install -U openai
# 或
pip install -U dashscope
终端出现 Successfully installed ... openai-x.x.x 或 ... dashscope-x.x.x 即安装成功。
第二步:用 OpenAI Python SDK 调用
新建 hello_qwen.py,写入下面的代码。注意 import os 不能省,它负责读取环境变量;如果改用 .env 文件管理密钥,需要同时导入 os 和 dotenv 并调用 load_dotenv()。缺少 import os 会抛 NameError,不要误判成 .env 加载失败。
import os
from openai import OpenAI
try:
client = OpenAI(
# 若没有配置环境变量,请用 API Key 替换下行:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 华北2(北京)地域的 URL,其他地域不同;{WorkspaceId} 替换为真实业务空间 ID
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}
]
)
print(completion.choices[0].message.content)
except Exception as e:
print(f"错误信息:{e}")
运行:
python hello_qwen.py
# 或
python3 hello_qwen.py
如果提示 No such file or directory,说明当前目录下没有这个文件,在文件名前补上完整路径。运行成功会打印模型对「你是谁?」的回答。
第三步:用 DashScope Python SDK 调用
DashScope SDK 的写法与 OpenAI SDK 不同:它用 Client 对象承载密钥、业务空间和地域,消息内容用 text 字段包装,返回结果从 output_text 取。
import os
import dashscope
from dashscope.v2 import DashScopeError
client = dashscope.Client(
# 若没有配置环境变量,请用 API Key 替换下行:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="cn-beijing",
)
messages = [
{'role': 'system', 'content': [{'text': 'You are a helpful assistant.'}]},
{'role': 'user', 'content': [{'text': '你是谁?'}]}
]
try:
response = client.multimodal.chat.create(
model="qwen-plus",
messages=messages,
)
print(response.output_text)
except DashScopeError as e:
print(f"HTTP返回码:{e.status_code}")
print(f"错误码:{e.code}")
print(f"错误信息:{e.message}")
运行方式与上一步相同。这段代码把 workspace 和 region 显式写在客户端初始化里,换地域时改这两个值,不要只改 URL。
第四步:用 Node.js 调用
先确认 Node.js 和 npm 可用:
node -v
npm -v
没有 Node.js 的话去官网下载安装。然后在项目目录安装 OpenAI SDK:
npm install --save openai
# 或
yarn add openai
安装失败时可以配置镜像源后重试。终端出现 added xx package in xxs 表示成功,用 npm list openai 可以查具体版本。
新建 hello_qwen.mjs:
import OpenAI from "openai";
try {
const openai = new OpenAI({
// 若没有配置环境变量,请用 API Key 替换下行:apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
});
const completion = await openai.chat.completions.create({
model: "qwen-plus",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "你是谁?" }
],
});
console.log(completion.choices[0].message.content);
} catch (error) {
console.log(`错误信息:${error}`);
}
运行:
node hello_qwen.mjs
两个常见问题:一是运行命令要在文件所在目录执行,否则在文件名前写完整路径;二是 SDK 必须和脚本装在同一目录,否则会报 Cannot find package 'openai' imported from xxx。运行时如果出现 punycode 模块的 DeprecationWarning,属于 Node.js 自身的弃用提示,不影响调用结果。
第五步:用 Java 调用
DashScope Java SDK 要求 Java 8 或以上。检查版本:
java -version
# 可选,使用 Maven 构建时
mvn --version
在 Maven 项目的 pom.xml 的 <dependencies> 里加入依赖,把 the-latest-version 换成当前最新版本号:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dashscope-sdk-java</artifactId>
<version>the-latest-version</version>
</dependency>
保存后执行 mvn compile 或 mvn clean install,Maven 会自动下载依赖。Java 侧的调用代码同样从环境变量读取 DASHSCOPE_API_KEY,模型名通过请求参数传入,与 Python、Node.js 示例保持一致。
一个完整示例
下面把前面的步骤串成一条从零到出结果的最短路径,以 Python + OpenAI SDK 为例。
1. 确认前置条件:账号已注册、百炼已开通、实名认证已完成、API Key 已创建。
2. 写入环境变量并验证:
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"
echo $DASHSCOPE_API_KEY
输出应当是你的 Key 本身。如果输出为空,说明变量没写进去,先解决这一步再往下走。
3. 准备环境:
python -V
pip install -U openai
4. 写入脚本 hello_qwen.py:
import os
from openai import OpenAI
try:
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}
]
)
print(completion.choices[0].message.content)
except Exception as e:
print(f"错误信息:{e}")
5. 运行并读取结果:
python hello_qwen.py
正常输出是一段自我介绍式的回答。到这里,一次完整的「取密钥 → 配环境 → 发请求 → 取文本」链路就跑通了。之后要换模型,只改 model 参数;要换地域,改 base_url 并补上业务空间 ID;要换语言,参考前面 Node.js 或 Java 的写法,逻辑完全一致。
注意事项
- API 调用与操作系统版本无关,只要网络能连通就能用。环境变量配置失败通常不是系统兼容问题,而是变量没生效或终端没重开。
- 环境变量改动不会影响已打开的程序。Windows 上尤其明显:改完系统变量后,已经开着的 CMD、PowerShell、IDE 都读不到新值,必须新开窗口或重启程序。
- 创建 API Key 时不选模型。模型由请求体的
model字段决定,写错模型名会在调用时报错,而不是在创建 Key 时报错。 - 业务空间 ID 不能漏。使用华北 2(北京)、新加坡、日本(东京)、德国(法兰克福)、中国香港地域时,Base URL 里要填 WorkspaceId;DashScope SDK 则通过
workspace和region两个参数指定。 - 不要省略
import os。用.env管理密钥时,缺少它会抛NameError,容易被误认为文件加载失败。 - SDK 与脚本要在同一目录。Node.js 下跨目录运行会报
Cannot find package 'openai'。 - 命令名带不带 3 取决于系统。Linux、macOS 上如果
which python pip找不到,改用python3、pip3。 - 模型清单、可用地域、配额与计费方式会调整,本文示例中的模型名仅作演示,实际使用前请以官网当前信息为准。