• 沒有找到結果。

7.3 SDK 调用示例

7.3.3 图像内容审核(批量)

response = client.run_image_moderation(request) print(response.status_code)

print(response)

except exceptions.ClientRequestException as e:

print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)

2. 控制台输出200即表示程序执行成功,图像内容审核结果输出到控制台。

200{"result": {"detail": {"politics": [], "porn": [{"confidence": 0.9883, "label": "normal"}, {"confidence":

0.0039, "label": "porn"}, {"confidence": 0.0078, "label": "sexy"}], "terrorism": [{"confidence": 0.0002,

"label": "terrorist"}, {"confidence": 0.0002, "label": "fascist"}, {"confidence": 0.0001, "label": "cult"}, {"confidence": 0.0002, "label": "negative_politics"}, {"confidence": 0.0001, "label":

"negative_political_events"}, {"confidence": 0.0001, "label": "kidnap"}, {"confidence": 0.0006, "label":

"riot"}, {"confidence": 0.0001, "label": "parade"}, {"confidence": 0.0002, "label": "corpse"}, {"confidence": 0.0001, "label": "bloody"}, {"confidence": 0.0001, "label": "knife"}, {"confidence":

0.0001, "label": "gun"}, {"confidence": 0.0002, "label": "military_weapon"}, {"confidence": 0.0, "label":

"special_characters"}, {"confidence": 0.9994, "label": "normal"}], "ad": [{"confidence": 0.0, "label":

"ad"}, {"confidence": 1.0, "label": "normal"}]}, "suggestion": "pass", "category_suggestions":

{"politics": "pass", "ad": "pass", "terrorism": "pass", "porn": "pass"}}}

Process finished with exit code 0

7.3.3 图像内容审核(批量)

credentials = BasicCredentials(ak, sk)

client = ModerationClient.new_builder() \ .with_credentials(credentials) \

.with_region(ModerationRegion.value_of("cn-north-4")) \ .build()

try:

request = RunImageBatchModerationRequest() listImageBatchModerationReqCategoriesbody = [ "politics",

"terrorism", "porn", "ad"

]

listImageBatchModerationReqUrlsbody = [

"https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/terrorism.jpg"

]

request.body = ImageBatchModerationReq(

threshold=0,

categories=listImageBatchModerationReqCategoriesbody, urls=listImageBatchModerationReqUrlsbody

)

response = client.run_image_batch_moderation(request) print(response.status_code)

print(response)

except exceptions.ClientRequestException as e:

print(e.status_code)

'url': 'https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/terrorism.jpg'}]}

Process finished with exit code 0

7.3.4 内容审核-图像(批量异步)

credentials = BasicCredentials(ak, sk) client = ModerationClient.new_builder() \ .with_credentials(credentials) \

.with_region(ModerationRegion.value_of("cn-north-4")) \ .build()

"https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/terrorism.jpg"

]

request.body = TaskSumbitReq(

categories=listTaskSumbitReqCategoriesbody, urls=listTaskSumbitReqUrlsbody

)

response = client.run_task_sumbit(request) print(response.status_code)

print(response)

except exceptions.ClientRequestException as e:

print(e.status_code)

Process finished with exit code 0

7.3.4.2 查询任务

1. 本章节对图像内容审核批量异步-查询任务AK/SK方式使用SDK进行示例说明。

图像内容审核批量异步-查询任务示例代码只需将AK/SK信息替换为实际AK/SK,

代码中修改RunCheckResultRequest的job_id 配置审核任务的id,配置完成后运行 即可。

# coding: utf-8

credentials = BasicCredentials(ak, sk) client = ModerationClient.new_builder() \ .with_credentials(credentials) \

.with_region(ModerationRegion.value_of("cn-north-4")) \ .build()

try:

request = RunCheckResultRequest()

request.job_id = "321cb5b6-3ad3-461a-b258-7ba7f530b91a"

response = client.run_check_result(request) print(response.status_code)

print(response)

except exceptions.ClientRequestException as e:

print(e.status_code)

