接口描述
用于自动审核指定图片中是否存在色情内容,并给出该图片的涉黄指数,表明图片内容的涉黄程度。
接口要求:
图片格式:
1. 图片单张大小不超过 10MB,批量请求单次不超过 50张。
2. 图片像素尺寸大于 32x32 ,小于 5000x5000。
3. 图片格式支持 png、jpg、gif、jpeg、bmp、heic格式。
请求说明:
-
请求示例
HTTP方法:POST
请求URL:https://ai.ctyun.cn/v1/aiop/api/[系统生成的服务码]/PictureIdentity/api/v1/image_porn.json
-
请求头说明
参数 |
值(说明) |
Content-Type |
application/json |
Sign |
MD5(AppKey + AppSecret + Timestamp + Path + Http Body),32位小写的MD5加密串 |
Timestamp |
13位时间戳 |
AppKey |
平台分配给应用独立的AppKey |
-
请求参数
参数 |
是否必选 |
类型 |
可选值范围 |
说明 |
data |
true |
list |
- |
请求参数放置于http body中,一张或多张图像Base64编码数据构成的list。注意:图片需要使用常规base64编码方式 |
-
请求示例代码
Bash:
curl -X POST https://ai.ctyun.cn/v1/aiop/api/[系统生成的服务码]/PictureIdentity/api/v1/image_porn.json -H "Content-Type: application/json" -H 'Sign: XXXXX' -H 'Timestamp: XXXXX' -H 'AppKey: XXXXX' --data '{"data": ["AAAAAAAAAA...."]}'
Python:
# -*- coding: utf-8 -*-
import requests
import base64
import hashlib
import time
import json
'''
图片鉴黄
'''
def md5(key):
input_name = hashlib.md5()
input_name.update(key.encode("utf-8"))
return input_name.hexdigest()
request_url = "图片鉴黄的API URL"
# 二进制方式打开图片文件
f = open('[本地文件]', 'rb')
img = base64.b64encode(f.read()).decode()
params = {"data": [img]}
app_key = '平台分配的APP Key'
app_secret = '平台分配的APP Secret '
time_stamp = str(int(round(time.time() * 1000)))
headers = {
'content-type': 'application/json',
'Sign': md5(app_key + app_secret + time_stamp + '/v1/aiop/api/[系统生成的服务码]/PictureIdentity/api/v1/image_porn.json' + json.dumps(params)),
'Timestamp': time_stamp,
'AppKey': app_key
}
response = requests.post(request_url, data=json.dumps(params), headers=headers)
if response:
print(response.json())
返回说明
-
API调用成功返回值
返回字段 |
是否必选 |
类型 |
字段说明 |
code |
true |
int |
返回状态,返回0表示成功 |
message |
true |
object |
请求信息结构体,message["success"]代表请求list中的成功数量,message["fail"]代表请求list中的失败数量 |
result |
true |
object |
返回结果键值集合,键为场景名称”porn”;值为场景对应的图片结果,按照列表形式排列,每个元素为图片对应的鉴定结果键值对,元素排序按照传入顺序排列 |
result[‘porn’][].label |
true |
int |
图片的分类结果,0表示正常,1表示该场景下违规,2表示人工审核 |
result[‘porn’][].class_name |
true |
string |
图片分类结果描述,为正常、违规或人工审核 |
result[‘porn’][].confidence |
true |
float |
图片违规的置信度,在0到1区间 |
result[‘porn’][].err_code |
true |
int |
若该张图片处理异常,则返回该图片的错误代码,具体参见本文档错误码说明部分 |
result[‘porn’][].err_msg |
true |
int |
若该张图片处理异常,则返回该图片的错误消息 |
-
API调用失败返回值
返回字段 |
是否必选 |
类型 |
字段说明 |
code |
true |
int |
错误码,参见本文档错误码说明部分 |
message |
true |
string |
返回对应的可读消息,值为error |
details |
true |
string |
错误消息 |
返回示例
HTTP/1.1 200 OK
Content-Type: application/json
{
"code":0,
"message": {"success":3, "fail":0},
"result":{
"porn": [
{
"label": 0,
"class_name": "正常",
"confidence": 0.315978
},
{
"label": 0,
"class_name": "正常",
"confidence": 0.0000078003
},
{
"label": 1,
"class_name": "违规",
"confidence": 0.985978
}
]
}
}
错误码说明
错误代码 |
错误消息 |
错误可能原因 |
4001 |
请求中未包含内容 |
请求的参数名不正确,参数为空、全为空格等转义符,或者参数格式、参数数据类型不正确 |
4002 |
请求文件格式不支持 |
请求的数据格式该接口暂不支持 |
4006 |
base64数据处理异常 |
客户端传递的base64格式在处理时发生异常,可以尝试在本地转换base64是否有异常 |
4007 |
请求JSON处理异常 |
在处理JSON数据的时候发生异常,可以尝试在本地进行JSON序列化操作 |
4008 |
图片分辨率不符合要求 |
该图片的分辨率过大或过小,目前系统可接受的尺寸在 32*32 到 5000 * 5000 之间 |
4009 |
图片文件大小不符合要求 |
该文件大小不符合要求,静态图片要求小于10M,动态图片要求小于50M |
4017 |
处理该请求超时 |
该请求内部处理超时,请稍后再试。 |
4018 |
单次批量请求数量超过限制 |
该批次请求量超过限制,请降低单批次请求量 |
4019 |
请求的API不存在 |
请求的API路径错误 |
4020 |
不支持的请求方法 |
仅支持HTTP POST请求方法 |
5000 |
服务内部错误 |
需要联系管理员处理 |
5001 |
服务接口异常,请联系管理员 |
当前接口无法正常处理请求,需要联系管理员处理。 |
5003 |
场景接口异常,具体参见返回消息 |
后端服务超时等 |