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

为什么要选择百度云 ?

因为他免费用一年

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

按照操作指引走完整套

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.测试结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/321840.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度解析DPO及其变体在多种任务上的表现如何,该如何选择

深度学习自然语言处理 原创作者&#xff1a;wkk 单位&#xff1a;亚利桑那州立大学paper&#xff1a;Insights into Alignment:Evaluating DPO and its Variants Across Multiple TasksLink&#xff1a;https://arxiv.org/pdf/2404.14723 今天&#xff0c;我要带大家深入了解一…

Qt在任务栏图标和系统托盘图标上显示红点

在任务栏图标上显示红点 关键类&#xff1a;QWinTaskbarButton #include <QWinTaskbarButton>QPointer<QWinTaskbarButton> taskbarBtn nullptr; if (!taskbarBtn) {taskbarBtn new QWinTaskbarButton(window);taskbarBtn->setWindow(window->windowHand…

git bash退出vim编译模式

解决方法&#xff1a; 1.按esc键&#xff08;回到命令模式&#xff09; 此时是没有分号让我们在后面输入命令的 2.按shift键: 3.再输入&#xff1a;wq&#xff0c;并按enter键 此时我们发现又回到git bash窗口 希望对大家有所帮助&#xff01;

厚德提问大佬答3:让AI绘画更有效率

遇到难题不要怕&#xff01;厚德提问大佬答&#xff01; 厚德提问大佬答 你是否对AI绘画感兴趣却无从下手&#xff1f;是否有很多疑问却苦于没有大佬解答带你飞&#xff1f;从此刻开始这些问题都将迎刃而解&#xff01;你感兴趣的话题&#xff0c;厚德云替你问&#xff0c;你解…

SSM+Vue在线OA办公系统

在线办公分三个用户登录&#xff0c;管理员&#xff0c;经理&#xff0c;员工。 SSM架构&#xff0c;maven管理工具&#xff0c;数据库Mysql&#xff0c;系统有文档&#xff0c;可有偿安装调试及讲解&#xff0c;项目保证质量。需要划到 最底 下可以联系到我。 功能如下&am…

Redis之Linux下的安装配置

Redis之Linux下的安装配置 Redis下载 Linux下下载源码安装配置 方式一 官网下载&#xff1a;https://redis.io/download ​ 其他版本下载&#xff1a;https://download.redis.io/releases/ 方式二&#xff08;推荐&#xff09; GitHub下载&#xff1a;https://github.com/r…

游戏全自动打金搬砖,单号收益300+ 轻松日入1000+

详情介绍 游戏全自动打金搬砖&#xff0c;单号收益300左右&#xff0c;多开收益更多&#xff0c;轻松日入1000 可矩阵操作。 项目长期稳定&#xff0c;全自动挂机无需人工操作&#xff0c;小白&#xff0c;宝妈&#xff0c;想做副业的都可以。

css浮动(float)

浮动&#xff08;Float&#xff09; 在CSS中是一个重要的布局技术&#xff0c;它允许元素向左或向右移动&#xff0c;其周围的元素会重新排列。当一个元素被设置为浮动时&#xff0c;它会脱离正常的文档流&#xff0c;这意味着它不再占据原本在文档流中的空间&#xff0c;而会尽…

VS编辑器下使用MFC完成数据相册系统

背景&#xff1a; 实验项目8:数字相册系统 (2周) (一)实验目的 通过该实验&#xff0c;使学生掌握windows程序设计的基本方法。了解相册的基本功能&#xff0c;在传统相册的基础上&#xff0c; 通过应用时钟、图形绘制功能、图形文件的读写功能以及数据库技术&#xff0c;实现对…

《Linux运维总结:ARM64架构CPU基于docker-compose一离线部署rabbitmq 3.10.25容器版镜像模式集群工具》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;《Linux运维篇&#xff1a;Linux系统运维指南》 一、部署背景 由于业务系统的特殊性&#xff0c;我们需要面向不通的客户安装我们的业务系统&…

DC-DC电路中电感的下方该不该挖空

