如果懒得看过程,直接看答案然后离开吧
https://github.com/ruibty/open-nsfw-spring-boot-starter
<!-- https://mvnrepository.com/artifact/com.ruibty.nsfw/open-nsfw-spring-boot-starter -->
<dependency>
<groupId>com.ruibty.nsfw</groupId>
<artifactId>open-nsfw-spring-boot-starter</artifactId>
<version>1.0</version>
</dependency>
过程
应该说比把大象放冰箱统共分几步
还要简单
- 引入上面提到的依赖
- 注入后使用,结果是
不安全的概率
。
@RestController
@RequestMapping("upload")
public class UploadController {
@Autowired
private NsfwService nsfwService;
// http://localhost:8080/upload/formData
@PostMapping("formData")
public ResponseEntity<BigDecimal> formData(
@RequestParam("file") MultipartFile multipartFile
) throws IOException {
byte[] bytes = multipartFile.getBytes();
float prediction = nsfwService.getPrediction(bytes);
BigDecimal result = new BigDecimal(String.valueOf(prediction));
return ResponseEntity.ok(result);
}
// http://localhost:8080/upload/base64
@PostMapping("base64")
public ResponseEntity<BigDecimal> base64(
@RequestBody String base64Str
) {
// 去掉base64编码中的前缀 data:image/png;base64,
if (base64Str.contains("base64,")) {
base64Str = base64Str.substring(base64Str.indexOf("base64,") + 7);
}
byte[] bytes = Base64.decodeBase64(base64Str);
float prediction = nsfwService.getPrediction(bytes);
BigDecimal result = new BigDecimal(String.valueOf(prediction));
return ResponseEntity.ok(result);
}
}
备注
受限于各种因素,这类服务的判定准确性并不能达到百分百,必要场景需要结合人工审核
、用户举报
等手段协同完成内容安全。
比如我从某站下载的图片,结果就不太理想。