9045 字
45 分钟

阿里云图片审核 API 调用教程

2026-01-10
浏览量 加载中...

阿里云图片审核 API 调用教程#

本教程将教您如何通过代理服务快速调用阿里云图片审核增强版API,对图片进行内容安全检测。

目录#


前置知识#

在开始本教程之前,建议您了解以下基础概念。如果您已经熟悉这些内容,可以直接跳过此章节。

什么是API?#

API(Application Programming Interface,应用程序编程接口)就像是两个软件之间的”桥梁”或”翻译官”。

打个比方:

  • 🏪 API就像是餐厅的服务员:您(用户)想点菜(使用功能),但您不能直接进入厨房(服务器),需要通过服务员(API)来传递您的需求。

简单理解:API就是让不同的软件能够互相”对话”的方式。

什么是HTTP请求?#

HTTP请求就是您的程序向服务器发送”请求”,告诉服务器您需要什么服务。

常见类型

  • GET:获取数据(比如查看图片)
  • POST:提交数据(比如上传图片进行审核)

本教程使用的是 POST 请求,因为我们把图片发送给服务器进行审核。

什么是JSON?#

JSON(JavaScript Object Notation)是一种数据格式,就像一个”表格”或”清单”,用来组织信息。

示例

{
"姓名": "张三",
"年龄": 25,
"城市": "北京"
}

这个JSON记录了一个人的基本信息。我们的API也会返回类似的JSON格式,包含审核结果。

什么是AccessKey?#

AccessKey就像是您的”身份证”和”密码”,用来证明您的身份。

  • AccessKey ID:就像您的用户名,告诉服务器”我是谁”
  • AccessKey Secret:就像您的密码,用来验证您的身份

⚠️ 重要:AccessKey Secret 只显示一次,必须妥善保存!就像银行卡密码一样,不要告诉别人。

什么是cURL?#

cURL是一个命令行工具,可以用来向服务器发送HTTP请求。它就像是”网页浏览器”的命令行版本。

优点

  • 无需编写代码就能测试API
  • 适合快速验证功能是否正常

编程语言基础#

本教程提供了两种编程语言的示例:

  • Node.js:基于JavaScript,适合Web开发
  • Python:简单易学,适合初学者

如果您完全不懂编程,建议先学习基础的Python语法(大约需要1-2周)。

小贴士#

如果您是第一次接触这些概念,不用担心:

  • 📚 可以先复制示例代码,运行起来看看效果
  • 🔧 遇到问题时,查看本教程的”常见问题”章节
  • 💡 不需要一次性理解所有细节,先能用起来再说

教程概述#

学习目标#

完成本教程后,您将能够:

  1. 理解阿里云图片审核API的基本概念
  2. 获取并配置必要的认证信息
  3. 使用不同编程语言调用API
  4. 解析和理解API响应结果
  5. 处理各种错误场景

适用人群#

适合

  • 有一定编程基础的开发者
  • 了解HTTP、JSON等技术概念的用户
  • 想要在项目中集成图片审核功能的开发者

不适合

  • 完全没有编程基础的小白(建议先学习基础编程知识)
  • 只想使用图形界面工具的用户(本教程需要编写代码)

预计学习时间#

  • 📖 阅读时间: 30-45 分钟
  • 💻 实践时间: 1-2 小时
  • ⏱️ 总计: 约 2-3 小时

难度评级#

评级说明
⭐⭐⭐中级难度 - 需要一定的编程基础和HTTP/API概念

评级说明

  • 本教程适合有一定编程经验的开发者
  • 涉及HTTP请求、JSON数据处理等概念
  • 提供了多种编程语言的实现示例
  • 新手可能需要额外时间理解API调用原理

最低要求#

在开始本教程之前,您需要满足以下最低要求:

📚 知识要求#

要求说明资源推荐
基础编程概念了解变量、函数、条件判断等基础编程概念Python基础教程 / JavaScript入门
HTTP基础了解GET/POST请求的概念MDN HTTP文档
JSON格式了解JSON数据结构的基本语法JSON教程
命令行操作会使用命令行工具(cmd/终端)执行命令命令行基础教程

💻 环境要求#

要求说明
编程环境Node.js(v14+)或 Python(3.6+)
网络环境能够访问阿里云服务和代理API
文本编辑器VS Code、Sublime Text 等代码编辑器

🔑 账号要求#

要求说明
阿里云账号已注册并完成实名认证
内容安全服务已开通内容安全服务
AccessKey已创建AccessKey ID和Secret

学习建议#

为了帮助您更好地掌握本教程内容,我们提供以下学习建议:

🎯 学习路径建议#

1. 快速上手路径(推荐初学者)

阅读前置知识 → 完成前置准备 → 使用cURL快速测试 → 理解响应结果 → 尝试代码实现

2. 深入学习路径(推荐有经验的开发者)

跳过前置知识 → 完成前置准备 → 直接使用代码示例 → 研究详细参数 → 探索高级功能

