国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【黑馬頭條之內(nèi)容安全第三方接口】

這篇具有很好參考價值的文章主要介紹了【黑馬頭條之內(nèi)容安全第三方接口】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本筆記內(nèi)容為黑馬頭條項目的文本-圖片內(nèi)容審核接口部分

目錄

一、概述

二、準備工作

三、文本內(nèi)容審核接口

四、圖片審核接口

五、項目集成


一、概述


內(nèi)容安全是識別服務,支持對圖片、視頻、文本、語音等對象進行多樣化場景檢測,有效降低內(nèi)容違規(guī)風險。

目前很多平臺都支持內(nèi)容檢測,如阿里云、騰訊云、百度AI、網(wǎng)易云等國內(nèi)大型互聯(lián)網(wǎng)公司都對外提供了API。

按照性能和收費來看,黑馬頭條項目使用的就是阿里云的內(nèi)容安全接口,使用到了圖片和文本的審核。

阿里云收費標準:價格計算器 (aliyun.com)

二、準備工作


您在使用內(nèi)容檢測API之前,需要先注冊阿里云賬號,添加Access Key并簽約云盾內(nèi)容安全。 ?

操作步驟

1、前往阿里云官網(wǎng)注冊賬號。如果已有注冊賬號,請?zhí)^此步驟。

進入阿里云首頁后,如果沒有阿里云的賬戶需要先進行注冊,才可以進行登錄。由于注冊較為簡單,課程和講義不在進行體現(xiàn)(注冊可以使用多種方式,如淘寶賬號、支付寶賬號、微博賬號等...)。需要實名認證和活體認證。

2、打開云盾內(nèi)容安全產(chǎn)品試用頁面,單擊立即開通,正式開通服務。

注意 :現(xiàn)在這個服務需要企業(yè)認證才能使用?

所以我改用了阿里視覺智能開發(fā)平臺的審核功能視覺智能開放平臺-控制臺 (aliyun.com)

【黑馬頭條之內(nèi)容安全第三方接口】,黑馬頭條,安全,java,筆記

購買資源包,我第一次購買不用錢,免費送了1萬點

【黑馬頭條之內(nèi)容安全第三方接口】,黑馬頭條,安全,java,筆記

3、在AccessKey管理頁面管理您的AccessKeyID和AccessKeySecret。

【黑馬頭條之內(nèi)容安全第三方接口】,黑馬頭條,安全,java,筆記

管理自己的AccessKey,可以新建和刪除AccessKey

【黑馬頭條之內(nèi)容安全第三方接口】,黑馬頭條,安全,java,筆記

查看自己的AccessKey,AccessKey默認是隱藏的,第一次申請的時候可以保存AccessKey,點擊顯示,通過驗證手機號后也可以查看

【黑馬頭條之內(nèi)容安全第三方接口】,黑馬頭條,安全,java,筆記

三、文本內(nèi)容審核接口


文本垃圾內(nèi)容檢測: 文本內(nèi)容安全 (aliyun.com)

【黑馬頭條之內(nèi)容安全第三方接口】,黑馬頭條,安全,java,筆記

文本垃圾內(nèi)容Java SDK: Java (aliyun.com)

四、圖片審核接口


圖片垃圾內(nèi)容檢測:圖片內(nèi)容安全 (aliyun.com)

【黑馬頭條之內(nèi)容安全第三方接口】,黑馬頭條,安全,java,筆記

圖片垃圾內(nèi)容Java SDK:Java (aliyun.com)

五、項目集成


這里的代碼是使用智能開發(fā)平臺的審核功能

①:common模塊下面添加工具類,并添加到自動配置

pom依賴

        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>imageaudit20191230</artifactId>
            <version>2.0.6</version>
        </dependency>

aliyun包下的GreenImageScan.java和GreenTextScan.java

【黑馬頭條之內(nèi)容安全第三方接口】,黑馬頭條,安全,java,筆記

GreenImageScan代碼

package com.heima.common.aliyun;

import com.alibaba.fastjson.JSON;

import com.aliyun.imageaudit20191230.models.ScanImageRequest;
import com.aliyun.imageaudit20191230.models.ScanImageResponse;
import com.aliyun.imageaudit20191230.models.ScanImageResponseBody;


import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.stereotype.Component;

import java.util.*;

@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "aliyun")
public class GreenImageScan {

    private String accessKeyId;
    private String secret;
    private String scenes;

