调用豆包大模型需先获取api密钥并配置环境变量,再安装volcengine sdk、初始化doubaoclient(region必须为cn-north-1),最后通过create_message发送请求(bot_id须正确且bot已发布),流式响应需手动签名并解析event-stream。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在自己的程序中调用火山引擎豆包大模型(Doubao API),必须先获取合法的API密钥,并使用官方支持的HTTP请求方式发送结构化数据,否则会返回401错误或空响应。
获取并配置API密钥
登录火山引擎控制台 → 进入「访问密钥」页面 → 创建新密钥 → 复制Access Key ID和Secret Access Key。
将密钥保存为环境变量,避免硬编码在代码中:export VOLC_ACCESSKEY=AKLTxxx 和 export VOLC_SECRETKEY=SKLTxxx。这一步漏掉会导致后续所有请求直接失败。
确认密钥已生效且对应项目已开通「豆包大模型」服务权限。
安装官方SDK并初始化客户端
执行命令安装最新版volcengine SDK:pip install volcengine。
导入必要模块并初始化DoubaoClient实例,注意region必须指定为cn-north-1,其他地域不支持豆包模型调用:from volcengine.doubao import DoubaoClientclient = DoubaoClient(region="cn-north-1")
发送单轮对话请求
方法一:使用create_message接口发起基础问答
构造请求体,其中bot_id需替换为你在豆包控制台创建并发布的Bot唯一ID,【未发布Bot或ID填错将返回404】:resp = client.create_message({ "bot_id": "bot-xxx", "user_id": "user-123", "messages": [{"role": "user", "content": "你好,请用一句话介绍自己"}]})
打印响应中的回复内容:print(resp["data"]["reply"]) 。
处理流式响应
方法二:启用stream参数获取逐字返回效果
在请求体中加入"stream": True,此时响应不再是完整JSON对象,而是以text/event-stream格式分块传输。
必须使用requests库手动发起POST请求,因为volcengine SDK当前版本(v1.0.6)尚未原生支持流式解析。
构造带签名的Authorization头,调用volcengine.auth.Signer生成签名字符串——跳过此步将触发403 Forbidden。
读取响应流时需按data:前缀分割每一块,过滤空行和event字段,再对content做JSON解码提取delta.text。











