跳到主要内容

护栏 (Guardrails)

Guardrails 允许您对流经 AI Gateway 端点的流量强制执行内容策略。每个 Guardrail 都使用 LLM 判别器(Judge)根据一组自然语言指令来评估请求或响应,然后拦截流量或在允许其通过前对其进行清洗(脱敏)。

常见用例包括:

  • 安全过滤:在有害、冒犯性或有毒内容到达用户或您的 LLM 之前将其拒绝。
  • PII 检测:防止个人身份信息(PII)在请求或响应中泄露。
  • 自定义策略:强制执行组织特定的规则,例如主题限制、语气要求或品牌准则。

查看 Guardrails

Guardrails 是针对每个端点进行配置的。导航至 AI Gateway > Endpoints,点击一个端点,然后选择 Guardrails 选项卡。

Guardrails tab showing empty state

该表格列出了附加到该端点的所有 Guardrail,显示每个 Guardrail 的名称、流水线阶段和配置的操作。如果尚未添加任何 Guardrail,该选项卡将显示一个空状态,提示您创建一个。

创建 Guardrail

点击 Create Guardrail 以打开创建向导。

第 1 步 — 选择类型

Create Guardrail modal showing type picker with Safety, PII Detection, and Custom Guardrail options

提供多种内置类型:

类型描述
安全性 (Safety)用于检测有害、冒犯性或有毒内容的预加载指令。默认设为 Post-LLM 阶段,以检查 LLM 的响应。
PII 检测用于检测姓名、电子邮件、电话号码及其他个人身份信息的预加载指令。默认设为 Pre-LLM 阶段,以筛查传入的请求。
自定义 Guardrail从零开始,使用您自己的名称和指令。

选择内置类型会自动填充下一步中的名称和指令,从而为您节省时间。

第 2 步 — 配置 Guardrail

Create Guardrail configuration step showing Name, Stage picker, Instructions, Guardrail Model, and Action fields

名称

为您的 Guardrail 起一个描述性名称,以标识其用途(例如,PII Detection & Redaction)。

阶段

该阶段控制 Guardrail 在请求-响应流水线中何时运行:

text
Request > Pre-LLM Guardrails > LLM > Post-LLM Guardrails > Response

点击 Pre-LLM GuardrailsPost-LLM Guardrails 以选择该 Guardrail 的运行位置。

  • Pre-LLM Guardrails:在传入请求到达 LLM 之前进行评估。在指令中使用 {{ inputs }} 来引用请求内容。
  • Post-LLM Guardrails:在 LLM 的响应返回给调用者之前进行评估。使用 {{ outputs }} 在指令中引用响应内容,或使用 {{ inputs }} 引用原始请求。Post-LLM Guardrails 不适用于流式请求 —— 仅评估非流式响应。
注意

Guardrails 适用于统一端点透传端点(Anthropic、Gemini、OpenAI 等)。

当您在不同阶段之间切换时,编辑器会自动在您的指令中交换 {{ inputs }}{{ outputs }},以确保它们保持正确。

指令

为 LLM 判别器编写自然语言指令。指令应描述 Guardrail 应该查找什么以及它应该如何响应。

判别器必须回复 yes 以让内容通过,或回复 no 以触发配置的操作(拦截或清洗)。UI 中标签下方的提示文本显示了特定于阶段的示例。

指令必须至少包含一个内容变量,以便判别器接收实际要评估的内容。使用 {{ inputs }} 引用请求,使用 {{ outputs }} 引用 LLM 响应 —— Pre-LLM Guardrails 通常使用 {{ inputs }},而 Post-LLM Guardrails 可以使用 {{ outputs }}{{ inputs }} 或两者皆用。

Post-LLM 阶段自定义毒性 Guardrail 的指令示例

text
You are a toxicity detector. Review the LLM response below for any harmful,
offensive, or hateful language. Reply with a JSON object:

{
"rationale": "Brief explanation of your decision.",
"result": "yes if the content is safe, no if it is harmful"
}

<response>{{ outputs }}</response>

Guardrail 模型

选择将运行 LLM 判别器的 AI Gateway 端点。这可以是您网关中已经配置的任何端点 —— 您可以为判别器使用比主工作负载更便宜、更快的模型。

当前端点会自动从列表中排除,以防止循环依赖。

操作

选择当 Guardrail 触发时(即判别器返回 "no" 时)采取的操作:

  • 拦截(Block):立即拒绝请求并返回 HTTP 400 响应。响应体包含 Guardrail 名称和判别器的理由,以便调用者了解请求被拦截的原因。
  • 清洗(Sanitize):标记的内容将被脱敏或屏蔽,然后允许(已清洗的)请求或响应继续通过流水线。

点击 Create Guardrail 进行保存。该 Guardrail 将立即对流经该端点的所有流量生效。

拦截是如何工作的

当 Guardrail 操作设置为 Block 且判别器判定内容不安全时,网关返回 HTTP 400 错误。

text
HTTP/1.1 400 Bad Request

{
"detail": {
"error_code": "INVALID_PARAMETER_VALUE",
"message": "Guardrail 'pii-detection' blocked: The request contains an email address (user@example.com) which is personally identifiable information."
}
}

detail.message 字段包含 Guardrail 名称和判别器的理由,为客户端提供关于请求失败原因的可操作信息。

编辑 Guardrail

点击 Guardrails 表格中的任何行以打开该 Guardrail 的详细信息面板。您可以更新阶段、指令、Guardrail 模型和操作。通过点击 Save 保存更改 —— 这会在底层注册一个新的评分器版本,并原子地替换端点上的 Guardrail,从而确保在更新期间不会丢失任何请求。

Save 按钮在您进行更改之前处于禁用状态;如果指令包含验证错误(例如,切换到 Post-LLM 阶段但指令既未引用 {{ inputs }} 也未引用 {{ outputs }}),它也将保持禁用。

删除 Guardrail

要删除单个 Guardrail,请打开其详细信息面板并点击 Delete。在 Guardrail 被删除之前,将出现一个确认对话框。

要一次删除多个 Guardrail,请选中表格中的复选框,然后点击工具栏中的 Delete 按钮。

排序与执行

同一端点上的多个 Guardrail 将按照表格中显示的顺序运行。所有 Pre-LLM Guardrail 都会在请求到达 LLM 之前执行;Post-LLM Guardrail 会在响应返回给调用者之前执行。如果任何 Guardrail 拦截了请求,同一阶段中的后续 Guardrail 将被跳过。