Manual review of text

更新时间:
复制 MD 格式

This topic describes how to perform a manual review of text using the .NET software development kit (SDK) for Content Moderation.

Description

If the text detection result does not meet your expectations, you can perform a manual review. For more information about the parameters, see Text Manual Review API Reference.

You must use the Content Moderation endpoint to call the service using the SDK. For more information about API endpoints, see Endpoints.

Prerequisites

The .NET dependencies must be installed. For instructions, see Install .NET dependencies.

Note

You must use the required .NET version described in the Installation topic to install the dependencies. Otherwise, subsequent operation calls fail.

Submit a manual text review task

using System;
using Newtonsoft.Json;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Http;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Green.Model.V20180509;
using System.Collections.Generic;

namespace csharp_sdk_sample
{
    class Program
    {
        static void Main(string[] args)
       {
            /**
             * Common methods to obtain environment variables:
             *     Obtain the AccessKey ID of the RAM user: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
             *     Obtain the AccessKey secret of the RAM user: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
             */
            DefaultProfile profile = DefaultProfile.GetProfile(
                    "cn-shanghai",
                    "Obtain the AccessKey ID of the RAM user from an environment variable.",
                    "Obtain the AccessKey secret of the RAM user from an environment variable.");
            // Note: To improve detection performance, reuse the instantiated client. This avoids repeated connection establishment.
            DefaultAcsClient client = new DefaultAcsClient(profile);

            TextAsyncManualScanRequest request = new TextAsyncManualScanRequest();
            request.AcceptFormat = FormatType.JSON;
            request.ContentType = FormatType.JSON;
            request.Method = MethodType.POST;
            request.Encoding = "UTF-8";

            Dictionary<string, object> task1 = new Dictionary<string, object>();
            task1.Add("dataId", "Data ID");
            task1.Add("url", "Text to be detected.");

            // The callback and seed parameters are used for callback notifications. They are optional.
            Dictionary<string, object> httpBody = new Dictionary<string, object>();
            httpBody.Add("bizType", "Business scenario");
            httpBody.Add("callback", "Webhook address");
            httpBody.Add("seed", "Random string");
            httpBody.Add("tasks", new List<Dictionary<string, object>> { task1 });

            request.SetContent(System.Text.Encoding.Default.GetBytes(JsonConvert.SerializeObject(httpBody)), "utf-8", FormatType.JSON);
            try
            {
                TextAsyncManualScanResponse response = client.GetAcsResponse(request);
                if (response.HttpResponse.Status != 200)
                {
                    Console.WriteLine("the request failed. status:{0}", response.HttpResponse.Status);
                }
                Console.WriteLine(System.Text.Encoding.Default.GetString(response.HttpResponse.Content));
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed with error info: {0}", ex.Message);
            }
        }
    }
}

Query the result of a manual text review task

using System;
using Newtonsoft.Json;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Http;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Green.Model.V20180509;
using System.Collections.Generic;

namespace csharp_sdk_sample
{
    class Program
    {
        static void Main(string[] args)
        {
            /**
             * Common methods to obtain environment variables:
             *     Obtain the AccessKey ID of the RAM user: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
             *     Obtain the AccessKey secret of the RAM user: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
             */
            DefaultProfile profile = DefaultProfile.GetProfile(
                    "cn-shanghai",
                    "Obtain the AccessKey ID of the RAM user from an environment variable.",
                    "Obtain the AccessKey secret of the RAM user from an environment variable.");
            // Note: To improve detection performance, reuse the instantiated client. This avoids repeated connection establishment.
            DefaultAcsClient client = new DefaultAcsClient(profile);

            TextAsyncManualScanResultsRequest request = new TextAsyncManualScanResultsRequest();
            request.AcceptFormat = FormatType.JSON;
            request.ContentType = FormatType.JSON;
            request.Method = MethodType.POST;
            request.Encoding = "UTF-8";

            List<string> tasks = new List<string>();
            tasks.Add("Manual text review task ID");

            request.SetContent(System.Text.Encoding.Default.GetBytes(JsonConvert.SerializeObject(tasks)), "utf-8", FormatType.JSON);
            try
            {
                TextAsyncManualScanResultsResponse response = client.GetAcsResponse(request);
                if (response.HttpResponse.Status != 200)
                {
                    Console.WriteLine("the request failed. status:{0}", response.HttpResponse.Status);
                }
                Console.WriteLine(System.Text.Encoding.Default.GetString(response.HttpResponse.Content));
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed with error info: {0}", ex.Message);
            }
        }
    }
}