商汤API调用流程:密钥配置与Python请求示例
商汤API的调用流程并不复杂:在商汤开放平台创建应用并获取API Key和Secret,然后用它们生成请求签名或直接作为Header参数,向指定的HTTPS接口发起POST请求即可。
下面以Python为例,从准备工作到验证结果逐步说明。
调用前需要准备什么
开始前,你需要一个商汤开放平台的账号,并完成实名认证(部分接口要求)。
登录后进入控制台,找到「应用管理」或「API Keys」页面,创建一个新应用,系统会生成一对密钥:API Key 和 API Secret。
这两个值只会在创建时完整显示一次,请立即保存到安全位置,不要提交到代码仓库。
同时确认你要调用的具体服务(如通用文字识别、图像生成等)是否已开通,并记录接口的请求地址(Endpoint)和模型名称。
不同服务的Endpoint不同,以控制台文档为准。
环境方面,本地安装Python 3.7以上版本,并安装requests库:
pip install requests
用Python发送第一个请求
商汤API通常要求将API Key和API Secret放入请求头进行鉴权。
下面是一个通用示例,请根据实际接口替换url、model和payload:
import requests
import json
API_KEY = "你的API Key"
API_SECRET = "你的API Secret"
URL = "https://api.sensetime.com/v1/your-endpoint" # 替换为控制台提供的地址
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}:{API_SECRET}" # 部分接口使用此格式,请以文档为准
}
payload = {
"model": "your-model-name",
"input": "测试内容"
}
response = requests.post(URL, headers=headers, data=json.dumps(payload), timeout=10)
print(response.status_code)
print(response.text)
执行后,如果返回200且响应体包含预期字段,说明调用成功。
如果返回401,通常是密钥错误或格式不对;
返回403则可能是服务未开通或权限不足。
鉴权细节与参数避坑
商汤不同产品线的鉴权方式可能略有差异,常见的有两种:一种是把API Key和Secret拼接后放在Authorization头中;
另一种是先调用鉴权接口换取临时token,再携带token请求业务接口。务必以你所用服务的官方文档为准,不要直接套用其他产品的示例。
另外注意:
- 请求体必须是合法的JSON,
Content-Type设为application/json。 - 如果接口要求
model参数,名称必须与控制台显示完全一致,大小写敏感。 - 网络环境需要能访问商汤API域名,公司内网或服务器安全组可能拦截,可先用
curl -v测试连通性。
验证调用是否成功
最简单的验证方式是检查HTTP状态码和响应中的业务码。
成功时一般返回200,响应JSON中会有result或data字段;
失败时会有error字段说明原因。
建议在代码中增加异常处理:
try:
response = requests.post(URL, headers=headers, json=payload, timeout=10)
response.raise_for_status()
data = response.json()
if data.get("error"):
print("业务错误:", data["error"])
else:
print("调用成功:", data)
except requests.exceptions.Timeout:
print("请求超时,检查网络或增大timeout")
except requests.exceptions.HTTPError as e:
print("HTTP错误:", e.response.status_code, e.response.text)
如果持续失败,优先检查密钥是否复制完整、是否有多余空格,以及接口地址是否与文档一致。
常见问题排查
调用返回401 Unauthorized:检查Authorization头的格式是否正确,密钥是否已失效或被删除。
部分接口要求使用API Key和Secret生成签名,而不是简单拼接。
请求超时或连接被拒绝:在服务器上执行curl -I https://api.sensetime.com查看是否能解析并建立连接。
如果使用代理,确认代理对HTTPS生效。
返回结果与预期不符:核对请求参数中的model名称、输入格式(如图片需base64编码或URL)是否满足接口要求。
整体来看,商汤API使用教程的核心就是三步:获取密钥、按文档构造请求、根据状态码排查。
先跑通一个最小请求,再逐步增加业务参数,能减少大部分配置问题。