Python调用火山引擎API需完成鉴权配置、安装SDK、构造V4签名三步;直接填AK/SK会因缺少签名返回403错误;安装SDK失败时Windows用户需启用长路径支持;调用ARK模型API可使用专用SDK免手写签名。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要用Python调用火山引擎API,必须先完成鉴权配置、安装SDK、构造合法签名三步,缺一不可;直接填AK/SK发请求会返回403错误,因为所有OpenAPI都强制要求V4签名。
安装Python SDK并配置凭证
执行命令安装官方SDK:
pip install volcengine-python-sdk
Windows用户若安装失败,需先打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,将LongPathsEnabled值设为1,否则路径过长会导致wheel构建失败。
配置长期访问凭证:在命令行中依次执行
set TOS_ACCESS_KEY=你的AccessKeyID
set TOS_SECRET_KEY=你的SecretKey
setx TOS_ACCESS_KEY "%TOS_ACCESS_KEY%"
setx TOS_SECRET_KEY "%TOS_SECRET_KEY%"
重启命令行后运行echo %TOS_ACCESS_KEY%验证是否生效。
立即学习“Python免费学习笔记(深入)”;
用SignerV4生成合法签名URL(GET请求)
第一步:导入必要模块
from volcengine.auth.SignerV4 import SignerV4
from volcengine.auth.SignParam import SignParam
from volcengine.Credentials import Credentials
from collections import OrderedDict
import requests
import datetime
第二步:构造SignParam对象
param = SignParam()
param.path = '/'
param.method = 'GET'
param.host = 'open.volcengineapi.com'
param.body = ''
param.date = datetime.datetime.utcnow()
param.query = OrderedDict([('Action', 'DescribeInstances'), ('Version', '2020-04-01')])
param.header_list = OrderedDict([('Host', 'open.volcengineapi.com')])
第三步:初始化Credentials并签名
cren = Credentials('你的AK', '你的SK', 'ecs', 'cn-beijing')
sign = SignerV4()
signed_url = sign.sign_url(param, cren)
第四步:发起请求
response = requests.get(f'https://{param.host}/?{signed_url}')
print(response.text)
【注意:host必须与Credentials中service参数匹配】例如调用ECS接口时host写open.volcengineapi.com,service就必须填'ecs';若调用ARK模型服务,则host应为ark.cn-beijing.volces.com,service填'ark',否则签名验签失败。
POST请求体签名与发送
方法一:签名URL + body明文发送
保持SignParam中param.method = 'POST',param.body设为JSON字符串(如'{"InstanceId":"i-xxx"}'),其余字段同GET流程;最终用requests.post(url, data=param.body)发送。
方法二:签名Header(推荐用于含Body的复杂请求)
调用sign.sign_header(param, cren)获取签名后的headers字典,再传入requests.post(headers=headers, json=your_payload)。
这一步操作起来很简单,直接把body字典传给json参数即可,requests会自动序列化并设置Content-Type: application/json。
调用ARK大模型API(免手写签名)
安装专用SDK:
pip install volcengine-python-sdk[ark] -U -i https://mirrors.aliyun.com/pypi/simple/
初始化客户端:
from volcenginesdkarkruntime import Ark
client = Ark(
base_url='https://ark.cn-beijing.volces.com/api/v3',
api_key='你的API Key'
)
发起文本生成请求:
response = client.chat.completions.create(
model='doubao-seed-2.0-pro',
messages=[{'role': 'user', 'content': '写一个快速排序Python函数'}]
)
print(response.choices[0].message.content)
【API Key必须是火山方舟模型广场中创建的专用密钥,不能复用OpenAPI的AK/SK】

















