OSS content moderation
This topic describes how to use the .NET SDK for OSS content moderation.
Prerequisites
Before you begin, make sure you have:
Installed the .NET dependencies. See Install .NET dependencies and use the exact .NET version specified — otherwise operation calls will fail.
An AccessKey ID and AccessKey secret for a RAM user, stored as environment variables
ALIBABA_CLOUD_ACCESS_KEY_IDandALIBABA_CLOUD_ACCESS_KEY_SECRET.
Get OSS content moderation data
Use the following code sample to retrieve OSS content moderation data:
The following code provides a basic example. For details about API parameters, see the OSS AI Guardrails API documentation.
using System;
using Newtonsoft.Json;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Green.Model.V20170823;
using System.Collections.Generic;
namespace csharp_sdk_sample
{
class Program
{
static void Main(string[] args)
{
/**
* Common ways to get environment variables:
* Get the AccessKey ID of a Resource Access Management (RAM) user: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Get the AccessKey secret of a RAM user: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
DefaultProfile profile = DefaultProfile.GetProfile(
"cn-shanghai",
"Get the AccessKey ID of the RAM user from an environment variable",
"Get the AccessKey secret of the RAM user from an environment variable");
DefaultAcsClient client = new DefaultAcsClient(profile);
DescribeOssResultItemsRequest describeKeywordLibRequest = new DescribeOssResultItemsRequest();
describeKeywordLibRequest.ResourceType = "VIDEO";
describeKeywordLibRequest.Scene = "porn";
describeKeywordLibRequest.Stock = false;
describeKeywordLibRequest.StartDate = "2021-10-11 00:00:00 +0800";
describeKeywordLibRequest.EndDate = "2021-10-12 15:00:53 +0800";
try
{
DescribeOssResultItemsResponse describeOssResultItemsResponse = client.GetAcsResponse(describeKeywordLibRequest);
Console.WriteLine(System.Text.Encoding.Default.GetString(describeOssResultItemsResponse.HttpResponse.Content));
}
catch (Exception ex)
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}
}
}
}
Mark OSS moderation results
You can use this API to mark and manage OSS scan results. You can call this API to perform operations such as deleting content, marking content as normal, ignoring content, or unfreezing content.
The following code provides a basic example. For details about API parameters, see the OSS AI Guardrails API.
using System;
using Newtonsoft.Json;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Green.Model.V20170823;
using System.Collections.Generic;
namespace csharp_sdk_sample
{
class Program
{
static void Main(string[] args)
{
/**
* Common ways to get environment variables:
* Get the AccessKey ID of a RAM user: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Get the AccessKey secret of a RAM user: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
DefaultProfile profile = DefaultProfile.GetProfile(
"cn-shanghai",
"Get the AccessKey ID of the RAM user from an environment variable",
"Get the AccessKey secret of the RAM user from an environment variable");
DefaultAcsClient client = new DefaultAcsClient(profile);
MarkOssResultRequest markOssResultRequest = new MarkOssResultRequest();
markOssResultRequest.ResourceType = "VIDEO";
markOssResultRequest.Scene = "terrorism";
markOssResultRequest.Stock = false;
markOssResultRequest.Ids = JsonConvert.SerializeObject(new List<long> { 24930001L });
markOssResultRequest.Operation = "ignore";
try
{
MarkOssResultResponse markOssResultResponse = client.GetAcsResponse(markOssResultRequest);
Console.WriteLine(System.Text.Encoding.Default.GetString(markOssResultResponse.HttpResponse.Content));
}
catch (Exception ex)
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}
}
}
}
Export OSS content moderation results as a file
Use the following code sample to export OSS content moderation results as a file:
The following code provides a basic example. For details about API parameters, see the OSS AI Guardrails API.
using System;
using Newtonsoft.Json;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Green.Model.V20170823;
using System.Collections.Generic;
namespace csharp_sdk_sample
{
class Program
{
static void Main(string[] args)
{
/**
* Common ways to get environment variables:
* Get the AccessKey ID of a RAM user: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Get the AccessKey secret of a RAM user: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
DefaultProfile profile = DefaultProfile.GetProfile(
"cn-shanghai",
"Get the AccessKey ID of the RAM user from an environment variable",
"Get the AccessKey secret of the RAM user from an environment variable");
DefaultAcsClient client = new DefaultAcsClient(profile);
ExportOssResultRequest exportOssResultRequest = new ExportOssResultRequest();
exportOssResultRequest.ResourceType = "VIDEO";
exportOssResultRequest.Scene = "porn";
exportOssResultRequest.Stock = false;
exportOssResultRequest.StartDate = "2021-10-11 00:00:00 +0800";
exportOssResultRequest.EndDate = "2021-10-12 15:00:53 +0800";
try
{
ExportOssResultResponse exportOssResultResponse = client.GetAcsResponse(exportOssResultRequest);
Console.WriteLine(System.Text.Encoding.Default.GetString(exportOssResultResponse.HttpResponse.Content));
}
catch (Exception ex)
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}
}
}
}