要用node.js调用千问ai api,必须完成身份认证、构造合法请求体、处理响应结构三环节;需初始化项目、安装axios、配置环境变量api key,严格使用正确接口地址与模型名(如qwen-max),并通过axios发送带bearer认证的post请求获取res.data.output.text。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要用Node.js调用千问AI API生成文本、补全内容或构建对话服务,必须先完成身份认证、构造合法请求体、处理响应结构三个核心环节,漏掉任一环节都会返回401或400错误。
准备环境与依赖
新建项目文件夹后执行 npm init -y 初始化 package.json;安装 axios 作为 HTTP 客户端,它比原生 fetch 更易处理 JSON 响应和错误分类:npm install axios。
创建 .env 文件,写入 DASHSCOPE_API_KEY=sk-xxx。这一步不能跳过,【API Key 必须通过环境变量注入,硬编码在代码里会导致密钥泄露】。
确认接口地址与模型名
阿里云 DashScope 的千问文本生成接口统一为:
中国内地:https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
国际站(新加坡):https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation
模型名需从控制台实际开通的服务中选取,常见可用值有 qwen-max、qwen-plus、qwen-turbo。不要写错大小写,qwen-Max 或 QWEN_MAX 都会触发 404。
发送最简文本生成请求
方法一:使用 axios 发送 POST 请求
第一步:引入依赖并配置基础参数
const axios = require('axios');
require('dotenv').config();
第二步:构造请求体
const payload = {
model: 'qwen-max',
input: { prompt: '写一首关于夏天的五言绝句' },
parameters: { temperature: 0.5 }
};
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
第三步:发起调用并提取结果
axios.post('https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation', payload, {
headers: {
'Authorization': `Bearer ${process.env.DASHSCOPE_API_KEY}`,
'Content-Type': 'application/json'
}
})
.then(res => console.log(res.data.output.text))
.catch(err => console.error(err.response?.data || err.message));
这一步操作起来很简单,直接把 payload 和 headers 传进去就行。但注意:res.data.output.text 是固定路径,如果打印 res.data 看到的是完整对象,不取到 text 字段就拿不到纯文本。
封装成可复用函数
方法二:抽离为带错误拦截的 async 函数
async function callQwen(prompt, options = {}) {
const { model = 'qwen-max', temperature = 0.7, max_tokens = 1024 } = options;
try {
const res = await axios.post(
'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation',
{ model, input: { prompt }, parameters: { temperature, max_tokens } },
{ headers: { Authorization: `Bearer ${process.env.DASHSCOPE_API_KEY}` } }
);
return res.data.output.text;
} catch (err) {
if (err.response?.status === 429) throw new Error('请求过于频繁,请稍后重试');
throw new Error(`千问API调用失败:${err.response?.data?.message || err.message}`);
}
}
调用时只需写 const result = await callQwen('解释量子纠缠');。这个函数自动处理了常见状态码,避免每次都要写重复的 if 判断。
处理流式响应(SSE)
方法三:启用流式输出获取逐字返回效果
将请求头中的 Accept 改为 text/event-stream,并用 EventSource 或 axios 的 stream 模式接收数据块。注意浏览器端无法用 axios 直接处理流式响应,【必须走 Node.js 后端代理转发,否则前端会暴露 API Key】。
const es = new EventSource(`https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation?model=qwen-max&prompt=${encodeURIComponent('讲个笑话')}`, {
headers: { Authorization: `Bearer ${process.env.DASHSCOPE_API_KEY}` }
});
es.onmessage = e => console.log(e.data);
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