📖 学习技巧#

技巧说明
先跑通再理解先复制示例代码运行起来,看到效果后再理解原理
分步验证每完成一个步骤就测试一下,确保没有问题再继续
记录问题遇到问题时记录下来,方便后续查找和解决
对比学习对比不同编程语言的实现,加深理解

⚠️ 常见误区#

误区正确做法
一次性理解所有概念不需要,先能用起来,再逐步深入
跳过前置准备必须完成前置准备,否则无法调用API
直接使用生产环境建议先在测试环境验证,确保功能正常
忽略错误处理务必处理各种错误场景,提高代码健壮性

🔄 进阶学习方向#

完成本教程后,您可以继续学习:

  1. 批量审核:学习如何批量审核多张图片
  2. 自定义图库:配置自定义图库进行精准匹配
  3. 视频审核:学习视频内容审核API
  4. 文本审核:学习文本内容安全检测
  5. 语音审核:学习语音内容安全检测

💡 实践项目建议#

为了巩固学习成果,建议您尝试以下实践项目:

项目难度说明
图片上传审核工具⭐⭐创建一个简单的图片上传页面,上传后自动审核
批量图片审核脚本⭐⭐⭐编写脚本批量审核指定目录下的图片
审核结果可视化⭐⭐⭐⭐将审核结果以图表形式展示,便于分析
审核日志系统⭐⭐⭐⭐⭐记录所有审核历史,支持查询和统计

前置准备#

WARNING

在开始使用图片审核API之前,请务必完成所有准备工作。特别是 AccessKey 的创建和保存,这是调用API的关键凭证。AccessKey Secret 只显示一次,丢失后无法找回,必须妥善保存!

在开始使用图片审核API之前,您需要完成以下准备工作。请按顺序完成每个步骤。

1. 注册阿里云账号#

如果您还没有阿里云账号,请先注册:

📝 操作步骤

  1. 访问 阿里云官网
  2. 点击右上角的”免费注册”按钮
  3. 填写手机号或邮箱,设置密码
  4. 按照提示完成验证

💡 提示:注册需要手机号验证,请确保您的手机能接收短信。

2. 开通内容安全服务#

注册账号后,需要开通”内容安全”服务。

📝 操作步骤

  1. 登录阿里云控制台(使用刚才注册的账号)
  2. 在搜索框中输入”内容安全”
  3. 点击搜索结果中的”内容安全”进入产品页面
  4. 点击”立即开通”按钮

重要说明

  • 开通免费:不需要支付任何费用
  • 💰 按量计费:只在实际使用时才收费,就像”用多少付多少”
  • 📊 查看价格:可以在产品页面查看详细的价格表

⚠️ 注意:开通服务后,建议先了解价格,避免产生意外费用。

3. 创建 AccessKey#

AccessKey是您调用API的”身份证”和”密码”。

📝 操作步骤

  1. 访问 AccessKey 管理页面
  2. 点击”创建 AccessKey”按钮
  3. 验证身份(输入手机号或邮箱接收验证码)
  4. 系统会显示两串字符:
    • AccessKey ID:类似于 LTAI5t... 的字符串
    • AccessKey Secret:类似于 xxx... 的字符串

⚠️ 安全提示

  • 🔐 只显示一次:AccessKey Secret 只在创建时显示一次,之后无法查看!请立即复制保存
  • 📝 妥善保存:建议保存在安全的地方,比如密码管理器
  • 🚫 不要泄露:不要将 AccessKey 暴露在前端代码或公开的代码仓库中
  • 👥 使用子账号:建议创建RAM子账号的AccessKey,而不是使用主账号

4. 赋予权限(可选)#

如果您使用的是RAM子账号的AccessKey,需要给它添加权限。

📝 操作步骤

  1. 进入 RAM 控制台
  2. 在左侧菜单中找到”用户”,点击进入
  3. 找到您刚才创建的子账号
  4. 点击该子账号右侧的”添加权限”按钮
  5. 在搜索框中输入:AliyunYundunGreenWebFullAccess
  6. 选中该权限,点击”确定”

💡 提示:如果您使用主账号的AccessKey,可以跳过这一步。

5. 选择服务地域#

根据您的业务所在地选择合适的服务器区域。

📝 如何选择

  • 🇨🇳 国内用户:选择距离您最近的城市(上海、杭州、北京、深圳、成都)
  • 🌍 海外用户:选择距离您最近的国家或地区
地域外网接入地址支持服务适合用户
华东2(上海)https://green-cip.cn-shanghai.aliyuncs.com全部服务中国东部用户
华东1(杭州)https://green-cip.cn-hangzhou.aliyuncs.com全部服务中国东部用户
华北2(北京)https://green-cip.cn-beijing.aliyuncs.com全部服务中国北部用户
华南1(深圳)https://green-cip.cn-shenzhen.aliyuncs.com全部服务中国南部用户
西南1(成都)https://green-cip.cn-chengdu.aliyuncs.com全部服务中国西部用户
新加坡https://green-cip.ap-southeast-1.aliyuncs.com出海版服务东南亚用户
英国(伦敦)https://green-cip.eu-west-1.aliyuncs.com出海版服务欧洲用户
美国(弗吉尼亚)https://green-cip.us-east-1.aliyuncs.com出海版服务美国东部用户
德国(法兰克福)https://green-cip.eu-central-1.aliyuncs.com出海版服务欧洲中部用户

