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