本文介绍文本审核增强版SDK接入的方式。
步骤一:开通服务
访问开通服务页面,开通文本审核增强版服务。
开通文本增强版服务后,默认付费方式是按量后付费,且按照实际用量结算当日费用,不调用服务不收费。接口接入使用后系统会按使用量自动出账。您也可以购买按量抵扣资源包,资源包相较于后付费存在一定阶梯折扣,适合使用量级可预期和较大的用户。
步骤二:为RAM用户授权
在接入SDK或者API之前,您需要为RAM用户授权。您可以为阿里云账号和RAM用户创建一个访问密钥(AccessKey)。在调用阿里云API时您需要使用AccessKey完成身份验证。获取方式,请参见获取AccessKey。
步骤三:安装并接入SDK
目前支持的接入地域如下:
地域 | 外网接入地址 | 内网接入地址 | 支持服务 |
华东2(上海) | green-cip.cn-shanghai.aliyuncs.com | green-cip-vpc.cn-shanghai.aliyuncs.com | 文本审核增强版PULS服务 文本审核增强版通用服务 |
华北2(北京) | green-cip.cn-beijing.aliyuncs.com | green-cip-vpc.cn-beijing.aliyuncs.com | |
华东1(杭州) | green-cip.cn-hangzhou.aliyuncs.com | green-cip-vpc.cn-hangzhou.aliyuncs.com | |
华南1(深圳) | green-cip.cn-shenzhen.aliyuncs.com | green-cip-vpc.cn-shenzhen.aliyuncs.com | |
西南1(成都) | green-cip.cn-chengdu.aliyuncs.com | 暂无 | |
新加坡 | green-cip.ap-southeast-1.aliyuncs.com | green-cip-vpc.ap-southeast-1.aliyuncs.com | 文本审核增强版通用服务 |
如果需要其他语言的SDK示例代码,您可以通过OpenAPI开发者门户在线调试工具调试API接口,该工具会自动生成相应API的SDK调用示例代码。
阿里云SDK代码通过定义ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
环境变量来创建默认的访问凭证。调用接口时,程序直接访问凭证,读取您的访问密钥(即AccessKey)并自动完成鉴权。您在接入SDK代码示例之前,请先配置环境变量。具体操作,请参见身份验证配置。
SDK分为两个版本服务,请选择正确的服务接入:
文本审核增强版PLUS服务
该SDK对应接口为文本审核增强版PLUS服务和面向大语言模型的文本审核PLUS服务。
Java SDK
支持Java 1.8及以上版本。
原始代码,请参见Java SDK源码或者Java SDK源码(OSS路径)。
在pom.xml中加入相应依赖,就可以在Maven工程中使用SDK。
1、在dependencies中添加如下依赖。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>green20220302</artifactId>
<version>2.2.8</version>
</dependency>
2、接入Java SDK 代码示例。
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.green20220302.Client;
import com.aliyun.green20220302.models.TextModerationPlusRequest;
import com.aliyun.green20220302.models.TextModerationPlusResponse;
import com.aliyun.green20220302.models.TextModerationPlusResponseBody;
import com.aliyun.teaopenapi.models.Config;
public class TextModerationPlusDemo {
public static void main(String[] args) throws Exception {
Config config = new Config();
/**
* 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
* 常见获取环境变量方式:
* 方式一:
* 获取RAM用户AccessKey ID:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 获取RAM用户AccessKey Secret:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* 方式二:
* 获取RAM用户AccessKey ID:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 获取RAM用户AccessKey Secret:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
config.setAccessKeyId("建议从环境变量中获取RAM用户AccessKey ID");
config.setAccessKeySecret("建议从环境变量中获取RAM用户AccessKey Secret");
//接入区域和地址请根据实际情况修改
config.setRegionId("cn-shanghai");
config.setEndpoint("green-cip.cn-shanghai.aliyuncs.com");
//连接时超时时间,单位毫秒(ms)。
config.setReadTimeout(6000);
//读取时超时时间,单位毫秒(ms)。
config.setConnectTimeout(3000);
//设置http代理。
//config.setHttpProxy("http://xx.xx.xx.xx:xxxx");
//设置https代理。
//config.setHttpsProxy("https://xx.xx.xx.xx:xxxx");
Client client = new Client(config);
JSONObject serviceParameters = new JSONObject();
serviceParameters.put("content", "测试文本内容");
TextModerationPlusRequest textModerationPlusRequest = new TextModerationPlusRequest();
// 检测类型
textModerationPlusRequest.setService("llm_query_moderation");
textModerationPlusRequest.setServiceParameters(serviceParameters.toJSONString());
try {
TextModerationPlusResponse response = client.textModerationPlus(textModerationPlusRequest);
if (response.getStatusCode() == 200) {
TextModerationPlusResponseBody result = response.getBody();
System.out.println(JSON.toJSONString(result));
System.out.println("requestId = " + result.getRequestId());
System.out.println("code = " + result.getCode());
System.out.println("msg = " + result.getMessage());
Integer code = result.getCode();
if (200 == code) {
TextModerationPlusResponseBody.TextModerationPlusResponseBodyData data = result.getData();
System.out.println(JSON.toJSONString(data, true));
} else {
System.out.println("text moderation not success. code:" + code);
}
} else {
System.out.println("response not success. status:" + response.getStatusCode());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Python SDK
支持Python 3.6及以上版本。
原始代码,请参见Python SDK源码。
1、执行如下命令引入相关依赖。
pip install alibabacloud_green20220302==2.2.8
2、接入Python SDK 代码示例。
# coding=utf-8
# python version >= 3.6
from alibabacloud_green20220302.client import Client
from alibabacloud_green20220302 import models
from alibabacloud_tea_openapi.models import Config
import json
config = Config(
# 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
# 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
# 常见获取环境变量方式:
# 获取RAM用户AccessKey ID:os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
# 获取RAM用户AccessKey Secret:os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
access_key_id='建议从环境变量中获取RAM用户AccessKey ID',
access_key_secret='建议从环境变量中获取RAM用户AccessKey Secret',
# 连接超时时间 单位毫秒(ms)
connect_timeout=10000,
# 读超时时间 单位毫秒(ms)
read_timeout=3000,
region_id='cn-hangzhou',
endpoint='green-cip.cn-hangzhou.aliyuncs.com'
)
clt = Client(config)
serviceParameters = {
'content': '测试文本内容'
}
textModerationPlusRequest = models.TextModerationPlusRequest(
# 检测类型
service='llm_query_moderation',
service_parameters=json.dumps(serviceParameters)
)
try:
response = clt.text_moderation_plus(textModerationPlusRequest)
if response.status_code == 200:
# 调用成功
result = response.body
print('response success. result:{}'.format(result))
else:
print('response not success. status:{} ,result:{}'.format(response.status_code, response))
except Exception as err:
print(err)
PHP SDK
支持PHP 5.6及以上版本。
原始代码,请参见PHP SDK源码。
1、执行如下命令引入相关依赖。
composer require alibabacloud/green-20220302
2、接入PHP SDK 代码示例。
<?php
require('vendor/autoload.php');
use AlibabaCloud\SDK\Green\V20220302\Models\TextModerationPlusRequest;
use AlibabaCloud\Tea\Exception\TeaUnableRetryError;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use AlibabaCloud\SDK\Green\V20220302\Green;
$config = new Config([
/**
* 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
* 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
* 常见获取环境变量方式:
* 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
"accessKeyId" => '建议从环境变量中获取RAM用户AccessKey ID',
"accessKeySecret" => '建议从环境变量中获取RAM用户AccessKey Secret',
// 设置HTTP代理。
// "httpProxy" => "http://10.10.xx.xx:xxxx",
// 设置HTTPS代理。
// "httpsProxy" => "https://10.10.xx.xx:xxxx",
"endpoint" => "green-cip.cn-shanghai.aliyuncs.com",
"regionId" => "cn-shanghai"
]);
// 注意,此处实例化的client请尽可能重复使用,避免重复建立连接,提升检测性能。
$client = new Green($config);
$request = new TextModerationPlusRequest();
$request->service = "llm_query_moderation";
$serviceParameters = array("content" => "测试内容");
$request->serviceParameters = json_encode($serviceParameters);
$runtime = new RuntimeOptions();
$runtime->readTimeout = 6000;
$runtime->connectTimeout = 3000;
try {
$response = $client->textModerationPlusWithOptions($request, $runtime);
print_r($response->body);
if (200 != $response->statusCode) {
print_r("response not success. code:" . $response->statusCode);
return;
}
$body = $response->body;
print_r("requestId = " . $body->requestId . "\n");
print_r("code = " . $body->code . "\n");
print_r("message = " . $body->message . "\n");
if (200 != $body->code) {
print_r("text moderation not success. code:" . $body->code);
}
$data = $body->data;
print_r("data = " . json_encode($data));
} catch (TeaUnableRetryError $e) {
var_dump($e->getMessage());
var_dump($e->getErrorInfo());
var_dump($e->getLastException());
var_dump($e->getLastRequest());
}
Go SDK
1、执行如下命令引入相关依赖。
go get github.com/alibabacloud-go/green-20220302
2、接入Go SDK 代码示例。
package main
import (
"encoding/json"
"fmt"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
green20220302 "github.com/alibabacloud-go/green-20220302/v2/client"
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
"net/http"
)
func main() {
// 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的STS方式。
config := &openapi.Config{
/**
* 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
* 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
* 常见获取环境变量方式:
* 获取RAM用户AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* 获取RAM用户AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
AccessKeyId: tea.String("建议从环境变量中获取RAM用户AccessKey ID"),
AccessKeySecret: tea.String("建议从环境变量中获取RAM用户AccessKey Secret"),
// 设置HTTP代理。
// HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"),
// 设置HTTPS代理。
// HttpsProxy: tea.String("https://username:password@xxx.xxx.xxx.xxx:9999"),
RegionId: tea.String("cn-shanghai"),
Endpoint: tea.String("green-cip.cn-shanghai.aliyuncs.com"),
/**
* 请设置超时时间。服务端全链路处理超时时间为10秒,请做相应设置。
* 如果您设置的ReadTimeout小于服务端处理的时间,程序中会获得一个ReadTimeout异常。
*/
ConnectTimeout: tea.Int(3000),
ReadTimeout: tea.Int(6000),
}
client, _err := green20220302.NewClient(config)
if _err != nil {
panic(_err)
}
// 创建RuntimeObject实例并设置运行参数。
runtime := &util.RuntimeOptions{}
runtime.ReadTimeout = tea.Int(10000)
runtime.ConnectTimeout = tea.Int(10000)
serviceParameters, _ := json.Marshal(
map[string]interface{}{
"content": "测试内容",
},
)
request := green20220302.TextModerationPlusRequest{
Service: tea.String("llm_query_moderation"),
ServiceParameters: tea.String(string(serviceParameters)),
}
result, _err := client.TextModerationPlusWithOptions(&request, runtime)
if _err != nil {
panic(_err)
}
if *result.StatusCode != http.StatusOK {
fmt.Printf("response not success. status:%d\n", *result.StatusCode)
return
}
body := result.Body
fmt.Printf("response success. requestId:%s, code:%d, msg:%s\n", *body.RequestId, *body.Code, *body.Message)
if *body.Code != http.StatusOK {
fmt.Printf("text moderation not success. code:%d\n", *body.Code)
return
}
data := body.Data
fmt.Printf("text moderation data:%s\n", *data)
}
文本审核增强版通用服务
该SDK对应接口为文本审核增强版API和文本审核增强版多语言服务。
Java SDK
支持Java 1.8及以上版本。
原始代码,请参见Java SDK源码或者Java SDK源码(OSS路径)。
在pom.xml中加入相应依赖,就可以在Maven工程中使用SDK。
在dependencies中添加如下依赖:
<dependency> <groupId>com.aliyun</groupId> <artifactId>green20220302</artifactId> <version>2.2.8</version> </dependency>
接入Java SDK。
代码示例
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(); /** * 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。 * 常见获取环境变量方式: * 方式一: * 获取RAM用户AccessKey ID:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); * 获取RAM用户AccessKey Secret:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); * 方式二: * 获取RAM用户AccessKey ID:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID"); * 获取RAM用户AccessKey Secret:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); */ config.setAccessKeyId("建议从环境变量中获取RAM用户AccessKey ID"); config.setAccessKeySecret("建议从环境变量中获取RAM用户AccessKey Secret"); //接入区域和地址请根据实际情况修改 config.setRegionId("cn-shanghai"); config.setEndpoint("green-cip.cn-shanghai.aliyuncs.com"); //连接时超时时间,单位毫秒(ms)。 config.setReadTimeout(6000); //读取时超时时间,单位毫秒(ms)。 config.setConnectTimeout(3000); //设置http代理。 //config.setHttpProxy("http://10.10.xx.xx:xxxx"); //设置https代理。 //config.setHttpsProxy("https://10.10.xx.xx:xxxx"); // 注意,此处实例化的client请尽可能重复使用,避免重复建立连接,提升检测性能 Client client = new Client(config); // 创建RuntimeObject实例并设置运行参数。 RuntimeOptions runtime = new RuntimeOptions(); runtime.readTimeout = 10000; runtime.connectTimeout = 10000; //检测参数构造 JSONObject serviceParameters = new JSONObject(); serviceParameters.put("content", "input text"); if (serviceParameters.get("content") == null || serviceParameters.getString("content").trim().length() == 0) { System.out.println("text moderation content is empty"); return; } TextModerationRequest textModerationRequest = new TextModerationRequest(); /* 文本检测service:内容安全控制台文本增强版规则配置的serviceCode,示例:chat_detection */ textModerationRequest.setService("service code"); textModerationRequest.setServiceParameters(serviceParameters.toJSONString()); try { // 调用方法获取检测结果。 TextModerationResponse response = client.textModerationWithOptions(textModerationRequest, runtime); // 自动路由。 if (response != null) { // 服务端错误,区域切换到cn-beijing。 if (500 == response.getStatusCode() || (response.getBody() != null && 500 == (response.getBody().getCode()))) { // 接入区域和地址请根据实际情况修改。 config.setRegionId("cn-beijing"); config.setEndpoint("green-cip.cn-beijing.aliyuncs.com"); client = new Client(config); response = client.textModerationWithOptions(textModerationRequest, runtime); } } // 打印检测结果。 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 not success. code:" + code); } } else { System.out.println("response not success. status:" + response.getStatusCode()); } } } catch (Exception e) { e.printStackTrace(); } } }
Python SDK
支持Python 3.6及以上版本。
原始代码,请参见Python SDK源码。
支持Python 3.6及以上版本。
执行如下命令引入相关依赖。
pip install alibabacloud_green20220302==2.2.8
接入Python SDK。
代码示例
# coding=utf-8 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 import json import uuid class TextAutoRoute: @staticmethod def main() -> None: service_parameters = { 'content': 'input text', '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( # 文本检测service:内容安全控制台文本增强版规则配置的serviceCode,示例:chat_detection service = 'service code', service_parameters = json.dumps(service_parameters) ) config = Config( # 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。 # 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。 # 常见获取环境变量方式: # 获取RAM用户AccessKey ID:os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] # 获取RAM用户AccessKey Secret:os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] access_key_id='建议从环境变量中获取RAM用户AccessKey ID', access_key_secret='建议从环境变量中获取RAM用户AccessKey Secret', # 连接时超时时间,单位毫秒(ms)。 connect_timeout=3000, # 读取时超时时间,单位毫秒(ms)。 read_timeout=6000, # 接入区域和地址请根据实际情况修改。 region_id='cn-shanghai', endpoint='green-cip.cn-shanghai.aliyuncs.com' ) # 注意,此处实例化的client请尽可能重复使用,避免重复建立连接,提升检测性能。 client = Client(config) # 创建RuntimeObject实例并设置运行参数。 runtime = util_models.RuntimeOptions() runtime.read_timeout = 10000 runtime.connect_timeout = 10000 try: response = client.text_moderation_with_options(text_moderation_request, runtime) # 自动路由 if UtilClient.equal_number(500, response.status_code) or not response or not response.body or 200 != response.body.code: # 服务端错误,区域切换到cn-beijing config.region_id = 'cn-beijing' config.endpoint = 'green-cip.cn-beijing.aliyuncs.com' client = Client(config) 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: resultData = result.data print('labels:{}, reason:{}'.format(resultData.labels, resultData.reason)) else: print('response not success. status:{} ,result:{}'.format(response.status_code, response)) except Exception as err: print(err) if __name__ == '__main__': TextAutoRoute.main()
PHP SDK
支持PHP 5.6及以上版本。
原始代码,请参见PHP SDK源码。
执行如下命令引入相关依赖。
composer require alibabacloud/green-20220302
接入PHP SDK。
代码示例
<?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(); /* 文本检测service:内容安全控制台文本增强版规则配置的serviceCode,示例:chat_detection */ $request->service = "service code"; // 待检测数据。 $arr = array('content' => 'input text'); $request->serviceParameters = json_encode($arr); if (empty($arr) || empty(trim($arr["content"]))) { echo "text moderation content is empty"; return; } $config = new Config([ /** * 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。 * 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。 * 常见获取环境变量方式: * 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); * 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); */ "accessKeyId" => '建议从环境变量中获取RAM用户AccessKey ID', "accessKeySecret" => '建议从环境变量中获取RAM用户AccessKey Secret', // 设置HTTP代理。 // "httpProxy" => "http://10.10.xx.xx:xxxx", // 设置HTTPS代理。 // "httpsProxy" => "https://10.10.xx.xx:xxxx", "endpoint" => "green-cip.cn-shanghai.aliyuncs.com", "regionId" => "cn-shanghai" ]); // 注意,此处实例化的client请尽可能重复使用,避免重复建立连接,提升检测性能。 $client = new Green($config); // 创建RuntimeObject实例并设置运行参数。 $runtime = new RuntimeOptions([]); $runtime->readTimeout = 10000; $runtime->connectTimeout = 10000; try { // 调用接口,获取检测结果。 $response = $client->textModerationWithOptions($request, $runtime); // 自动路由。 if (Utils::equalNumber(500, $response->statusCode) || Utils::equalNumber(500, $response->body->code)) { //服务端错误,区域切换到cn-beijing $config->endpoint = "green-cip.cn-beijing.aliyuncs.com"; $config->regionId = "cn-beijing"; $client = new Green($config); $response = $client->textModerationWithOptions($request, $runtime); } print_r($response->body); } catch (Exception $e) { var_dump($e->getMessage()); var_dump($e->getErrorInfo()); var_dump($e->getLastException()); var_dump($e->getLastRequest()); }
Go SDK
执行如下命令引入相关依赖。
go get github.com/alibabacloud-go/green-20220302
接入Go SDK。
代码示例
// This file is auto-generated, don't edit it. Thanks. package main import ( "encoding/json" "fmt" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" green20220302 "github.com/alibabacloud-go/green-20220302/client" util "github.com/alibabacloud-go/tea-utils/v2/service" "github.com/alibabacloud-go/tea/tea" "net/http" "strings" ) func _main() (_err error) { // 检测数据。 serviceParameters, _ := json.Marshal( map[string]interface{}{ "content": "input text", }, ) var contentMap map[string]interface{} _err = json.Unmarshal(serviceParameters, &contentMap) if contentMap["content"] == "" || len(strings.TrimSpace(fmt.Sprint(contentMap["content"]))) == 0 { fmt.Println("text moderation content is empty") return } textModerationRequest := &green20220302.TextModerationRequest{ /* 文本检测service:内容安全控制台文本增强版规则配置的serviceCode,示例:chat_detection */ Service: tea.String("service code"), ServiceParameters: tea.String(string(serviceParameters)), } // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的STS方式。 config := &openapi.Config{ /** * 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。 * 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。 * 常见获取环境变量方式: * 获取RAM用户AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") * 获取RAM用户AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") */ AccessKeyId: tea.String("建议从环境变量中获取RAM用户AccessKey ID"), AccessKeySecret: tea.String("建议从环境变量中获取RAM用户AccessKey Secret"), // 设置HTTP代理。 // HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"), // 设置HTTPS代理。 // HttpsProxy: tea.String("https://username:password@xxx.xxx.xxx.xxx:9999"), RegionId: tea.String("cn-shanghai"), Endpoint: tea.String("green-cip.cn-shanghai.aliyuncs.com"), /** * 请设置超时时间。服务端全链路处理超时时间为10秒,请做相应设置。 * 如果您设置的ReadTimeout小于服务端处理的时间,程序中会获得一个ReadTimeout异常。 */ ConnectTimeout: tea.Int(3000), ReadTimeout: tea.Int(6000), } // 注意,此处实例化的client请尽可能重复使用,避免重复建立连接,提升检测性能。 client, _err := green20220302.NewClient(config) if _err != nil { return _err } // 创建RuntimeObject实例并设置运行参数。 runtime := &util.RuntimeOptions{} runtime.ReadTimeout = tea.Int(10000) runtime.ConnectTimeout = tea.Int(10000) // 复制代码运行请自行打印API的返回值。 response, _err := client.TextModerationWithOptions(textModerationRequest,runtime) // 自动路由,服务端错误,区域切换至cn-beijing。 flag := false if _err != nil { var err = &tea.SDKError{} if _t, ok := _err.(*tea.SDKError); ok { err = _t // 系统异常,切换到下个地域调用。 if *err.StatusCode == 500 { flag = true } } } if response == nil || *response.StatusCode == 500 || *response.Body.Code == 500 { flag = true } if flag { config.SetRegionId("cn-beijing") config.SetEndpoint("green-cip.cn-beijing.aliyuncs.com") client, _err := green20220302.NewClient(config) if _err != nil { return _err } response, _err = client.TextModerationWithOptions(textModerationRequest, runtime) if _err !=nil{ return _err } } if response != nil{ statusCode := tea.IntValue(tea.ToInt(response.StatusCode)) body := response.Body textModerationResponseData := body.Data fmt.Println("requestId:" + tea.StringValue(body.RequestId)) if statusCode == http.StatusOK { fmt.Println("response success. response:" + body.String()) if tea.IntValue(tea.ToInt(body.Code)) == 200 { fmt.Println("response reason:" + tea.StringValue(textModerationResponseData.Reason)) fmt.Println("response labels:" + tea.StringValue(textModerationResponseData.Labels)) } else { fmt.Println("text moderation not success. status" + tea.ToString(body.Code)) } } else { fmt.Print("response not success. status:" + tea.ToString(statusCode)) } } return nil } func main() { err := _main() if err != nil { panic(err) } }
Node.js SDK
执行如下命令引入相关依赖。
npm install @alicloud/pop-core
接入Node.js SDK。
代码示例
const RPCClient = require("@alicloud/pop-core"); async function main() { // 注意,此处实例化的client请尽可能重复使用,避免重复建立连接,提升检测性能。 let client = new RPCClient({ /** * 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。 * 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。 * 常见获取环境变量方式: * 获取RAM用户AccessKey ID:process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'] * 获取RAM用户AccessKey Secret:process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] */ accessKeyId: '建议从环境变量中获取RAM用户AccessKey ID', accessKeySecret: '建议从环境变量中获取RAM用户AccessKey Secret', // 接入区域和地址请根据实际情况修改 endpoint: "https://green-cip.cn-shanghai.aliyuncs.com", apiVersion: '2022-03-02', // 设置http代理 // httpProxy: "http://xx.xx.xx.xx:xxxx", // 设置https代理 // httpsProxy: "https://username:password@xxx.xxx.xxx.xxx:9999", }); // 通过以下代码创建API请求并设置参数。 const params = { // 文本检测service:内容安全控制台文本增强版规则配置的serviceCode,示例:chat_detection "Service": "chat_detection", "ServiceParameters": JSON.stringify({ //待检测文本内容。 "content": "你好。" }), }; const requestOption = { method: 'POST', formatParams: false, }; try { // 调用接口获取检测结果。 let response = await client.request('TextModeration', params, requestOption); // 自动路由。 if (response.Code === 500) { // 区域切换到cn-beijing。 client.endpoint = "https://green-cip.cn-beijing.aliyuncs.com"; response = await client.request('TextModeration', params, requestOption); } } catch (err) { console.log(err); } return response; } main().then(function (response) { console.log(JSON.stringify(response)); });
C# SDK
执行如下命令引入相关依赖。
dotnet add package AlibabaCloud.SDK.Green20220302 --version 2.2.8
接入C# SDK。
代码示例
// This file is auto-generated, don't edit it. Thanks. using Newtonsoft.Json; namespace AlibabaCloud.SDK.Green20220302 { public class TextModerationAutoRoute { public static void Main(string[] args) { // 构建文本检测请求。 AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest textModerationRequest = new AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest(); /* 文本检测service:内容安全控制台文本增强版规则配置的serviceCode,示例:chat_detection */ textModerationRequest.Service = "service code"; Dictionary<string, object> task = new Dictionary<string, object>(); // 待检测文本内容。 task.Add("content", "input text"); if (!task.ContainsKey("content") || Convert.ToString(task["content"]).Trim() == string.Empty) { Console.WriteLine("text moderation content is empty"); return; } textModerationRequest.ServiceParameters = JsonConvert.SerializeObject(task); // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的STS方式。 AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { /** * 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。 * 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。 * 常见获取环境变量方式: * 获取RAM用户AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID") * 获取RAM用户AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET") */ AccessKeyId = "建议从环境变量中获取RAM用户AccessKey ID", AccessKeySecret = "建议从环境变量中获取RAM用户AccessKey Secret", // 设置HTTP代理。 // HttpProxy = "http://xx.xx.xx.xx:xxxx", // 设置HTTPS代理。 // HttpsProxy = "https://username:password@xxx.xxx.xxx.xxx:9999", // 访问的域名。 Endpoint = "green-cip.cn-shanghai.aliyuncs.com", }; // 注意,此处实例化的client请尽可能重复使用,避免重复建立连接,提升检测性能。 AlibabaCloud.SDK.Green20220302.Client client = new AlibabaCloud.SDK.Green20220302.Client(config); // 创建RuntimeObject实例并设置运行参数。 AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); runtime.ReadTimeout = 10000; runtime.ConnectTimeout = 10000; try { // 调用API获取检测结果。 AlibabaCloud.SDK.Green20220302.Models.TextModerationResponse response = client.TextModerationWithOptions(textModerationRequest, runtime); // 自动路由,服务端错误,区域切换至cn-beijing。 if (response is null || response.Body is null || AlibabaCloud.TeaUtil.Common.EqualNumber(500, AlibabaCloud.TeaUtil.Common.AssertAsNumber(response.StatusCode)) || AlibabaCloud.TeaUtil.Common.EqualString("500", Convert.ToString(response.Body.Code))) { config.Endpoint = "green-cip.cn-beijing.aliyuncs.com"; client = new AlibabaCloud.SDK.Green20220302.Client(config); response = client.TextModerationWithOptions(textModerationRequest, runtime); } Console.WriteLine(response.Body.RequestId); Console.WriteLine(JsonConvert.SerializeObject(response.Body)); } catch (Exception _err) { Console.WriteLine(_err); } } } }
如果您在使用过程中出现问题,可以请加入钉群(钉群号:35573806),联系产品技术专家进行咨询。