文本审核增强版升级AIGC类文字检测能力,支持对模型流式输出文字进行自动拼接并审核。本文介绍文本审核服务的流式输出文字审核功能。
使用场景
大语言模型应用支持通过流式输出的方式尽快的将中间结果显示在用户界面上。以通义千问为例子,开发者可以通过参数控制流式输出模式,具体参考文档:通过API使用通义千问。
当采用模型流式输出的方式时,通常需要开发者拼接文字片段后作为文本审核服务的输入内容,但这个方式存在明显的缺点:
- 大语言模型容易生成较长内容的文字,拼接全部输出文字后,内容长度有可能超过文本审核的输入限制; 
- 采用流式输出的方式用户端会更快看到模型生成内容片段,待全部内容输出时潜在风险可能长时间暴露给用户。 
因此阿里云文本审核增强版提供了对模型流式输出文字进行自动拼接并审核的功能。该功能既避免了由于内容过长导致文本审核输入限制,也显著降低潜在风险暴露给用户的时间。
功能特性
| 使用场景 | 支持的文本审核服务 | 特性说明 | 
| 大语言模型生成文字场景:采用模型流式输出的模式,且开启了增量输出时,每次生成内容不包含已经输出的部分。 | 服务名称:大语言模型生成文字检测 service:llm_response_moderation | 
 | 
| AIGC类文字场景:采用模型流式输出的模式,且开启了增量输出时,每次生成内容不包含已经输出的部分。 | 服务名称:AIGC类文字检测service:ai_art_detection | 
 | 
费用说明
阿里云文本审核增强版默认的计费方式为按量后付费,即按照调用审核的文本次数计费,对使用流式输出文字的场景下调用审核的文本次数会显著增加。
因此我们建议采用机器审核QPS的预付费方式(最低 500QPS起),需要联系商务开通和购买。
付费方式对比
以通义千问为例子,对比不同付费方式下,流式输出文字场景的模型服务费用和文本审核费用:
| 选择模型 | 模型使用说明 | 模型月度费用参考 | 
| qwen-turbo | 
 
 | 约 20.7 万元 | 
| 审核付费方式 | 审核使用说明 | 审核月度费用参考 | 
| 按量后付费 | 
 
 | 约 9.72 万元 | 
| 按量后付费 | 
 
 | 约 3.88 万元 | 
| 按QPS预付费 | 
 
 | 约 3.33 万元 | 
| 按QPS预付费 | 
 
 | 约 1.67 万元 | 
