Python接入火山引擎豆包API实现对话请求

作者:袖梨 2026-08-21

需先获取API密钥并生成5分钟有效期的Access-Token,再构造含正确模型名(大小写敏感)和小写role字段的请求,调用/v3/chat/completions接口;缺少Token或拼写错误将导致401/404/400错误。

要在Python程序中调用火山引擎豆包API发起实时对话请求,需先获取有效API密钥、构造符合v3版本规范的HTTP请求头与JSON载荷,并正确处理流式响应或普通响应。缺少Access-Token或模型名称拼写错误将直接返回401或404错误。

准备认证凭证与基础依赖

安装requests库:pip install requests。

登录火山引擎控制台→进入「机器学习平台VeDI」→左侧导航栏选择「大模型服务」→点击「豆包大模型」→在「API管理」页复制「API Key」和「Secret Key」。这两个值后续用于生成临时Access-Token,【不可直接作为请求头中的Authorization值使用】

访问 https://www.volcengine.com/docs/6560/1808792 获取当前支持的模型列表(如“doubao-pro”“doubao-lite”),模型名必须完全一致,大小写敏感。

生成Access-Token并封装请求函数

方法一:使用最新推荐的签名方式(推荐)

① 导入hashlib、hmac、base64、time、json、requests模块。

② 定义get_access_token(api_key, secret_key)函数:构造payload字典包含api_key、timestamp(当前秒级时间戳)、sign_method(固定为"HMAC-SHA256");将payload按key字典序拼接成query_str(如"api_key=xxx&sign_method=HMAC-SHA256&timestamp=1717023456");用secret_key对query_str做HMAC-SHA256哈希,再base64编码得到sign;最后把sign加入payload并URL编码,拼成完整access_token字符串。

③ 调用该函数获得access_token字符串,它有效期5分钟,建议每次对话前重新生成,避免复用过期token导致401。

发送标准对话请求

创建post_chat_request函数,接收access_token、model_name、messages列表(含role/content键)三个参数。

设置headers = {"Authorization": f"Bearer {access_token}", "Content-Type": "application/json; charset=utf-8"}。

构造data字典:{"model": model_name, "messages": messages, "stream": False}。若需流式响应,将stream设为True,但需改用iter_lines()解析——此处只处理非流式。

执行response = requests.post("https://ark.cn-beijing.volces.com/api/v3/chat/completions", headers=headers, json=data, timeout=30)。注意域名中的cn-beijing是默认区域,如开通了其他区域(如cn-shanghai),需同步替换域名。

检查response.status_code == 200,然后解析response.json()["choices"][0]["message"]["content"]提取回复文本。

运行示例对话

定义messages = [{"role": "user", "content": "你好,请用中文简单介绍你自己"}]。

依次调用get_access_token → post_chat_request → 打印返回内容。

这一步操作起来很简单,只要四行代码就能跑通首次请求,但如果messages里role写成"User"或"assistant"(首字母大写),API会返回400错误提示字段不合法。

相关文章

精彩推荐