1. 算法仓库管理

描述: 算法仓库管理 算法仓库管理相关接口

1.1. 获取算法包元数据

基础信息

Path: /v1/api/algorithm/getAlgoPackMetaData

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
algoUrl string 算法包url

Body示例:

{
    "algoUrl": "http://127.0.0.3:38080/api/v1/storage/download/Z3NwOi8vd3Vrb25n-5a506fcea8477a303c96d23af5e5c70e.tar"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─metaData object metaData
  |─cards object[] 算法卡片
    |─algoCardTypeName string 算法卡片的名称,显示用
    |─algoCardType string 算法卡片的类型
    |─algoCardUuid string 算法卡片uuid
  |─deviceModels integer[] 适配设备型号,通过《获取字典信息》接口获得
  |─authLimits string 授权维度相关信息,JSON格式
  |─algoType string 算法包具体类型,同一种算法包对不同的vendor、不同分析源类型均不同
  |─algoVersion string 算法包版本
  |─description string 算法包描述
  |─algoName string 算法包名称
  |─algoResolution object[] GPU信息
    |─accelerator string GPU型号: 如2070,T4,AX630等
    |─vendor string GPU产商: NVIDIA, AXERA
    |─quota double 算法运行时需要占用的GPU个数
    |─streamVideoQuota integer 支持的视频分析路数
    |─streamCaptureQuota integer 支持的图片分析路数
    |─resolution string 算法能力说明,对不同显卡类型可配置不同 PIXELS_200W
    |─analyzeQuota integer 支持的图片静态分析QPS

响应示例:

{
    "code":0,
    "data":{
        "metaData":{
            "algoName":"人数统计",
            "algoResolution":[
                {
                    "accelerator":"AX630",
                    "analyzeQuota":0,
                    "quota":1.0,
                    "resolution":"PIXELS_200W",
                    "streamCaptureQuota":0,
                    "streamVideoQuota":16,
                    "vendor":"AXERA"
                },
                {
                    "accelerator":"AX630",
                    "analyzeQuota":0,
                    "quota":1.0,
                    "resolution":"PIXELS_400W",
                    "streamCaptureQuota":0,
                    "streamVideoQuota":8,
                    "vendor":"AXERA"
                },
                {
                    "accelerator":"AX630",
                    "analyzeQuota":0,
                    "quota":1.0,
                    "resolution":"PIXELS_800W",
                    "streamCaptureQuota":0,
                    "streamVideoQuota":4,
                    "vendor":"AXERA"
                }
            ],
            "algoType":"headcount_alarm",
            "algoVersion":"2.0.0",
            "authLimits":"null",
            "cards":[
                {
                    "algoCardType":"MAX_NUMBER_PEOPLE",
                    "algoCardTypeName":"区域密度检测",
                    "algoCardUuid":""
                },
                {
                    "algoCardType":"CROSS_LINE",
                    "algoCardTypeName":"出入口人数统计",
                    "algoCardUuid":""
                }
            ],
            "description":"区域密度检测、出入口人数统计",
            "deviceModels":[
                18,
                18,
                18
            ]
        }
    },
    "msg":"成功"
}

1.2. 查询文件存在|分片上传-创建任务

基础信息

Path: /v1/api/storage/exists

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
checkType integer 判断方式- 0: (默认)按fileMd5校验,必传参数:FileMd5,fileName,选传:ttl- 1: 按fileId校验,必传参数:fileId,fileName,选传:ttl- 2: 按uri校验,必传参数:uri
createChunkTask boolean 分片上传时传true,代表生成分片任务
fileName string 文件名,非uri方式查询时必传
fileMd5 string 文件md5值
uri string uri,base64编码串,解码后,形如gsp://{bucket}/{objectId}
ttl integer 文件过期时间,单位天,ttl=0
fileId string 传了fileId,优先作为文件的objectId;也作为下载时的文件名称

Body示例:

{
    "fileName": "algo_out_alert_alarm-thin@2.0.1.tar",
    "fileMd5": "850e8a63eb35cd5e4d7f2dabc4ac7b1a",
    "fileSize": 71577600,
    "createChunkTask": true
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─isExists boolean 文件是否存在
|─uploadId string 分片任务id,createChunkTask=true时返回
|─chunkIds string[] 已上传的分片id数组,createChunkTask=true时返回
|─uri string uri,base64编码串,解码后,形如gsp://{bucket}/{objectId}
|─url string url,文件URL全路径

响应示例:

{
    "code":0,
    "data":{
        "chunkIds":[],
        "isExists":false,
        "uploadId":"98ba3370-4da9-43e7-8e97-564ce0418dd5",
        "uri":"",
        "url":""
    },
    "msg":"成功"
}

1.3. 设置算法包默认版本

基础信息

Path: /v1/api/algorithm/setDefaultVersion

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
algoVersion string 算法包版本
algoUniqueType string 算法包类型唯一标识,根据algoType,algoBizType,Accelerator,deviceModel生成的唯一值,同类算法包具有唯一性(可通过/v1/api/algorithm/get接口获取)

Body示例:

{
    "algoVersion": "2.0.1",
    "algoUniqueType": "d67a238c1edbac61ac535be792201699"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述

响应示例:

{
"code": 0,
"msg": "成功"
}

1.4. 从url转存到gsp

基础信息

Path: /v1/api/storage/uploadByUrl

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
ttl integer 文件过期时间,单位天,ttl=0;注意忽略ttl
url string url,文件URL全路径

Body示例:

{
    "url": "http://mirrors.gdc.megvii.com/EBG%algo_out_headcount_alarm%402.0.0.tar?OSSAccessKeyId=LTAI5tJR6FrmZm29kqi2RqSa&Expires=1700688810&Signature=K5HGXbGVcfLcqDVpNyAVTotgB68%3D"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─isExists boolean 文件是否存在
|─uploadId string 分片任务id
|─uri string uri,base64编码串,解码后,形如gsp://{bucket}/{objectId}
|─url string url,文件URL全路径

响应示例:

{
    "code":0,
    "data":{
        "isExists":false,
        "uploadId":"977a150f-44c0-4081-970b-a06950e1f926",
        "uri":"",
        "url":""
    },
    "msg":"成功"
}

1.5. 获取算法包适配设备列表

基础信息

Path: /v1/api/algorithm/getAdapterDevices

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
deviceIp string 设备IP,支持模糊查询
algoUuid string 算法包标识
deviceModels integer[] 适配设备型号,通过《获取字典信息》接口获得
zoneUuid string 设备所在区域,通过《设备区域树管理;区域树查询》接口获得
pageSize integer 分页大小,不传默认20
pageNum integer 当前页码,不传默认1
deviceName string 设备名称,支持模糊查询
onlyCount boolean onlyCount
deviceAlgoStatus integer[] 设备算法包状态,4:未部署- 5:部署中- 6:已部署- 8:更新中
deviceStatus integer - 3: 在线- 4:离线-6:删除中

Body示例:

{
    "pageSize": 10,
    "pageNum": 1,
    "algoUuid": "AG-8c0bb8d8687a49bab5a2",
    "deviceModels": [
        18
    ],
    "zoneUuid": "0"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─total integer 总数
|─pageSize integer 分页大小
|─list object[] list
  |─deviceUuid string 设备标识
  |─uploadId string 算法包部署ID
  |─ip string 设备Ip
  |─algoType string 设备算法包类型
  |─algoStatus integer 算法包部署状态:1: 未上传,2: 上传中,3: 已上传,4: 未安装,5: 安装中,6: 已安装,7: 卸载中,8: 更新中
  |─deploymentId string 算法包部署ID
  |─deviceModel integer 1: MegEye-W5K-I8,2: MegEye-W4K-E7,3: ....,通过《获取字典信息》接口获得更多
  |─deviceRegion string 设备区域,层级结构
  |─version string 设备算法包版本
  |─deviceName string 设备名称
  |─deviceStatus integer - 3: 在线- 4:离线-6:删除中
|─pageNum integer 当前页码

响应示例:

{
    "code":0,
    "data":{
        "list":[
            {
                "algoStatus":6,
                "algoType":"megalarm-mf-N-person-cu102-t4-act-nmix",
                "deploymentId":"5",
                "deviceModel":18,
                "deviceName":"core",
                "deviceRegion":"默认区域",
                "deviceStatus":3,
                "deviceUuid":"DE-c86f53e5f7464203985c2df441e4fbdb",
                "ip":"10.117.56.174",
                "uploadId":"00e85701-ac2e-49c7-841e-40df23db67b5",
                "version":"5.1.0"
            }
        ],
        "pageNum":1,
        "pageSize":10,
        "total":1
    },
    "msg":"成功"
}

1.6. 分片上传-合并已上传分片

基础信息

Path: /v1/api/storage/concatFiles

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
uploadId string 分片任务id,exists接口返回的uploadId

Body示例:

{
    "uploadId": "977a150f-44c0-4081-970b-a06950e1f926"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─uri string 下载uri,base64编码串,解码后,形如gsp://{bucket}/{objectId}
|─url string url,文件URL全路径

响应示例:

{
    "code":0,
    "data":{
        "uri":"Z3NwOi8vd3Vrb25n-02d97ce8716e91ab4e9f3034bc1884f2.tar",
        "url":""
    },
    "msg":"成功"
}

1.7. 查询设备算法包可安装的数量

基础信息

Path: /v1/api/algorithm/getInstallLimit

Method: POST /v2/web/algorithm/getInstallLimit

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
deviceUuid string 设备uuid
algoUuid string 算法包uuid

Body示例:

{
    "deviceUuid": "DE-c86f53e5f7464203985c2df441e4fbdb",
    "algoUuid": "AG-001"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─nodes object[] 算力节点
  |─resources object[] 算力资源
    |─accelerator string GPU型号
    |─total double GPU卡总数
    |─vendor string GPU产商
    |─quota double 当前算法包安装一份占用的资源,可以为小数,如0.5占用半张卡
    |─limit integer 算法包可安装最大数量
    |─free double 空闲数量

响应示例:

{
    "code":0,
    "data":{
        "nodes":[
            {
                "resources":[
                    {
                        "accelerator":"2070",
                        "free":0.5,
                        "limit":0,
                        "quota":1.0,
                        "total":2.0,
                        "vendor":"NVIDIA"
                    }
                ]
            }
        ]
    },
    "msg":"成功"
}

1.8. 文件上传

基础信息

Path: /v1/api/storage/upload

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type multipart/form-data

Body

名称 类型 必须 默认值 备注
file string form-data文件流
fileMd5 string 文件md5值,相同的文件fileMd5一样
ttl integer 文件过期时间,单位天,空或者零值时,表示永不过期,非空时指定ttl空间下存储
fileId string 为了重复上传相同fileMd5的文件,自定义fileId,优先作为文件key;也作为下载时的文件名称
fileName string 必须指定文件名,否则其他接口感知无法该文件

Body示例:

{
    "file": "c3BlYy...................",
    "fileName": "algo_out_alert_alarm-thin@2.0.1.tar",
    "fileMd5": "850e8a63eb35cd5e4d7f2dabc4ac7b1a",
    "ttl": 0
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─uri string 上传返回的uri
|─url string 上传返回的url

响应示例:

{
    "code":0,
    "data":{
        "url": "http://127.0.01:38080/api/v1/storage/download/Z3NwOi8vd3Vrb25n-90807d4bbd94be83243e649df4a9b3d0.tar",
        "uri": "Z3NwOi8vd3Vrb25n-90807d4bbd94be83243e649df4a9b3d0.tar"
    },
    "msg":"成功"
}

1.9. 更新算法包描述和文件名

描述:文件名与描述不能同时为空 若一方为空,则仅更新非空的一方。

基础信息

Path: /v1/api/algorithm/updatePackDesc

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
algoUuid string 算法包标识
algoDescription string 算法包描述
algoFileName string 算法包文件名

Body示例:

{
    "algoUuid": "AG-8c0bb8d8687a49bab5a2",
    "algoFileName": "EBG%E5%8F%91%E5%B8%83%E7%89%88%E6%9C%AC%2F%E5%B9%BB%E6%96%B9%2Frelease%E7%89%88%E6%9C%AC%2FV2.0.0%2F%E7%AE%97%E6%B3%95%E4%BB%93%E5%8C%85NV%2F%E8%AD%A6%E6%88%92%E8%A1%8C%E4%B8%BA%E4%BB%93%2Falgo_out_megalarm-mf-N-person-cu102-t4-act-nmix%405.1.0.tar?OSSAccessKeyId=LTAI5tJR6FrmZm29kqi2RqSa&Expires=1700685702&Signature=liFOI858j%2FNw8calUCIcd7KuFbE%3D",
    "algoDescription": "看手机检测、接打电话、抽烟检测、人员奔跑、摔倒检测、睡岗检测、人员扭打、翻越闸机、人员聚众、人员值岗/离岗-超员、人员值岗/离岗-少员、人员值岗/离岗-离岗2"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述

响应示例:

{
"code": 0,
"msg": "成功"
}

1.10. 判断算法包是否存在

基础信息

Path: /v1/api/algorithm/exists

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
file string base64编码, 必须是512字节的倍数,推荐8M,和algoUrl二选一
algoUrl string 算法包可直接下载url,和file二选一

Body示例:

{
    "file": "c3BlYy..................."
}
或
{
    "algoUrl": "http://mirrors.gdc.megvii.com/EBG%E5%8F%91%E5%B8%83%E7%89%88%E6%9C%AC%2F%E5%B9%BB%E6%96%B9%2Frelease%E7%89%88%E6%9C%AC%2FV2.0.0%Falgo_out_headcount_alarm%402.0.0.tar?OSSAccessKeyId=LTAI5tJR6FrmZm29kqi2RqSa&Expires=1700688810&Signature=K5HGXbGVcfLcqDVpNyAVTotgB68%3D"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─algoUuid string 算法包uuid,如果算法包存在会返回否则为空
|─isExist boolean 是否存在

响应示例:

{
"code": 0,
"msg": "成功"
}

1.11. 查询设备算法占用

基础信息

Path: /v1/api/algorithm/getOccupied

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
deviceUuid string 设备的deviceUuid

Body示例:

{
    "deviceUuid": "DE-c86f53e5f7464203985c2df441e4fbdb"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─total integer 总记录数
|─list object[] list
  |─algoType string 算法包具体类型,同一种算法包对不同的vendor、不同分析源类型均不同
  |─algoVersion string 算法版本
  |─algoName string 算法名称
  |─algoBusinessType string 算法商业化分类 FACE(人脸), STRUCTURE(结构化), ALARM(警戒), SAFETY(安监), MCLZ(明厨亮灶), etc
  |─algoBusinessTypeName string 算法商业化分类描述(简短) 人脸,结构化,警戒,安监,明厨亮灶 etc
  |─ratio double 资源占比,used/total

响应示例:

{
    "code":0,
    "data":{
        "list":[
            {
                "algoBusinessType":"FACE",
                "algoBusinessTypeName":"人脸",
                "algoName":"人脸(高质量)",
                "algoType":"megsdk-faced-video-share",
                "algoVersion":"latest",
                "ratio":0.0
            },
            {
                "algoBusinessType":"ALARM_BEHAVIOR_NV",
                "algoBusinessTypeName":"行为警戒",
                "algoName":"行为警戒",
                "algoType":"megalarm-mf-N-person-cu102-t4-act-nmix",
                "algoVersion":"5.1.0",
                "ratio":4.17
            }
        ],
        "total":2
    },
    "msg":"成功"
}

1.12. 安装算法包到设备进度

基础信息

Path: /v1/api/algorithm/getDeployPackToDeviceProcess

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
deviceUuid string 设备uuid
uploadId string 上传标识

Body示例:

{
    "uploadId": "adafbc67-dec1-4a80-bd4c-129c9a23ff89",
    "deviceUuid": "DE-aeae7752ca4145569f3f047b5bfbdd77"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─uploadId string 上传标识
|─progress integer 上传进度,0-100

响应示例:

{
    "code":0,
    "data":{
        "progress":6,
        "uploadId":""
    },
    "msg":"成功"
}

1.13. 查询设备算法包概览

基础信息

Path: /v1/api/algorithm/getNodes

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
deviceUuid string 设备的deviceUuid
sum boolean 是否合并返回节点.

Body示例:

{
    "deviceUuid": "DE-c86f53e5f7464203985c2df441e4fbdb"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─nodes object[] 算力节点
  |─resources object[] 资源信息
    |─accelerator string GPU型号
    |─total double 所有算法包占用的资源总量
    |─vendor string GPU产商
    |─indexFree indexfreedto 具体卡占用情况
    |─free double 空闲资源量
    |─occupied occupieddto 各算法包占用情况

响应示例:

{
    "code":0,
    "data":{
        "nodes":[
            {
                "resources":[
                    {
                        "accelerator":"2070",
                        "free":0.0,
                        "indexFree":{
                            "0":0,
                            "1":0
                        },
                        "occupied":{
                            "行为警戒":1,
                            "人脸(高质量)":1
                        },
                        "total":2.0,
                        "vendor":"Nvidia"
                    }
                ]
            }
        ]
    },
    "msg":"成功"
}

1.14. 卸载设备算法包

基础信息

Path: /v1/api/algorithm/unInstallPackFromDevice

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
items object[] items
|─deviceUuid string 设备uuid
|─algoUuid string 算法包uuid

Body示例:

{
    "items": [
        {
            "deviceUuid": "DE-83f80ec4974d40c2aca898999be010de",
            "algoUuid": "AG-25c63481c23d4e8295c2"
        }
    ]
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─items object[] items
  |─msg string 错误信息code非0时有意义
  |─deviceUuid string 设备uuid
  |─code integer 0标识成功,非0标识失败
  |─algoUuid string 算法包uuid

响应示例:

{
    "code":0,
    "data":{
        "items":[
            {
                "algoUuid":"AG-25c63481c23d4e8295c2",
                "code":0,
                "deviceUuid":"DE-83f80ec4974d40c2aca898999be010de",
                "msg":""
            }
        ]
    },
    "msg":"成功"
}

1.15. 查询设备算法包算法类型分组(支持离线设备)

基础信息

Path: /v1/api/algorithm/queryAlgosGroupByType

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
deviceUuid string 设备uuid
installed boolean 是否被安装
algoType string 算法包具体类型,同一种算法包对不同的vendor、不同分析源类型均不同
cabinCategory integer - 1: 人脸、结构化算法 - 2: 长尾算法仓

Body示例:

{
    "deviceUuid": "DE-c86f53e5f7464203985c2df441e4fbdb",
    "algoType": "megsdk-faced-capture-share"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─total integer 总记录数
|─list object[] 算法包列表
  |─captureEventMaxNum integer 图片流布控内包含卡片的最大数量
  |─replicas integer 算法包安装的复本数量
  |─algoType string 算法包具体类型,同一种算法包对不同的vendor、不同分析源类型均不同
  |─algoBusinessType string 算法商业化分类 FACE(人脸), STRUCTURE(结构化), ALARM(警戒), SAFETY(安监), MCLZ(明厨亮灶), etc
  |─algoBusinessTypeName string 算法商业化分类描述(简短) 人脸,结构化,警戒,安监,明厨亮灶 etc
  |─algoName string 算法包名称
  |─algoHighLevelType string NORMAL(常规); HIGH(带高阶功能)
  |─videoEventMaxNum integer 视频布控内包含卡片的最大数量
  |─analyzeEventMaxNum integer 图片分析布控内包含卡片的最大数量
  |─version string 当前已安装的算法版本
  |─installedAlgoUuid string 已安装算法的uuid

响应示例:

{
    "code":0,
    "data":{
        "list":[
            {
                "algoBusinessType":"FACE",
                "algoBusinessTypeName":"人脸",
                "algoHighLevelType":"NORMAL",
                "algoName":"人脸(抓拍流)",
                "algoType":"megsdk-faced-capture-share",
                "analyzeEventMaxNum":0,
                "captureEventMaxNum":1,
                "installedAlgoUuid":"",
                "replicas":0,
                "version":"",
                "videoEventMaxNum":0
            }
        ],
        "total":1
    },
    "msg":"成功"
}

1.16. 查询当前的算法包列表

基础信息

Path: /v1/api/algorithm/get

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
algoDeviceModels integer[] 适配设备型号,通过《获取字典信息》接口获得
algoUuid string 算法包uuid
algoType string 算法类型
algoDescription string 算法描述,支持模糊查询
algoName string 算法名称,支持模糊查询
deviceUuid string 适配设备uuid,不为空时只查询此设备型号及芯片适配的算法包
algoUniqueType string 同一类算法包,根据algoType,algoBizType,Accelerator,deviceModel生成的唯一值
pageSize integer 分页大小
algoBusinessType string 算法包类型,同类型算法包不同芯片该字段不同,当algotype不为空时,此字段必填
isOnlyDefault boolean 是否仅获取默认版本
pageNum integer 当前页码

Body示例:

{
    "pageNum": 1,
    "algoName": "行为",
    "algoDeviceModels": [
        18
    ],
    "algoUuid":"AG-8c0bb8d8687a49bab5a2",
    "algoType":"megalarm-mf-N-person-cu102-t4-act-nmix",
    "algoBusinessType":"ALARM_BEHAVIOR_NV",
    "pageSize": 20
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─total integer 总数
|─pageSize integer 分页大小
|─list object[] list
  |─metaData object metaData
    |─cards object[] 算法卡片
      |─algoCardTypeName string 算法卡片的名称,显示用
      |─algoCardType string 算法卡片的类型
      |─algoCardUuid string 算法卡片uuid
    |─deviceModels integer[] 适配设备型号,通过《获取字典信息》接口获得
    |─authLimits string 授权维度相关信息,JSON格式
    |─algoType string 算法包具体类型,同一种算法包对不同的vendor、不同分析源类型均不同
    |─algoVersion string 算法包版本
    |─description string 算法包描述
    |─algoName string 算法包名称
    |─algoResolution object[] GPU信息
      |─accelerator string GPU型号: 如2070,T4,AX630等
      |─vendor string GPU产商: NVIDIA, AXERA
      |─quota double 算法运行时需要占用的GPU个数
      |─streamVideoQuota integer 支持的视频分析路数
      |─streamCaptureQuota integer 支持的图片分析路数
      |─resolution string 算法能力说明,对不同显卡类型可配置不同 PIXELS_200W
      |─analyzeQuota integer 支持的图片静态分析QPS
  |─creator string 创建的用户
  |─isDefault boolean 是否默认版本
  |─fileName string 算法包名字
  |─algoUuid string 算法包uuid
  |─algoUniqueType string 同一类算法包,根据algoType,algoBizType,Accelerator,deviceModel生成的唯一值
  |─createTime string 算法包上传时间,Unix 时间戳,单位是毫秒
  |─algoBusinessType string 算法商业化分类 FACE(人脸), STRUCTURE(结构化), ALARM(警戒), SAFETY(安监), MCLZ(明厨亮灶), etc
  |─algoBusinessTypeName string 算法商业化分类描述(简短) 人脸,结构化,警戒,安监,明厨亮灶 etc
  |─algoHighLevelType string NORMAL(常规); HIGH(带高阶功能)
  |─source string 算法包来源
  |─uri string 算法包在存储服务的地址uri,可能为空
  |─url string 算法包url地址
|─pageNum integer 当前页码

响应示例:

{
    "code":0,
    "data":{
        "list":[
            {
                "algoBusinessType":"ALARM_BEHAVIOR_NV",
                "algoBusinessTypeName":"行为警戒",
                "algoHighLevelType":"NORMAL",
                "algoUuid":"AG-8c0bb8d8687a49bab5a2",
                "createTime":"1700618408",
                "creator":"openapi",
                "fileName":"EBG%E5%8F%91%E5%B8%83%E7%89%88%E6%9C%AC%2F%E5%B9%BB%E6%96%B9%2Frelease%E7%89%88%E6%9C%AC%2FV2.0.0%2F%E7%AE%97%E6%B3%95%E4%BB%93%E5%8C%85NV%2F%E8%AD%A6%E6%88%92%E8%A1%8C%E4%B8%BA%E4%BB%93%2Falgo_out_megalarm-mf-N-person-cu102-t4-act-nmix%405.1.0.tar?OSSAccessKeyId=LTAI5tJR6FrmZm29kqi2RqSa&Expires=1700685702&Signature=liFOI858j%2FNw8calUCIcd7KuFbE%3D",
                "isDefault":true,
                "metaData":{
                    "algoName":"行为警戒",
                    "algoResolution":[
                        {
                            "accelerator":"2070",
                            "analyzeQuota":0,
                            "quota":0.5,
                            "resolution":"PIXELS_200W",
                            "streamCaptureQuota":0,
                            "streamVideoQuota":12,
                            "vendor":"NVIDIA"
                        },.....
                    ],
                    "algoType":"megalarm-mf-N-person-cu102-t4-act-nmix",
                    "algoVersion":"5.1.0",
                    "authLimits":"null",
                    "cards":[
                        {
                            "algoCardType":"FALL",
                            "algoCardTypeName":"摔倒检测",
                            "algoCardUuid":"AC-0b493897450a4c52bc83"
                        },
                        {
                            "algoCardType":"FIGHT",
                            "algoCardTypeName":"人员扭打",
                            "algoCardUuid":"AC-5c55fde0e74d44dd98b4"
                        },......
                    ],
                    "description":"看手机检测、接打电话、抽烟检测、人员奔跑、摔倒检测、睡岗检测、人员扭打、翻越闸机、人员聚众、人员值岗/离岗-超员、人员值岗/离岗-少员、人员值岗/离岗-离岗",
                    "deviceModels":[
                        18
                    ]
                },
                "source":"MANUAL",
                "uri":"Z3NwOi8vd3Vrb25n-02d97ce8716e91ab4e9f3034bc1884f2.tar",
                "url":"http://127.0.0.2:38080/api/v1/storage/download/Z3NwOi8vd3Vrb25n-02d97ce8716e91ab4e9f3034bc1884f2.tar"
            }
        ],
        "pageNum":1,
        "pageSize":20,
        "total":1
    },
    "msg":"成功"
}

1.17. 获取转存进度

基础信息

Path: /v1/api/storage/getUploadProcess

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
uploadId string 分片任务id

Body示例:

{
    "uploadId": "977a150f-44c0-4081-970b-a06950e1f926"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─uploadProgress integer 上传进度,小于0表示出错,100时,返回url等信息
|─uri string uri,base64编码串,解码后,形如gsp://{bucket}/{objectId}
|─url string url,文件URL全路径
|─md5 string 文件md5

响应示例:

{
    "code":0,
    "data":{
        "md5":"",
        "uploadProgress":1,
        "uri":"",
        "url":""
    },
    "msg":"成功"
}

1.18. 分片上传-上传每片文件

基础信息

Path: /v1/api/storage/uploadChunk

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type multipart/form-data

Body

名称 类型 必须 默认值 备注
file string form-data文件流,分片不能少于5MB
uploadId string 分片任务id,exists接口返回的uploadId
chunkId string 分片id,注意:从1开始

Body示例:

{
    "file": "c3BlYy...................",
    "chunkId": "14",
    "uploadId": "98ba3370-4da9-43e7-8e97-564ce0418dd5"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述

响应示例:

{
"code": 0,
"msg": "成功"
}

1.19. 删除算法包

基础信息

Path: /v1/api/algorithm/deletePackage

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
algoUuid string 算法包uuid,调用算法包上传或列表接口时可获得,二选一
algoUniqueType string 同类算法包,根据algoType,algoBizType,Accelerator,deviceModel生成的唯一值,同类算法包具有唯一性 ,二选一

Body示例:

{
    "algoUniqueType": "d67a238c1edbac61ac535be792201699"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述

响应示例:

{
"code": 0,
"msg": "成功"
}

1.20. 获取字典信息

基础信息

Path: /v1/api/resource/dictionary

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─dictionaries object[] 字典列表
  |─name string 字典名
  |─options object[] 字典选项
    |─label string 选项名
    |─value valuedto 选项值,仅支持数字或者字符串
  |─key string 字典key

响应示例:

{
    "code":0,
    "data":{
        "dictionaries":[
            {
                "key":"deviceModel",
                "name":"设备型号",
                "options":[
                    {
                        "label":"MegEye-W5K-I8",
                        "value":1
                    },.....
                    {
                        "label":"PTLCube-B4H04-311",
                        "value":98
                    },
                    {
                        "label":"PTLCube-B4H08-311",
                        "value":99
                    }
                ]
            }
        ]
    },
    "msg":"成功"
}

1.21. 安装算法包到设备

基础信息

Path: /v1/api/algorithm/DeployPackToDevice

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
items object[] items
|─deviceUuid string 设备标识
|─algoUuid string 算法包标识
|─replicas integer 算法包安装的复本数量
|─accelerator string GPU型号: 如2070,T4,AX630等,当算法包适配多个芯片且设备中也存在多个芯片类型时填写(B4H设备无需填写,core跟幻方设备必传)。可从查询设备算法包可安装的数量返回结果中获取

Body示例:

{
    "items": [
        {
            "algoUuid": "AG-8c0bb8d8687a49bab5a2",
            "deviceUuid": "DE-c86f53e5f7464203985c2df441e4fbdb",
            "replicas": 2,
            "accelerator":"2070"
        }
    ]
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─items object[] items
  |─msg string 错误信息code非0时有意义
  |─deviceUuid string 设备标识
  |─code integer 0标识成功,非0标识失败
  |─algoUuid string 算法包标识
  |─uploadId string 上传ID

响应示例:

{
    "code":0,
    "data":{
        "items":[
            {
                "algoUuid":"AG-8c0bb8d8687a49bab5a2",
                "code":0,
                "deviceUuid":"DE-c86f53e5f7464203985c2df441e4fbdb",
                "msg":"",
                "uploadId":""
            }
        ]
    },
    "msg":"成功"
}

1.22. 上传算法包

基础信息

Path: /v1/api/algorithm/uploadPackage

Method: POST

请求参数

Headers

参数名称 参数值 是否必须 备注
Content-Type application/json

Body

名称 类型 必须 默认值 备注
fileName string 算法包文件名
description string 算法包描述
fileMd5 string 算法包文件MD5
uri string 算法包在存储服务的地址uri
url string 算法包url地址

Body示例:

{
    "url": "http://127.0.01:38080/api/v1/storage/download/Z3NwOi8vd3Vrb25n-90807d4bbd94be83243e649df4a9b3d0.tar",
    "uri": "Z3NwOi8vd3Vrb25n-90807d4bbd94be83243e649df4a9b3d0.tar",
    "fileName": "algo_out_alert_alarm-thin@2.0.1.tar",
    "fileMd5": "850e8a63eb35cd5e4d7f2dabc4ac7b1a",
    "description": "人员值岗/离岗-离岗、人员扭打、电动车入梯、离开检测、车辆禁停、车辆逆行、人员值岗/离岗-超员、人员值岗/离岗-少员、人员聚众、抽烟检测、人员奔跑、接打电话、摔倒检测、看手机检测、睡岗检测、持械检测、防碰撞预警、入侵检测、越界检测、翻墙检测、攀爬检测、人员徘徊"
}

返回数据

Headers:

名称 必须 备注
content-type application/json;charset=UTF-8

Body

名称 类型 必须 默认值 备注
code integer 状态码
msg string 状态描述
data object 具体的返回值
|─algoUuid string 算法包标识

响应示例:

{
    "code":0,
    "data":{
        "algoUuid":"AG-b1425fc2123a42998c22"
    },
    "msg":"成功"
}

results matching ""

    No results matching ""