内容审核-文本
本章节提供了通过Java SDK调用“内容审核-文本”服务的样例,用户直接调用接口函数即可使用SDK功能。具体流程如下:
步骤一:开通服务,用户在“服务列表”或“服务管理”页面选择内容审核-文本服务申请开通。
步骤二:配置自定义词库,用户可配置自定义白名单词库和自定义黑名单词库。
步骤三:配置环境,获取SDK和样例工程,导入到开发环境中。
步骤四:认证鉴权,使用AK/SK方式进行认证。
步骤五:调用服务,调用API接口使用服务,使用过程中可以随时查看状态码与错误码。
步骤二:配置自定义词库
文本内容审核服务可支持用户配置自定义白名单词库和自定义黑名单词库进行文本审核。
- 创建自定义白名单词库:在使用文本内容审核服务时,您在白名单词库配置的内容可以不被检测出。
具体操作步骤如下:
- 登录华为云,单击右上角的“控制台”,进入“管理控制台”界面。
- 单击“服务列表”,选择“人工智能 > 内容审核”,进入“内容审核”管理页面。
- 在左侧菜单栏中选择“服务列表>文本审核”服务。单击“自定义白名单词库”后的“配置”按钮,进入“创建词库”页面。
图1 创建词库
- 填写词库名称,输入新增的白名单关键词。单击“确定”,完成词库的创建
- 名称:长度小于40个字符,只能包含字母、数字、中划线和下划线。
- 新增关键词:长度不大于40个字符,最多支持5000个关键词,每一行一个关键词。
2. 创建自定义黑名单词库:在使用文本内容审核服务时,您在黑名单词库配置的内容会被检测出。
具体操作步骤如下:
- 登录华为云,单击右上角的“控制台”,进入“管理控制台”界面。
- 单击“服务列表”,选择“人工智能 > 内容审核”,进入“内容审核”管理页面。
- 在左侧菜单栏中选择“服务列表>文本审核”服务。单击“自定义黑名单词库”后的“配置”按钮,进入“自定义词库”页面。
- 单击页面左上方“创建词库”,进入“创建词库”页面。填写词库名称,输入新增的黑名单关键词。
- 名称:长度小于40个字符,只能包含字母、数字、中划线和下划线。
- 新增关键词:长度不大于40个字符,最多支持5000个关键词,每一行一个关键词。
- 单击“确定”,完成词库的创建。
- 词库名称不支持修改。
步骤三:配置环境
您可以基于内容审核SDK通过编写代码的方式调用内容审核-文本API。在使用SDK和调用API时您需要进行环境配置。具体操作步骤如下:
- 最新版本内容审核SDK软件包和文档,请在SDK中心获取。
- 环境配置请参见Java开发环境配置。
- 以eclipse工具为例,导入SDK工程:
- 打开Eclipse,确保“Windows >Preferences >Java >Installed JREs”配置正确的JRE路径。
- 在左边导航上选择“General > Workspace”,在“Text file encoding”区域选中“Other”,并设置参数值为“UTF-8”,单击“Apply”后,单击“OK”。
- 在菜单栏依次选择“File > Import”, 弹出导入工程窗口,选择“Maven > Existing Maven Projects”,单击“Next”,单击“Browse”,选择“ais-moderation-java-sdk”所在的本地位置。
- 单击Finish,导入SDK,导入后打开工程,工程目录如图2所示。
步骤四:认证鉴权
内容审核服务认证方式有Token和AK/SK两种方式,本示例中使用AK/SK方式进行认证。
- 获取AK/SK。
AK/SK即访问密钥,请登录我的凭证页面,选择“访问密钥 > 新增访问密钥”获取。
图3 新增访问密钥
- 配置Java SDK中的AK/SK,进行AK/SK认证鉴权。
根据获取的AK/SK,修改工程目录中“ModerationTextContentDemo.java”文件中函数的“AK”和“SK”的值。示例代码如下:
1 2 3 4 5 6 7 8 9 10 11
// 1. 配置好访问文本内容审核服务的基本信息,生成对应的一个客户端连接对象 AisAccess service = ServiceAccessBuilder.builder() // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全 // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK .ak("HUAWEICLOUD_SDK_AK") .sk("HUAWEICLOUD_SDK_SK") .region("cn-north-4") // 内容审核服务支持华北-北京四(cn-north-4)、华东-上海一(cn-east-3)的配置 .connectionTimeout(5000) // 连接目标url超时限制 .connectionRequestTimeout(1000) // 连接池获取可用连接超时限制 .socketTimeout(20000) // 获取服务器响应数据超时限制 .build();
步骤五:调用服务
- 输入需要检测的文本,参考如下示例代码修改“ModerationTextContentDemo.java”文件中输入文本的位置("6666666666")。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
// // 2.构建访问文本内容审核服务需要的参数 // String uri = "/v1.0/moderation/text"; JSONObject json = new JSONObject(); json.put("categories", new String[] {"porn","flood"}); //检测内容 JSONObject text = new JSONObject(); text.put("text", "6666666666"); text.put("type", "content"); JSONArray items = new JSONArray(); items.add(text); json.put("items", items); StringEntity stringEntity = new StringEntity(json.toJSONString(), "utf-8"); // 3.传入文本内容审核服务对应的uri参数, 传入文本内容审核服务需要的参数, // 该参数主要通过JSON对象的方式传入, 使用POST方法调用服务 HttpResponse response = service.post(uri, stringEntity); // 4.验证服务调用返回的状态是否成功,如果为200, 为成功, 否则失败。 ResponseProcessUtils.processResponseStatus(response);
- 执行“ModerationTextContentDemo.java”文件,控制台输出200即表示程序执行成功,文本内容审核结果输出到控制台,如图4所示。
- 查看调用次数。您可以在“服务列表”,“文本审核”页查看调用详情和调用次数统计,如图5所示。
- 识别结果统计:显示一段时间范围,内容审核的调用总数,拒绝数,疑似数和通过数,帮助您更好了解服务的调用情况和审核情况。
- 总数:指的是审核调用总次数。
- 拒绝数:指的是block总数,即文本中包含敏感信息,审核不通过的次数。
- 疑似数:指的是review总数,即人工复查审核的次数。
- 通过数:指的是pass总数,即通过审核的次数。
- 数据趋势:显示您设置的这段时间范围内,总数,拒绝数,疑似数和通过数的变化趋势。
- 拒绝数据原因分布:显示您设置的这段时间范围内,审核不通过的检测场景占比数。
- 疑似数据原因分布:显示您设置的这段时间范围内,需要人工复查的检测场景占比数。
- 识别结果统计:显示一段时间范围,内容审核的调用总数,拒绝数,疑似数和通过数,帮助您更好了解服务的调用情况和审核情况。