# 图片合规 API 文档
# 接口说明
基于深度学习的图片检测技术,精准高效识别各类场景中违禁、涉政、色情、未成年违规、暴恐、广告、Logo水印等风险图片内容。
购买请点击API套餐购买 (opens new window)、APPID获取请点击API使用控制台 (opens new window)、快速体验请点击图片合规SaaS (opens new window)、交流讨论请点击讯飞开放平台社区 (opens new window)
特别注意:utc、signature、uuid的值请求时需要UrlEncode
# 接口Demo
部分开发语言Demo如下,其他开发语言请参照文档进行开发,欢迎大家到讯飞开放平台社区 (opens new window)交流集成经验。
图片合规API Demo java语言 (opens new window)
图片合规API Demo python语言 (opens new window)
# 接口要求
内容 | 说明 |
---|---|
传输方式 | http[s] (为提高安全性,强烈推荐https) |
请求地址 | https://audit.iflyaisol.com/audit/v2/image 注:服务器IP不固定,为保证您的接口稳定,请勿通过指定IP的方式调用接口,使用域名方式调用 |
Content-Type | application/json;charset=UTF-8 |
接口鉴权 | 签名机制,详情请参照下方接口鉴权 |
字符编码 | UTF-8 |
响应格式 | 统一采用JSON格式 |
开发语言 | 任意,只要可以向讯飞云服务发起HTTP请求的均可 |
适用范围 | 任意操作系统,但因不支持跨域不适用于浏览器 |
图片要求 | 图片格式支持PNG、JPG、JPEG、BMP、GIF、WEBP格式,通过URL外链的图片最大20M,本地的图片base64最大5M。 |
# 接口鉴权
# 1、鉴权参数列表
所有鉴权参数均放在url地址栏。
参数名 | 类型 | 必传 | 描述 |
---|---|---|---|
accessKeyId | String | 是 | 即为控制台获取的APIKey |
accessKeySecret | String | 是 | 即为控制台获取的APISecret |
utc | String | 是 | 当前时间,格式:"yyyy-MM-dd'T'HH:mm:ssZ", 服务端会校验传入的时间与服务器时间之间的误差,超过 30 分钟即为非法。 |
signature | String | 是 | 签名串,详细获取步骤234中有signature的获取参考 |
appId | String | 是 | 即为控制台获取的APPID |
uuid | String | 是 | 请求随机字符串, uuid有防重放的功能,如果调试,请注意更换uuid的值 |
modeType | String | 否 | 图片资源模式类型,默认 link 1、URL外链模式值:link 2、本地图片base64 编码模式值:base64 |
# 2、第一步baseString获取
假设请求 url 中的查询参数为一个集合,将集合内满足条件的参数按照参数名 ASCII 码从小到大排序(字典序),使用键值对的格式(即 key1=value1&key2=value2…注意 value 需要 URLEncoder)拼接成字符串,得到顺序一致的baseString。示例如下:
特别注意以下3个规则:(1)参数值为空的不参与签名;(2)signature 参数本身不参与签名;(3)参数名区分大小写。
accessKeyId=simpleAPIKey&accessKeySecret=simpleAPISecret&modeType=base64&utc=2023-02-23T06%3A40%3A54%2B0000&signature=sr6uWoMTd6Z9o28aKwvx6Jsel88=&appId=simpleAPPID&uuid=44dfa903-adb2-45d3-a1fe-fd8a53f86b2a
————————————————————————————————————————————————————————————————————————————————————————————————————————————————
注意:在实际使用时,simpleXXX需替换控制台的真实值。utc、signature、uuid的值请求时需要UrlEncode。以上utc示例时间UrlEncode前为2023-02-23T06:40:54+0000。randomStr用UUID.randomUUID()函数获得的值替换。
# 3、第二步根据baseString与accessKeySecret获取signature的值
根据得到的baseString和控制台获取的accessKeySecret(即APISecret),利用HMAC运算(HmacSHA1)生成签名byte[],然后使用base64编码得到signature,示例如下:
sr6uWoMTd6Z9o28aKwvx6Jsel88=
————————————————————————————————————————————————————————————————————————————————————————————————————————————————
注意:保持baseString的值与第一步完全一致的情况下,调试阶段可以与以上结果比对。
# 4、第三步拼接放到url地址栏
根据第二步获得的signature值,与url地址拼接得到最终地址栏结果,示例如下:
https://audit.iflyaisol.com/audit/v2/image?accessKeyId=simpleAPIKey&accessKeySecret=simpleAPISecret&modeType=base64&utc=2023-02-23T06%3A40%3A54%2B0000&signature=sr6uWoMTd6Z9o28aKwvx6Jsel88=&appId=simpleAPPID&uuid=44dfa903-adb2-45d3-a1fe-fd8a53f86b2a
————————————————————————————————————————————————————————————————————————————————————————————————————————————————
注意:以上是鉴权url参数,具体业务参数通过json在body里以post的形式发送给服务端。
# 请求与返回示例
在调用业务接口时,均在 Http RequestBody中配置以下参数,请求与返回数据均为json字符串,示例如下。
# 1、请求json示例
{
"content":"iVBORw0KGgoAAAANSU..." // 这里仅为base64图片数据的部分示例
}
# 2、返回json示例
{
"code": "000000",
"desc": "成功",
"data": {
"result": {
"suggest": "block",
"detail": {
"category_list": [
{
"confidence": 93,
"category": "political",
"suggest": "block",
"category_description": "涉政_政治象征_国旗",
"object_detail": [
{
"name": "chinaflag",
"confidence": 93,
"location": {
"x": 124.0,
"y": 271.0,
"w": 415.0,
"h": 307.0
}
}
]
},
{
"confidence": 99,
"category": "political",
"suggest": "block",
"category_description": "涉政_政治象征_国旗国徽"
}
]
}
},
"request_id": "T20230302164002016a33b6197100000"
},
"sid": "a154ee7126314a029a5ab5a7491ffa1c"
}
# 参数说明
# 1、请求参数说明
参数名 | 类型 | 必传 | 描述 |
---|---|---|---|
content | String | 是 | 待识别图片信息 modeType为link时,值为外链信息 modeType为base64时,值为图片base64编码信息 |
biz_type | String | 否 | 通过策略配置审核分类和自定义词库,不传取默认策略。词库黑白名单开放中,敬请期待。 |
# 2、返回参数说明
参数名 | 类型 | 描述 |
---|---|---|
sid | String | 本次会话唯一id标识,用于排查接口调用问题 |
code | String | 会话调用成功标记: 000000 表示调用成功 其他数字 表示会话调用异常 |
desc | String | 对会话调用是否成功的描述 |
data | Object | 审核结果 |
data.request_id | String | 文本合规审核的标识 |
data.result | Object | 内容识别结果 |
data.result.suggest | String | 审核建议结果: pass 通过 block 不合规结果 |
data.result.detail | Object | 审核结果详情 |
data.result.detail.sourceUrl | String | 图片URL |
data.result.detail.category_list | Object | 敏感节点列表 |
data.result.detail.category_list[n].suggest | String | 内容建议结果: pass 通过 block 不合规内容 |
data.result.detail.category_list[n].category | String | 敏感分类 |
data.result.detail.category_list[n].category_description | String | 敏感分类描述 |
data.result.detail.category_list[n].subCategory | String | 敏感子分类 |
data.result.detail.category_list[n].confidence | Integer | 该分类下建议结果的置信度: 取值 0-100 |
data.result.detail.category_list[n].object_detail | List | 该字段用于返回物体检测模型的详细检测结果 包括:实体、广告台标、二维码等内容命中的标签名称、标签分数、坐标信息等 |
data.result.detail.category_list[n].object_detail[n].name | String | 命中标签 |
data.result.detail.category_list[n].object_detail[n].value | String | 该参数用于返回对应实体标签所对应的值或内容。 |
data.result.detail.category_list[n].object_detail[n].confidence | Integer | 识别为命中标签的概率,取值范围 0-100,最大 100 |
data.result.detail.category_list[n].object_detail[n].location | Object | 位置信息 |
data.result.detail.category_list[n].object_detail[n].location.x | Float | 左上角位置的横坐标(x)所在的像素位置 |
data.result.detail.category_list[n].object_detail[n].location.y | Float | 左上角位置的纵坐标(y)所在 的像素位置 |
data.result.detail.category_list[n].object_detail[n].location.w | Float | 检测框的宽度(由左上角出发在 x 轴向 右延伸的长度) |
data.result.detail.category_list[n].object_detail[n].location.h | Float | 检测框的高度(由左上角出发在 y 轴向 下延伸的长度) |
data.result.detail.category_list[n].object_detail[n].word_infos | List | 仅当 name 为 ocrText 时存在,命中的敏感词信息 |
data.result.detail.category_list[n].object_detail[n].word_infos[n].word | String | 敏感词 |
data.result.detail.category_list[n].object_detail[n].word_infos[n].positions | List | 敏感词位置下标 |
# 常见问题
# 图片合规支持哪些图片格式的请求,图片大小限制是多少?
答:支持 PNG、JPG、JPEG、BMP、GIF、WEBP 格式。图片大小限制是20M。
# 图片合规对图片画面进行审查的同时,会不会图片中违规的文字内容进行审查?
答:会的。图片合规既审查图片画面,同时也审核图片中的文字是否合规。
# 支持自定义的违规图片库吗?
答:支持。可以添加自定义的违规图片库,同时可以指定放行的图片库。后续将会开放此功能。