    public Map imageScan(List<String> imageList) throws Exception {
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                .setAccessKeyId(accessKeyId)
                .setAccessKeySecret(secret);
        // 訪問的域名
        config.endpoint = "imageaudit.cn-shanghai.aliyuncs.com";

        com.aliyun.imageaudit20191230.Client client = new com.aliyun.imageaudit20191230.Client(config);

        List<ScanImageRequest.ScanImageRequestTask> taskList = new ArrayList<>();

        for (String  img: imageList) {
            ScanImageRequest.ScanImageRequestTask task = new ScanImageRequest.ScanImageRequestTask();
            task.setImageURL(img);
            task.setDataId(UUID.randomUUID().toString());
            task.setImageTimeMillisecond(1L);
            task.setInterval(1);
            task.setMaxFrames(1);
            taskList.add(task);
        }


        //場景
        List<String> sceneList = new ArrayList<>();
        sceneList.add(scenes);
        sceneList.add("logo");
        sceneList.add("porn");
        com.aliyun.imageaudit20191230.models.ScanImageRequest scanImageRequest = new com.aliyun.imageaudit20191230.models.ScanImageRequest()
                .setTask(taskList)
                .setScene(sceneList);
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            ScanImageResponse scanImageResponse = client.scanImageWithOptions(scanImageRequest, runtime);
            Map<String, String> resultMap = new HashMap<>();

            if (scanImageResponse.getStatusCode() == 200) {

                List<ScanImageResponseBody.ScanImageResponseBodyDataResultsSubResults> subResults = scanImageResponse.body.data.results.get(0).getSubResults();
               
                ListIterator<ScanImageResponseBody.ScanImageResponseBodyDataResultsSubResults> listIterator = subResults.listIterator();
                while (listIterator.hasNext()) {
                    ScanImageResponseBody.ScanImageResponseBodyDataResultsSubResults item = listIterator.next();
                    System.out.println("scene = [" + item.scene + "]");
                    System.out.println("suggestion = [" + item.suggestion + "]");
                    System.out.println("label = [" + item.label + "]");

                    if (!item.suggestion.equals("pass")) {
                        resultMap.put("suggestion", item.suggestion);
                        resultMap.put("label", item.label);
                        return resultMap;
                    }
                }
                resultMap.put("suggestion", "pass");

            } else {
              /*   *
                 * 表明請求整體處理失敗,原因視具體的情況詳細分析
                 */
                System.out.println("the whole image scan request failed. response:" + JSON.toJSONString(scanImageResponse));
                return null;
            }


        } catch (com.aliyun.tea.TeaException teaException) {
            // 獲取整體報錯信息
            System.out.println(com.aliyun.teautil.Common.toJSONString(teaException));
            // 獲取單個字段
            System.out.println(teaException.getCode());
        }
        return null;

      /*  Map<String, String> resultMap = new HashMap<>();
        resultMap.put("suggestion", "pass");
        return resultMap;*/
    }
}

?GreenTextScan代碼

package com.heima.common.aliyun;

import com.aliyun.imageaudit20191230.*;
import com.aliyun.imageaudit20191230.models.ScanTextRequest;
import com.aliyun.imageaudit20191230.models.ScanTextResponse;
import com.aliyun.imageaudit20191230.models.ScanTextResponseBody;
import com.aliyun.tea.TeaException;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;


import java.util.*;

@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "aliyun")
public class GreenTextScan {

    private String accessKeyId;
    private String secret;

