更新时间:2024-04-23 GMT+08:00

图像内容审核(V2)

  1. 本章节对图像内容审核AK/SK方式使用SDK进行示例说明。

    示例代码中可以使用Url或Image配置图像信息(代表使用url或者图像的base64),示例中以url为例配置完成后运行即可。

    const core = require('@huaweicloud/huaweicloud-sdk-core');
    const moderation = require("@huaweicloud/huaweicloud-sdk-moderation");
    // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;
    // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK、HUAWEICLOUD_SDK_PROJECT_ID。 
    const ak = process.env.HUAWEICLOUD_SDK_AK;
    const sk = process.env.HUAWEICLOUD_SDK_SK;
    const projectId = process.env.HUAWEICLOUD_SDK_PROJECT_ID;
    
    const endpoint = "https://moderation.ap-southeast-1.myhuaweicloud.com"; //把ap-southeast-1替换成服务所在的区域。
    const credentials = new core.BasicCredentials()
                         .withAk(ak)
                         .withSk(sk)
    const client = moderation.ModerationClient.newBuilder()
                                .withCredential(credentials)
                                .withEndpoint(endpoint)
                                .build();
    const request = new moderation.RunImageModerationRequest();
    const body = new moderation.ImageDetectionReq();
    const listbodyCategories = new Array();
    listbodyCategories.push("terrorism");
    listbodyCategories.push("porn");
    body.withCategories(listbodyCategories);
    body.withModerationRule("default");
    body.withUrl("https://XXX.jpg");  //此处替换为公网可以访问的图片地址
    request.withBody(body);
    const result = client.runImageModeration(request);
    result.then(result => {
        console.log("JSON.stringify(result)::" + JSON.stringify(result));
    }).catch(ex => {
        console.log("exception:" + JSON.stringify(ex));
    });
  2. 审核结果输出到控制台表示执行成功,图像内容审核结果输出到控制台。
    JSON.stringify(result)::{"result": {"detail": { "porn": [{"confidence": 0.9883, "label": "normal"}, {"confidence": 0.0039, "label": "porn"}, {"confidence": 0.0078, "label": "sexy"}], "terrorism": [{"confidence": 0.0002, "label": "terrorist"}, {"confidence": 0.0002, "label": "fascist"}, {"confidence": 0.0001, "label": "cult"}, {"confidence": 0.0002}, {"confidence": 0.0001, "label": "kidnap"}, {"confidence": 0.0006, "label": "riot"}, {"confidence": 0.0001, "label": "parade"}, {"confidence": 0.0002, "label": "corpse"}, {"confidence": 0.0001, "label": "bloody"}, {"confidence": 0.0001, "label": "knife"}, {"confidence": 0.0001, "label": "gun"}, {"confidence": 0.0002, "label": "military_weapon"}, {"confidence": 0.0, "label": "special_characters"}, {"confidence": 0.9994, "label": "normal"}], "ad": [{"confidence": 0.0, "label": "ad"}, {"confidence": 1.0, "label": "normal"}]}, "suggestion": "pass", "category_suggestions": { "ad": "pass", "terrorism": "pass", "porn": "pass"}}}