

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 屏蔽拒绝的主题以帮助删除有害内容
<a name="guardrails-denied-topics"></a>

您可以在护栏中指定一系列被拒绝的主题，这些主题不适合在生成式人工智能应用程序的上下文中出现。例如，银行可能希望其人工智能助手避免与投资建议或加密货币相关的对话。

根据护栏中每个被拒绝的话题对模型提示和自然语言回复以及标准层中的代码相关内容进行评估。如果检测到其中一个被拒绝的主题，护栏会返回被阻止时显示的消息。

请使用以下参数创建被拒绝的主题，护栏将使用这些参数来检测提示或响应是否属于该主题：
+ **名称** – 主题的名称。名称应为名词或短语。不要在名称中描述主题。例如：
  + **Investment Advice**
+ **定义** – 最多包含 200 个字符，用于总结主题内容。定义应描述主题及其子主题的内容。

  以下是您可以提供的主题定义示例：

  **Investment advice is inquiries, guidance, or recommendations about the management or allocation of funds or assets with the goal of generating returns or achieving specific financial objectives.**
+ **示例短语**（可选）– 包含最多五个与主题相关的示例短语的列表。每个短语最多 100 个字符。示例是指能够展示应被筛除的内容的提示或续写。例如：
  + **Is investing in the stocks better than bonds?**
  + **Should I invest in gold?**

## 创建被拒绝的主题的最佳实践
<a name="guardrails-denied-topics-best-practices"></a>
+ 以简洁明确的方式定义主题。清晰明确的主题定义可以提高主题检测的准确性。例如，用于检测与加密货币相关的查询或语句的主题可以定义为 **Question or information associated with investing, selling, transacting, or procuring cryptocurrencies**。
+ 不要在主题定义中包含示例或指令。例如，**Block all contents associated to cryptocurrency** 是指令，而不是主题定义。这类指令不得用作主题定义的一部分。
+ 不要定义否定主题或例外情况。例如，**All contents except medical information** 或 **Contents not containing medical information** 是否定主题定义，不得使用。
+ 不要使用被拒绝的主题来捕获实体或单词。例如，**Statement or questions containing the name of a person "X"** 或 **Statements with a competitor name Y**。主题定义代表一个主题，护栏会根据上下文评估输入。主题筛选不应用于捕获单个单词或实体类型。有关更多信息，请参阅[使用敏感信息筛选条件从对话中删除 PII](guardrails-sensitive-filters.md)或针对这些使用案例的[使用单词筛选条件从对话中删除特定的单词和短语](guardrails-word-filters.md)。

## 将被拒绝的主题添加到护栏
<a name="guardrails-denied-topics-configure"></a>

您可以使用或 AWS 管理控制台 Amazon Bedrock API 将最多 30 个被拒绝的话题添加到您的防护栏中。

------
#### [ Console ]