    public Map greeTextScan(String content) throws Exception {
        /*
          初始化配置對象com.aliyun.teaopenapi.models.Config
          Config對象存放 AccessKeyId、AccessKeySecret、endpoint等配置
         */
        Config config = new Config()
                .setAccessKeyId(accessKeyId)
                .setAccessKeySecret(secret);
        // 訪問的域名
        config.endpoint = "imageaudit.cn-shanghai.aliyuncs.com";
        Client client = new Client(config);
        ScanTextRequest.ScanTextRequestTasks tasks = new ScanTextRequest.ScanTextRequestTasks()
                .setContent(content);  //審核內(nèi)容
        ScanTextRequest.ScanTextRequestLabels labels = new ScanTextRequest.ScanTextRequestLabels()
                .setLabel("abuse");  //設置審核類型
        ScanTextRequest scanTextRequest = new ScanTextRequest()
                .setLabels(java.util.Arrays.asList(
                        labels
                ))
                .setTasks(java.util.Arrays.asList(
                        tasks
                ));
        RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        Map<String, String> resultMap = new HashMap<>();
        try {
            // 復制代碼運行請自行打印API的返回值
            ScanTextResponse response = client.scanTextWithOptions(scanTextRequest, runtime);
         
            //System.out.println(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(response)));
            if (response.getStatusCode() == 200) {

                ScanTextResponseBody.ScanTextResponseBodyDataElementsResults elementsResults = response.body.getData().elements.get(0).results.get(0);
                if (!elementsResults.suggestion.equals("pass")) {
                    resultMap.put("suggestion", elementsResults.suggestion);
                    resultMap.put("label", elementsResults.label);
                    return resultMap;
                }
                resultMap.put("suggestion", "pass");
                return resultMap;
            } else {
                return null;
            }


        } catch (TeaException error) {
            // 獲取整體報錯信息
            System.out.println(com.aliyun.teautil.Common.toJSONString(error));
            // 獲取單個字段
            System.out.println(error.getCode());
            error.printStackTrace();
        }
        return null;
    }
}

添加到自動配置中

【黑馬頭條之內(nèi)容安全第三方接口】,黑馬頭條,安全,java,筆記

②: accessKeyId和secret(需自己申請)

在heima-leadnews-wemedia中的nacos配置中心添加以下配置:

aliyun:
?accessKeyId: LTAI5tCWHCcfvqQzu8k2oKmX
?secret: auoKUFsghimbfVQHpy7gtRyBkoR4vc
#aliyun.scenes=porn,terrorism,ad,qrcode,live,logo
?scenes: terrorism

③:在自媒體微服務中測試類中注入審核文本和圖片的bean進行測試

package com.heima.wemedia;

import com.heima.common.aliyun.GreenImageScan;
import com.heima.common.aliyun.GreenTextScan;
import com.heima.file.service.FileStorageService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;

@SpringBootTest(classes = WemediaApplication.class)
@RunWith(SpringRunner.class)
public class AliyunTest {

    @Autowired
    private GreenTextScan greenTextScan;

    @Autowired
    private GreenImageScan greenImageScan;

    @Autowired
    private FileStorageService fileStorageService;

    @Test
    public void testScanText() throws Exception {
        Map map = greenTextScan.greeTextScan("王天剛去飯店吃飯后發(fā)現(xiàn)自己的車子被刮了,破口大罵是哪個傻逼干的?");
        System.out.println(map);
    }

    @Test
    public void testScanImage() throws Exception {
        List<String> list=new ArrayList<>();
        list.add("http://192.168.200.130:9000/leadnews/2021/04/26/ef3cbe458db249f7bd6fb4339e593e55.jpg");
        Map map = greenImageScan.imageScan(list);
        System.out.println(map);
    }

}

結束!文章來源地址http://www.zghlxwxcb.cn/news/detail-611010.html