按量后付费
当您开通文本审核增强版服务后,默认付费方式是按量后付费,且按照实际用量结算当日费用,不调用服务不收费。
| 审核类型 | 支持的业务场景(服务) | 计费单价 | 
| 文本审核高级(text_advanced) | 大语言模型生成文字检测:llm_response_moderation | 15元/万次 | 
| 文本审核通用(text_standard) | AIGC文字检测: ai_art_detection | 7.5元/万次 | 
资源包抵扣
如果您的审核量较大,或有相对固定的审核需求,建议预先购买资源包的方式。购买资源包规格越大,享受的折扣越大,支持叠加购买和使用。更多内容,请参见购买内容审核增强版抵扣资源包。
该资源包用于内容审核增强版用量的抵扣,无法与内容安全流量包共享,具体的抵扣系数如下:
| 审核类型 | 支持的业务场景(服务) | 抵扣系数 | 
| 文本审核高级(text_advanced) | 大语言模型生成文字检测:llm_response_moderation | 抵扣系数为2,表示每成功调用一次接口,抵扣资源包的流量包容量规格2次。 例如购买的资源包的流量包容量规格为10次,当您成功调用1次接口,抵扣流量包容量规格2次,剩余8次。 | 
| 文本审核通用(text_standard) | AIGC文字检测: ai_art_detection | 抵扣系数为1,表示每成功调用一次接口,抵扣资源包的流量包容量规格1次。 例如购买的资源包的流量包容量规格为10次,当您成功调用1次接口,抵扣流量包容量规格1次,剩余9次。 | 
接入指南
步骤一:开通服务
访问开通服务,开通文本审核增强版服务。
开通文本增强版服务后,默认付费方式是按量后付费,且按照实际用量结算当日费用,不调用服务不收费。接口接入使用后系统会按使用量自动出账,具体信息,请参见计费说明。您也可以购买按量抵扣资源包,资源包相较于后付费存在一定阶梯折扣,适合使用量级可预期和较大的用户。
步骤二:为RAM用户授权
在接入SDK或者API之前,您需要为RAM用户授权。您可以为阿里云账号和RAM用户创建一个访问密钥(AccessKey)。在调用阿里云API时您需要使用AccessKey完成身份验证。获取方式,请参见获取AccessKey。
- 使用RAM管理员登录RAM控制台。 
- 创建RAM用户。具体操作,请参见创建RAM用户。 
- 向RAM用户授权系统策略权限:AliyunYundunGreenWebFullAccess。具体操作,请参见为RAM用户授权。 完成以上配置后,您可以使用RAM用户调用内容安全API。
步骤三:安装并接入SDK
目前支持的接入地域如下,具体请参见文本审核增强版PLUS服务SDK及接入指南:
| 地域 | 外网接入地址 | 内网接入地址 | 
| 华东2(上海) | green-cip.cn-shanghai.aliyuncs.com | green-cip-vpc.cn-shanghai.aliyuncs.com | 
| 华北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 | 暂无 | 
目前支持两种审核服务类型,分别是大语言模型生成文字检测(具体参考文本审核增强版PLUS服务API部分)和AIGC类文字检测(文本审核增强版通用服务API部分)
文本审核增强版PLUS服务API
使用说明
业务接口:https://green-cip.{region}.aliyuncs.com。
您可以调用该接口创建文本内容检测任务。关于如何构造HTTP请求,请参见请求结构;您也可以直接选用已构造好的HTTP请求,更多信息,请参见文本审核增强版PLUS服务SDK及接入指南。
- 计费信息: - 该接口为收费接口。仅对HTTP状态码为200的请求进行计量计费,产生其他错误码时不会计费。关于计费方式,请参见计费说明。 
QPS限制
本接口的单用户QPS默认限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。如采用机器审核QPS的预付费方式,可根据业务峰值扩容,请联系商务开通。
请求参数
| 名称 | 类型 | 是否必须 | 示例值 | 描述 | 
| Service | String | 是 | llm_response_moderation | 审核服务类型。取值: 
 | 
| ServiceParameters | JSONString | 是 | 审核服务需要的参数集。JSON字符串格式,关于每个字符串的描述,请参见表ServiceParameters。 | 
表 1. ServiceParameters
| 名称 | 类型 | 是否必须 | 示例值 | 描述 | 
| content | String | 是 | 检测内容 | 审核的文本内容,限定在600字以内。 | 
| sessionId | String | 否 | 10123**** | 会话ID,标记本次请求内容属于同一段流式内容,文本审核引擎会自动拼接后进行审核,拼接文字片段后不超过 2000字的部分。 说明  使用 sessionId时不能够同时传入参数 accountId。 | 
返回参数
| 名称 | 类型 | 示例值 | 描述 | 
| Code | Integer | 200 | 状态码。更多信息,请参见Code说明。 | 
| Data | JSONObject | {"Result":[...]} | 审核结果数据,具体请参见Data。 | 
| Message | String | OK | 请求消息的响应消息。 | 
| RequestId | String | AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE**** | 请求ID。 | 
表 2. Data
| 名称 | 类型 | 示例值 | 描述 | 
| Result | JSONArray | 检测的风险标签、置信分等结果,具体请参见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 | 这是一条标准回答 | 在调用检测服务时,支持返回代答内容: 
 | 
