SpringBoot/Java/nacos如何对接某度云文本检测Api接口

前言:

最近有一个需要就是对文本和照片进行审核,审核的话自己来审核就太慢了,所以就去调了百度云的文本审核

正文:

首先你需要去某度文本审核地址申请一个App获取到appid,key,secret
获取到这三个之后在application.yml或者在nacos的xxxx-dev.yml配置文件中加入这个配置就行了
#百度文本审核接口配置
baiducheck:
 appid: xxxxxxx
 key: xxxxxxxxxxxxxxx
 secret: xxxxxxxxxxxxxxxxxx
之后需要在pom.xml中添加某度云的依赖,如果你有slf4j冲突,就排除下面的依赖
       <!--某度云Api-->
       <dependency>
           <groupId>com.baidu.aip</groupId>
           <artifactId>java-sdk</artifactId>
           <version>4.16.14</version>
           <exclusions>
               <exclusion>
                   <groupId>org.slf4j</groupId>
                   <artifactId>slf4j-simple</artifactId>
               </exclusion>
               <exclusion>
                   <groupId>org.slf4j</groupId>
                   <artifactId>slf4j-api</artifactId>
               </exclusion>
           </exclusions>
       </dependency>
然后去某度云的文本测试接口文档找到这个

在这里插入图片描述

详细代码

我们可以看着文档做,里面有快速开始,我就是看的官方文档,不想看文档的直接复制我的代码就行了

Config配置类

package com.xssq.tuanzi.config;


import com.baidu.aip.contentcensor.AipContentCensor;
import com.xssq.tuanzi.entity.TextCheckProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableConfigurationProperties(TextCheckProperties.class)
public class BaiduTxtCheckConfig {

   @Bean
   public AipContentCensor aipContentCensor(TextCheckProperties check) {
       return new AipContentCensor(check.getAppid(), check.getKey(), check.getSecret());
   }
}

Service层

package com.xssq.tuanzi.service.impl;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.amazonaws.services.s3.model.S3Object;
import com.baidu.aip.contentcensor.AipContentCensor;
import com.xssq.common.core.util.R;
import com.xssq.tuanzi.service.BaiduTextCheckService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
* 某度检测接口
*/
@Service
@AllArgsConstructor
@Slf4j
public class BaiduTextCheckImpl implements BaiduTextCheckService {
   private final AipContentCensor client;
   private final OssProperties ossProperties;
   private final OssTemplate ossTemplate;


   /**
    * 文本检测
    * @param check
    * @return
    */
   @Override
   public Object textCheck(String check) {
       return client.textCensorUserDefined(check);
   }
   /**
    * 图片检测
    * @param file
    * @return
    */
   @Override
   public Object picturesCheck(MultipartFile file) {
       try {
           System.err.println(file.getOriginalFilename());
           return client.imageCensorUserDefined(file.getBytes(), null).toString();
       } catch (IOException e) {
           throw new RuntimeException(e);
       }
   }
}

Controller层

package com.xssq.tuanzi.controller;

import com.xssq.common.core.util.R;
import com.xssq.common.security.annotation.Inner;
import com.xssq.tuanzi.service.BaiduTextCheckService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@Tag(name = "某度文本检测接口Controller")
@RestController
@RequestMapping("/baiduCheck")
@Inner(false)
@SecurityRequirement(name = HttpHeaders.ALLOW)
@AllArgsConstructor
public class BaiduTextCheckController {

   private final BaiduTextCheckService baiduTextCheckService;

   @Operation(summary = "文本检测", description = "文本检测")
   @GetMapping("/textCheck")
   @Inner(false)
   public Object textCheck(String check) {
       return baiduTextCheckService.textCheck(check);
   }
   /**
    * 图片检测
    * @param file
    * @return
    */
   @Operation(summary = "图片检测", description = "图片检测")
   @PostMapping("/picturesCheck")
   @Inner(false)
   public Object picturesCheck(MultipartFile file) {
       return baiduTextCheckService.picturesCheck(file);
   }
}

后记:

如果有问题的话,就去看官网文档,测试结果贴一下给大家看看

在这里插入图片描述

同理,视频检测和照片检测以及其他检测也是这样
到此教程就结束了,希望我的博客能给大家帮助.如果我的博客对你有帮助,你可以去微信公众号搜索,幸识SQ,找到我,里面有更多精彩的文章
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸识SQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值