一、接口说明
调⽤URL、校验Bearer Token、传参appId与data选填示例请跟商务确认,调用连接的idleconntimeout请设置低于100s。
二、同步接口
接口名:/audit/video
2.1 请求参数
| 参数名称 | 类型 | 是否必须 | 示例 | 描述 | 规范 |
|---|---|---|---|---|---|
| custID | string | 是 | test | 客户ID | 由缔零内部平台注册提供 |
| appID | string | 是 | 和缔零确认 | 业务ID,用于区分不同的业务类型,如:直播切片,视频评论,帖子视频等等 | 和缔零沟通确认 |
| appType | string | 是 | VIDEO_GEN | 内容类型,用于精细化场景策略选择。选项如下: - VIDEO_GEN:General Video 通用视频类型 - 入参内容中为视频URL或视频URL列表 | |
| dataID | string | 是 | 数据ID【重要】,用于回调结果、重试、去重和定位日志等,需保证指定条件下唯一,最好能全局唯一。 注:dataID由请求方生成,可复用业务方的内容ID,以省去额外的存储和映射**,建议使用例如uuid+毫秒时间戳保证ID唯一** | ||
| modType | string | 是 | DEFAULT | 模型类型,由默认的模型集合,以及自定义等几种类型,如: - DEFAULT:默认的常用国内安全分类模型组合 - PRODUCT:默认的电商产品分类模型组合 - CUSTOM:自定义分类模型集 | 和缔零沟通确认 |
| custModSet | List<string> | 否 | 自定义选择模型列表,可多选。仅在modType="CUSTOM"时有效 - "POLITICS" - "PORN" - "AD" | 和缔零沟通确认 | |
| version | string | 是 | 1.1 | 返回结果协议版本,不传默认1.0,具体结构见2.2 | |
| poster | poste****r | 否 | 发布者相关的信息,结构见:poster结构 | ||
| data | data | 是 | 数据信息,核心检测内容,结构见:data结构 |
poster结构
| 参数名称 | 类型 | 是否必须 | 示例 | 描述 |
|---|---|---|---|---|
| userID | string | 是 | 发帖用户id | |
| userName | string | 否 | 发帖用户昵称 | |
| userDesc | string | 否 | 发帖用户签名 | |
| ip | string | 否 | 发帖用户ip | |
| deviceID | string | 否 | 发帖用户设备id | |
| extraInfo | dict | 否 | 其他沟通后传输信息 |
data结构
| 参数名称 | 类型 | 是否必须 | 示例 | 描述 |
|---|---|---|---|---|
| auditInfoList | list<audit_info> | 是 | 检测的核心内容,结构见:audit_info结构 | |
| rootPostInfo | dict | 否 | 评论对应主贴内容,只有检测内容是评论的时候存在 具体如下 | |
| - rootPostTxtInfo | audit_info | 否 | 主贴的核心内容,如评论对应的主贴 | |
| - rootPostPoster | poster | 否 | 主贴的发布用户,如评论对应的主贴的作者信息 | |
| parentCmtInfo | dict | 父评论信息 | ||
| - parentCmtTextInfo | audit_info | 否 | 发布内容对应的父评论信息 | |
| - parentCmtPoster | poster | 否 | 发布内容对应的父评论作者信息 | |
| quotedCmtInfo | dict | 否 | 引用内容评论内容,具体如下 | |
| - quotedCmtTextInfo | audit_info | 否 | 引用评论内容信息 | |
| - quotedCmtPoster | poster | 否 | 引用评论的作者信息 |
audit_info结构(默认结构,字段需要选择性根据appType进行传递)
| 参数名称 | 类型 | 是否必须 | 示例 | 描述 |
|---|---|---|---|---|
| num | int | 否 | 序号,代表位置 | |
| title | string | 否 | 请求文本标题,注:当检测内容为帖子时存在 | |
| txt | string | 否 | 请求文本内容 | |
| txtList | list<string> | 否 | ["待审文本1", "待审文本2", "待审文本3"] | 请求文本内容list |
| imageUrl | string | 否 | 请求图片url,包含url类型图片时可传 | |
| imageBase64 | string | 否 | 请求图片base64,包含base64类型图片时可传 | |
| imageList | list<dict> | 否 | [ { "type": "img/png", "url": "https://img.xxxx.com/aaaa.png" },{ "type": "img/base64", "imageBase64": "xxxxxxxxx" } ] | 请求图片list 注意:这里可以支持单图,也支持多图,但是最终是合并结果。可以理解为这是一个帖子的一次检测过程 |
| videoUrl | string | 否 | 请求视频url,包含视频时可传 | |
| videoUrlList | list<dict> | 否 | [ { "type": "video/mp4", "url": "https://mp4.xxxx.com/aaaa.mp4" } ] | |
| audioUrl | string | 否 | 请求音频url,包含音频时候可传 | |
| audioUrlList | list<dict> | 否 | [ { "type": "audio/mp3", "url": "https://mp3.xxxx.com/aaaa.mp3" } ] | |
| docUrl | string | 否 | 请求文档url,包含文档时候可传(类型支持doc、txt、pdf、md) | |
| docUrlList | list<dict> | 否 | [ { "type": "doc/md", "url": "https://md.xxxx.com/aaaa.md" } ] | |
| postTime | int | 否 | 文本发布时间 | |
| lastEditTime | int | 否 | 文本修改时间 | |
| extraInfo | dict | 否 | 其他沟通传递信息 |
2.2 返回结构
2.2.1 v1.0参数说明:
主返回结构表:
| 参数名称 | 类型 | 是否必须 | 示例 | 描述 |
|---|---|---|---|---|
| ver | string | 是 | 1.1 | 接口版本号 |
| status | int | 是 | 200 | 请求状态码 |
| msg | string | 否 | — | 附加提示信息或错误描述 |
| appID | string | 是 | txt | 应用或业务标识类型 |
| dataID | string | 是 | <数据唯一ID> | 数据唯一标识 ID |
| requestID | string | 是 | dl_xxxx | 本次请求唯一 Trace ID |
| results | results | 是 | — | 审核结果详情,见 results 结构 |
results 结构表:
| 参数名称 | 类型 | 是否必须 | 示例 | 描述 |
|---|---|---|---|---|
| riskLevel | string | 是 | REJECT | 风险判定等级:REJECT / PASS / REVIEW,分别对应违规、不违规、存疑 |
| desc | string | 否 | 违规原因 | 主违规的中文描述 |
| labels | list<dict> | 否 | [{"涉黄标签1级-涉黄标签2级-涉黄标签3级": 1.0}] | 命中的违规标签及对应的置信度分数键值对。 |
2.2.2 v1.0版本接口返回不违规示例
{
"ver": "1.0",
"status": 200,
"msg": "",
"appID": "video",
"dataID": "<数据唯一ID>",
"requestID": "dl_xxxx",
"results": {
"riskLevel": "PASS",
"desc": "",
"labels": []
}
}
2.2.3 v1.0版本接口返回违规示例
{
"ver": "1.0",
"status": 200,
"msg": "",
"appID": "video",
"dataID": "<数据唯一ID>",
"requestID": "dl_xxxx",
"results": {
"riskLevel": "REJECT",
"desc": "",
"labels": [
"涉黄标签1级-涉黄标签2级-涉黄标签3级": 1.0,
"涉政标签1级-涉政标签2级-涉政标签3级": 0.5
]
}
}
2.2.4 v1.1参数说明:
主返回结构表:
| 参数名称 | 类型 | 是否必须 | 示例 | 描述 |
|---|---|---|---|---|
| ver | string | 是 | 1.1 | 接口版本号 |
| status | int | 是 | 200 | 请求状态码 |
| msg | string | 否 | — | 附加提示信息或错误描述 |
| appID | string | 是 | txt | 应用或业务标识类型 |
| dataID | string | 是 | <数据唯一ID> | 数据唯一标识 ID |
| requestID | string | 是 | dl_xxxx | 本次请求唯一 Trace ID |
| results | results | 是 | — | 审核结果详情,见 results 结构 |
results 结构表:
| 参数名称 | 类型 | 是否必须 | 示例 | 描述 |
|---|---|---|---|---|
| riskLevel | string | 是 | REJECT | 风险判定等级:REJECT / PASS / REVIEW,分别对应违规、不违规、存疑 |
| desc | string | 否 | 违规原因 | 主违规的中文描述 |
| L1 | string | 否 | 涉黄标签1级 | 主违规分类的一级标签 |
| L2 | string | 否 | 涉黄标签2级 | 主违规分类的二级标签 |
| L3 | string | 否 | 涉黄标签3级 | 主违规分类的三级标签 |
| extraInfo | object | 否 | {} | 预留扩展信息字段 |
| labelDetail | list<labelDetail> | 否 | — | 所有命中标签的详情列表,见 labelDetail 结构 |
labelDetail 结构表(list 中每个元素):
| 参数名称 | 类型 | 是否必须 | 示例 | 描述 |
|---|---|---|---|---|
| L1 | string | 否 | 涉黄标签1级 | 命中分类的一级标签 |
| L2 | string | 否 | 涉黄标签2级 | 命中分类的二级标签 |
| L3 | string | 否 | 涉黄标签3级 | 命中分类的三级标签 |
| desc | string | 否 | 违规原因 | 该特定标签的违规原因描述 |
| confidence | float | 否 | 1 | 该标签命中的置信度,范围 0.0 ~ 1.0 |
2.2.5 v1.1版本接口返回不违规示例
{
"ver": "1.1",
"status": 200,
"msg": "",
"appID": "video",
"dataID": "<数据唯一ID>",
"requestID": "dl_xxxx",
"results": {
"riskLevel": "PASS",
"desc": "",
"L1": "",
"L2": "",
"L3": "",
"extraInfo": {},
"labelDetail": []
}
}
2.2.6 v1.1版本接口返回违规示例
{
"ver": "1.1",
"status": 200,
"msg": "",
"appID": "video",
"dataID": "<数据唯一ID>",
"requestID": "dl_xxxx",
"results": {
"riskLevel": "REJECT",
"desc": "违规原因",
"L1": "涉黄标签1级",
"L2": "涉黄标签2级",
"L3": "涉黄标签3级",
"extraInfo": {},
"labelDetail": [
{
"L1": "涉黄标签1级",
"L2": "涉黄标签2级",
"L3": "涉黄标签3级",
"desc": "违规原因",
"confidence": 1.0
},{
"L1": "涉政标签1级",
"L2": "涉政标签2级",
"L3": "涉政标签3级",
"desc": "违规原因",
"confidence": 0.5
}
]
}
}
2.3 示例(curl)
请求示例
curl --location 'https://<URL跟商务确认>/audit/video' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxxxx' \
--**data** '{
"custID": "test",
"appID": "video",
"appType": "VIDEO_GEN",
"dataID": "<数据唯一ID>",
"data": {
"auditInfoList": [{
"videoUrl":"https://mp4.xxxx.com/aaaa.mp4",
"videoUrlList": [{
"type": "video/mp4",
"url": "https://mp4.xxxx.com/aaaa.mp4"
}]
}]
},
"ver": "1.1",
"modType": "DEFAULT"
}'
三、异步接口
3.1 提交检测任务
请求参数
- 同2.1中请求参数,此时需传入callback字段,或者通过商务私下提供callbackURL给到缔零方
- 接口需要提供给缔零鉴权token(建议通过缔零商务私下提供)
- 接收审核回调结果接口类型为POST,通过调用接口时传入callback参数调用,缔零调用成功后,可返回状态码{"status": 200}。
响应结果(实时返回确认消息)
| 参数名称 | 类型 | 是否必须 | 示例 | 描述 |
|---|---|---|---|---|
| ver | string | 1.1 | 返回结果协议版本,与传入保持一致 | |
| status | int | 200 | 响应码,默认200,具体错误码见:四 | |
| msg | string | OK | 响应结果描述,默认:OK,其他同status见:四 | |
| dataID | string | <数据唯一ID> | 业务请求唯一ID,与传入保持一致 | |
| requestID | string | dl_xxxx | 缔零内部处理id,唯一确定一次请求 | |
| appID | string | video | 业务ID,用于区分不同的业务类型 | |
| results | dict | { "requestID": "dl_xxxx" } | 调用结果字段,目前只存放requestID |
示例(curl)
请求示例
curl --location 'https://<URL跟商务确认>/audit/video' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxxxx' \
--**data** '{
"custID": "test",
"appID": "video",
"appType": "VIDEO_GEN",
"dataID": "<数据唯一ID>",
"callback":"http://",
"data": {
"auditInfoList": [{
"videoUrl":"https://mp4.xxxx.com/aaaa.mp4",
"videoUrlList": [{
"type": "video/mp4",
"url": "https://mp4.xxxx.com/aaaa.mp4"
}]
},
"version": "1.1",
"modType": "DEFAULT"
}'
返回示例
{
"ver": "1.1",
"status": 200,
"msg": "审核数据创建成功,数据已入库入队列",
"appID": "video",
"dataID": "<数据唯一ID>"
"requestID": "xxxxx",
"results": {
"requestID": "xxxxx"
}
}
3.2 异步回调(缔零检测任务完成后,调用对方接口回传审核结果)
缔零请求参数同2.2
3.3 主动查询
接口名:/audit/search
请求参数
| 参数名称 | 类型 | 是否必须 | 示例 | 描述 |
|---|---|---|---|---|
| custID | string | 是 | test | 客户ID |
| appID | string | 是 | video | 业务ID,用于区分不同的业务类型 |
| dataID | string | 是 | 数据ID【重要】,用于回调结果、重试、去重和定位日志等,需保证指定条件下唯一,最好能全局唯一。 注:dataID由请求方生成,可复用业务方的内容ID,以省去额外的存储和映射 | |
| requestId | string | 是 | 缔零内部处理id,提交任务时返回的requestId |
示例(curl)
请求示例
curl --location 'https://<URL跟商务确认>/audit/search' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxxxx' \
--data '{
"custID": "test",
"appID": "video",
"dataID": "<数据唯一ID>",
"requestID": "提交任务返回的id"
}'
返回结果
{
"status": 200,
"msg": "查询数据创建成功",
"data": [{
"cust_id": "test",
"app_id": "video",
"app_type": "VIDEO_GEN",
"data_id": "<dataID>",
"data": "<送审内容>",
"updated_at": 1776790686267,
"trace_id": "<requestID>",
"callback_result": "<审核结果>"
}]
}
四、错误码定义
| code | msg |
|---|---|
| 429 | 请求被窗口限速或并发限流 |
| 500 | 缔零内部服务错误 |
| 400 | 调用鉴权失败、Token过期 |
五、标签定义
可联系商务对接