1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后，打开 Amazon Bedrock 控制台，网址为[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 从左侧导航栏中，选择**护栏**，然后选择**创建护栏**。

1. 对于**提供护栏详细信息**页面，执行以下操作：

   1. 在**护栏详细信息**部分，提供护栏的**名称**和（可选的）**描述**。

   1. 对于**针对阻止的提示显示的消息**，输入一条将在应用护栏时显示的消息。选中**对回应应用相同的阻止消息**复选框，以便在对响应应用您的护栏时使用相同的消息。

   1. （可选）要为护栏启用[跨区域推理](guardrails-cross-region.md)，请展开**Cross-Region 推理**，然后为护栏选择**启用跨**区域推理。选择一个护栏配置文件，该配置文件定义了 AWS 区域 可以路由护栏推理请求的目的地。

   1. （可选）默认情况下，您的护栏使用加密。 AWS 托管式密钥要使用您自己的客户自主管理型 KMS 密钥，请展开 **KMS 密钥选择**，然后选中**自定义加密设置（高级）**复选框。

      您可以选择现有 AWS KMS 密钥或选择 “**创建 AWS KMS 密钥**” 来创建新密钥。

   1. （可选）要向护栏添加标签，请展开**标签**，然后为您定义的每个标签选择**添加新标签**。

      有关更多信息，请参阅 [标记 Amazon Bedrock 资源](tagging.md)。

   1. 选择**下一步**。

1. 进入**添加被拒绝的主题**页面后，选择**添加被拒绝的主题**，然后执行以下操作：

   1. 输入主题的**名称**。

   1. 对于**定义**，定义主题。有关如何定义拒绝的主题的指南，请参阅[屏蔽拒绝的主题以帮助删除有害内容](#guardrails-denied-topics)。

   1. （可选）对于**输入**，指定是否为模型提示启用护栏评估。如果启用，请选择您希望护栏执行的操作。默认情况下启用**阻止**。有关更多信息，请参阅 [处理 Amazon Bedrock 护栏检测到的有害内容的选项](guardrails-harmful-content-handling-options.md)。

   1. （可选）对于**输入**，指定是否为模型响应启用护栏评估。如果启用，请选择您希望护栏对响应执行的操作。默认情况下启用**阻止**。有关更多信息，请参阅 [处理 Amazon Bedrock 护栏检测到的有害内容的选项](guardrails-harmful-content-handling-options.md)。

   1. （可选）展开**添加示例短语**，然后输入表示与此主题相关的提示或响应的短语。最多可以输入五个短语。对于您添加的每个短语，请选择**添加短语**。

   1. 对于**被拒绝的主题层级**，请选择您希望护栏用于阻止提示和响应中的主题的保护层级。有关更多信息，请参阅 [护栏策略的保护层级](guardrails-tiers.md)。

   1. 配置完拒绝的主题后，选择**确认**。

   1. 重复上述步骤以创建更多被拒绝的主题。

   1. 选择**下一步**可根据需要配置其他策略，或者选择**跳至“审查”并创建**以完成护栏的创建。

1. 查看护栏的设置。

   1. 在要对其进行更改的任何部分，选择**编辑**。

   1. 配置完策略后，选择**创建**以创建护栏。

------
#### [ API ]

通过发送请求将拒绝的话题添加到您的护栏中。[CreateGuardrail](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateGuardrail.html)该请求的格式如下：

```
POST /guardrails HTTP/1.1
Content-type: application/json

{
   "blockedInputMessaging": "string",
   "blockedOutputsMessaging": "string",
   "topicPolicyConfig": {
      "topicsConfig": [ 
         { 
            "definition": "string",
            "examples": [ "string" ],
            "inputAction": "BLOCK | NONE",
            "inputEnabled": true,
            "name": "string",
            "outputAction": "BLOCK | NONE",
            "outputEnabled": true,
            "type": "DENY"
         },
      "tierConfig": { 
         "tierName": "CLASSIC | STANDARD"
      },
      ]
   },
   "crossRegionConfig": { 
      "guardrailProfileIdentifier": "string"
   },
   "description": "string",
   "name": "string"
}
```
+ 在 `blockedInputMessaging` 和 `blockedOutputsMessaging` 字段中指定防护机制成功阻止提示或模型响应时显示的消息。
+ 指定护栏要在 `topicPolicyConfig` 对象中拒绝的主题。`topicsConfig` 列表中的每个项目都与一个主题相关。
  + 为应该被拒绝的主题指定 `name` 和 `definition`。
  + 在 `type` 字段中指定 `DENY`。
  + 使用 `inputAction`（在提示中）和 `outputAction`（在响应中）指定检测到该主题时要执行的操作。选择 `BLOCK` 以阻止内容并替换为被阻止时显示的消息，或选择 `NONE`，不执行任何操作而只返回检测信息。有关更多信息，请参阅 [处理 Amazon Bedrock 护栏检测到的有害内容的选项](guardrails-harmful-content-handling-options.md)。
  + 设置 `inputEnabled` 和 `outputEnabled` 以控制是否为模型提示和响应启用护栏评估。
  + （可选）在 `examples` 列表中，指定最多五个示例短语，这些短语表示与该主题相关的提示或响应。
+ （可选）在 `tierConfig` 对象中为护栏指定保护层级。选项包括 `STANDARD` 和 `CLASSIC` 层级。

  有关更多信息，请参阅 [护栏策略的保护层级](guardrails-tiers.md)。
+ （可选）要启用[跨区域推理](guardrails-cross-region.md)，请在 `crossRegionConfig` 对象中指定护栏配置文件。使用 `STANDARD` 层级时必须这样做。
+ 在 `name` 和 `description` 字段分别为护栏指定名称和描述。

响应的格式如下：

```
HTTP/1.1 202
Content-type: application/json

{
   "createdAt": "string",
   "guardrailArn": "string",
   "guardrailId": "string",
   "version": "string"
}
```

------