DC-DC电路中的电感下方该不该挖空&#xff1f; 在回答这个问题之前&#xff0c;先来了解一下DC-DC电路中常见的功率电感类型 一&#xff0e;DC-DC电路常用功率电感类型 图1 DC-DC电路常用电感类型 这四种类型电感&#xff0c;按照无屏蔽电感→磁封胶半屏蔽电感→组装式全屏蔽…

01-MySQL 基础篇笔记

一、MySQL 概述 1.1 数据库相关概念 数据库:(DB:DataBase) 存储数据的仓库,数据是有组织的进行存储 数据库管理系统:(DBMS:DataBase Management System) 操作和管理数据库的大型软件 SQL:(SQL:Structured Query Language,结构化查询语言) 操作关系型数据库的编…

ThreeJS:常见几何体与基础材质入门

在前文《ThreeJS:Geometry与顶点|索引|面》中&#xff0c;我们了解了与Geometry几何体相关的基础概念&#xff0c;也尝试了如何通过BufferGeometry自定义几何体。 常见Geometry几何体 ThreeJS内部也提供了诸多封装好的几何体&#xff0c;常见的Geometry几何体如下图所示&#…

为什么 ChatGPT 不火了?

不火了是有原因的&#xff0c;下面我来从大部分人拿到 ChatGPT 之后的两大痛点开始讲起&#xff1a; 很多朋友拿到 ChatGPT 后的第一个痛点就是&#xff1a;用的不好 你经常会感觉到 ChatGPT 回答的好空&#xff0c;没有太多参考价值。 而第二个痛点则是&#xff1a;无处去用…

【C++历练之路】红黑树——map与set的封装实现

W...Y的个人主页&#x1f495; gitee代码仓库分享&#x1f60a; 前言&#xff1a;上篇博客中&#xff0c;我们为了使二叉搜索树不会出现”一边倒“的情况&#xff0c;使用了AVL树对搜索树进行了处理&#xff0c;从而解决了数据在有序或者接近有序时出现的情况。但是AVL树还会…

Isaac Sim 3(学习笔记5.8)

Isaac Sim 利用深度学习获取mask掩码图 参考内容 Kubernetes官网 在 Linux 系统中安装并设置 kubectl | Kubernetes准备开始 kubectl 版本和集群版本之间的差异必须在一个小版本号内。 例如&#xff1a;v1.30 版本的客户端能与 v1.29、 v1.30 和 v1.31 版本的控制面通信。 用…

风与水如何联合优化?基于混合遗传算法的风-水联合优化运行程序代码!

前言 为提高风电场的供电质量同时增加其发电效益,利用储能技术为风电场配置一个蓄能系统是比较重要的解决措施之一。风电的蓄能技术有水力蓄能、压缩空气蓄能、超导磁力蓄能、流体电池组、电解水制氢等&#xff0c;其中水力蓄能是技术较成熟的一种蓄能方式&#xff0c;且小型的…

【JavaEE初阶系列】——Servlet运行原理以及Servlet API详解

目录 &#x1f6a9;Servlet运行原理 &#x1f6a9;Servlet API 详解 &#x1f393;HttpServlet核心方法 &#x1f393;HttpServletRequest核心方法 &#x1f388;核心方法的使用 &#x1f534;获取请求中的参数 &#x1f4bb;query string &#x1f4bb;直接通过form表…

【Cpp】运算符重载 | 前置++(--)# 后置++(--)

标题&#xff1a;【Cpp】运算符重载 | 前置&#xff08;--&#xff09;# 后置&#xff08;--&#xff09; 水墨不写bug 正文开始&#xff1a; 对于内置类型的前置后置&#xff08;--&#xff09;我们已经很清楚了&#xff1a; 前置&#xff08;--&#xff09;先&#xff08;--…

记录一个RSA加密js逆向

network调试就不说了吧 pwd加密参数 搜索pwd参数定位逆向 可以看到有很多关键词 但是我们细心的朋友会发现加密函数关键字 encrypte 打上断点 调试 发现在断点处停止了 并且框选函数发现了一串加密值 虽然不一样但是大概率是这个 并且没你每次放置移开都会刷新 所以如果这个就是…