{'confidence': 0.0002, 'label': 'military_weapon'}, {'confidence': 0.0,

'label': 'special_characters'}, {'confidence': 0.9994, 'label': 'normal'}]}, 'suggestion': 'pass',

'url': 'https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/terrorism.jpg'}], 'job_id': '321cb5b6-3ad3-461a-b258-7ba7f530b91a',

'status': 'finish',

'update_time': '2021-08-04T08:30:41Z'}}

Process finished with exit code 0

8 使用 SDK(.NET)

8.1 .NET 开发环境配置

使用内容审核.NET版本SDK包,需要先配置.Net开发环境。

1.

Visual Studio官网,下载最新版Visual Studio。

2. 下载完毕后,点击exe文件,开始安装。

3. 安装过程中选择工作负荷ASP.NET和Web开发,安装完成后启动即可。

8-1 选择安装.NET 环境依赖

8.2 .NET 环境 SDK 导入

.NET语言SDK的获取和安装可以使用可以通过命令方式安装或使用Visual Studio开发 工具安装第三方引用,参考方法如下:

//使用 .NET CLI 工具

dotnet add package HuaweiCloud.SDK.Core dotnet add package HuaweiCloud.SDK.Moderation //使用 Package Manager

Install-Package HuaweiCloud.SDK.Core

dotnet add package HuaweiCloud.SDK.Moderation

使用Visual Studio开发工具安装第三方引用:点击工具->选择NuGet包管理器->点击 管理解决方案的NuGet程序包,选择浏览中搜索并安装HuaweiCloud.SDK.Core及 HuaweiCloud.SDK.Moderation,如下图所示:

8-2 安装内容审核.NET 版本 sdk 包

8.3 SDK 调用示例

8.3.1 文本内容审核

1. 本章节对文本内容审核AK/SK方式使用SDK进行示例说明。

文本内容审核示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以修改 TextDetectionItemsReq的Text 配置待检测的文本信息,配置完成后运行即可。

using System;

using System.Collections.Generic;

using HuaweiCloud.SDK.Core;

using HuaweiCloud.SDK.Core.Auth;

using HuaweiCloud.SDK.Moderation;

using HuaweiCloud.SDK.Moderation.V2;

using HuaweiCloud.SDK.Moderation.V2.Model;

