当前位置: 首页>移动开发>正文

百度云内容审核快速配置 (java)

为什么要选择百度云 ?

因为他免费用一年

首先要先开通百度云内容安全服务

百度云内容审核快速配置 (java),第1张

按照操作指引走完整套

ContentCensor Java SDK目录结构**

com.baidu.aip
       ├── auth                                //签名相关类
       ├── http                                //Http通信相关类
       ├── client                              //公用类
       ├── exception                           //exception类
       ├── contentcensor
       │       └── AipContentCensor           //AipContentCensor类
       └── util                                //工具类

支持 JAVA版本:1.7+

查看源码 Java SDK代码现已公开,您可以查看代码、或者在License范围内修改和编译SDK以适配您的环境。 github链接:GitHub - Baidu-AIP/java-sdk: 百度AI开放平台 Java SDK

使用maven依赖

添加以下依赖即可。其中版本号可在maven官网查询

我用的

<dependency>
    <groupId>com.baidu.aip</groupId>
    <artifactId>java-sdk</artifactId>
    <version>4.16.14</version>
</dependency>

示例代码

配置完看应用列表 就有自己的应用信息

百度云内容审核快速配置 (java),第2张


import com.baidu.aip.contentcensor.AipContentCensor;
import com.baidu.aip.contentcensor.EImgType;
import org.json.JSONObject;

import java.io.IOException;

public static void main(String[] args) {
        // 初始化一个AipContentCensor
        AipContentCensor client = new AipContentCensor(APP_ID, API_KEY, SECRET_KEY);

        // 可选:设置网络连接参数
        client.setConnectionTimeoutInMillis(2000);
        client.setSocketTimeoutInMillis(60000);

        // 调用接口
        String path = "http://n.sinaimg.cn/collect/transform/20170108/vKCs-fxzkssy1239249.jpg";
        //图片审核
        JSONObject resImage = client.imageCensorUserDefined(path,EImgType.URL,null);
        String text = "你是傻B";
        //文本审核
        JSONObject resText = client.textCensorUserDefined(text);

        System.out.println(resImage.toString());
        System.out.println(resText.toString());

    }
}

百度云内容审核快速配置 (java),第3张

其它审核接口

内容审核平台 - 接口说明 | 百度AI开放平台 (baidu.com)

集成到项目中

1.配置类

import com.baidu.aip.contentcensor.AipContentCensor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 百度云Ai审核
 */
@Configuration
@ConfigurationProperties(prefix = "baidu")
public class BaiduConfig {

    @Value("${baidu.appId}")
    private String appId;
    @Value("${baidu.apiKey}")
    private String apiKey;
    @Value("${baidu.secretKey}")
    private String secretKey;


    @Bean
    public AipContentCensor aipContentCensor(){

        AipContentCensor aipContentCensor = new AipContentCensor(appId, apiKey, secretKey);
        

        return aipContentCensor;
    }





}

2.填写yaml

baidu:
  appId: 你自己的
  apiKey: 你自己的
  secretKey: 你自己的

3.封装工具类

package com.heima.common.baiduyun;

import com.baidu.aip.contentcensor.AipContentCensor;
import com.baidu.aip.contentcensor.EImgType;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.lang.annotation.ElementType;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 自定义的百度审核
 */
@Component
public class MyBaiduCensor {

    @Resource
    private AipContentCensor aipContentCensor;

    /**
     * 自定义审核纯文本内容
     * @param text
     * @return
     */
    public String scanText(String text){

        JSONObject json = aipContentCensor.textCensorUserDefined(text);

        return (String) json.get("conclusion");
    }

    /**
     * 审核图片
     * 根据图片的在线url
     */
    public String scanImage(String url){

        JSONObject result = aipContentCensor.imageCensorUserDefined(url, EImgType.URL, null);

        return (String) result.get("conclusion");

    }

    /**
     * 字节数组审核图片
     * @param image
     * @return
     */
    public String scanImage(byte[] image){
        JSONObject jsonObject = aipContentCensor.imageCensorUserDefined(image, null);
        return (String) jsonObject.get("conclusion");
    }

    /**
     * 审核本地文件
     * @param imagePath 传入文件路径
     * @return
     */
    public String scanImageFile(String imagePath){

        JSONObject jsonObject = aipContentCensor.imageCensorUserDefined(imagePath, EImgType.FILE, null);
        return (String) jsonObject.get("conclusion");
    }

    /**
     * 批量审核图片数组
     * @param imgList
     * @return
     */
    public String scanImageList(List<byte[]> imgList){
        //做一个结果集
        List<String> resultList = new ArrayList<>();

        for (byte[] bytes : imgList) {
            String res = scanImage(bytes);
            if(res.equals("不合规")){
                //只要有一张是不合规的,就返回不合规
                return "不合规";
            }
            //就是疑似,合规,失败
            //添加到结果集中
            resultList.add(res);
        }
        //判断结果集合
        //如果有 疑似,则返回
        if(resultList.contains("疑似")||resultList.contains("审核失败")){
            return "疑似,需要人工审核";
        }
        //都没有,则
        return "合规";
    }

}

4.在spring.properties 中添加这个类

为什么要这么写 因为如果要在模块A 调用模块B的bean  就要配置自动装配 ,否则会报错

百度云内容审核快速配置 (java),第4张

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.heima.common.exception.ExceptionCatch,\
  com.heima.common.swagger.SwaggerConfiguration,\
  com.heima.common.swagger.Swagger2Configuration,\
  com.heima.common.baiduyun.MyBaiduCensor

5.测试结果

百度云内容审核快速配置 (java),第5张


https://www.xamrdz.com/mobile/43k1948274.html

相关文章: