跳到主要内容

阿里云 AI 安全护栏

阿里云 AI 安全护栏会将风险等级审核策略保留在阿里云侧,由 AISIX 将审核判定应用到网关流量上。请求可以在到达上游模型前检查,响应也可以在返回调用方前检查。

本指南将创建一个阿里云 AI 安全护栏资源,发送一个允许请求,并发送一个会在到达上游模型前被 AISIX 拒绝的阻断请求。

准备工作

请先准备以下内容:

  • 阅读安全护栏行为,了解检查位置、执行模式和远程故障处理方式。
  • 一个 Admin 和代理监听器都可用的自托管 AISIX 网关。
  • 网关 config.yaml 中的 Admin Key。
  • 一个可以发送 Chat Completions 请求的模型别名和调用方 API Key。
  • 已在目标地域开通的阿里云 AI 安全护栏
  • 一个允许调用 TextModerationPlus API action 的阿里云 AccessKey ID 和 AccessKey Secret。

创建阿里云安全护栏

在 AISIX 中创建阿里云 AI 安全护栏:

curl -sS -X POST "http://127.0.0.1:3001/admin/v1/guardrails" \
-H "Authorization: Bearer YOUR_ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "aliyun-review",
"enabled": true,
"hook_point": "both",
"fail_open": false,
"output_fail_open": false,
"enforcement_mode": "block",
"kind": "aliyun_text_moderation",
"region": "cn-shanghai",
"access_key_id": "YOUR_ALIBABA_CLOUD_ACCESS_KEY_ID",
"access_key_secret": "YOUR_ALIBABA_CLOUD_ACCESS_KEY_SECRET",
"risk_level_threshold": "medium",
"timeout_ms": 3000
}'

both 会同时检查调用方请求和模型响应。参见检查位置

fail_open: false 表示当阿里云 AI 安全护栏调用失败或超时时阻断请求。默认值是 true

output_fail_open: false 表示当阿里云服务不可用时阻断未扫描的模型输出。这是默认行为。

enforcement_mode: block 表示拒绝命中的内容。这是默认行为。参见执行模式

risk_level_threshold 会阻断返回风险等级达到或高于配置阈值的内容。

timeout_ms 限制 AISIX 等待安全护栏判定的最长时间。

AISIX 会根据 region 推导审核端点,即 green-cip.<region>.aliyuncs.com。只有在需要覆盖该主机时,才将 endpoint 设置为完整 URL。

如后续需要查看、更新或删除该资源,请复制返回的安全护栏 ID。

验证安全护栏

通过 AISIX 发送一个正常请求:

curl -sSi -X POST "http://127.0.0.1:3000/v1/chat/completions" \
-H "Authorization: Bearer YOUR_CALLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-prod",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'

成功响应会以 HTTP/1.1 200 OK 开头,并返回兼容 OpenAI 的 Chat Completions 响应体。

为了让检查结果可重复,请使用会被你的阿里云 AI 安全护栏配置判定为达到或高于 AISIX 阈值的内容。

然后发送包含该内容的请求:

curl -sSi -X POST "http://127.0.0.1:3000/v1/chat/completions" \
-H "Authorization: Bearer YOUR_CALLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-prod",
"messages": [
{
"role": "user",
"content": "YOUR_POLICY_VIOLATING_TEXT"
}
]
}'

被阻断的响应会以 HTTP/1.1 422 Unprocessable Entity 开头,并包含兼容 OpenAI 的错误响应:

{
"error": {
"message": "request blocked by content policy (guardrail 'aliyun-review')",
"type": "content_filter"
}
}

当阿里云 AI 安全护栏返回阻断风险等级时,AISIX 会在请求被转发到上游模型前阻断它。

调整风险阈值

阿里云会为每次审核判定返回风险等级。该等级由阿里云根据审核结果和配置的分数阈值确定,AISIX 不会重新计算。

AISIX 可以阻断 lowmediumhigh 等级:

阈值效果
high只阻断高风险判定。这是默认值。
medium阻断中风险和高风险判定。
low阻断低风险、中风险和高风险判定。

当应用需要拒绝更多不确定内容时,可以使用更严格的阈值;当只希望阿里云阻断最强匹配时,可以使用较宽松的阈值。

下一步

你已经通过 AISIX 执行了阿里云 AI 安全护栏策略。如果需要调整安全护栏检查请求、响应或两侧,请阅读检查位置