华为云内容审核Moderation对接使用完全指南
引言:为什么需要内容审核
在互联网内容爆炸式增长的今天,UGC(用户生成内容)平台、社交应用、电商网站、在线教育等各类业务系统每天都面临着海量的用户上传内容。如何高效、准确地识别和过滤违规内容,已成为每个平台必须解决的核心问题。人工审核成本高昂且效率低下,而传统的关键词过滤又无法应对变种和隐晦表达。华为云内容审核Moderation服务应运而生——它基于深度学习和多模态检测技术,提供图像、文本、音频、视频的全方位内容审核能力。本文将从零开始,带您全面掌握华为云内容审核Moderation的对接使用方法。
一、服务开通与准备工作
1.1 注册华为云账号并完成实名认证
使用内容审核服务之前,首先需要注册华为云账号并完成实名认证。需要注意的是,内容审核服务目前仅面向企业用户开放,个人用户暂不支持开通。如果您是企业用户,请确保账号已完成企业实名认证流程。
需要先登录华为云控制台,点击:华为云控制台,还没有账号,点击:注册并关联,已有账号点击:登录后关联
1.2 开通内容审核服务
登录华为云管理控制台后,在服务列表中找到"内容审核 Moderation"服务,进入服务管理页面。控制台左上角默认显示服务部署在"华北-北京四"区域,您可以根据业务需要选择对应的区域。不同区域的终端节点(Endpoint)不同,选择后请记录该区域信息,后续调用API时需要用到。
开通服务的具体操作步骤为:在内容审核管理控制台页面,点击"申请开通服务"按钮,按照页面提示完成服务开通申请。服务只需要开通一次即可,后续使用时无需再重复申请。
1.3 获取项目ID和终端节点
项目ID(project_id)是调用内容审核API时必须携带的参数之一。获取方式为:登录华为云控制台,鼠标移动至用户名处,在下拉列表中单击"我的凭证",在"项目列表"中即可查看到对应区域的项目ID。终端节点(Endpoint)是API请求的地址,不同服务、不同区域的终端节点不同。以"华北-北京四"区域为例,内容审核服务的终端节点为"moderation.cn-north-4.myhuaweicloud.com"。
1.4 准备访问密钥(AK/SK)
调用内容审核API时,推荐使用AK/SK方式进行认证鉴权,安全性更高。AK(Access Key ID)和SK(Secret Access Key)的获取方式为:在"我的凭证"页面选择"访问密钥"页签,单击"新增访问秘钥"按钮,通过邮箱或手机进行验证后即可生成并下载credentials.csv文件,其中包含AK和SK信息。请妥善保管该文件,SK一旦丢失将无法找回,需重新生成。
二、认证鉴权方式详解
华为云内容审核服务支持两种认证鉴权方式,用户可根据实际场景选择。
2.1 Token认证方式
Token认证是通过获取临时Token来调用API的方式。用户需要先调用获取Token接口,在响应消息头中获取X-Subject-Token的值,然后在后续API请求的Header中携带该Token。Token有一定的有效期,过期后需要重新获取。此方式适用于快速测试和调试场景。
2.2 AK/SK认证方式
AK/SK认证是通过加密签名的方式来调用API,安全性更高。用户在代码中使用AK和SK生成签名,将签名信息放在请求Header中。华为云提供的所有SDK都内置了AK/SK签名机制,开发者只需在初始化客户端时传入AK和SK即可,无需手动处理签名逻辑。本文后续的代码示例均采用AK/SK认证方式。
三、文本内容审核对接使用
文本内容审核是内容审核服务中最基础也最常用的功能,可自动检测文本中的涉黄、涉暴、涉政、辱骂等违规内容。当前版本仅支持中文内容审核。文本内容审核默认API调用最大并发为50,如需调整更高并发限制可联系华为技术支持。
3.1 文本审核API接口说明
文本内容审核V3版本的API接口信息如下:
- 请求URL:POST /v3/{project_id}/moderation/text
- 必填Header:X-Auth-Token(Token认证方式)或签名信息(AK/SK方式)
- 请求体参数:
- data:必填,检测数据对象
- event_type:可选,事件类型,可选值包括nickname(昵称)、title(标题)、article(帖子)、comment(评论)、barrage(弹幕)、search(搜索栏)、profile(个人简介)
- glossary_names:可选,检测时使用的自定义黑名单词库列表
- white_glossary_names:可选,检测时使用的自定义白名单词库列表
- categories:可选,检测场景,可选值包括terrorism(暴恐)、porn(色情)、ban(违禁)、abuse(辱骂)
3.2 Python SDK调用文本审核
华为云内容审核服务提供Python版本的SDK,支持Python3.3以上版本。以下是完整的文本审核Python代码示例:
# -*- coding: utf-8 -*-
import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkmoderation.v3.region.moderation_region import ModerationRegion
from huaweicloudsdkmoderation.v3 import *
# 配置AK/SK
ak = "您的AK"
sk = "您的SK"
project_id = "您的项目ID"
# 初始化认证凭证
credentials = BasicCredentials(ak, sk, project_id)
# 初始化客户端
client = ModerationClient.new_builder() \
.with_credentials(credentials) \
.with_region(ModerationRegion.CN_NORTH_4) \
.build()
# 构造请求
try:
request = RunTextModerationRequest()
request.body = TextDetectionReq(
data=TextDetectionDataReq(
text="待检测的文本内容"
),
event_type="comment",
categories=["porn", "terrorism", "ban", "abuse"]
)
response = client.run_text_moderation(request)
print(response.to_json_string())
except Exception as e:
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)安装SDK的命令如下:
pip install huaweicloudsdkcore
pip install huaweicloudsdkmoderation3.3 Java SDK调用文本审核
华为云同样提供Java版本的SDK,方便Java技术栈的开发者集成。以下是Java调用文本审核的代码示例:
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.moderation.v3.ModerationClient;
import com.huaweicloud.sdk.moderation.v3.model.*;
import com.huaweicloud.sdk.moderation.v3.region.ModerationRegion;
public class TextModerationDemo {
public static void main(String[] args) {
String ak = "您的AK";
String sk = "您的SK";
String projectId = "您的项目ID";
BasicCredentials auth = new BasicCredentials()
.withAk(ak).withSk(sk).withProjectId(projectId);
ModerationClient client = ModerationClient.newBuilder()
.withCredential(auth)
.withRegion(ModerationRegion.CN_NORTH_4)
.build();
RunTextModerationRequest request = new RunTextModerationRequest();
TextDetectionDataReq data = new TextDetectionDataReq();
data.setText("待检测的文本内容");
TextDetectionReq body = new TextDetectionReq();
body.setData(data);
body.setEventType("comment");
body.setCategories(Arrays.asList("porn", "terrorism", "ban", "abuse"));
request.setBody(body);
try {
RunTextModerationResponse response = client.runTextModeration(request);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}四、图像内容审核对接使用
图像内容审核可自动识别图片中的涉黄、暴恐、涉政等违规内容。支持JPG、PNG、JPEG、WEBP、GIF、TIFF、TIF、HEIF等多种图片格式。
4.1 图像审核API接口说明
图像内容审核V3版本的API接口信息如下:
- 请求URL:POST /v3/{project_id}/moderation/image
- 必填Header:X-Auth-Token(Token认证方式)或签名信息(AK/SK方式)
- 请求体参数:
- event_type:可选,事件类型,可选值包括head_image(头像)、album(相册)、dynamic(动态)、article(帖子)、comment(评论)、room_cover(房间封面)、group_message(群聊图片)、message(私聊图片)、product(商品图片)
- categories:可选,检测场景,可选值包括terrorism(暴恐)、porn(涉黄)、politics(涉政)
- url:与image二选一,图片的公网HTTP/HTTPS URL
- image:与url二选一,图片文件的Base64编码字符串,编码后大小不超过10M,图片宽高不低于20x20像素
4.2 Python SDK调用图像审核
# -*- coding: utf-8 -*-
import os
import base64
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkmoderation.v3.region.moderation_region import ModerationRegion
from huaweicloudsdkmoderation.v3 import *
# 配置AK/SK
ak = "您的AK"
sk = "您的SK"
project_id = "您的项目ID"
# 初始化客户端
credentials = BasicCredentials(ak, sk, project_id)
client = ModerationClient.new_builder() \
.with_credentials(credentials) \
.with_region(ModerationRegion.CN_NORTH_4) \
.build()
# 读取图片并转换为Base64
with open("待检测的图片.jpg", "rb") as f:
image_base64 = base64.b64encode(f.read()).decode("utf-8")
# 构造请求
try:
request = RunImageModerationRequest()
request.body = ImageDetectionReq(
data=ImageDetectionDataReq(
image=image_base64
),
event_type="album",
categories=["porn", "terrorism", "politics"]
)
response = client.run_image_moderation(request)
print(response.to_json_string())
except Exception as e:
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)4.3 使用图片URL进行审核
如果图片已经存储在公网可访问的URL中,可以直接传入URL进行审核,无需上传图片文件:
request.body = ImageDetectionReq(
data=ImageDetectionDataReq(
url="https://example.com/image.jpg"
),
event_type="album",
categories=["porn", "terrorism", "politics"]
)五、音频内容审核对接使用
音频内容审核采用异步作业的方式进行处理。用户先创建审核作业,获得作业ID,然后通过作业ID查询审核结果。
5.1 音频审核API接口说明
音频审核包含两个核心接口:
- 创建音频审核作业:提交音频文件进行审核,返回作业ID
- 查询音频审核作业:通过作业ID查询审核状态和结果
5.2 Python SDK调用音频审核
# -*- coding: utf-8 -*-
import os
import base64
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkmoderation.v3.region.moderation_region import ModerationRegion
from huaweicloudsdkmoderation.v3 import *
ak = "您的AK"
sk = "您的SK"
project_id = "您的项目ID"
credentials = BasicCredentials(ak, sk, project_id)
client = ModerationClient.new_builder() \
.with_credentials(credentials) \
.with_region(ModerationRegion.CN_NORTH_4) \
.build()
# 读取音频文件并转换为Base64
with open("待检测的音频.mp3", "rb") as f:
audio_base64 = base64.b64encode(f.read()).decode("utf-8")
# 创建音频审核作业
try:
request = RunCreateAudioModerationJobRequest()
request.body = AudioCreateRequest(
data=AudioInputData(
url=None,
audio=audio_base64
),
event_type="default",
categories=["porn", "terrorism", "politics"]
)
response = client.run_create_audio_moderation_job(request)
job_id = response.result.job_id
print(f"作业ID: {job_id}")
except Exception as e:
print(e.error_msg)
# 查询审核作业结果
try:
query_request = RunQueryAudioModerationJobRequest()
query_request.job_id = job_id
query_response = client.run_query_audio_moderation_job(query_request)
print(query_response.to_json_string())
except Exception as e:
print(e.error_msg)六、视频内容审核对接使用
视频内容审核同样采用异步作业方式,用户创建视频审核作业后通过作业ID查询结果。
6.1 视频审核API接口说明
视频审核包含两个核心接口:
- 创建视频审核作业:提交视频文件进行审核,返回作业ID
- 查询视频审核作业:通过作业ID查询审核状态和结果
6.2 Python SDK调用视频审核
# -*- coding: utf-8 -*-
import os
import base64
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkmoderation.v3.region.moderation_region import ModerationRegion
from huaweicloudsdkmoderation.v3 import *
ak = "您的AK"
sk = "您的SK"
project_id = "您的项目ID"
credentials = BasicCredentials(ak, sk, project_id)
client = ModerationClient.new_builder() \
.with_credentials(credentials) \
.with_region(ModerationRegion.CN_NORTH_4) \
.build()
# 读取视频文件并转换为Base64
with open("待检测的视频.mp4", "rb") as f:
video_base64 = base64.b64encode(f.read()).decode("utf-8")
# 创建视频审核作业
try:
request = RunCreateVideoModerationJobRequest()
request.body = VideoCreateRequest(
data=VideoInputData(
url=None,
video=video_base64
),
event_type="default",
categories=["porn", "terrorism", "politics"]
)
response = client.run_create_video_moderation_job(request)
job_id = response.result.job_id
print(f"作业ID: {job_id}")
except Exception as e:
print(e.error_msg)
# 查询审核作业结果
try:
query_request = RunQueryVideoModerationJobRequest()
query_request.job_id = job_id
query_response = client.run_query_video_moderation_job(query_request)
print(query_response.to_json_string())
except Exception as e:
print(e.error_msg)七、自定义词库配置
使用文本内容审核服务时,用户可以配置自定义黑名单词库和自定义白名单词库,以帮助过滤和检测指定的文本内容。配置自定义词库需要先开通文本内容审核服务。一个账户最多支持创建20个自定义词库。
7.1 创建自定义词库
登录内容审核服务管理控制台,在左侧菜单栏中选择"设置 > 自定义词库",在页面中单击"创建词库"按钮。创建词库时可以选择词库类型(黑名单或白名单),并上传包含关键词的文本文件。配置完成后即可在调用文本审核API时通过glossary_names或white_glossary_names参数引用自定义词库。
7.2 自定义词库的使用场景
自定义黑名单词库适用于过滤特定业务场景下的敏感词,例如平台特有的行业黑话、竞品名称等。自定义白名单词库则适用于将某些容易被误判为违规的词汇加入白名单,避免正常内容被错误拦截。配置自定义词库后可以免费使用。
八、计费模式与成本优化
华为云内容审核服务提供两种计费模式:
8.1 按需计费
按需计费按照调用次数阶梯价格计费,按月累计,一个自然月后次数清零重新累计。适合调用量不稳定的场景,用多少付多少,无需预付费。
8.2 套餐包计费
套餐包计费模式下,用户预先购买一定数量的调用次数套餐包。扣费时调用次数会先在套餐包内进行抵扣,抵扣完后的剩余调用量默认转回按需计费方式。套餐包通常比按需计费有更优惠的单价,适合调用量稳定的场景。
8.3 成本优化建议
对于调用量较大的业务场景,建议购买套餐包以降低单位调用成本。同时可以关注华为云的促销活动,针对不同服务会有阶段性优惠。此外,合理设置审核场景(categories参数)只检测必要的违规类型,可以避免不必要的调用次数消耗。
九、视频点播场景下的内容审核
对于视频点播(VOD)业务,华为云提供了更加便捷的审核配置方式。在视频点播控制台中,可以配置审核模板,对上传的音视频进行智能审核。
9.1 审核模板配置
登录视频点播控制台,在左侧导航栏选择"审核管理 > 音视频审核",进入音视频审核页面。系统会根据设置的默认审核模板进行智能审核。您可以通过审核设置修改或编辑审核模板。
9.2 先发后审与先审后发
视频点播控制台提供的默认审核模式是"先发后审",即音视频上传后可直接播放,平台再进行审核,根据审核结果决定是否屏蔽该文件。如果业务需要"先审后发"模式,则需要调用视频点播API进行处理。
十、API Explorer调试工具
华为云提供了API Explorer在线调试工具,开发者无需编写代码即可快速体验内容审核服务。在API Explorer中,可以选择对应的API接口,填写请求参数,系统会自动生成SDK代码示例。这对于快速验证接口功能、了解请求参数结构非常有帮助。
十一、常见问题解答
问题1:内容审核服务支持哪些语言?
文本内容审核当前仅支持中文内容审核。图像、音频、视频审核不受语言限制,基于视觉和听觉内容进行检测。
问题2:内容审核的并发限制是多少?
文本内容审核默认API调用最大并发为50。如需调整更高并发限制,可以联系华为技术支持工程师为您服务。
问题3:个人用户能否开通内容审核服务?
内容审核服务仅面向企业用户开放,个人用户暂不支持开通。请使用企业实名认证的华为云账号进行服务申请。
问题4:如何查看内容审核的调用次数和统计信息?
登录内容审核管理控制台,在左侧导航栏中选择对应的审核类型(如"内容审核 V3 > 识别统计 > 图像审核"),可以查看识别统计和调用次数。
问题5:自定义词库最多可以创建多少个?
一个账户最多支持创建20个自定义词库。配置自定义词库后可以免费使用。
问题6:内容审核服务有免费试用额度吗?
华为云内容审核服务提供按需计费和套餐包计费两种模式。具体的免费试用政策和额度请以华为云官网最新公告为准,不同时期可能有不同的促销活动。




