文本审核增强版升级PLUS服务,面向大语言模型的输入指令和生成文字分别提供审核服务,特定的模型输入指令支持检索标准回答,同时开放审核标签的开启和关闭功能。本文介绍面向大语言模型的文本审核PLUS服务使用方法。
功能特性
相比较文本审核增强版的通用服务,文本审核PLUS服务提供面向大语言模型的审核功能,满足合规要求和业务特性。
对比项 | 文本审核PLUS服务 | 文本审核通用服务 |
业务场景 | 面向大语言模型应用提供检测服务:
| 提供AIGC类文字检测服务:
|
审核能力 |
|
|
标签体系 |
|
|
接口功能 | 业务接口为 TextModerationPlus:
| 业务接口为 TextModeration:
|
风险标签
标签含义
面向大语言模型的文本审核PLUS服务支持返回10个类型的60+个细分标签和标签置信度。如果内容存在多种风险类型,能够同时返回多个细分标签。以下是风险标签值、对应的分值区间以及对应的含义:
标签值(label) | 置信分区间(confidence) | 中文含义 |
pornographic_adult | 0~100分,分数越高置信度越高 | 疑似色情内容 |
sexual_terms | 0~100分,分数越高置信度越高 | 疑似性健康内容 |
sexual_suggestive | 0~100分,分数越高置信度越高 | 疑似低俗内容 |
sexual_prompts | 0~100分,分数越高置信度越高 | 疑似诱导生成色情内容 |
political_figure | 0~100分,分数越高置信度越高 | 疑似政治人物 |
political_entity | 0~100分,分数越高置信度越高 | 疑似政治实体 |
political_n | 0~100分,分数越高置信度越高 | 疑似敏感政治内容 |
political_p | 0~100分,分数越高置信度越高 | 疑似涉政禁宣人物 |
political_prompts | 0~100分,分数越高置信度越高 | 疑似诱导生成涉政内容 |
political_a | 0~100分,分数越高置信度越高 | 涉政专项升级保障 |
violent_extremists | 0~100分,分数越高置信度越高 | 疑似极端组织 |
violent_incidents | 0~100分,分数越高置信度越高 | 疑似极端主义内容 |
violent_weapons | 0~100分,分数越高置信度越高 | 疑似武器弹药 |
violent_prompts | 0~100分,分数越高置信度越高 | 疑似诱导生成暴力内容 |
contraband_drug | 0~100分,分数越高置信度越高 | 疑似毒品相关 |
contraband_gambling | 0~100分,分数越高置信度越高 | 疑似赌博相关 |
contraband_act | 0~100分,分数越高置信度越高 | 疑似违禁行为 |
contraband_entity | 0~100分,分数越高置信度越高 | 疑似违禁工具 |
inappropriate_discrimination | 0~100分,分数越高置信度越高 | 疑似偏见歧视内容 |
inappropriate_ethics | 0~100分,分数越高置信度越高 | 疑似不良价值观内容 |
inappropriate_profanity | 0~100分,分数越高置信度越高 | 疑似攻击辱骂内容 |
inappropriate_oral | 0~100分,分数越高置信度越高 | 疑似低俗口头语内容 |
inappropriate_superstition | 0~100分,分数越高置信度越高 | 疑似封建迷信内容 |
inappropriate_nonsense | 0~100分,分数越高置信度越高 | 疑似无意义灌水内容 |
privacy_p | 0~100分,分数越高置信度越高 | 疑似涉及个人隐私信息 |
privacy_b | 0~100分,分数越高置信度越高 | 疑似涉及商业敏感数据 |
religion_b | 0~100分,分数越高置信度越高 | 疑似涉及佛教 |
religion_t | 0~100分,分数越高置信度越高 | 疑似涉及道教 |
religion_c | 0~100分,分数越高置信度越高 | 疑似涉及基督教 |
religion_i | 0~100分,分数越高置信度越高 | 疑似涉及伊斯兰教 |
religion_h | 0~100分,分数越高置信度越高 | 疑似涉及印度教 |
pt_to_sites | 0~100分,分数越高置信度越高 | 疑似站外引流 |
pt_by_recruitment | 0~100分,分数越高置信度越高 | 疑似网赚兼职广告 |
pt_to_contact | 0~100分,分数越高置信度越高 | 疑似引流广告号 |
customized | 0~100分,分数越高置信度越高 | 命中自定义词库 |
管理标签
每个风险标签均可以在控制台进行开关配置,部分风险标签会提供更细分检测范围的开关配置,具体参见内容安全控制台。
在左侧导航栏,选择文本审核增强版>规则配置。
在规则管理页签,以大语言模型输入文字检测(llm_query_moderation)为例,单击操作列管理检测规则。
选择需要调整的检测类型,以不良内容检测为例。
单击编辑进入编辑模式,修改对应检测状态。
单击保存,保存新配置的检测范围。新配置的检测范围约2~5分钟生效并应用于生产环境。
计费说明
文本审核增强版PLUS服务支持按量后付费和资源包抵扣两种付费方式。
按量后付费
当您开通文本审核增强版服务后,默认付费方式是按量后付费,且按照实际用量结算当日费用,不调用服务不收费。
审核类型 | 支持的业务场景(服务) | 计费单价 |
文本审核高级(text_advanced) |
| 15元/万次 |
资源包抵扣
如果您的审核量较大,或有相对固定的审核需求,建议预先购买资源包的方式。购买资源包规格越大,享受的折扣越大,支持叠加购买和使用。更多内容,请参见购买内容审核增强版抵扣资源包。
该资源包用于内容审核增强版用量的抵扣,无法与内容安全1.0流量包共享,具体的抵扣系数如下:
审核类型 | 支持的业务场景(服务) | 抵扣系数 |
文本审核高级(text_advanced) |
| 抵扣系数为2,表示每成功调用一次接口,抵扣资源包的流量包容量规格2次。 例如购买的资源包的流量包容量规格为10次,当您成功调用1次接口,抵扣流量包容量规格2次,剩余8次。 |
接入指南
步骤一:开通服务
访问开通服务,开通文本审核增强版服务。
步骤二:为RAM用户授权
在接入SDK或者API之前,您需要为RAM用户授权。您可以为阿里云账号和RAM用户创建一个访问密钥(AccessKey)。在调用阿里云API时您需要使用AccessKey完成身份验证。获取方式,请参见获取AccessKey。
使用阿里云账号(主账号)或RAM管理员登录RAM控制台。
- 创建RAM用户。
具体操作,请参见创建RAM用户。
- 向RAM用户授权系统策略权限:
AliyunYundunGreenWebFullAccess
。具体操作,请参见为RAM用户授权。
完成以上配置后,您可以使用RAM用户调用内容安全API。
步骤三:安装并接入SDK
目前文本审核PLUS服务支持的接入地域如下:
地域 | 外网接入地址 | 内网接入地址 |
华北2(北京) | green-cip.cn-beijing.aliyuncs.com | green-cip-vpc.cn-beijing.aliyuncs.com |
华东2(上海) | green-cip.cn-shanghai.aliyuncs.com | green-cip-vpc.cn-shanghai.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 | 暂无 |
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)
}
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());
}
Java SDK
在pom.xml中加入相应依赖,就可以在Maven工程中使用SDK。
1、在dependencies中添加如下依赖:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>green20220302</artifactId>
<version>2.1.0</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及以上版本。
1、执行如下命令引入相关依赖。
pip install alibabacloud_green20220302==2.1.0
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)
API说明
使用说明
您可以调用该接口创建文本内容检测任务。关于如何构造HTTP请求,请参见请求结构;您也可以直接选用已构造好的HTTP请求,更多信息,请参见接入指南部分。
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
业务接口:TextModerationPlus
支持的地域及接入地址:
地域 | 外网接入地址 | 内网接入地址 |
华东2(上海) | https://green-cip.cn-shanghai.aliyuncs.com | https://green-cip-vpc.cn-shanghai.aliyuncs.com |
华北2(北京) | https://green-cip.cn-beijing.aliyuncs.com | https://green-cip-vpc.cn-beijing.aliyuncs.com |
华东1(杭州) | https://green-cip.cn-hangzhou.aliyuncs.com | https://green-cip-vpc.cn-hangzhou.aliyuncs.com |
华南1(深圳) | https://green-cip.cn-shenzhen.aliyuncs.com | https://green-cip-vpc.cn-shenzhen.aliyuncs.com |
西南1(成都) | https://green-cip.cn-chengdu.aliyuncs.com | 暂无 |
计费信息:该接口为收费接口。仅对HTTP状态码为200的请求进行计量计费,产生其他错误码时不会计费。关于计费方式,请参见计费说明部分。
QPS限制
本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
Service | String | 是 | llm_query_moderation |
|
ServiceParameters | JSONString | 是 | 审核服务需要的参数集。JSON字符串格式,关于每个字符串的描述,请参见ServiceParameters。 |
表 1. ServiceParameters
名称 | 类型 | 是否必须 | 示例值 | 描述 |
content | String | 是 | 检测内容 | 审核的文本内容,默认输入文本字数限制分别是:
|
accountId | String | 否 | 13**** | 账户ID,标识一个账户的唯一ID。传入账号ID时会结合相同账号ID的前后文进行审核。 说明 推荐配合llm_query_moderation使用。 |
sessionId | String | 否 | 14**** | 会话ID,标记本次请求内容属于同一段流式内容,文本审核引擎会自动拼接后进行审核,审核拼接文字片段后不超过服务字数限制的部分。 说明 推荐配合llm_response_moderation使用。使用 sessionId时不能够同时传入参数 accountId。 |
返回参数
名称 | 类型 | 示例值 | 描述 |
Code | Integer | 200 | 状态码。更多信息,请参见Code说明。 |
Data | JSONObject | {"Result":[...],"Advice":[...]} | 审核结果数据,具体请参见Data。 |
Message | String | OK | 请求消息的响应消息。 |
RequestId | String | AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE**** | 请求ID。 |
表 2. Data
名称 | 类型 | 示例值 | 描述 |
Result | JSONArray | [{"confidence":100.0,"label":"political_entity","riskWords":"敏感词1"},{...}] | 检测的风险标签、置信分等结果,具体请参见Result。 |
Advice | JSONArray | [{"Answer":"这是标准回答"}] | 调用检测服务llm_query_moderation时,如果输入指令检索并匹配特定知识库,则返回标准回答,具体请参见Advice。 |
表 3. Result
名称 | 类型 | 示例值 | 描述 |
Label | String | political_xxx | 文字内容检测运算后返回的标签,可能会检出多个标签和分值。支持的标签请参见风险标签。 |
Confidence | Float | 81.22 | 置信分值,0到100分,保留到小数点后2位。部分标签无置信分。 |
Riskwords | String | AA,BB,CC | 检测到的敏感词,多个词用逗号分隔,部分标签不会返回敏感词。 |
CustomizedHit | JSONArray | [{"LibName":"...","Keywords":"..."}] | 当命中自定义库时,Label为customized,返回自定义库名称和自定义词,具体参见CustomizedHit。 |
表 4. CustomizedHit
名称 | 类型 | 示例值 | 描述 |
LibName | String | 自定义库1 | 自定义库名称 |
Keywords | String | 自定义词1,自定义词2 | 自定义词,多个词用逗号分隔。 |
表 5. Advice
名称 | 类型 | 示例值 | 描述 |
Answer | String | 这是一条标准回答 | 调用检测服务llm_query_moderation时,如果输入指令检索并匹配特定知识库,则返回标准回答,可能会返回多条。 |
示例
请求示例
{
"Service": "llm_query_moderation",
"ServiceParameters": {
"content": "testing content"
}
}
正常返回示例
{
"code": 200,
"data": {
"advice": [
{
"answer": "这是一条标准回答返回的示例。"
}
],
"result": [
{
"label": "political_entity",
"confidence": 100.0,
"riskWords": "词A,词B,词C"
},
{
"label": "political_figure",
"confidence": 100.0,
"riskWords": "词A,词B,词C"
}
]
},
"message": "OK",
"requestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}
Code说明
Code | 状态代码 | 说明 |
200 | OK | 请求成功。 |
400 | BAD_REQUEST | 请求有误。可能是请求参数不正确导致,请仔细检查请求参数。 |
408 | PERMISSION_DENY | 可能是您的账号未授权、账号欠费、账号未开通、账号被禁等。 |
500 | GENERAL_ERROR | 错误。可能是服务端临时出错。建议重试,若持续返回该错误码,请通过在线服务联系我们。 |
581 | TIMEOUT | 超时。建议重试,若持续返回该错误码,请通过在线服务联系我们。 |
588 | EXCEED_QUOTA | 请求频率超出配额。 |
- 本页导读 (0)