想要通过通义千问API让模型首次开口说话,却卡在密钥、URL、JSON格式这些专业术语上?别担心,按照以下步骤,三分钟之内就能发出第一条请求并看到返回结果。首先,准备好AccessKey密钥并存入.env文件,接着创建Python虚拟环境,安装好requests和python-dotenv库,最后运行一个简单脚本,成功返回包含“output.text”的JSON格式数据即表示调用成功。

第一步:获取API密钥并配置基础环境
首先,登录阿里云控制台,进入「AccessKey管理」页面,创建一对密钥。系统会一次性显示AccessKey ID和AccessKey Secret。请务必注意:AccessKey Secret仅显示一次,关闭页面后将无法找回。因此,请立即复制并保存到本地项目根目录的.env文件中,格式如下:
ACCESS_KEY_ID=your_id_here ACCESS_KEY_SECRET=your_secret_here
接下来,使用venv模块创建一个干净的Python虚拟环境:
python -m venv qwen_env
然后激活虚拟环境——Windows系统执行qwen_env\Scripts\activate.bat,macOS/Linux系统执行source qwen_env/bin/activate。激活成功后,安装所需依赖库:
pip install requests python-dotenv
第二步:构建并发送第一个POST请求
创建一个名为main.py的文件,复制并粘贴以下代码:
import os
from dotenv import load_dotenv
import requests
load_dotenv()
API_KEY = os.getenv("ACCESS_KEY_SECRET")
URL = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
data = {
"model": "qwen-turbo",
"input": {
"prompt": "你好,请用一句话介绍你自己"
}
}
response = requests.post(URL, headers=headers, json=data)
print(response.json())
执行python main.py。如果返回结果中包含"output" -> "text"字段,且内容为通义千问的自我介绍,则说明请求成功!若遇到401错误,通常是因为Authorization头中误用了AccessKey ID而非Secret;若出现400错误,很可能是prompt为空或JSON结构缺少逗号。
第三步:使用Postman无需代码快速验证
打开Postman,点击「New Request」,命名后点击「Save」,在地址栏输入URL:https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation → 左侧选择「POST」→ 点击「Headers」标签页 → 添加两行:Key填Authorization,Value填Bearer + 你的AccessKey Secret(注意中间有空格);Key填Content-Type,Value填application/json → 切换到「Body」→ 选择「raw」→ 右侧下拉选择「JSON」→ 粘贴完整的请求体(包含model和input字段)→ 点击「Send」。如果返回结果正确,则说明环境配置和密钥均无误。
第四步:解析响应并提取有效文本信息
获取返回的JSON数据后,按以下四个步骤进行确认:
第一步:确认status_code是否为200。如果不是,请查看error.message字段以定位问题类型。
第二步:检查返回JSON中是否包含output键。如果没有,说明模型未触发推理,常见原因包括input结构错误或model参数拼写错误(例如写成qwen_turbo缺少横线)。
第三步:安全提取文本——使用response.json().get("output", {}).get("text", ""),避免因字段缺失导致程序崩溃。
第四步:打印结果时添加print("AI回答:" + text.strip()),.strip()可以清除模型可能附带的换行或空格,防止后续处理出错。
