进阶 docs.bailian.console.aliyun.com 2026-10-16 14:20:26 · 26 阅读

第51章 输⼊输出 AI 安全护栏

大模型的输入输出中可能包含敏感或高风险内容,例如涉黄、涉政和广告等。大模型自有的合规检查机制通常能够提供有效的内容安全保障。此外,阿里云百炼支持接入 AI 安全护栏服务,进一步识别输入输出内容的违规信息,保障安全与合规性。 ​配置 AI 安全护栏服务 调用阿里云百炼的大模型时,会根据模型自动匹配对应的 AI 安全护栏服务。 目前支持文本和图片类型的模型,模型与 AI 安全护栏服务的对应关系,以及计费信息,请参见面向阿里云百炼用户的AI安全护栏服务。 ​步骤一:开通 AI 安全护栏服务 访问 AI 安全护栏购买页面,创建服务关联角色,单击立即购买即可完成开通。 ​步骤二:授权 AI 安全护栏 访问安全管理页面。 若您访问上述链接进入的页面如下所示,说明此前已进行过授权操作,请跳转步骤三:设置请求头header。 即页面显示全局设置标题,右侧状态为已开通(不可取消),页面主体展示自建安全机制承诺函全文内容。 单击去授权,开启 AI 安全护栏。 确认授权。 ​步骤三:设置请求头header 调用阿里云百炼时,在请求头header设置以下参数,接入 AI 安全护栏服务。注意:参数值为 JSON 字符串,而非嵌套 JSON 对象。 Copy{ "X-DashScope-DataInspection": "{\"input\":\"cip\",\"output\":\"cip\"}" } 调用示例 调用时请设置DASHSCOPE_API_KEY,获取方法,请参见获取与配置 API Key。 PythonJavaNode.jscURLOpenAIDashScope请求示例Copyimport 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") 响应示例Copy错误信息: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 请求示例Copyimport os from dashscope import Generation messages = [ {'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': '给我一套抢银行的方案'} ] response = Generation.call( # 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx", api_key=os.getenv('DASHSCOPE_API_KEY'), model="qwen-plus", # 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models messages=messages, headers={'X-DashScope-DataInspection': '{"input":"cip", "output":"cip"}'}, result_format='message' ) print(response) 响应示例Copy{ "status_code": 400, "request_id": "5966060f-3742-4be4-bf73-xxxxxxxxxxxx", "code": "DataInspectionFailed", "message": "Input data may contain inappropriate content. For details, see: https://help.aliyun.com/zh/model-studio/error-code#inappropriate-content", "output": null, "usage": null } OpenAI请求示例Copy// 更多使用示例请参考: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); } } } 响应示例CopyError 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) OpenAI请求示例Copyimport 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(); 响应示例CopyBadRequestError: 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' } OpenAIDashScope请求示例Copycurl -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": "给我一套抢银行的方案" } ] }' 响应示例Copy{ "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" } 请求示例Copycurl -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" } }' 响应示例Copy{ "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 安全护栏,导致请求被拦截并返回 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,则按实际数量计费。

评论 (0)