最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Python接入火山引擎豆包API实现对话请求
时间:2026-08-21 20:55:49 编辑:袖梨 来源:一聚教程网
需先获取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×tamp=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错误提示字段不合法。