说明

  • 带有 _cb 后缀的服务类型为”出海版”,专为海外业务设计
  • 选择距离您用户最近的地域,速度会更快

💡 新手建议:如果您不确定选择哪个,选择”华东2(上海)“即可,这是最常用的区域。

✅ 准备工作检查清单#

完成以上步骤后,您应该已经准备好以下信息:

  • 阿里云账号已注册
  • 内容安全服务已开通
  • AccessKey ID(类似 LTAI5t...
  • AccessKey Secret(类似 xxx...,已妥善保存)
  • 已选择服务地域(如上海:https://green-cip.cn-shanghai.aliyuncs.com

如果以上都已完成,恭喜您!可以继续学习下一章节了。🎉


API 基础知识#

API 概述#

阿里云图片审核增强版API用于识别图像中是否有违反网络内容传播相关规定、影响平台内容秩序、影响用户体验的内容或元素,支持60+的内容风险标签和100+的风险管控项。

🔄 API 调用流程#

graph TD A[开始] --> B[准备图片URL] B --> C[准备AccessKey] C --> D[选择服务类型] D --> E[构造请求参数] E --> F[发送POST请求] F --> G{请求成功?} G -->|是| H[解析响应结果] G -->|否| I[检查错误码] I --> J[调整参数后重试] J --> E H --> K{风险等级?} K -->|none 无风险| L[通过审核] K -->|low 低风险| M[人工审核] K -->|high 高风险| N[拒绝内容] L --> O[结束] M --> O N --> O style A fill:#e1f5ff style B fill:#fff4e1 style C fill:#fff4e1 style D fill:#fff4e1 style E fill:#fff4e1 style F fill:#e8f5e9 style G fill:#fff9c4 style H fill:#e8f5e9 style I fill:#fce4ec style J fill:#fce4ec style K fill:#fff9c4 style L fill:#c8e6c9 style M fill:#fff9c4 style N fill:#f8bbd0 style O fill:#e1f5ff

调用方式#

本API采用 POST 请求方式,通过 HTTP/HTTPS 协议调用。

认证方式#

本教程使用代理服务API,认证方式更加简单:

  • AccessKey ID: 用于标识用户的访问密钥ID
  • AccessKey Secret: 用于验证请求的合法性

💡 提示: 本教程使用的是代理服务,无需手动计算签名,大大简化了调用过程。

📡 请求交互时序#

sequenceDiagram participant U as 用户/程序 participant P as 代理服务 participant A as 阿里云API U->>P: 1. 发送POST请求<br/>(包含图片URL和AccessKey) P->>P: 2. 验证AccessKey P->>P: 3. 计算签名 P->>A: 4. 转发请求到阿里云 A->>A: 5. 下载图片 A->>A: 6. AI内容审核 A->>P: 7. 返回审核结果 P->>U: 8. 返回JSON响应 Note over U,A: 整个过程通常在1-3秒内完成

流程说明

  1. 用户/程序:向代理服务发送POST请求,包含图片URL和AccessKey
  2. 代理服务:验证AccessKey的有效性
  3. 代理服务:计算请求签名(无需用户手动计算)
  4. 代理服务:将请求转发到阿里云API
  5. 阿里云API:下载图片并使用AI进行内容审核
  6. 阿里云API:返回审核结果给代理服务
  7. 代理服务:将结果返回给用户/程序
  8. 用户/程序:接收JSON格式的响应

请求限制#

限制项说明
QPS限制单用户100次/秒
图片大小不超过20MB
图片尺寸高或宽不超过16,384 px,总像素不超过1.67亿 px
图片格式PNG、JPG、JPEG、BMP、WEBP、TIFF、SVG、HEIF、GIF、ICO
图片下载时间3秒内

支持的服务类型#

服务类型说明使用场景
baselineCheck通用基线检测通用图片内容审核
baselineCheck_pro通用基线检测_专业版需要更高精度的场景
baselineCheck_cb通用基线检测_出海版出海业务使用(海外区域)
tonalityImprove内容治理检测内容治理和审核
tonalityImprove_cb内容治理检测_出海版出海业务使用(海外区域)
aigcCheckAIGC图片风险识别AI生成内容
aigcCheck_cbAIGC图片风险检测_出海版出海业务使用(海外区域)
profilePhotoCheck头像图片检测用户头像审核
postImageCheck帖子评论图片检测社交媒体帖子图片
advertisingCheck营销素材检测营销内容审核
liveStreamCheck视频/直播截图检测直播画面审核
riskDetection恶意图片检测风险内容识别
riskDetection_cb恶意图片检测_出海版出海业务使用(海外区域)

快速入门#

TIP

本节提供了三种调用API的方式,您可以根据自己的情况选择:

  • 如果您是新手,建议先使用 cURL 快速测试,了解API的工作原理
  • 如果您熟悉 JavaScript,可以选择 Node.js 方式
  • 如果您是 Python 用户,可以选择 Python 方式

无论选择哪种方式,都需要先完成前置准备工作。

现在让我们开始实际调用API!本节提供了三种方式,您可以根据自己的情况选择:

🚀 方式一:使用 cURL 快速测试(推荐新手)#

cURL是最简单的方式,不需要写任何代码,直接在命令行中输入命令即可。

适用场景

  • ✅ 快速验证API是否可用
  • ✅ 测试参数是否正确
  • ✅ 了解API的响应格式

如何使用

  1. 打开命令行工具(Windows按Win+R输入cmd,Mac按Cmd+Space输入终端
  2. 复制以下命令(记得替换成您自己的信息)
  3. 粘贴到命令行并回车
Terminal window
# 发送POST请求到图片审核API
curl -X POST https://api.mizhoubaobei.top/aliyun/image-moderation \
-H "Content-Type: application/json" \ # 告诉服务器我们发送的是JSON格式数据
-d '{
"service": "baselineCheck", # 服务类型:通用基线检测
"accessKeyId": "YOUR_ACCESS_KEY_ID", # 替换成您的AccessKey ID
"accessKeySecret": "YOUR_ACCESS_KEY_SECRET", # 替换成您的AccessKey Secret
"endpoint": "https://green-cip.cn-shanghai.aliyuncs.com", # 服务端点
"imageUrl": "https://example.com/image.jpg" # 要审核的图片URL(必须公网可访问)
}'

预期结果:您会看到一个JSON格式的响应,包含审核结果。

💡 提示:如果您没有可用的图片URL,可以使用一些公开的图片URL进行测试,但请确保图片内容合规。


💻 方式二:使用 Node.js(适合Web开发)#

如果您熟悉JavaScript或Node.js,可以使用以下代码。

前提条件

  • 已安装Node.js(建议版本 >= 14)
  • 了解基础的JavaScript语法
// 引入Node.js的HTTPS模块(用于发送HTTPS请求)
const https = require('https');
// 定义图片审核函数
async function checkImage(imageUrl) {
// 1. 准备要发送的数据
const data = JSON.stringify({
service: 'baselineCheck', // 服务类型:通用基线检测
accessKeyId: 'YOUR_ACCESS_KEY_ID', // 替换成您的AccessKey ID
accessKeySecret: 'YOUR_ACCESS_KEY_SECRET', // 替换成您的AccessKey Secret
endpoint: 'https://green-cip.cn-shanghai.aliyuncs.com', // 服务端点
imageUrl: imageUrl // 要审核的图片URL
});
// 2. 配置请求参数
const options = {
hostname: 'api.mizhoubaobei.top', // 服务器地址
port: 443, // HTTPS默认端口
path: '/aliyun/image-moderation', // API路径
method: 'POST', // 请求方法:POST
headers: {
'Content-Type': 'application/json', // 内容类型:JSON
'Content-Length': data.length // 数据长度
}
};
// 3. 发送请求
return new Promise((resolve, reject) => {
const req = https.request(options, (res) => {
let body = '';
// 接收数据
res.on('data', (chunk) => body += chunk);
// 数据接收完成
res.on('end', () => {
try {
const result = JSON.parse(body); // 解析JSON响应
resolve(result); // 返回结果
} catch (error) {
reject(error); // 解析失败,返回错误
}
});
});
// 处理请求错误
req.on('error', reject);
// 发送数据
req.write(data);
req.end();
});
}
// 使用示例:审核一张图片
checkImage('https://example.com/image.jpg')
.then(result => {
console.log('审核结果:', JSON.stringify(result, null, 2)); // 打印结果
})
.catch(error => {
console.error('调用失败:', error); // 打印错误信息
});

如何运行

  1. 将代码保存为 check-image.js
  2. 修改其中的 YOUR_ACCESS_KEY_IDYOUR_ACCESS_KEY_SECRET
  3. 在命令行中运行:node check-image.js

🐍 方式三:使用 Python(推荐新手)#

Python语法简单易懂,非常适合初学者。

前提条件

  • 已安装Python(建议版本 >= 3.6)
  • 需要安装 requests 库(安装命令:pip install requests
import requests
def check_image(image_url):
"""
审核图片函数
参数:
image_url (str): 要审核的图片URL
返回:
dict: 审核结果
"""
# 1. 定义API地址和请求头
url = 'https://api.mizhoubaobei.top/aliyun/image-moderation'
headers = {'Content-Type': 'application/json'}
# 2. 准备请求数据
data = {
'service': 'baselineCheck', # 服务类型:通用基线检测
'accessKeyId': 'YOUR_ACCESS_KEY_ID', # 替换成您的AccessKey ID
'accessKeySecret': 'YOUR_ACCESS_KEY_SECRET', # 替换成您的AccessKey Secret
'endpoint': 'https://green-cip.cn-shanghai.aliyuncs.com', # 服务端点
'imageUrl': image_url # 要审核的图片URL
}
# 3. 发送POST请求
response = requests.post(url, headers=headers, json=data)
# 4. 返回JSON格式的结果
return response.json()
# 使用示例:审核一张图片
if __name__ == '__main__':
result = check_image('https://example.com/image.jpg')
print('审核结果:', result)

如何运行

  1. 将代码保存为 check_image.py
  2. 修改其中的 YOUR_ACCESS_KEY_IDYOUR_ACCESS_KEY_SECRET
  3. 在命令行中运行:python check_image.py

💡 提示:如果提示找不到 requests 模块,请先运行 pip install requests 安装。


📝 参数说明#

无论使用哪种方式,都需要准备以下参数:

参数说明示例
service服务类型baselineCheck(通用基线检测)
accessKeyId您的AccessKey IDLTAI5t...
accessKeySecret您的AccessKey Secretxxx...
endpoint服务端点地址https://green-cip.cn-shanghai.aliyuncs.com
imageUrl要审核的图片URLhttps://example.com/image.jpg

⚠️ 重要

  • imageUrl 必须是公网可访问的URL
  • 不要使用本地文件路径(如 C:\image.jpg
  • 图片URL中不能包含中文

✅ 测试成功标志#

如果一切正常,您会收到类似以下的响应:

{
"Msg": "OK",
"Code": 200,
"Data": {
"Result": [
{
"Label": "nonLabel",
"Description": "未检测出风险"
}
],
"RiskLevel": "none"
}
}

关键信息

  • Code: 200 表示请求成功
  • RiskLevel: none 表示图片安全,未检测到风险

如果看到这个结果,恭喜您!您已经成功调用图片审核API了!🎉


详细参数说明#

WARNING

正确设置参数是成功调用API的关键。请务必仔细阅读参数说明,特别是必填参数和服务类型的选择。错误的参数可能导致请求失败或产生意外的费用。

请求参数#

必填参数#

参数类型说明
serviceString服务类型,见下文服务类型说明
accessKeyIdString阿里云 AccessKey ID
accessKeySecretString阿里云 AccessKey Secret
endpointString阿里云服务端点,如 https://green-cip.cn-shanghai.aliyuncs.com
imageUrlString待检测图片的URL,必须公网可访问

可选参数#

参数类型说明
dataIdString检测对象对应的数据ID。由大小写英文字母、数字、下划线(_)、短划线(-)、英文句号(.)组成,不超过64个字符,可以用于唯一标识您的业务数据
refererStringreferer请求头,用于防盗链等场景。长度不超过256个字符
infoTypeString需要获取的辅助信息内容,取值:customImage(自定义图库命中信息)、textInImage(图片中文字信息)、publicFigure(命中人物信息)、logoData(标识标志信息)。支持指定多个内容,以英文逗号分隔。例如,customImage,textInImage表示同时返回自定义图库和图片中文字信息

服务类型说明#

服务类型说明使用场景
baselineCheck通用基线检测通用图片内容审核
baselineCheck_pro通用基线检测_专业版需要更高精度的场景
baselineCheck_cb通用基线检测_出海版出海业务使用(海外区域)
tonalityImprove内容治理检测内容治理和审核
tonalityImprove_cb内容治理检测_出海版出海业务使用(海外区域)
aigcCheckAIGC图片风险识别AI生成内容
aigcCheck_cbAIGC图片风险检测_出海版出海业务使用(海外区域)
profilePhotoCheck头像图片检测用户头像审核
postImageCheck帖子评论图片检测社交媒体帖子图片
advertisingCheck营销素材检测营销内容审核
liveStreamCheck视频/直播截图检测直播画面审核
riskDetection恶意图片检测风险内容识别
riskDetection_cb恶意图片检测_出海版出海业务使用(海外区域)

说明

  • 不同服务针对不同的业务场景,请根据实际需求选择
  • 出海版(带 _cb 后缀)只能在海外区域使用
  • AIGC专用服务用于识别AI生成内容
  • 如果希望同时调用多个服务,请使用多Service同步检测API

图片要求#

支持的格式#

PNG、JPG、JPEG、BMP、WEBP、TIFF、SVG、HEIF(该格式最长边需小于8192 px)、GIF(取第一帧)、ICO(取最后一图)

大小限制#

  • 图片大小限制在20 MB以内
  • 高或者宽不能超过16,384 px
  • 总像素不能超过1.67亿 px
  • 像素建议大于200*200(px),像素过低会影响内容安全检测算法的效果

下载限制#

  • 图片下载时间限制为3秒内,如果下载时间超过3秒,返回下载超时
  • URL必须公网可访问
  • URL长度不超过2048个字符
  • URL中不能包含中文

说明

  • 确保图片URL稳定可访问,避免因网络问题导致审核失败
  • 若URL下载超时,请检查图片URL是否可访问

响应结果解析#

TIP

正确理解API响应是使用图片审核服务的关键。响应中包含了审核结果、风险等级和辅助信息。建议您根据业务需求,合理处理不同风险等级的响应,例如:拒绝高风险内容、人工审核中风险内容、自动通过低风险内容。

调用API后,您会收到一个JSON格式的响应。本节将教您如何理解这个响应。

📊 响应结构概览#

API的响应包含三层结构:

graph TD A[响应 Response] --> B[请求状态 Code/Msg/RequestId] A --> C[审核结果 Data] C --> D[风险等级 RiskLevel] C --> E[检测到的标签 Result] C --> F[辅助信息 Ext]

✅ 场景一:图片安全,未检测到风险#

这是最常见的情况,表示图片内容正常,可以放心使用。

{
"Msg": "OK",
"Code": 200,
"Data": {
"DataId": "img123****",
"Result": [
{
"Label": "nonLabel",
"Description": "未检测出风险"
}
],
"RiskLevel": "none"
},
"RequestId": "ABCD1234-1234-1234-1234-1234XYZ"
}

字段说明

  • Msg: 响应消息,OK表示成功
  • Code: 状态码,200表示成功
  • DataId: 数据ID(您传入的dataId)
  • Label: 标签,nonLabel表示未检测到风险
  • Description: 描述,说明图片安全
  • RiskLevel: 风险等级,none表示无风险
  • RequestId: 请求ID,用于排查问题

如何处理

  • ✅ 图片安全,可以直接使用
  • ✅ 可以通过审核,展示给用户

⚠️ 场景二:检测到风险内容#

当图片包含违规内容时,会返回相应的风险标签。

{
"Msg": "OK",
"Code": 200,
"Data": {
"DataId": "img123****",
"Result": [
{
"Label": "pornographic_adultContent",
"Confidence": 81,
"Description": "成人色情"
}
],
"RiskLevel": "high"
},
"RequestId": "ABCD1234-1234-1234-1234-1234XYZ"
}

字段说明

  • Label: 标签,pornographic_adultContent表示成人色情
  • Confidence: 置信度,81分(满分100)
  • Description: 描述,标签的中文含义
  • RiskLevel: 风险等级,high表示高风险

如何处理

  • ❌ 图片包含违规内容,建议直接拦截
  • ❌ 不要展示给用户
  • 📝 可以记录违规信息,用于后续分析

📋 响应字段详解#

1. 顶层字段(最外层)#

字段类型说明示例
RequestIdString请求的唯一标识,用于排查问题ABCD1234-1234-1234-1234-1234XYZ
DataObject包含审核结果的核心数据见下方说明
CodeInteger状态码,200表示成功200
MsgString响应消息,描述请求状态OK

重要提示

  • 📌 只有 Code: 200 才表示请求成功
  • 📌 如果 Code 不是200,请查看”错误码说明”章节

2. Data 字段(审核结果)#

这是最重要的部分,包含了图片审核的详细信息。

字段类型说明示例
RiskLevelString图片的整体风险等级highmediumlownone
ResultArray检测到的风险标签列表见下方说明
DataIdString您传入的数据IDimg123****
ExtObject辅助信息(如文字识别结果)可选字段,见下方详细说明

3. Ext 字段(辅助信息)#

Ext字段包含图片的辅助参考信息,如自定义图库命中信息、图片中文字信息、人物信息、Logo信息等。这些信息可以帮助您更深入地了解图片内容。

Ext 字段结构

字段类型说明
CustomImageJSONArray如果命中自定义图库,返回命中的自定义图库信息
TextInImageObject返回命中的图片中文字信息(OCR识别结果)
PublicFigureJSONArray图片中包含特定人物时,返回识别出来的人物信息
LogoDataJSONArray返回命中的标识标志信息
3.1 CustomImage(自定义图库信息)#

当图片命中您配置的自定义图库时,会返回此信息。

字段类型示例值描述
LibIdStringlib0001命中的自定义图库ID
LibNameString自定义图库A命中的自定义图库名
ImageIdString20240307命中的自定义图片ID
3.2 TextInImage(图片中文字信息)#

返回图片中文字的OCR识别结果,包括识别到的文字、风险词、自定义词库命中信息等。

字段类型示例值描述
OcrResultJSONArray-返回识别到的图片中的每行文字信息
RiskWordStringArray["风险词1", "风险词2"]命中文本中的风险片段
CustomTextJSONArray-如果命中自定义词库,返回命中的自定义词库信息

OcrResult 字段说明

字段类型示例值描述
TextString识别到的文字行1返回识别到的图片中的文字行内容

CustomText 字段说明

字段类型示例值描述
LibIdStringtest20240307命中的自定义词库ID
LibNameString自定义词库A命中的自定义词库名
KeyWordsString关键词1命中的自定义关键词
3.3 PublicFigure(人物信息)#

当图片中包含特定人物时,返回识别出来的人物信息。

字段类型示例值描述
FigureNameString张三识别出的人物信息
FigureIdStringxxx001识别出的人物编码。特定人物会返回编码,其他人物返回人物信息。建议先取人物信息,人物信息为空再取人物编码
LocationJSONArray-人物的位置信息。更多信息,请参见Location
3.4 LogoData(标识标志信息)#

返回命中的标识标志信息及其位置。

字段类型示例值描述
LogoJSONArray-标识信息
LocationObject-标识的位置信息

Logo 字段说明

字段类型示例值描述
NameString钉钉标识名
LabelStringlogo_sns命中标签
ConfidenceFloat88.18置信度
3.5 Location(位置信息)#

用于描述图片中特定区域的位置信息(如人物、Logo的位置)。

字段类型示例值描述
XFloat41以图片左上角为坐标原点,区域左上角到y轴的距离,单位:像素
YFloat84以图片左上角为坐标原点,区域左上角到x轴的距离,单位:像素
WFloat83区域的宽度,单位:像素
HFloat26区域的高度,单位:像素

Ext 字段示例

{
"Ext": {
"TextInImage": {
"OcrResult": [
{
"Text": "识别到的文字行1"
},
{
"Text": "识别到的文字行2"
}
],
"RiskWord": ["风险词1", "风险词2"]
},
"LogoData": [
{
"Location": {
"H": 44,
"W": 100,
"X": 45,
"Y": 30
},
"Logo": [
{
"Confidence": 96.15,
"Label": "pt_logotoSocialNetwork",
"Name": "CCTV"
}
]
}
]
}
}

💡 提示:Ext字段是可选的,只有在请求参数中指定了infoType或命中了相关内容时才会返回。如需获取文字识别结果,可以在请求时设置infoType: "textInImage"


4. RiskLevel 字段(风险等级)#

等级含义建议处理方式示例场景
high高风险🚫 直接拦截,不展示给用户色情、暴力、政治敏感内容
medium中风险👀 转人工审核可能违规但不确定的内容
low低风险⚠️ 可通过,但需注意轻微违规或边缘内容
none无风险✅ 通过审核,正常使用内容安全的图片

处理建议

// 伪代码示例
if (riskLevel === 'high') {
// 高风险:直接拦截
blockImage();
} else if (riskLevel === 'medium') {
// 中风险:转人工审核
sendToManualReview();
} else {
// low或none:通过审核
approveImage();
}

4. Result 字段(风险标签)#

这是一个数组,可能包含多个标签。

字段类型说明示例
LabelString风险标签的标识符pornographic_adultContent
ConfidenceFloat置信度(0-100分)81.5
DescriptionString标签的中文描述成人色情

置信度说明

  • 📊 90-100分:非常确定,几乎可以肯定是这个类型
  • 📊 70-90分:比较确定,有较大可能是这个类型
  • 📊 50-70分:有一定把握,但不够确定
  • 📊 50分以下:不太确定,建议人工审核

示例

{
"Result": [
{
"Label": "pornographic_adultContent",
"Confidence": 95.5,
"Description": "成人色情"
},
{
"Label": "sexual_partialNudity",
"Confidence": 88.2,
"Description": "肢体裸露或性感"
}
]
}

这个例子中,图片同时被检测到两个标签:

  1. 成人色情(95.5分,非常确定)
  2. 肢体裸露(88.2分,比较确定)

📚 如何使用这些信息?#

🔄 响应处理决策流程#

graph TD A[收到API响应] --> B{Code == 200?} B -->|否| C[检查错误码] C --> D[处理错误<br/>调整参数或重试] B -->|是| E[获取RiskLevel] E --> F{风险等级判断} F -->|none 无风险| G["通过审核<br/>✅ 直接展示内容"] F -->|low 低风险| H["自动通过<br/>⚠️ 可标记供人工抽查"] F -->|medium 中风险| I["人工审核<br/>👥 转人工处理"] F -->|high 高风险| J["拒绝内容<br/>❌ 直接拦截"] G --> K[记录审核结果] H --> K I --> L[人工审核结果] L --> M{人工审核结果} M -->|通过| K M -->|拒绝| J J --> N[保存请求ID] K --> N D --> O[结束] N --> O style A fill:#e1f5ff style B fill:#fff9c4 style C fill:#fce4ec style D fill:#fce4ec style E fill:#e8f5e9 style F fill:#fff9c4 style G fill:#c8e6c9 style H fill:#fff9c4 style I fill:#fff9c4 style J fill:#f8bbd0 style K fill:#e8f5e9 style L fill:#e8f5e9 style M fill:#fff9c4 style N fill:#e1f5ff style O fill:#e1f5ff

步骤1:检查请求是否成功#

if (response.Code !== 200) {
console.error('请求失败:', response.Msg);
return;
}

步骤2:获取风险等级#

const riskLevel = response.Data.RiskLevel;
console.log('风险等级:', riskLevel);

步骤3:查看检测到的标签#

response.Data.Result.forEach(item => {
console.log(`标签: ${item.Label}`);
console.log(`置信度: ${item.Confidence}%`);
console.log(`描述: ${item.Description}`);
});

步骤4:根据结果采取行动#

switch (riskLevel) {
case 'high':
console.log('高风险,拦截图片');
blockImage();
break;
case 'medium':
console.log('中风险,转人工审核');
sendToManualReview();
break;
case 'low':
case 'none':
console.log('低风险或无风险,通过审核');
approveImage();
break;
}

🔍 常见标签类型#

API支持60+种风险标签,主要分为以下几类:

类别典型标签说明
🚫 色情类pornographic_adultContent成人色情内容
🔫 暴力类violent_explosion爆炸、枪支、刀具等
🏛️ 政治类political_politicalFigure政治人物、国旗等
💊 违禁类contraband_drug毒品、赌博等
🤖 AIGC类aigcCheckAI生成的内容
📺 广告类advertisingCheck违法广告内容

📚 详细标签说明: 如需了解所有60+种标签的详细含义、命名规则和使用建议,请查看 风险标签释义表


💡 实用技巧#

技巧1:保存请求ID#

每次请求都会返回 RequestId,建议保存它。如果遇到问题,可以通过这个ID向阿里云客服求助。

console.log('请求ID:', response.RequestId);
// 保存到日志或数据库
logRequestId(response.RequestId);

技巧2:处理多个标签#

一张图片可能被检测到多个标签,建议按照置信度排序,优先处理置信度最高的。

// 按置信度降序排序
const sortedResults = response.Data.Result.sort((a, b) => {
return b.Confidence - a.Confidence;
});
console.log('最可能的违规类型:', sortedResults[0].Label);

技巧3:记录审核结果#

建议将审核结果保存到数据库,用于后续分析和统计。

const auditRecord = {
imageUrl: 'https://example.com/image.jpg',
riskLevel: response.Data.RiskLevel,
labels: response.Data.Result.map(r => r.Label),
auditTime: new Date(),
requestId: response.RequestId
};
// 保存到数据库
saveToDatabase(auditRecord);

错误码说明#

WARNING

错误码是API调用失败时的重要信息。当收到非200的状态码时,请根据错误码表查找原因并采取相应措施。特别注意:只有Code为200的请求才会计费,其他错误码不会产生费用。如果遇到系统异常(500),请稍后重试或联系客服。

Code说明处理建议
200请求正常-
400请求参数为空检查请求参数是否完整
401请求参数错误检查参数格式是否正确
402请求参数长度不符合接口规定检查并修改参数长度
403请求超过QPS限制检查并调整并发,或联系客服提升配额
404传入的图片下载遇到错误或超时检查图片URL是否可访问,或重试
405传入的图片下载超时检查图片URL是否可访问,或重试
406传入的图片过大检查调整图片大小后再重试
407传入的图片格式暂不支持检查调整图片格式后重试
408该账号无权限调用该接口检查账号是否开通服务或已欠费
500系统异常稍后重试或联系客服

💡 提示: 系统仅对code返回为200的请求计量计费,其他code不会计费。


常见问题#

Q1: AccessKey 如何获取?#

A:

  1. 登录 阿里云控制台
  2. 点击”创建 AccessKey”
  3. 验证身份后,系统会显示 AccessKey ID 和 AccessKey Secret
  4. 重要: AccessKey Secret 只显示一次,请立即保存

Q2: 如何选择合适的服务类型?#

A:

  • 通用场景: 使用 baselineCheck
  • 需要更高精度: 使用 baselineCheck_pro
  • 检测AI生成内容: 使用 aigcCheck
  • 用户头像审核: 使用 profilePhotoCheck
  • 社交媒体内容: 使用 postImageCheck
  • 广告内容: 使用 advertisingCheck
  • 直播截图: 使用 liveStreamCheck
  • 出海业务: 使用带 _cb 后缀的服务类型

Q3: 超过QPS限制怎么办?#

A:

  • 单用户QPS限制为100次/秒
  • 如果业务量较大,可以:
    1. 使用队列进行批量处理
    2. 联系阿里云商务经理申请更高的QPS
    3. 使用多个AccessKey分散请求

Q4: 如何降低成本?#

A:

  1. 购买资源包: 相比按量付费更优惠
  2. 优化调用策略:
    • 对已审核的图片进行缓存
    • 对相同内容的图片进行去重
    • 合理设置审核频率

相关资源#


文档版本: 1.0.0
最后更新: 2026-01-10

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

阿里云图片审核 API 调用教程
https://blog.mizhoubaobei.top/posts/aliyun/aliyun-image-moderation-api-tutorial/
作者
祁筱欣
发布于
2026-01-10
许可协议
CC BY 4.0

评论区

目录