文章目錄
- 前言
- 一、華為云的內容審核api的呼叫需要哪些東西?
- 二、使用步驟
- 1.先注冊一個華為云的賬號
- 2.申請內容審核服務
- 3.[華為云內容審核API的官方檔案](https://support.huaweicloud.com/api-moderation/moderation_03_0002.html)
- 4.獲取token 成功后,開始呼叫圖片內容審核api
- 總結
前言
用戶的評論,或者什么圖片上傳,需要進行智能審核,人工也可以就是太麻煩了
,本文介紹如何在前端js中呼叫華為云內容審核的api
一、華為云的內容審核api的呼叫需要哪些東西?
1.華為云的賬號 2.華為云IAM的賬號密碼,用來獲取token二、使用步驟
1.先注冊一個華為云的賬號
2.申請內容審核服務
在官網 搜索內容審核,點擊立即使用,選擇開通文本內容審核還是圖片內容審核

3.華為云內容審核API的官方檔案
從官方檔案可以看出
(以內容審核中的影像審核為例)
①.請求地址:
https://moderation.cn-north-1.myhuaweicloud.com/v2/{project_id}/moderation/image
- moderation 表示內容審核模塊
- cn-north-1 是表示哪個服務區
- /v2/{project_id}/moderation/image 這一段表示內容審核里面的API
上面請求地址中的的project_id是什么呢,如何獲取呢
project_id 表示用戶的project_id
獲取:登陸華為云 -> 用戶中心 -> 我的憑證 -> api憑證 即可查看對應區域的專案ID,
②.請求頭

這里需要傳用戶token
獲取用戶token的API代碼如下
因為我是用的uni-app寫的,所以用的是uni.request請求方法,根據你本身代碼修改
uni.request({
method: 'POST',//請求方式
url: 'https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens', //獲取用戶token的api
header: {
'Content-Type': 'application/json;charset=utf8' //必填固定內容
},
data: {
"auth": {//認證資訊
"identity": {//認證引數
"methods": [//認證方法
"password" //密碼輸入
],
"password": {//IAM用戶密碼認證資訊,
"user": {//需要獲取Token的IAM用戶資訊
"name": Config.userName, //IAM用戶名
"password": Config.password, //IAM用戶的登錄密碼,
"domain": {//IAM用戶所屬帳號資訊,
"name": Config.domainName //IAM用戶所屬帳號名稱
},
}
}
},
"scope": {//Token的使用范圍,取值為project或domain,二選一即可,
//取值為project時,表示獲取的Token可以作用于專案級服務,僅能訪問指定project下的資源
"project": {
"id":id,//IAM用戶所屬帳號的專案ID
"name": name //IAM用戶所屬帳號的專案名稱
}
//取值為domain時,表示獲取的Token可以作用于全域服務,全域服務不區分專案或區域
//"domain": {
//"id":Config.domainID //IAM用戶所屬帳號ID
//"name": Config.domainName //IAM用戶所屬帳號名
//}
}
}
},
success: (res) => {
//成功后獲取到X-Subject-Token 注意這個是在請求頭里面
uni.setStorageSync('hwytoken', res.header['X-Subject-Token']);
},
})
4.獲取token 成功后,開始呼叫圖片內容審核api
代碼如下
const imgModeration = function(url, success) {
return new Promise((resolve, reject) => {
uni.request({
method: 'POST',
//Config.EndPoint 地址前綴 https://moderation.cn-north-1.myhuaweicloud.com
//Config.projectId 如上文3小點中的 ①
url: Config.EndPoint + '/v2/' + Config.projectId + '/moderation/image',
header: {
'X-Auth-Token': uni.getStorageSync('hwytoken'),
},
data: {
"categories": [
"politics",
"terrorism",
"porn",
"ad",
],
"moderation_rule": "default",
"url": "",
"image": url,
"threshold": ""
},
success: (res) => {
resolve(res);
},
fail: (err) => {
reject(err);
},
})
})
}
引數說明
- categories
檢測場景:
politics:是否涉及政治人物的檢測,
terrorism:是否包含涉政暴恐元素的檢測,
porn:是否包含涉黃內容元素的檢測,
ad:是否包含廣告圖文的檢測,
all:包含politics、terrorism和porn三種場景的檢測,
可通過配置上述場景,來完對應場景元素的檢測,
為慷訓無此引數表示politics和terrorism都檢測,但不包含porn場景, - moderation_rule
影像審核規則名稱,默認使用default規則, - url
圖片的URL路徑,目前支持:
公網HTTP/HTTPS URL
華為云OBS提供的URL,使用OBS資料需要進行授權, - image
圖片檔案Base64編碼字串,要求base64編碼后大小不超過10M,
政治人物檢測人臉部分不小于50*50像素,
支持JPG/PNG/BMP格式,
注 image和url二選一即可
回傳結果(我已經懶得寫了,,,這里放上截圖,還有檔案連接吧)

總結
一開始以為很難,發現其實挺簡單的,如果使用image上傳圖片需要把圖片轉成Base64格式,圖片轉Base64格式我將會在下篇文章分享(還沒寫的,寫完我在回來放連接)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/337617.html
標籤:其他
