SpringBoot项目调用百度API 实现文本与图像审核功能
SpringBoot项目调用百度API 实现文本与图像审核功能
最近在开发一款微信小程序,其中具有发布帖子的功能,因此需要审核发布的文本与图像(不然开发的微信小程序过不了审)。本来是调用微信小程序的API,但效果不稳定,所以尝试用百度API。
官方API文档: https://ai.baidu.com/docs#/QuickStart-ContentCensor/top
具体流程如下:
准备工作(二选一即可)
1)添加依赖:
${version}
可根据官网选择合适的版本<dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>${version}</version> </dependency>
2)直接下载工具类
以我的项目为例,导入4.12.0版本的jdk后不知道为什么发现少了
FileUtil.java
以及HttpUtil.java
工具类。如果有出现相同问题的伙伴,可以直接下载相应的工具类并导入项目中。工具类下载地址:
FileUtil:https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72
Base64Util:https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2
HttpUtil: https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3================更 新 ================
上面部分链接已失效,工具类可参考这篇博客复制官方API文档给出的获取Access Token的代码(选择Java)
主要功能是获取调用API时必须在URL中带上的access_token参数,具体实现可不管,若感兴趣可深入研究。
链接:https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu.
直接复制粘贴,代码如下:import org.json.JSONObject;import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.List; import java.util.Map;/*** 获取token类*/ public class AuthService {/*** 获取权限token* @return 返回示例:* {* "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",* "expires_in": 2592000* }*/public static String getAuth() {// 官网获取的 API Key 更新为你注册的String clientId = "百度云应用的AK";// 官网获取的 Secret Key 更新为你注册的String clientSecret = "百度云应用的SK";return getAuth(clientId, clientSecret);}/*** 获取API访问token* 该token有一定的有效期,需要自行管理,当失效时需重新获取.* @param ak - 百度云官网获取的 API Key* @param sk - 百度云官网获取的 Securet Key* @return assess_token 示例:* "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"*/public static String getAuth(String ak, String sk) {// 获取token地址String authHost = "https://aip.baidubce.com/oauth/2.0/token?";String getAccessTokenUrl = authHost// 1. grant_type为固定参数+ "grant_type=client_credentials"// 2. 官网获取的 API Key+ "&client_id=" + ak// 3. 官网获取的 Secret Key+ "&client_secret=" + sk;try {URL realUrl = new URL(getAccessTokenUrl);// 打开和URL之间的连接HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();connection.setRequestMethod("GET");connection.connect();// 获取所有响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()) {System.err.println(key + "--->" + map.get(key));}// 定义 BufferedReader输入流来读取URL的响应BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String result = "";String line;while ((line = in.readLine()) != null) {result += line;}/*** 返回结果示例*/System.err.println("result:" + result);JSONObject jsonObject = new JSONObject(result);String access_token = jsonObject.getString("access_token");return access_token;} catch (Exception e) {System.err.printf("获取token失败!");e.printStackTrace(System.err);}return null;} }
文本图像审核功能代码
import com.baidu.aip.util.Base64Util;//通过依赖导入的,也可直接下载工具类 import com.zzh.rescue.util.FileUtil;//直接下载的工具类 import com.zzh.rescue.util.baiduHttpUtil;//直接下载的工具类(HttpUtil) 因为项目中有同名文件所以换了个名字import java.net.URLEncoder;public class BaiduCensor {//设置APPID/AK/SKpublic static final String APP_ID = "你的应用ID";public static final String API_KEY = "你的AK";public static final String SECRET_KEY = "你的SK";//图像审核public static String ImageCnesor(String filePath) {// 请求urlString url = "https://aip.baidubce.com/rest/2.0/solution/v1/img_censor/user_defined";try {byte[] imgData = FileUtil.readFileByBytes(filePath);String imgStr = Base64Util.encode(imgData);String imgParam = URLEncoder.encode(imgStr, "UTF-8");String param = "image=" + imgParam;//获取accessTokenString accessToken =AuthService.getAuth(API_KEY,SECRET_KEY);String result = baiduHttpUtil.post(url, accessToken, param);//接口说明 https://ai.baidu.com/docs#/ImageCensoring-API/topSystem.out.println(result);return result;} catch (Exception e) {e.printStackTrace();}return null;}// 文本审核public static String TextCensor(String content) {// 请求urlString url = "https://aip.baidubce.com/rest/2.0/antispam/v2/spam";try {String param = "content=" + content;//获取accessTokenString accessToken =AuthService.getAuth(API_KEY,SECRET_KEY);String result = baiduHttpUtil.post(url, accessToken, param);//接口说明 https://ai.baidu.com/ai-doc/ANTIPORN/Rk3h6xb3iSystem.out.println(result);return result;} catch (Exception e) {e.printStackTrace();}return null;}public static void main(String[] args){//本地图片路径String filePath = "G:\\Lenovo\\Pictures\\Camera Roll\\2.jpg";BaiduCensor.ImageCnesor(filePath); // String content="苟利国家生死以"; // BaiduCensor.TextCensor(content);} }
输出结果
1)图像审核(参看接口说明){"conclusion":"不合规","log_id":15756455194191999,"data":[{"msg":"存在性感内容","probability":0.995008,"type":2},{"msg":"存在水印码内容","probability":0.93725634,"type":5},{"msg":"存在公众人物","stars":[{"probability":0.90543276,"name":"Romee Strijd"}],"type":11}, {"msg":"恶意推广","probability":0.9189577,"type":9}],"conclusionType":2 }
2)文本审核(参看接口说明)
{"log_id": 1225837669966959270, "result": {"spam": 2, "review": [{"score": 0.9, "hit": ["苟利国家生死"], "label": 3}], "reject": [], "pass": [{"score": 0.2, "hit": [], "label": 1}, {"score": 0.028999999165535, "hit": [], "label": 2}, {"score": 0.25995993377483, "hit": [], "label": 4},{"score": 0.037999998778105, "hit": [], "label": 5}]} }
SpringBoot项目调用百度API 实现文本与图像审核功能相关推荐
- Java调用百度API实现文本与图像审核功能
文档: API文档:https://ai.baidu.com/ai-doc/ANTIPORN/ek3h6x90n SDK下载:https://ai.baidu.com/sdk#anti github链 ...
- java实现文本纠错功能_调用百度API进行文本纠错
毕设做的是文本纠错方面,然后今天进组见研究生导师 .老师对我做的东西蛮感兴趣.然后介绍自己现在做的一些项目,其中有个模块需要有用到文本纠错功能. 要求1:有多人同时在线编辑文档,然后文档功能有类似Wo ...
- 调用百度API 对文本进行情感倾向分析(舆情分析)
@[TOC] # 1.准备工作 1.注册百度账号,登录百度智能云,点击总览选择自然语言处理,创建应用(创建选项认真阅读,填写) 创建好应用会生成相应的AppID API Key Secret Key ...
- 【微信小程序调用百度API实现图像识别功能】----项目实战
本章主要讲述: 如何更快的上手小程序 如何搭建一个页面以及跳转到另一个页面 如何调用百度API接口实现图像识别技术 如何在微信小程序的后台添加合法域名 私信获取源码,有问题可以关注留言或私信,计算机毕 ...
- springboot项目整合百度AI内容审核(文本,图片)
毕设项目做得差不多了,但功能上基本都是本地完成的,除了有一个支付功能以及图片上传的优化,其他貌似没有用到云的东西,显得过于单调,由于是社区型项目,用户发送文本以及上传图片的频率是十分高的,于是就打算利 ...
- 用Python调用OpenAI API进行文本创作
文章目录 一.前言 二.使用教程 2.1获取API密钥 2.2 连接API 2.3 文本生成 三.创作示例 3.1 诗歌创作 3.2 推荐书单 3.3 超级百度 四.总结 一.前言 本文将教大家用py ...
- 调用百度API实现图像风格转换
目录 1.作者介绍 2.基本概念 2.1 人工智能云服务与百度智能云 2.2 图像风格转换 3.调用百度API实现图像风格转换 3.1 配置百度智能云平台 3.2 环境配置 3.3 完整代码实现 3. ...
- java调用百度翻译_Java调用百度API实现翻译-Go语言中文社区
下面是Java调用百度API实现翻译的具体步骤: 一.在写代码之前先在在百度翻译平台中,申请APP_ID 申请地址申请的详见点击打开链接 申请之后,会得到APP_ID和SECURITY_KEY 二.j ...
- 【Python学习笔记】简单调用百度API应用
#本文一切代码及理论均来自于郑秋生.夏敏捷二位老师主编<Python项目案例发 从入门到实践>一书,本人仅做微改.创作本文的目的仅为总结本人的学习过程和成果,借此巩固.可能存在许多疏漏之处 ...
最新文章
- python 文件获取绝对路径
- 设计模式-创建型-抽象工厂
- VMWare ubuntu虚拟机异常关闭打开报错:该虚拟机似乎正在使用中(下班虚拟机最好关闭,免得又异常关闭导致问题)(千万别在虚拟机下win+L锁屏,解锁后就打不开虚拟机了)
- 对话框绘制完成消息_Word小技巧-一分钟教会你快速绘制组织架构图
- leetcode 978. Longest Turbulent Subarray | 978. 最长湍流子数组(Java)
- Visual Studio 2010中添加App_Code文件夹注意事项
- MUI调用原生自定义方法实现计算缓存与清空缓存
- MUSICAL CHAIRS【模拟】
- win7开启ftp被动模式_FTP服务器在Linux系统上的搭建
- 消息称Uber正洽谈出售旗下自动驾驶部门ATG给Aurora
- python差分进化算法_差分进化算法(differential evolution)的Python实现
- 解决idea工具下tomcat中文乱码问题
- 债券属性「久期」的本质是什么?
- 三次埃尔米特插值一阶导数的求法
- autojs左右滑动脚本代码_Swiper.js实现移动端元素左右滑动
- 如何在Ubuntu上方便使用OpenAI API key
- amazon开发者申请,pii权限申请
- 软件工程课堂作业(十六)——找“1”的个数
- [转载]使用JDBC创建数据库对象
- 微型计算机shr,shl指令(shr是什么指令)
热门文章
- 搜楼网-四大问题,租办公室不得不注意!
- Objective-C(十九、通知-消息发送模式之中的一个)——iOS开发基础
- C++最小生成树Kruskal算法
- 线程安全(互斥 死锁 同步)
- 阿里云ecs windows 2008 安装ftp
- 魅蓝note6救砖_魅蓝NOTE6刷机解锁救砖解账户锁
- mate10无法升级鸿蒙,华为高管辟谣,Mate40下月无法升级鸿蒙,一般用户无法体验...
- javaweb JAVA JSP房屋租赁系统jsp房屋租售网站JSP网上租房系统ssm房产信息网站案例
- bboss安全认证过滤器认证后重定向到请求页面功能介绍
- 工程坐标转换方法C#代码实现