| HitLabel | String | political_xxx | 在文字内容检测运算后返回的标签中,取较高风险的标签,支持的标签请参见风险标签。 | 
| HitLibName | String | 自定义代答库001 | 自定义配置代答库名称。 | 
示例
请求示例
{
    "Service": "llm_response_moderation",
    "ServiceParameters": {
        "content": "流式输出内容",
        "sessionId": "10123****"
    }
}正常返回示例
{
    "Code": 200,
    "Data": {
       "Advice": [
            {
                "HitLabel": "political_entity",
                "Answer": "这是一条标准回答返回的示例。",
                "HitLibName": "political_entity-001"
            } 
       "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 | 请求频率超出配额。 | 
文本审核增强版通用服务API
使用说明
业务接口:https://green-cip.{region}.aliyuncs.com。
您可以调用该接口创建文本内容检测任务。关于如何构造HTTP请求,请参见请求结构;您也可以直接选用已构造好的HTTP请求,更多信息,请参见文本审核增强版PLUS服务SDK及接入指南。
- 计费信息: - 该接口为收费接口。仅对HTTP状态码为200的请求进行计量计费,产生其他错误码时不会计费。关于计费方式,请参见计费说明。 
QPS限制
本接口的单用户QPS默认限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。如采用机器审核QPS的预付费方式,可根据业务峰值扩容,请联系商务开通。
请求参数
| 名称 | 类型 | 是否必须 | 示例值 | 描述 | 
| Service | String | 是 | ai_art_detection | 审核服务类型。取值: 
 | 
| ServiceParameters | JSONString | 是 | 审核服务需要的参数集。JSON字符串格式,关于每个字符串的描述见下表。 | 
表 1. ServiceParameters
| 名称 | 类型 | 是否必须 | 示例值 | 描述 | 
| content | String | 是 | 检测内容 | 审核的文本内容,限定在600字以内。 | 
| sessionId | String | 否 | 10123**** | 会话ID,标记本次请求内容属于同一段流式内容,文本审核引擎会自动拼接后进行审核,拼接文字片段后不超过 2000字的部分。 说明  使用 sessionId时不能够同时传入参数 accountId。 | 
返回参数
| 名称 | 类型 | 示例值 | 描述 | 
| Code | Integer | 200 | 状态码。更多信息,请参见Code说明。 | 
| Data | JSONObject | {"labels": "sexual_content","reason": "{\"riskTips\":\"色情_低俗词\",\"riskWords\":\"色情服务\"}"} | 审核结果数据,具体信息请参见Data。 | 
| Message | String | OK | 请求消息的响应消息。 | 
| RequestId | String | AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE**** | 请求ID。 | 
表 2.Data
| 名称 | 类型 | 示例值 | 描述 | 
| Labels | String | sexual_content | 标签,多个用英文逗号分隔。包括: 
 说明  标签会持续新增,建议业务对接过程对未知标签忽略处理。 | 
| Reason | String | {\"riskTips\":\"色情_低俗词\",\"riskWords\":\"色情服务\"} | 原因定位的JSON字符串,包含以下字段: 
 | 
示例
请求示例
{
    "Service": "ai_art_detection",
    "ServiceParameters": {
        "content": "流式输出内容",
        "sessionId": "10123****"
    }
}正常返回示例
{
    "Code": 200,
    "Data": {
        "labels": "sexual_content",
        "reason": "{\"riskTips\":\"色情_低俗词\",\"riskWords\":\"色情服务\"}"
    },
    "Message": "OK",
    "RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}Code说明
| Code | 状态代码 | 说明 | 
| 200 | OK | 请求成功。 | 
| 400 | BAD_REQUEST | 请求有误。可能是请求参数不正确导致,请仔细检查请求参数。 | 
| 407 | NOT_SUPPORT | 无法识别或不支持该语种类型。 | 
| 408 | PERMISSION_DENY | 可能是您的账号未授权、账号欠费、账号未开通、账号被禁等。 | 
| 500 | GENERAL_ERROR | 错误。可能是服务端临时出错。建议重试,若持续返回该错误码,请通过在线服务联系我们。 | 
| 581 | TIMEOUT | 超时。建议重试,若持续返回该错误码,请通过在线服务联系我们。 | 
| 588 | EXCEED_QUOTA | 请求频率超出配额。 |