为什么要选择百度云 ?
因为他免费用一年
首先要先开通百度云内容安全服务
按照操作指引走完整套
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>
示例代码
配置完看应用列表 就有自己的应用信息
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) {// 初始化一个AipContentCensorAipContentCensor 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());}
}
其它审核接口
内容审核平台 - 接口说明 | 百度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;@Beanpublic 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 {@Resourceprivate 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 就要配置自动装配 ,否则会报错
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.测试结果