首页 > 教程攻略 > ai资讯 >Nodejs接入火山引擎豆包API完整实操代码

Nodejs接入火山引擎豆包API完整实操代码

来源:互联网 时间:2026-08-26 20:54:38

要先获取API密钥,构造签名请求头并序列化请求体,不然会返回401或400错误。步骤如下:注册火山引擎账号,创建带豆包权限的API密钥,将AK/SK保存至.env,安装axios/crypto-js/dotenv,用HMAC-SHA256生成Authorization头,调用/v1/chat/completions接口。

Nodejs接入火山引擎豆包API完整实操代码

要在Node.js项目中调用火山引擎豆包大模型API完成文本生成,必须先获取有效API密钥、构造符合签名规范的HTTP请求头,并正确序列化请求体。缺少任一环节都会返回401或400错误。

注册账号并获取API Key和Secret

访问火山引擎豆包控制台,使用手机号注册企业或个人账号→登录后进入「API密钥管理」→点击「创建API密钥」→填写名称(如nodejs-prod)→勾选「豆包大模型」权限→点击确定→页面立即显示Access Key ID和Secret Access Key。

【务必立即复制Secret Access Key,关闭页面后无法再次查看】

将Access Key ID和Secret Access Key保存为环境变量,例如在项目根目录下新建.env文件:

DOUBAO_ACCESS_KEY=AKLTxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DOUBAO_SECRET_KEY=SKLTxxxxxxxxxxxxxxxxxxxxxxxxxxxx

安装依赖并初始化HTTP客户端

执行命令安装axios和crypto-js:

npm install axios crypto-js dotenv

在项目入口文件(如index.js)顶部加载环境变量和依赖:

require('dotenv').config();
const axios = require('axios');
const crypto = require('crypto-js');

构造带签名的请求头

豆包API要求所有请求必须携带Authorization签名头,不能仅靠API Key裸传。

方法一:使用最新推荐的HMAC-SHA256签名算法

第一步:拼接待签名字符串。格式为GETnnapplication/jsonn${timestamp}n/(注意换行符是n,不是rn;时间戳为毫秒级Unix时间,精确到秒即可)。

第二步:用Secret Access Key对上述字符串做HMAC-SHA256哈希,再Base64编码。

第三步:组合Authorization头值:HMAC-SHA256 Credential=${AccessKeyID}/${timestamp}/cn-north-1/ark/Request, SignedHeaders=host;date, Signature=${base64签名结果},这里需要注意的是,在HTTP请求中,Authorization头用于携带客户端的身份凭证以完成鉴权验证,标准格式为Authorization: ,而此步骤组合的头值符合特定的格式要求。

注意:host必须小写,date字段必须与timestamp一致且格式为RFC3339(如2024-06-15T12:34:56+08:00),否则403拒绝。

发送文本生成请求

调用豆包API的/v1/chat/completions接口,POST请求体必须包含model、messages字段:

const response = await axios.post('https://ark.cn-north-1.volces.com/api/v1/chat/completions', {
model: 'doubao-pro-32k',
messages: [{ role: 'user', content: '你好,请用中文简单介绍你自己' }],
temperature: 0.7
}, {
headers: {
'Content-Type': 'application/json',
'Authorization': authHeader,
'Date': dateHeader,
'Host': 'ark.cn-north-1.volces.com'
}
});

成功响应体中,response.data.choices[0].message.content即为模型返回的文本内容。