namespace RunTextModerationSolution { class Program

{

static void Main(string[] args) {

const string ak = "<YOUR AK>";

const string sk = "<YOUR SK>";

var config = HttpConfig.GetDefaultConfig();

config.IgnoreSslVerification = true;

var auth = new BasicCredentials(ak, sk);

var client = ModerationClient.NewBuilder() .WithCredential(auth)

.WithRegion(ModerationRegion.ValueOf("cn-north-4")) .WithHttpConfig(config)

.Build();

var req = new RunTextModerationRequest {

};

List<TextDetectionItemsReq> listTextDetectionItemsReqItems = new List<TextDetectionItemsReq>();

listTextDetectionItemsReqItems.Add(new TextDetectionItemsReq() {

Text = "666666luo聊请+110亚砷酸钾六位qqweixin,fuck66666666666666", Type = "content"

});

List<String> listTextDetectionReqCategories = new List<String>();

listTextDetectionReqCategories.Add("politics");

listTextDetectionReqCategories.Add("porn");

listTextDetectionReqCategories.Add("ad");

listTextDetectionReqCategories.Add("abuse");

listTextDetectionReqCategories.Add("contraband");

listTextDetectionReqCategories.Add("flood");

req.Body = new TextDetectionReq()

Console.WriteLine(JsonConvert.DeserializeObject(resp.HttpBody));

}

catch (RequestTimeoutException requestTimeoutException) {

Console.WriteLine(requestTimeoutException.ErrorMessage);

}

catch (ServiceResponseException clientRequestException) {

Console.WriteLine(clientRequestException.HttpStatusCode);

Console.WriteLine(clientRequestException.ErrorCode);

200{'result': {'detail': {'contraband': ['亚砷酸钾'], 'porn': ['luo聊']}, 'suggestion': 'block'}}

class Program

List<ImageDetectionReq.CategoriesEnum> listImageDetectionReqCategories = new List<ImageDetectionReq.CategoriesEnum>();

listImageDetectionReqCategories.Add(ImageDetectionReq.CategoriesEnum.FromValue("ad"));

req.Body = new ImageDetectionReq() {

Threshold = 0,

Categories = listImageDetectionReqCategories, ModerationRule = "default",

Url = "https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/tagging-normal.jpg"

};

Console.WriteLine(JsonConvert.DeserializeObject(resp.HttpBody));

}

catch (RequestTimeoutException requestTimeoutException) {

Console.WriteLine(requestTimeoutException.ErrorMessage);

}

catch (ServiceResponseException clientRequestException) {

Console.WriteLine(clientRequestException.HttpStatusCode);

Console.WriteLine(clientRequestException.ErrorCode);

'politics': [],

List<ImageBatchModerationReq.CategoriesEnum> listImageBatchModerationReqCategories = new List<ImageBatchModerationReq.CategoriesEnum>();

listImageBatchModerationReqCategories.Add(ImageBatchModerationReq.CategoriesEnum.FromValue(

"politics"));

List<String> listImageBatchModerationReqUrls = new List<String>();

listImageBatchModerationReqUrls.Add("https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/tagging-normal.jpg");

Console.WriteLine(JsonConvert.DeserializeObject(resp.HttpBody));

}

catch (RequestTimeoutException requestTimeoutException) {

Console.WriteLine(requestTimeoutException.ErrorMessage);

}

catch (ServiceResponseException clientRequestException) {

Console.WriteLine(clientRequestException.HttpStatusCode);

Console.WriteLine(clientRequestException.ErrorCode);

{'confidence': 0.0001, 'label': 'bloody'},

'url': 'https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/terrorism.jpg'}]}

8.3.4 内容审核-图像(批量异步)

List<TaskSumbitReq.CategoriesEnum> listTaskSumbitReqCategories = new List<TaskSumbitReq.CategoriesEnum>();

listTaskSumbitReqCategories.Add(TaskSumbitReq.CategoriesEnum.FromValue("politics"));

listTaskSumbitReqCategories.Add(TaskSumbitReq.CategoriesEnum.FromValue("porn"));

listTaskSumbitReqCategories.Add(TaskSumbitReq.CategoriesEnum.FromValue("terrorism"));

List<String> listTaskSumbitReqUrls = new List<String>();

listTaskSumbitReqUrls.Add("https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/

terrorism.jpg");

{

var resp = client.RunTaskSumbit(req);

var respStatusCode = resp.HttpStatusCode;

Console.WriteLine(respStatusCode);

Console.WriteLine(JsonConvert.DeserializeObject(resp.HttpBody));

}

catch (RequestTimeoutException requestTimeoutException) {

Console.WriteLine(requestTimeoutException.ErrorMessage);

}

catch (ServiceResponseException clientRequestException) {

Console.WriteLine(clientRequestException.HttpStatusCode);

Console.WriteLine(clientRequestException.ErrorCode);

try {

var resp = client.RunCheckResult(req);

var respStatusCode = resp.HttpStatusCode;

Console.WriteLine(respStatusCode);

Console.WriteLine(JsonConvert.DeserializeObject(resp.HttpBody));

}

catch (RequestTimeoutException requestTimeoutException) {

Console.WriteLine(requestTimeoutException.ErrorMessage);

}

catch (ServiceResponseException clientRequestException) {

Console.WriteLine(clientRequestException.HttpStatusCode);

Console.WriteLine(clientRequestException.ErrorCode);

'label': 'normal'}]}, 'suggestion': 'pass',

'url': 'https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/terrorism.jpg'}], 'job_id': '321cb5b6-3ad3-461a-b258-7ba7f530b91a',

'status': 'finish',

'update_time': '2021-08-04T08:30:41Z'}}

9 使用 SDK(GO)

相關文件