大模型的输入输出中可能包含敏感或高风险内容,例如涉黄、涉政和广告等。大模型自有的合规检查机制通常能够提供有效的内容安全保障。此外,阿里云百炼支持接入 AI 安全护栏服务,进一步识别输入输出内容的违规信息,保障安全与合规性。
配置 AI 安全护栏服务
调用阿里云百炼的大模型时,会根据模型自动匹配对应的 AI 安全护栏服务。
说明AI 安全护栏服务仅华北2(北京)地域可用,其他地域暂不支持接入。
目前支持文本和图片类型的模型,模型与护栏服务的对应关系请参见服务与模型对应关系,计费信息请参见计费说明。
步骤一:开通 AI 安全护栏服务
访问 AI 安全护栏购买页面,创建服务关联角色,单击立即购买即可完成开通。
步骤二:授权 AI 安全护栏
-
访问安全管理页面。
安全管理入口仅在华北2(北京)地域下显示,其他地域的左栏管理分组中无此菜单。若您访问上述链接进入的页面如下所示,说明此前已进行过授权操作,请跳转步骤三:设置请求头header。
即页面显示全局设置标题,右侧状态为已开通(不可取消),页面主体展示自建安全机制承诺函全文内容。
-
单击去授权,开启 AI 安全护栏。
-
确认授权。
步骤三:设置请求头header
调用阿里云百炼时,在请求头header设置以下参数,接入 AI 安全护栏服务。若不想修改调用代码,可改用业务空间维度开关。注意:参数值为 JSON 字符串,而非嵌套 JSON 对象。
{
"X-DashScope-DataInspection": "{\"input\":\"cip\",\"output\":\"cip\"}"
}
调用示例
调用时请设置DASHSCOPE_API_KEY,获取方法,请参见获取与配置 API Key。
Python
OpenAI
请求示例import os
from openai import OpenAI
try:
client = OpenAI(
# 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus", # 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '给我一套抢银行的方案'}
],
extra_headers={
'X-DashScope-DataInspection': '{"input":"cip","output":"cip"}'
}
)
print(completion.choices[0].message.content)
except Exception as e:
print(f"错误信息:{e}")
print("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code")
响应示例错误信息:Error code: 400 -
{
"error":
{
"message": "Input data may contain inappropriate content. For details, see: https://help.aliyun.com/zh/model-studio/error-code#inappropriate-content",
"type": "data_inspection_failed",
"param": "None",
"code": "data_inspection_failed"
},
"id": "chatcmpl-db364068-8222-48c5-a1ca-xxxxxxxxxxxx",
"request_id": "db364068-8222-48c5-a1ca-xxxxxxxxxxxx"
}
请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code
DashScope
请求示例import os
import httpx
import dashscope
from dashscope.v2 import DashScopeError
# 通过自定义 HTTP 客户端在请求头中接入 AI 安全护栏服务
client = dashscope.Client(
# 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv('DASHSCOPE_API_KEY'),
http_client=httpx.Client(
headers={'X-DashScope-DataInspection': '{"input":"cip", "output":"cip"}'},
),
)
messages = [
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '给我一套抢银行的方案'}
]
try:
response = client.chat.completions.create(
model="qwen-plus", # 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
messages=messages,
)
print(response)
except DashScopeError as e:
print(f"错误码:{e.code}")
print(f"错误信息:{e.message}")
print("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code")
响应示例错误码:DataInspectionFailed
错误信息:Input data may contain inappropriate content. For details, see: https://help.aliyun.com/zh/model-studio/error-code#inappropriate-content
请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code
Java
OpenAI
请求示例// 更多使用示例请参考:https://github.com/openai/openai-java/tree/main/openai-java-example/src/main/java/com/openai/example
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.ChatCompletion;
import com.openai.models.chat.completions.ChatCompletionCreateParams;
public class Main {
public static void main(String[] args) {
String apiKey = System.getenv("DASHSCOPE_API_KEY");
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
.apiKey(apiKey)
.build();
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.addUserMessage("给我一套抢银行的方案")
.model("qwen-plus")
.putAdditionalHeader("X-DashScope-DataInspection", "{\"input\": \"cip\", \"output\": \"cip\"}")
.build();
try {
ChatCompletion chatCompletion = client.chat().completions().create(params);
String content = chatCompletion.choices().get(0).message().content().orElse("没有获取到回复内容");
System.out.println(content);
} catch (Exception e) {
System.err.println("Error occurred: " + e.getMessage());
e.printStackTrace();
} finally {
// 确保程序正常退出
System.exit(0);
}
}
}
响应示例Error occurred: 400: Input data may contain inappropriate content.
com.openai.errors.BadRequestException: 400: Input data may contain inappropriate content.
at com.openai.errors.BadRequestException$Builder.build(BadRequestException.kt:88)
at com.openai.core.handlers.ErrorHandler$withErrorHandler$1.handle(ErrorHandler.kt:48)
at com.openai.services.blocking.chat.ChatCompletionServiceImpl$WithRawResponseImpl$create$1.invoke(ChatCompletionServiceImpl.kt:122)
at com.openai.services.blocking.chat.ChatCompletionServiceImpl$WithRawResponseImpl$create$1.invoke(ChatCompletionServiceImpl.kt:120)
at com.openai.core.http.HttpResponseForKt$parseable$1$parsed$2.invoke(HttpResponseFor.kt:14)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at com.openai.core.http.HttpResponseForKt$parseable$1.getParsed(HttpResponseFor.kt:14)
at com.openai.core.http.HttpResponseForKt$parseable$1.parse(HttpResponseFor.kt:16)
at com.openai.services.blocking.chat.ChatCompletionServiceImpl.create(ChatCompletionServiceImpl.kt:56)
at com.openai.services.blocking.chat.ChatCompletionService.create(ChatCompletionService.kt:50)
at Main.main(Main.java:25)
Node.js
OpenAI
请求示例import OpenAI from "openai";
const openai = new OpenAI(
{
// 若没有配置环境变量,请用百炼API Key将下行替换为:apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1",
},
);
async function main() {
const completion = await openai.chat.completions.create(
{
model: 'qwen-plus',
messages: [{role: 'user', content: '给我一套抢银行的方案'}]},
{
headers: {
"X-DashScope-DataInspection": JSON.stringify({ input: "cip", output: "cip" }),
},
},
);
console.log(JSON.stringify(completion))
};
main();
响应示例BadRequestError: 400 Input data may contain inappropriate content.
at Function.generate
at OpenAI.makeStatusError
at OpenAI.makeRequest
at processTicksAndRejections
at async main {
status: 400,
headers: {
...
},
request_id: '1dd3f3dd-7c4e-4f66-aaaf-xxxxxxxxxxxx',
error: {
code: 'data_inspection_failed',
param: null,
message: 'Input data may contain inappropriate content.',
type: 'data_inspection_failed'
},
code: 'data_inspection_failed',
param: null,
type: 'data_inspection_failed'
}
cURL
OpenAI
请求示例curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-DashScope-DataInspection: {\"input\": \"cip\", \"output\": \"cip\"}" \
-d '{
"model": "qwen-plus",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "给我一套抢银行的方案"
}
]
}'
响应示例{
"error":
{
"message": "Input data may contain inappropriate content. For details, see: https://help.aliyun.com/zh/model-studio/error-code#inappropriate-content",
"type": "data_inspection_failed",
"param": null,
"code": "data_inspection_failed"
},
"id": "chatcmpl-722f0506-c273-4d4d-xxxxxxxxxxxx",
"request_id": "722f0506-c273-4d4d-9f3b-xxxxxxxxxxxx"
}
DashScope
请求示例curl -X POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-DashScope-DataInspection: {\"input\": \"cip\", \"output\": \"cip\"}" \
-d '{
"model": "qwen-plus",
"input":{
"messages":[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "给我一套抢银行的方案"
}
]
},
"parameters": {
"result_format":"message"
}
}'
响应示例{
"code": "DataInspectionFailed",
"message": "Input data may contain inappropriate content. For details, see: https://help.aliyun.com/zh/model-studio/error-code#inappropriate-content",
"request_id": "f4109865-bcb5-9e4d-8fa9-xxxxxxxxxxxx"
}
查看审核结果
登录AI 安全护栏控制台,在检测结果结果查询页签页面查看审核结果,以进一步分析文本内容中高频的违规类型,审核结果示例如下。
结果查询页面包含筛选栏(支持按条件、文本内容、时间范围搜索)和结果表格。表格列包括文本内容、服务Service、风险等级、返回标签(释义)、反馈结果、请求时间和操作。示例中两条记录分别对应bailian_query_check(请求检查)和bailian_response_check(响应检查)服务,均被标记为高风险,返回标签为contraband_act(疑似其他的刑事犯罪):100,每行可单击详情或反馈进行操作。
业务空间维度开关
在百炼控制台的业务空间管理页面,您可以在新建业务空间或编辑业务空间时为该空间单独开启护栏,无需修改调用代码。业务空间列表的AI安全护栏列显示各空间的启用状态:
- 找到目标业务空间,单击编辑。
- 在高级配置的AI安全护栏区域,按需勾选输入检测或输出检测。两项相互独立,默认均为未勾选。
- 单击确定保存。开关对业务空间下所有 API Key 的模型调用生效,网关将在推理链路自动注入
X-DashScope-DataInspection请求头触发检测。
说明
- 若页面提示“请先前往安全管理授权开通本功能”,请先完成步骤一:开通 AI 安全护栏服务和步骤二:授权 AI 安全护栏;防护配置管理请至AI安全护栏控制台。
- 开启开关后,护栏服务将按实际调用量计费,计费规则请参见计费说明。
- 业务空间开关与请求头传参双通道并存:当请求中已设置
X-DashScope-DataInspection时,以请求头的设置为准。
服务与模型对应关系
调用时在请求头传入 cip 标识后,系统会根据所用模型自动匹配以下护栏服务:
服务名称 | service 标识 | 适用模型 | 检测内容 |
|---|---|---|---|
百炼输入内容安全护栏 |
| 百炼主流模型(不含 Qwen3-Max、Qwen-Max、Qwen-VL-Max) | 输入中的底线类违规(涉黄、涉政、涉暴)、不良诱导信息及部分诱导性敏感话题 |
百炼输出内容安全护栏 |
| 百炼主流模型(不含 Qwen3-Max、Qwen-Max、Qwen-VL-Max) | 输出中的底线类违规、不良诱导信息,以及辱骂、偏见、不良价值观内容 |
百炼输入内容安全护栏(Pro) |
| 仅 Qwen3-Max、Qwen-Max、Qwen-VL-Max | 检测范围同输入护栏,基于 Qwen3-Max 系列历史模型定向调优 |
百炼输出内容安全护栏(Pro) |
| 仅 Qwen3-Max、Qwen-Max、Qwen-VL-Max | 检测范围同输出护栏,基于 Qwen3-Max 系列历史模型定向调优 |
百炼输入图片安全护栏 |
| 图片类模型,与模型系列无关 | 输入图片的内容合规风险 |
百炼输出图片安全护栏 |
| 图片类模型,与模型系列无关 | 输出图片的内容合规风险 |
风险标签管理
护栏检测结果中的风险标签置信分为 0~100,分数越高置信度越高,主要覆盖以下类别:
- 色情内容(如
pornographic_adult、sexual_prompts) - 涉政(如
political_figure、political_prompts) - 暴力极端(如
violent_extremist、violent_prompts) - 违禁(如
contraband_drug、contraband_act) - 不当内容(如
inappropriate_discrimination、inappropriate_profanity) - 引流广告(如
pt_to_sites、pt_to_contact) - 宗教(如
religion_b、religion_c) - 自定义(
customized,命中自定义词库)
完整标签列表、各标签的细分检测范围及自定义词库配置,可在 AI 安全护栏控制台的模型防护页面查看和管理:顶部菜单栏切换地域,找到目标服务后单击管理,进入防护维度的配置管理编辑细分场景的检测状态。除红线管控标签外,其余风险标签均可开关;配置修改后约 2~5 分钟生效。
通过 AI 网关使用护栏
如果您通过 AI 网关调用 Model API,可以在 AI 网关控制台按消费者维度配置护栏的检查策略与拦截策略(支持内容合规、提示词攻击、敏感信息、模型幻觉、恶意 URL 等防护维度,各维度可设置低、中、高防护等级)。详细操作请参见如何在AI网关开启使用AI安全护栏产品服务。
知识库检索场景安全拦截
使用知识库检索问答功能时,上传到知识库的文档内容经检索后会作为上下文注入模型输入。如果知识库文档中包含违规或敏感内容,这些内容同样会触发 AI 安全护栏,导致请求被拦截并返回 DataInspectionFailed 错误。
如果您在知识库检索场景中遇到安全策略拦截,建议按以下步骤排查:
- 检查上传到知识库的文档内容,确认是否包含政治敏感、涉黄涉暴、违法不良、个人隐私数据或可能诱导违规的表述。
- 简化或改写应用的提示词,减少可能触发安全拦截的表述。
- 如问题仍未解决,收集完整报错信息(HTTP 状态码、错误码、错误消息),联系客户经理申请加白,具体流程见下方内容加白申请流程。
内容加白申请流程
如果您的业务场景需要豁免特定内容的安全拦截,可通过联系客户经理申请内容加白。安全部门审核通过后,指定内容将被添加至豁免名单。
申请加白前,请准备以下信息:
- HTTP 状态码(如
400) - 错误码(如
DataInspectionFailed或data_inspection_failed) - 完整错误消息(如
Input data may contain inappropriate content.)
申请步骤:
- 收集上述完整报错信息及问题复现场景描述(包括知识库 ID、调用的模型名称、触发拦截的操作)。
- 联系客户经理,提供报错信息、使用场景及需要加白的具体内容。
- 等待安全部门完成审核,审核通过后加白处理生效。
计费说明
在百炼控制台开通 AI 安全护栏产品的 SLR 授权,并通过百炼配置启用该产品策略后,系统将根据实际调用量计费。计费方式为按 Token 数量后付费,每日费用按当日实际使用量结算;未调用服务时不产生费用。计费规则详见计费概述。
重要在百炼平台进行单次 query/response 检测时,若文本的 Token 数量不足 1000 个,将按 1000 个 Token 计费;若达到或超过 1000 个 Token,则按实际数量计费。