接口文档
全局配置
AiTestGo 云平台2.0提供的所有接口采用统一的HTTPS方式调用,具体参数如下:
- 请求地址:https://ai.aitestgo.com/api
- 请求方法:
POST
- 请求头部:
标签 | 必填 | 值 |
---|---|---|
Content-Type | 是 | application/json |
Authorization | 是 | 该字段传入应用的Secret |
- 请求体:
JSON
格式
所有接口的公共参数定义如下:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
appId | String | 是 | 在云平台2.0后台创建的应用ID |
data | Object/String | 是 | 接口参数,详见各具体接口定义 |
- 请求限制
请求body
不能超过4MB
,否则接口调用失败
- 返回格式
接口调用成功时返回的HTTP状态码为200
,数据格式为JSON
常见调用错误对应的HTTP状态码:
HTTP状态码 | 定义 | 说明 |
---|---|---|
400 | 参数错误 | 没有传入所有必填的参数 |
401 | 验证错误 | 没有在请求头部的Authorization 字段传入正确的Secret |
404 | 找不到应用 | 没有在请求体data 字段传入正确的appId |
429 | 超额请求 | 每秒同时请求数超过了应用配置的最大TPS,或应用没有运行中的实例 |
500 | 服务端异常 | 服务端在处理请求时发生了异常 |
BodyMeasureAsync
体态分析(异步)
- 从云端下载用户传入的音/视频地址,分析其中的体态信息,并以异步方式供用户查询
- 为了实现上述功能,该算法实现了三个具体接口:
1. 添加音/视频
添加待分析的音/视频地址
- 请求
data
字段定义:
参数名 | 类型 | 必填 | 说明 | 可能值 |
---|---|---|---|---|
media | String | 是 | 媒体类型 | video/audio/image |
action | String | 是 | 操作类型 | put |
types | String[] | 是 | 分析类型 | 详见分析类型 |
addresses | String[] | 是 | 下载地址列表 | 标准视频和待评分视频(顺序不能更改) |
分析类型
名称 | 说明 | 媒体要求 |
---|---|---|
gravity center |
重心 | 视频 |
body coordination |
协调 | 视频 |
jump |
弹跳 | 视频 |
imitation |
模仿 | 视频 |
- 返回参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
success | bool | 是 | 是否成功 |
data | Object | 否 | 成功时返回数据 |
- id |
String | 否 | 视频唯一标识 |
errMsg | String | 否 | 失败时返回信息 |
- 请求示例
{
"appId": "[应用appId]",
"data": {
"media": "video",
"action": "put",
"types": ["gravity center", "jump"],
"addresses": ["[标准视频地址]", "[待评分视频地址]"]
}
}
- 返回成功示例
{
"success": true,
"data": {
"id": "[结果查询ID]"
}
}
- 返回失败示例
{
"success": false,
"errMsg": "[错误原因]"
}
2. 查询结果
查询已添加的音/视频状态
- 请求
data
字段定义:
参数名 | 类型 | 必填 | 说明 | 可能值 |
---|---|---|---|---|
action | String | 是 | 操作类型 | get |
id | String | 是 | 视频唯一标识 | 上一步返回的data.id |
- 返回参数:
参数名 | 类型 | 必填 | 说明 | 可能值 |
---|---|---|---|---|
success | bool | 是 | 是否成功 | |
data | Object | 否 | 成功时返回数据 | |
- state |
String | 是 | 当前状态 | running : 处理中 |
waiting : 等待中 |
||||
finished : 已完成 |
||||
error : 分析失败 |
||||
- score |
Object | 否 | 各项打分(状态为finished 时有效) |
|
score |
double | 是 | 分数 | [0-1] |
status |
String | 是 | 状态 | success 表示成功,其他为失败 |
errMsg | String | 否 | 失败时返回信息 |
- 请求示例
{
"appId": "[应用appId]",
"data": {
"action": "get",
"id": "[查询ID]"
}
}
- 返回成功示例
{
"success": true,
"data": {
"state": "finished",
"score": {
"gravity center": {
"score": 0.67,
"status": "success"
},
"jump": {
"score": 0.78,
"status": "success"
}
}
}
}
- 返回失败示例
{
"success": false,
"errMsg": "[错误原因]"
}
3. 删除结果
删除已添加的音/视频分析结果
如果该条目在等待或处理中,则自动停止等待或处理中的任务
- 请求
data
字段定义:
参数名 | 类型 | 必填 | 说明 | 可能值 |
---|---|---|---|---|
action | String | 是 | 操作类型 | delete |
id | String | 是 | 视频唯一标识 | 上一步返回的data.id |
- 返回参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
success | bool | 是 | 是否成功 |
errMsg | String | 否 | 失败时返回信息 |
- 请求示例
{
"appId": "[应用appId]",
"data": {
"action": "delete",
"id": "[查询ID]"
}
}
- 返回成功示例
{
"success": true
}
- 返回失败示例
{
"success": false,
"errMsg": "[错误原因]"
}
BodyMeasure
体态分析
根据用户传入的图片,分析图片中的各项体态信息
- 请求
data
字段定义:
参数名 | 类型 | 必填 | 说明 | 可能值 |
---|---|---|---|---|
types | String[] | 是 | 需要分析的体态类型 | 详见图片分析类型 |
data | String[] | 是 | 图片Base64列表 |
图片分析类型
名称 | 说明 | 图片要求 |
---|---|---|
x legs |
X 腿型 | 正面全身照 |
o legs |
O 腿型 | 正面全身照 |
unequal legs |
长短腿 | 正面全身照 |
high and low shoulders |
高低肩 | 正面全身照 |
pelvic obliquity |
骨盆侧倾 | 正面全身照 |
spinal malposition |
脊柱异位 | 正面全身照 |
collapsed waist |
塌腰 | 侧面全身照 |
hunchback |
驼背 | 侧面全身照 |
poking chin |
头部前倾 | 侧面全身照 |
sit kneel swinging shoulders |
肩部柔韧,坐跪推指甩肩 | 侧面全身照 |
roll back waist |
腰部柔韧,后卷腰 | 侧面全身照 |
sit and reach |
腿部柔韧,坐位体前屈 | 侧面全身照 |
lateral split |
胯部柔韧,横叉(大垮) | 正面全身照 |
image similarity |
图片相似度 | 2张图片(标准图片,待评分图片) |
- 返回参数:
参数名 | 类型 | 必填 | 说明 | 可能值 |
---|---|---|---|---|
success | bool | 是 | 是否成功 | |
data | Object | 否 | 各项打分 | |
- score |
double | 是 | 分数 | [0-1] |
- status |
String | 是 | 状态 | success 表示成功,其他为失败 |
- angle |
double | 否 | 角度 | [0-360] |
errMsg | String | 否 | 失败时返回信息 |
- 请求示例
{
"appId": "[应用appId]",
"data": {
"types": ["x legs", "hunchback"],
"data": "[图片Base64]"
}
}
- 返回成功示例
{
"success": true,
"data": {
"x legs": {
"score": 0.91,
"status": "success"
},
"hunchback": {
"score": 0.84,
"status": "success"
}
}
}
- 返回失败示例
{
"success": false,
"errMsg": "[错误原因]"
}