AI视觉平台openapi-V1 接口文档

概述

这里是关于AI视觉平台API接口说明。

更新日志

日期 更新内容 版本 修订人
20250828 创建 1.0 杨帆
20250828 去鸟类识别入参lang 1.0.1 杨帆
20250904 鸟类识别接口增加反参 detScore检测置信度;入参增加detConf 1.0.2 杨帆
20250916 /api/rec-everything 增加familyId入参;增加人脸库相关接口 1.0.3 杨帆
20250923 新增宠物识别接口POST 1.1.0 杨帆
20250929 新增 视频描述接口 1.2.0 杨帆
20251030 修改鸟类和野生动物的接口 1.2.1 杨再旺

接口地址

请求基础

头部信息

所有请求都需要在HTTP头部包含以下信息:

参数名 必选 类型 说明
Content-Type string 应设置为application/json
token string 用户认证令牌

错误码

错误码 说明
200 请求成功
400 请求参数错误
401 未授权,请传递正确的身份验证信息
500 服务器内部错误

接口列表

万物识别 [POST]

URL

/api/rec-everything

请求参数

字段 类型 必填 说明
sn string 请求序列号,最长 50 字符,格式 :${uuid}_yyyyMMddHHmmss,例如6615572811fc410c9c68170386961fcd_20260310060250
images.url string 图片网络地址(jpeg/jpg,≤2M)
images.bytes string 图片 Base64 编码(URL 安全),与 url 二选一
images.id string 图片唯一标识,最长 32 字符
images.originId string 设备原始 ID
images.fino boolean 是否为四张图拼接图像
images.type array 返回类型:["tags"]["describe"] 或两者
images.familyId string 传入此字段开启人脸库比对(字段为通过人脸库API录入人脸的familyId),比中人脸,则将人脸库中人脸对应信息传入理解引擎中
images.lang string 返回结果语言(如 zh, en
minObjectConfidence number 最小识别置信度(0-100),默认 50

⚠️ urlbytes 必须有一个非空。

请求示例

{ "sn": "6615572811fc410c9c68170386961fcd_20260310060250", "images": [ { "url": "https://example.com/image.jpg", "bytes": "base64_encoded_string", "id": "10000", "originId": "", "fino": false, "type": ["tags", "describe"], "lang": "zh", "familyId":"10001" } ], "minObjectConfidence": 50 }

响应数据

字段 类型 说明
sn string 客户端传入的请求序列号
results array 识别结果数组,每项对应一张图片
results.imageId string 对应请求中的图片 id
results.error string 错误信息(如下载失败、解析失败),无错为空
results.tags array 识别出的物体标签列表
results.tags.name string 物体名称(如 "person"、"car")
results.tags.confidence number 识别置信度(0-100)
results.describe string 图像内容描述文本
results.downloadCostMs number 图片下载耗时(毫秒)
results.engineCostMs number 算法处理耗时(毫秒)
costMs number 服务器总耗时(毫秒)
serverSn string 服务端生成的流水号,用于日志追踪
// 成功 { "sn": "123456", "results": [ { "imageId": "10000", "error": "", "tags": [ { "name": "person", "confidence": 85 }, { "name": "tree", "confidence": 76 } ], "describe": "一个人站在公园里,周围有树木和草地。", "downloadCostMs": 120, "engineCostMs": 180 } ], "costMs": 300, "serverSn": "srv_12345" } // 失败 { "status": 400, "message": "请求参数错误" }

万物识别 -视频[POST]

URL

/api/rec-everything-video

请求参数

字段 类型 必填 说明
sn string 请求序列号,最长 50 字符,格式 :${uuid}_yyyyMMddHHmmss,例如6615572811fc410c9c68170386961fcd_20260310060250
videos.url string 视频网络地址(≤10M)
videos.bytes string 图片 Base64 编码(URL 安全),与 url 二选一
videos.id string 图片唯一标识,最长 32 字符
videos.originId string 设备原始 ID
videos.type array 返回类型:["tags"]["describe"] 或两者
videos.lang string 返回结果语言(如 zh, en
minObjectConfidence number 最小识别置信度(0-100),默认 50
combine number 默认0,0:不合并 1:合并

⚠️ urlbytes 必须有一个非空。

请求示例

{ "sn": "123456", "videos": [ { "url": "https://example.com/video.mp4", "bytes": "base64_encoded_string", "id": "10000", "originId": "", "type": ["tags", "describe"], "lang": "zh" } ], "minObjectConfidence": 50, "combine": 1 }

响应数据

字段 类型 说明
sn string 客户端传入的请求序列号
results array 识别结果数组,每项对应一份视频
results.id string 对应请求中的视频 id
results.error string 错误信息(如下载失败、解析失败),无错为空
results.tags array 识别出的物体标签列表
results.tags.name string 物体名称(如 "person"、"car")
results.tags.confidence number 识别置信度(0-100)
results.describe string 图像内容描述文本
results.downloadCostMs number 图片下载耗时(毫秒)
results.engineCostMs number 算法处理耗时(毫秒)
costMs number 服务器总耗时(毫秒)
serverSn string 服务端生成的流水号,用于日志追踪
// 成功 { "sn": "123456", "results": [ { "id": "10000", "error": "", "tags": [ { "name": "person", "confidence": 85 }, { "name": "tree", "confidence": 76 } ], "describe": "一个人站在公园里,周围有树木和草地。", "downloadCostMs": 120, "engineCostMs": 180 } ], "costMs": 300, "serverSn": "srv_12345" } // 失败 { "status": 400, "message": "请求参数错误" }

鸟类识别 [POST]

URL

/api/bird_rec

请求参数

字段 类型 必填 说明
sn string 请求序列号,最长 50 字符,格式 :${uuid}_yyyyMMddHHmmss,例如6615572811fc410c9c68170386961fcd_20260310060250
images.id string 图片 ID,用于匹配结果
images.bytes string 图⽚的base64url字符串,⽂件⼤⼩不超过2M
images.url string 图⽚⽂件地址,⽂件格式⽀持jpeg,jpg,⽂件⼤⼩不超过2M
images.originId string 设备原始 ID
birdDetConf float 鸟类置信度阈值,低于传入值的结果抛弃,默认值25
squDetConf float 松鼠置信度阈值,低于传入值的结果抛弃,默认值25
lang string 中⽂:zh, 英⽂: en, 默认en

⚠️ urlbytes 必须有一个非空。

请求示例

{ "sn": "12345", "lang": "en", "images": [ { "id": "10000", "bytes": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJ...", "originId": "", "url": "" } ], "birdDetConf": 25, "squDetConf": 25 }

响应数据

字段 类型 说明
sn string 客户端传入的请求序列号
results array 识别结果数组
results.imageId string 对应请求中的图片 id
results.error string 错误信息,无错为空
results.category string 识别结果:
- 具体鸟类名称(如 "Magpie")
- NoBirds:未检测到鸟
- UnknownBirds:检测到鸟但无法识别
results.category object 根据请求参数 lang 返回对应的释义
results.detScore float 检测置信度(0-100)
results.downloadCostMs number 图片处理下载耗时(毫秒)
results.engineCostMs number 算法引擎处理耗时(毫秒)
costMs number 服务器总耗时(毫秒)
serverSn string 服务端流水号

响应示例

// 成功 { "sn": "123456", "results": [ { "imageId": "10000", "error": "", "category": { "en": "bird", "zh": "鸟" }, "detScore": 97.62, "downloadCostMs": 90, "engineCostMs": 150 } ], "costMs": 240, "serverSn": "srv_0001" } // 失败 { "status": 400, "message": "请求参数错误" }

野生动物识别 [POST]

URL

/api/wild_animals_rec

请求参数

字段 类型 必填 说明
sn string 请求序列号,最长 50 字符,格式 :${uuid}_yyyyMMddHHmmss,例如6615572811fc410c9c68170386961fcd_20260310060250
lang string 输出语言(zh, en
images.id string 图片 ID,用于匹配结果
images.bytes string 图⽚的base64url字符串,⽂件⼤⼩不超过2M
images.url string 图⽚⽂件地址,⽂件格式⽀持jpeg,jpg,⽂件⼤⼩不超过2M
animalDetConf float 动物置信度阈值,低于传入值的结果抛弃,默认值20
personDetConf float 人置信度阈值,低于传入值的结果抛弃,默认值50

⚠️ urlbytes 必须有一个非空。

请求示例

{ "sn": "wild_req_001", "lang": "zh", "animalDetConf": 20, "personDetConf": 50, "images": [ { "url": "https://example.com/wildlife.jpg", "bytes": "base64_encoded_string", "id": "img_wild_001" } ] }

响应数据

字段 类型 说明
sn string 客户端传入的请求序列号
results array 识别结果数组
results.imageId string 对应请求中的图片 id
results.error string 错误信息,无错为空
results.category string 识别结果:
- 具体动物名称(如 "Deer"、"Bear")
- NoWildAnimals:未检测到野生动物
- UnknownWildAnimals:检测到动物但无法识别
results.category dict 类别信息,例如:
- {"la": "NoWildAnimals","zh": "未检测到野生动物"}
- {"la": "NoWildAnimals","en": "NoWildAnimals"}
- {"la": "UnknownWildAnimals","zh": "未知品种野生动物"}
- {"la": "UnknownWildAnimals","en": "UnknownWildAnimals"}
- {"la": "Person","zh": "人"}
- {"la": "Person","en": "Person"}
- {"la": "Antilocapra americana","zh": "叉角羚"}
results.detScore float 检测置信度(0-100)
results.categoryScore float 类别置信度(0-100)
results.downloadCostMs number 图片处理下载耗时(毫秒)
results.engineCostMs number 算法引擎处理耗时(毫秒)
costMs number 服务器总耗时(毫秒)
serverSn string 服务端流水号

响应示例

// 成功 { "sn": "wild_req_001", "results":[ { "imageId": "test2", "error": "", "category": { "la": "Antilocapra americana", "zh": "叉角羚" }, "detScore": 95.9, "categoryScore": 93.83, "downloadCostMs": 2, "engineCostMs": 29 } ], "costMs": 270, "serverSn": "srv_wild_901" } // 失败 { "status": 400, "message": "请求参数错误" }

宠物识别 [POST]

URL

/api/detect-pet-action

请求参数

字段 类型 必填 说明
sn string 请求序列号,最长 50 字符,格式 :${uuid}_yyyyMMddHHmmss,例如6615572811fc410c9c68170386961fcd_20260310060250
originId string 摄像头id
lang string 输出语言(zh, en),默认en
videos.id string 视频ID,响应时以此为对应依据,最长32个字符
videos.url string 视频文件地址,文件格式支持MPEG2-TS,文件大小不超过20M
notifyUrl string 通知URL, 若存在则异步任务,否则同步

请求示例

{ "sn": "123456", "originId": "abc123", "lang": "en", "videos": [ { "url": "http://xxxx", "id": "123456" } ], "notifyUrl": "http://xx" }

响应数据

字段 类型 说明
sn string 应用传入的服务序列号,如果是异步模式下,响应只包含此字段
results array 识别结果数组
results.videoId string 应用传入的视频ID
results.error string 出错信息,例如视频解码失败,视频文件下载失败等等
results.objects array 在视频中出现的宠物数组
results.objects.name string 宠物的分类名称,目前支持cat、dog、animal(针对无法判断是猫是狗的情况)
results.actions array 在视频中出现的宠物数组
results.actions.name array 动作分类名称,目前支持 lie、eat、jump、sniff、sleep、urinate、defecate
results.description number 使用lang字段指定的语言进行动作描述
results.downloadCostMs number 视频处理下载耗时(毫秒)
results.engineCostMs number 算法引擎处理耗时(毫秒)
costMs number 服务器总耗时(毫秒)
serverSn string 服务端流水号

响应示例

// 成功 { "sn": "xxx", "results": [ { "videoId": "", "error": "", "objects": [ { "name": "cat" } ], "actions": [ { "name": "lie" } ], "description": "a cat is lying in a cat bed.", "downloadCostMs": 100, "engineCostMs": 100 } ], "costMs": 300, "serverSn": "xxx" } // 失败 { "status": 400, "message": "请求参数错误" }

异步模式的结果推送

应用端在接收到此响应后,服务端会在未来一段时间内以sn为关联键将结果(与同步模式响应相同)推送(POST)到notifyUrl指定的地址, 该地址应响应200代码,服务端将最多尝试3次推送,间隔10秒,如果失败则将结果丢弃

视频描述 [POST]

URL

/api/video_describe

请求参数

字段 类型 必填 说明
sn string 请求序列号,最长 50 字符,格式 :${uuid}_yyyyMMddHHmmss,例如6615572811fc410c9c68170386961fcd_20260310060250
lang string 输出语言(zh, en),默认en
video.id string 视频ID,响应时以此为对应依据,最长32个字符
video.url string 视频文件地址,文件格式支持MPEG2-TS,文件大小不超过10M
video.bytes string 视频文件base64url字符串,文件大小不超过10M

请求示例

{ "sn": "12345", "lang": "en", "video": { "id": "1234567", "url": "https://example.com/wildlife.jpg", "bytes": "base64_encoded_string" } }

响应数据

字段 类型 说明
sn string 应用传入的服务序列号,如果是异步模式下,响应只包含此字段
id string 应用传入的视频ID
error string 出错信息,例如视频解码失败,视频文件下载失败等等
results number 描述内容
downloadCostMs number 视频处理下载耗时(毫秒)
engineCostMs number 算法引擎处理耗时(毫秒)
costMs number 服务器总耗时(毫秒)
serverSn string 服务端流水号

响应示例

// 成功 { "id" : "123456", "results" : "画面中未出现人物,因此无法提供关于人物穿着、动作、意图及互动情况的描述。 \n**场景描述**:画面呈现的是一个室内空间(可能为等候区、休息区或会议室),背景为大面积玻璃窗,窗外可见高楼建筑和少量绿植。室内靠窗位置摆放有黑色座椅,座椅旁似乎有垂挂的装饰物(如珠链),前景中隐约可见深色的桌面边缘。整体画面呈现重复排列的视觉效果,可能是监控画面的多帧连续截图拼接。", "inputToken" : 1682, "outputToken" : 111, "error" : " ", "sn" : "12345678", "serverSn" : "beijing-volcengine", "costMs" : 1002 } // 失败 { "status": 400, "message": "请求参数错误" }

chat大模型 [POST]

URL

/api/chat_completion

头部信息

所有请求都需要在HTTP头部包含以下信息:

参数名 必选 类型 说明
Content-Type string 应设置为application/json
Authorization string 用户认证令牌当前固定传 Bearer 49e5rdc8-8ws8-4rbf-agt3-88077x7s6232

请求参数

字段 类型 必填 描述
model string 要调用的模型名称(例如 "ivsign-l")
messages array of objects 是交互消息列表, 支持 “user/system” 角色发起
messages[].role string 消息角色,支持 "user/system"
messages[].content array 内容数组,可混合文本、图片、视频
content[].type string 内容类型,支持 "text"、"image_url"、"video_url"
content[].text string 当 type==“text” 时 必填 文本输入内容
content[].image_url.url string 当 type==“image_url” 时 必填 图片资源链接或 base64 data URL 最小1kb,最大2M
content[].video_url.url string 当 type==“video_url” 时 必填 视频资源链接或 base64 data URL 最小1kb,最大5M
max_tokens integer 模型生成的最大 token 数
temperature float 生成随机性控制
top_p float nucleus sampling 的累积分布阈值
stop string 或 array 停止生成的令牌或令牌组
top_k integer top-k 采样限制
min_p float 最低概率采样限制

注意

文本内容必须上传,图片和视频不能同时上传,并且一次只能传一份图片或者视频。model当前使用ivsign-l

请求示例

{ "model": "ivsign-l", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "<用户文本输入>" }, { "type": "image_url", "image_url": { "url": "<图片1的 URL 或 base64 data URL>" } }, { "type": "video_url", "video_url": { "url": "<视频的 URL 或 base64 data URL>" } } ] } ], "max_tokens": 512, "temperature": 0.3, "top_p": 0.9, "stop": null, "top_k": 0, "min_p": 0 }

响应数据

字段 类型 描述
id string 本次生成的唯一标识
object string 固定值 "chat.completion"
created integer Unix 时间戳,表示生成完成的时间
model string 被调用的模型名称(例如 "ivsign-l")
error string 异常信息
choices array 返回的生成选项列表,通常包含一个元素
choices[].index integer 该选项的索引(0 表示第一个)
choices[].message.role string 消息角色,此处为 "assistant"
choices[].message.content string 模型的回复文本
choices[].finish_reason string 生成结束原因,如 "stop"、"len" 等

响应示例

// 成功 { "status": "200", "message": "SUCCESSFUL", "data": { "id": "chatcmpl_2225d86c", "object": "chat.completion", "created": 1762584866, "dateTime": "2025-11-08 14:54:26", "model": "ivsign-l", "error": null, "choices": [ { "index": 0, "message": { "role": "assistant", "content": "This is an image of a Blue Jay, a bird known for its vibrant blue and white plumage" }, "finish_reason": "stop" } ] } } // 失败 { "status": "400", "message": "XXX" }

人脸库接口

保存/更新家庭成员信息 [POST]

URL

api/face/save

请求参数

参数名 必选 类型 说明
memberId string 家庭成员ID(更新时用于确认成员信息,家庭内唯一)
memberName string 家庭成员名称
familyId string 所属家庭ID,用于限制人脸识别比对范围(更新时用于确认成员信息)
faceImage String 人脸图像Base64

请求示例

{ "memberId":"10001", "memberName":"男主人", "familyId":"100001", "faceImage":"/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAA...." }

响应数据

// 成功 { "status": 200, "message": "success" } // 失败 { "status": 400, "message": "请求参数错误" } { "status": 402, "message": "未检测到人脸" }

查询家庭成员信息 [POST]

URL

api/face/query

请求参数

参数名 必选 类型 说明
familyId string 所属家庭ID,用于限制人脸识别比对范围(更新时用于确认成员信息)

请求示例

{ "familyId":"100001" }

响应数据

// 成功 { "status": 200, "message": "success", "members": [ { "memberId": "10001", "memberName": "男主人", "familyId": "100001", "faceImage": "/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAA...." }, { "memberId": "10002", "memberName": "女主人", "familyId": "100001", "faceImage": "/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAA...." } ] } // 失败 { "status": 400, "message": "请求参数错误" }

删除家庭成员信息 [POST]

URL

api/face/delete

请求参数

参数名 必选 类型 说明
memberId string 用户ID
familyId string 所属家庭ID

请求示例

{ "memberId":"10001", "familyId":"100001" }

响应数据

// 成功 { "status": 200, "message": "success" } // 失败 { "status": 400, "message": "请求参数错误" }