Panduan ini memandu Anda melalui aktivasi layanan Moderasi Teks 2.0, pengaturan izin akses, serta integrasi SDK untuk memanggil operasi API TextModeration.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Akun Alibaba Cloud
Pengguna RAM dengan kebijakan sistem
AliyunYundunGreenWebFullAccess(lihat Langkah 2 di bawah)ID AccessKey dan rahasia AccessKey yang disimpan sebagai variabel lingkungan (lihat Menyiapkan variabel lingkungan)
Langkah 1: Aktifkan layanan
Aktifkan layanan Moderasi Teks 2.0 di halaman Activate Service.
Setelah diaktifkan, penagihan secara default menggunakan model pay-as-you-go. Anda dikenai biaya harian berdasarkan penggunaan aktual. Layanan ini menghasilkan tagihan secara otomatis berdasarkan penggunaan operasi API Anda. Jika Anda tidak menggunakan layanan ini, Anda tidak akan dikenai biaya.
Langkah 2: Berikan izin kepada Pengguna RAM
Untuk memanggil API Content Moderation, Pengguna RAM harus memiliki izin yang diperlukan.
Login ke Konsol RAM sebagai administrator RAM.
Buat Pengguna RAM. Untuk detailnya, lihat Create a RAM user.
Berikan kebijakan sistem
AliyunYundunGreenWebFullAccesskepada Pengguna RAM tersebut. Untuk detailnya, lihat Grant permissions to a RAM user.
Menyiapkan variabel lingkungan
Simpan pasangan AccessKey Anda sebagai variabel lingkungan agar kredensial tidak perlu disematkan langsung dalam kode aplikasi Anda.
Linux / macOS
export ALIBABA_CLOUD_ACCESS_KEY_ID="<your-access-key-id>"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="<your-access-key-secret>"Windows (Command Prompt)
set ALIBABA_CLOUD_ACCESS_KEY_ID=<your-access-key-id>
set ALIBABA_CLOUD_ACCESS_KEY_SECRET=<your-access-key-secret>Ganti <your-access-key-id> dan <your-access-key-secret> dengan ID AccessKey dan rahasia AccessKey dari Pengguna RAM Anda.
Jangan pernah menyematkan pasangan AccessKey Anda dalam kode sumber atau melakukan commit ke repositori kode. Gunakan variabel lingkungan atau token Security Token Service (STS) untuk meneruskan kredensial. Untuk informasi lebih lanjut, lihat Configure credentials.
Langkah 3: Instal dan integrasikan SDK
Wilayah yang didukung
Region | Public endpoint | VPC endpoint |
Singapore | green-cip.ap-southeast-1.aliyuncs.com | green-cip-vpc.ap-southeast-1.aliyuncs.com |
US (Virginia) | green-cip.us-east-1.aliyuncs.com | green-cip-vpc.us-east-1.aliyuncs.com |
US (Silicon Valley) | green-cip.us-west-1.aliyuncs.com | N/A |
UK (London) | green-cip.eu-west-1.aliyuncs.com | N/A |
Untuk contoh SDK dalam bahasa lain, gunakan OpenAPI Explorer untuk men-debug operasi API dan menghasilkan kode SDK secara otomatis.
Semua contoh di bawah menggunakan variabel lingkungan untuk autentikasi dan memanggil TextModerationWithOptions (atau padanannya dalam bahasa pemrograman terkait) untuk mengirim permintaan moderasi sinkron. Tanggapan berisi bidang labels (kategori konten yang terdeteksi) dan bidang reason (penjelasan).
Java SDK
Persyaratan: Java 1.8 atau lebih baru
Kode sumber: GitHub atau Maven Central
1. Tambahkan dependensi ke file `pom.xml` Anda.
Tambahkan kode berikut ke bagian <dependencies>:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>green20220302</artifactId>
<version>3.3.3</version>
</dependency>2. Panggil API.
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.green20220302.Client;
import com.aliyun.green20220302.models.TextModerationRequest;
import com.aliyun.green20220302.models.TextModerationResponse;
import com.aliyun.green20220302.models.TextModerationResponseBody;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
public class TextAutoRoute {
public static void main(String[] args) throws Exception {
Config config = new Config();
// Mengekspos kode sumber Anda dapat membocorkan pasangan AccessKey Anda, sehingga mengompromikan keamanan semua sumber daya Anda. Kode contoh berikut hanya untuk referensi. Untuk keamanan yang lebih baik, kami merekomendasikan penggunaan metode yang lebih aman, seperti token Security Token Service (STS), untuk otorisasi. Untuk informasi lebih lanjut, lihat dokumentasi terkait.
// Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah disetel.
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Sesuaikan region dan endpoint sesuai kebutuhan Anda.
config.setRegionId("ap-southeast-1");
config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com");
// Atur timeout pembacaan dan koneksi dalam milidetik.
config.setReadTimeout(6000);
config.setConnectTimeout(3000);
// Untuk kinerja yang lebih baik, kami sangat menyarankan Anda menggunakan kembali instans client untuk menghindari pembentukan koneksi berlebihan.
Client client = new Client(config);
// Buat instans RuntimeOptions dan atur parameter runtime.
RuntimeOptions runtime = new RuntimeOptions();
runtime.readTimeout = 10000;
runtime.connectTimeout = 10000;
// Bangun parameter layanan.
JSONObject serviceParameters = new JSONObject();
serviceParameters.put("content", "text to be detected");
if (serviceParameters.get("content") == null || serviceParameters.getString("content").trim().length() == 0) {
System.out.println("text moderation content is empty");
return;
}
TextModerationRequest textModerationRequest = new TextModerationRequest();
// Atur layanan sesuai kebutuhan Anda.
textModerationRequest.setService("text_moderation_service");
textModerationRequest.setServiceParameters(serviceParameters.toJSONString());
try {
// Panggil metode untuk mendapatkan hasil deteksi.
TextModerationResponse response = client.textModerationWithOptions(textModerationRequest, runtime);
// Cetak hasil deteksi.
if (response != null) {
if (response.getStatusCode() == 200) {
TextModerationResponseBody result = response.getBody();
System.out.println(JSON.toJSONString(result));
Integer code = result.getCode();
if (code != null && code == 200) {
TextModerationResponseBody.TextModerationResponseBodyData data = result.getData();
System.out.println("labels = [" + data.getLabels() + "]");
System.out.println("reason = [" + data.getReason() + "]");
} else {
System.out.println("text moderation failed. code:" + code);
}
} else {
System.out.println("request failed. status:" + response.getStatusCode());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}Output yang diharapkan (ketika permintaan berhasil dan tidak ada pelanggaran yang terdeteksi):
{"code":200,"data":{"labels":"","reason":""},"requestId":"...","message":"OK"}
labels = []
reason = []Python SDK
Persyaratan: Python 3.6 atau lebih baru
Kode sumber: PyPI
1. Instal paket.
pip install alibabacloud_green20220302==3.2.42. Panggil API.
# coding=utf-8
import os
import json
import uuid
from alibabacloud_green20220302.client import Client
from alibabacloud_green20220302 import models
from alibabacloud_tea_openapi.models import Config
from alibabacloud_tea_util.client import Client as UtilClient
from alibabacloud_tea_util import models as util_models
class TextAutoRoute:
@staticmethod
def main() -> None:
service_parameters = {
'content': 'text to be detected',
'dataId': str(uuid.uuid1())
}
if service_parameters.get("content") is None or len(service_parameters.get("content").strip()) == 0:
print("text moderation content is empty")
return
text_moderation_request = models.TextModerationRequest(
# Atur layanan sesuai kebutuhan.
service='text moderation service',
service_parameters=json.dumps(service_parameters)
)
# Baca kredensial dari variabel lingkungan.
config = Config(
access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
# Atur periode timeout koneksi dan pembacaan (dalam milidetik).
connect_timeout=3000,
read_timeout=6000,
# Sesuaikan region dan endpoint sesuai kebutuhan.
region_id='ap-southeast-1',
endpoint='green-cip.ap-southeast-1.aliyuncs.com'
)
# Gunakan kembali instans client untuk menghindari pembuatan koneksi ganda.
client = Client(config)
# Atur periode timeout tingkat runtime (dalam milidetik).
runtime = util_models.RuntimeOptions()
runtime.read_timeout = 10000;
runtime.connect_timeout = 10000;
try:
response = client.text_moderation_with_options(text_moderation_request, runtime)
if response.status_code == 200:
result = response.body
print('response success. result:{}'.format(result))
if result.code == 200:
result_data = result.data
print('labels:{}, reason:{}'.format(result_data.labels, result_data.reason))
else:
print('response not success. status:{} ,result:{}'.format(response.status_code, response))
except Exception as err:
print(err)
if __name__ == '__main__':
TextAutoRoute.main()Output yang diharapkan (ketika permintaan berhasil dan tidak ada pelanggaran yang terdeteksi):
response success. result:...
labels:, reason:PHP SDK
Persyaratan: PHP 5.6 atau lebih baru
Kode sumber: Packagist
1. Instal paket.
composer require alibabacloud/green-20220302 3.2.42. Panggil API.
<?php
require('vendor/autoload.php');
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use AlibabaCloud\SDK\Green\V20220302\Green;
use AlibabaCloud\SDK\Green\V20220302\Models\TextModerationRequest;
$request = new TextModerationRequest();
// Atur layanan sesuai kebutuhan Anda.
$request->service = "text_moderation_service";
$arr = array('content' => 'text to be detected');
$request->serviceParameters = json_encode($arr);
if (empty($arr) || empty(trim($arr["content"]))) {
echo "text moderation content is empty";
return;
}
$config = new Config([
// Mengekspos kode sumber Anda dapat membocorkan pasangan AccessKey Anda, sehingga mengompromikan keamanan semua sumber daya Anda. Kode contoh berikut hanya untuk referensi. Untuk keamanan yang lebih baik, kami merekomendasikan penggunaan metode yang lebih aman, seperti token STS, untuk otorisasi. Untuk informasi lebih lanjut, lihat dokumentasi terkait.
// Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah disetel.
"accessKeyId" => getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
"accessKeySecret" => getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
// Sesuaikan region dan endpoint sesuai kebutuhan Anda.
"endpoint" => "green-cip.ap-southeast-1.aliyuncs.com",
"regionId" => "ap-southeast-1"
]);
// Untuk kinerja yang lebih baik, kami sangat menyarankan Anda menggunakan kembali instans client untuk menghindari pembentukan koneksi berlebihan.
$client = new Green($config);
// Buat instans RuntimeOptions dan atur parameter runtime.
$runtime = new RuntimeOptions([]);
$runtime->readTimeout = 10000;
$runtime->connectTimeout = 10000;
try {
// Panggil metode untuk mendapatkan hasil deteksi.
$response = $client->textModerationWithOptions($request, $runtime);
// Cetak hasil deteksi.
print_r($response->body);
} catch (Exception $e) {
var_dump($e->getMessage());
var_dump($e->getErrorInfo());
var_dump($e->getLastException());
var_dump($e->getLastRequest());
}Output yang diharapkan (ketika permintaan berhasil dan tidak ada pelanggaran yang terdeteksi):
AlibabaCloud\SDK\Green\V20220302\Models\TextModerationResponseBody Object
(
[code] => 200
[data] => AlibabaCloud\SDK\Green\V20220302\Models\TextModerationResponseBodyData Object
(
[labels] =>
[reason] =>
)
[message] => OK
[requestId] => ...
)Go SDK
1. Clone SDK.
go get github.com/alibabacloud-go/green-20220302/v3@v3.2.42. Panggil API.
package main
import (
"encoding/json"
"fmt"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
green "github.com/alibabacloud-go/green-20220302/v2/client"
"github.com/alibabacloud-go/tea/tea"
"net/http"
"os"
)
func main() {
config := &openapi.Config{
// Baca kredensial dari variabel lingkungan.
AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
// Sesuaikan endpoint sesuai kebutuhan.
Endpoint: tea.String("green-cip.ap-southeast-1.aliyuncs.com"),
/**
* Timeout pemrosesan end-to-end di sisi server adalah 10 detik.
* Jika ReadTimeout kurang dari waktu pemrosesan server, client akan menerima error ReadTimeout.
*/
ConnectTimeout: tea.Int(3000),
ReadTimeout: tea.Int(6000),
}
client, _err := green.NewClient(config)
if _err != nil {
panic(_err)
}
serviceParameters, _ := json.Marshal(
map[string]interface{}{
"content": "text to be moderated",
},
)
request := green.TextModerationRequest{
Service: tea.String("text moderation service"),
ServiceParameters: tea.String(string(serviceParameters)),
}
result, _err := client.TextModeration(&request)
if _err != nil {
panic(_err)
}
statusCode := tea.IntValue(tea.ToInt(result.StatusCode))
if statusCode == http.StatusOK {
textModerationResponse := result.Body
fmt.Println("response success. response:" + textModerationResponse.String())
if tea.IntValue(tea.ToInt(textModerationResponse.Code)) == 200 {
textModerationResponseData := textModerationResponse.Data
fmt.Println("response reason:" + tea.StringValue(textModerationResponseData.Reason))
fmt.Println("response labels:" + tea.StringValue(textModerationResponseData.Labels))
}
} else {
fmt.Println("response not success. status:" + tea.ToString(statusCode))
}
}Output yang diharapkan (ketika permintaan berhasil dan tidak ada pelanggaran yang terdeteksi):
response success. response:...
response reason:
response labels:Node.js SDK
1. Instal paket.
npm install @alicloud/green20220302@3.2.42. Panggil API.
const RPCClient = require("@alicloud/pop-core");
async function main() {
// Gunakan kembali instans client untuk menghindari pembuatan koneksi ganda.
var client = new RPCClient({
// Baca kredensial dari variabel lingkungan.
accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
// Sesuaikan endpoint sesuai kebutuhan.
endpoint: "https://green-cip.ap-southeast-1.aliyuncs.com",
apiVersion: '2022-03-02'
});
var params = {
// Atur layanan sesuai kebutuhan.
"Service": "text moderation service",
"ServiceParameters": JSON.stringify({
"content": "text to be detected",
})
};
var serviceParameters = JSON.parse(params.ServiceParameters);
if (!serviceParameters.hasOwnProperty("content") || serviceParameters.content.trim().length === 0) {
console.log("text moderation content is empty");
return;
}
var requestOption = {
method: 'POST',
formatParams: false,
};
try {
var response = await client.request('TextModeration', params, requestOption);
console.log(JSON.stringify(response));
} catch (err) {
console.log(err);
}
}
main().then(function (response) { });Output yang diharapkan (ketika permintaan berhasil dan tidak ada pelanggaran yang terdeteksi):
{"Code":200,"Data":{"Labels":"","Reason":""},"Message":"OK","RequestId":"..."}C# SDK
1. Tambahkan paket.
dotnet add package AlibabaCloud.SDK.Green20220302 --version 3.2.42. Panggil API.
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace AlibabaCloud.SDK.Green20220302
{
public class TextModerationAutoRoute
{
public static void Main(string[] args)
{
// Bangun permintaan moderasi.
AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest textModerationRequest =
new AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest();
// Atur layanan sesuai kebutuhan.
textModerationRequest.Service = "text moderation service";
Dictionary<string, object> task = new Dictionary<string, object>();
task.Add("content", "text to be detected");
if (!task.ContainsKey("content") || Convert.ToString(task["content"]).Trim() == string.Empty)
{
Console.WriteLine("text moderation content is empty");
return;
}
textModerationRequest.ServiceParameters = JsonConvert.SerializeObject(task);
// Baca kredensial dari variabel lingkungan.
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
{
AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
// Sesuaikan endpoint sesuai kebutuhan.
Endpoint = "green-cip.ap-southeast-1.aliyuncs.com",
};
// Gunakan kembali instans client untuk menghindari pembuatan koneksi ganda.
AlibabaCloud.SDK.Green20220302.Client client = new AlibabaCloud.SDK.Green20220302.Client(config);
// Atur periode timeout tingkat runtime (dalam milidetik).
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
runtime.ReadTimeout = 10000;
runtime.ConnectTimeout = 10000;
try
{
AlibabaCloud.SDK.Green20220302.Models.TextModerationResponse response =
client.TextModerationWithOptions(textModerationRequest, runtime);
Console.WriteLine(response.Body.RequestId);
Console.WriteLine(JsonConvert.SerializeObject(response.Body));
}
catch (Exception _err)
{
Console.WriteLine(_err);
}
}
}
}Output yang diharapkan (ketika permintaan berhasil dan tidak ada pelanggaran yang terdeteksi):
<request-id>
{"Code":200,"Data":{"Labels":"","Reason":""},"Message":"OK","RequestId":"<request-id>"}Langkah selanjutnya
API layanan multibahasa Moderasi Teks versi tingkat lanjut 2.0 — referensi API lengkap untuk
TextModerationConfigure credentials — gunakan token STS atau penyedia kredensial lainnya untuk beban kerja produksi
OpenAPI Explorer — debug operasi API dan hasilkan kode SDK secara online