到了這里,關于【黑馬頭條之內(nèi)容安全第三方接口】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • java對接第三方接口的三種方式

    在日常工作中,經(jīng)常需要跟第三方系統(tǒng)對接,我們做為客戶端,調(diào)用他們的接口進行業(yè)務處理,常用的幾種調(diào)用方式有: 1.原生的Java.net.HttpURLConnection(jdk); 2.再次封裝的HttpClient、CloseableHttpClient(Apache); 3.Spring提供的RestTemplate; 當然還有其他工具類進行封裝的接口,比

    2024年04月28日
    瀏覽(24)
  • JAVA開發(fā)(基于Restful的微服務第三方簡易接口設計)

    JAVA開發(fā)(基于Restful的微服務第三方簡易接口設計)

    ? ?一、需求背景 java后端需要提供接口服務,其中接口服務分為對內(nèi)網(wǎng)的后臺管理系統(tǒng)的接口,對外網(wǎng)的用戶接口和對第三方系統(tǒng)的接口。這里主要講對第三方的接口。 二、接口設計 我們可以參考微信小程序的接口,一般一個系統(tǒng)提供給第三方系統(tǒng)的接口都需要接口權限認

    2024年02月09日
    瀏覽(24)
  • JAVA調(diào)用第三方接口的GET/POST/PUT請求方式

    GET請求 POST請求 POST請求(JSON傳參) PUT請求(傳TOKEN)

    2024年02月03日
    瀏覽(26)
  • Java以form-data(表單)的形式調(diào)用第三方接口

    Java以form-data(表單)的形式調(diào)用第三方接口

    之前寫的調(diào)用第三方接口: Java使用原生API調(diào)用第三方接口 但是其中只包含了簡單的接口(傳遞數(shù)據(jù)為JSON)調(diào)用。也就是 Content-Type 的值是設置成: 當?shù)谌浇涌谛枰?文件 類型的參數(shù),我們要設置成以 表單形式 提交,就要那么該屬性就應該設置成 表示是以 表單形式

    2024年02月02日
    瀏覽(19)
  • java通過httpclient攜帶請求頭參數(shù)獲取第三方文件流接口并實現(xiàn)實現(xiàn)文件下載

    創(chuàng)建httpclient 請求,并在header攜帶指定key,也可根據(jù)實際需要攜帶token等信息。獲取第三方接口返回的文件輸入流并寫到本地response中,實現(xiàn)返回文件流,前端通過js的a標簽進行下載。 代碼如下: 前端js代碼

    2024年02月16日
    瀏覽(29)
  • 萬字長文講解調(diào)用第三方接口,RestTemplate,urlConnection使用詳解,java代碼模擬postman發(fā)送請求

    萬字長文講解調(diào)用第三方接口,RestTemplate,urlConnection使用詳解,java代碼模擬postman發(fā)送請求

    業(yè)務場景 :在日常開發(fā)中,經(jīng)常需要調(diào)用第三方接口,例如調(diào)用物流接口,此時需要利用urlConnection或者restTemplate模擬postman發(fā)送請求,請求支持加header ,設置content-type支持傳遞json;請求方式get,post,也可以需要傳遞文件,或者傳遞文件流; 下面這個例子就包含日常開發(fā)中大

    2024年02月05日
    瀏覽(22)
  • java發(fā)送http請求的幾種方式,調(diào)用第三方接口的方法:HttpUtil、HttpURLConnection等

    參考:https://blog.csdn.net/yubin1285570923/article/details/126225347 put請求 post帶請求頭 get、delete類似… 使用JDK原生提供的net,無需其他jar包,代碼如下: 需要用到commons-httpclient-3.1.jar,maven依賴如下: 看一下我實際應用的例子 需要用到httpclient-4.5.6.jar,maven依賴如下: RestTemplate 是由

    2024年01月18日
    瀏覽(34)
  • 《黑馬頭條》 內(nèi)容安全 feign 延遲任務精準發(fā)布

    《黑馬頭條》 內(nèi)容安全 feign 延遲任務精準發(fā)布

    目錄 《黑馬頭條》SpringBoot+SpringCloud+ Nacos等企業(yè)級微服務架構項目_黑馬頭條項目_軟工菜雞的博客-CSDN博客 04自媒體文章-自動審核 1)自媒體文章自動審核流程 2)內(nèi)容安全第三方接口 2.1)概述 2.2)準備工作 2.3)文本內(nèi)容審核接口 2.4)圖片審核接口 2.5)項目集成 3)app端文章保存接口

    2024年02月12日
    瀏覽(17)
  • smiley-http-proxy-servlet 實現(xiàn)springboot 接口反向代理,站點代理,項目鑒權,安全的引入第三方項目服務

    smiley-http-proxy-servlet 實現(xiàn)springboot 接口反向代理,站點代理,項目鑒權,安全的引入第三方項目服務

    2023-11-15 SmileSayBoot 開源,項目內(nèi)擴展 實現(xiàn)了動態(tài)代理,可代理API接口/站點,若對你有用,請點個☆star 謝謝,能力有限,不喜勿噴。 背景: 項目初期 和硬件集成,實現(xiàn)了些功能服務,由于是局域網(wǎng)環(huán)境,安全問題當時都可以最小化無視。隨著對接的服務越來越多,部分功能

    2024年02月12日
    瀏覽(22)
  • 安全學習_開發(fā)相關_Java第三方組件Log4j&FastJSON及相關安全問題簡介

    安全學習_開發(fā)相關_Java第三方組件Log4j&FastJSON及相關安全問題簡介

    Java Naming and Directory Interface (Java 命名和目錄接口 ),JNDI 提供統(tǒng)一的客戶端 API,通過不同的服務供應接口(SPI)的實現(xiàn),由管理者將 JNDI API 映射為特定的命名服務和目錄服務,使得 JAVA 應用程可以通過 JNDI 實現(xiàn)和這些命名服務和目錄服務之間的交互。 Log4J: Apache的一個開源項目

    2024年02月05日
    瀏覽(56)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包