屏蔽拒绝的主题以帮助删除有害内容 - Amazon Bedrock

屏蔽拒绝的主题以帮助删除有害内容

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

系统会根据护栏中每个被拒绝的主题对自然语言形式的模型提示和响应进行评估。如果检测到其中一个被拒绝的主题,护栏会返回被阻止时显示的消息。

请使用以下参数创建被拒绝的主题,护栏将使用这些参数来检测提示或响应是否属于该主题:

  • 名称 – 主题的名称。名称应为名词或短语。不要在名称中描述主题。例如:

    • 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?

创建被拒绝的主题的最佳实践

  • 以简洁明确的方式定义主题。清晰明确的主题定义可以提高主题检测的准确性。例如,用于检测与加密货币相关的查询或语句的主题可以定义为 Question or information associated with investing, selling, transacting, or procuring cryptocurrencies

  • 不要在主题定义中包含示例或指令。例如,Block all contents associated to cryptocurrency 是指令,而不是主题定义。这类指令不得用作主题定义的一部分。

  • 不要定义否定主题或例外情况。例如,All contents except medical informationContents not containing medical information 是否定主题定义,不得使用。

  • 不要使用被拒绝的主题来捕获实体或单词。例如,Statement or questions containing the name of a person "X"Statements with a competitor name Y。主题定义代表一个主题,护栏会根据上下文评估输入。主题筛选不应用于捕获单个单词或实体类型。有关更多信息,请参阅使用敏感信息筛选条件从对话中删除 PII或针对这些使用案例的使用单词筛选条件从对话中删除特定的单词和短语

将被拒绝的主题添加到护栏

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

Console
  1. 采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后,通过以下网址打开 Amazon Bedrock 控制台:https://console.aws.amazon.com/bedrock

  2. 从左侧导航栏中,选择护栏,然后选择创建护栏

  3. 对于提供护栏详细信息页面,执行以下操作:

    1. 护栏详细信息部分,提供护栏的名称和(可选的)描述

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

    3. (可选)要为护栏启用跨区域推理,请展开跨区域推理,然后选择为护栏启用跨区域推理。选择护栏配置文件,该配置文件定义了可以将护栏推理请求路由到的目标 AWS 区域。

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

      您可以选择现有的 AWS KMS 密钥,也可以选择创建 AWS KMS 密钥来创建新密钥。

    5. (可选)要向护栏添加标签,请展开标签,然后为您定义的每个标签选择添加新标签

      有关更多信息,请参阅 标记 Amazon Bedrock 资源

    6. 选择下一步

  4. 进入添加被拒绝的主题页面后,选择添加被拒绝的主题,然后执行以下操作:

    1. 输入主题的名称

    2. 对于定义,定义主题。有关如何定义拒绝的主题的指南,请参阅屏蔽拒绝的主题以帮助删除有害内容

    3. (可选)对于输入,指定是否为模型提示启用护栏评估。如果启用,请选择您希望护栏执行的操作。默认情况下启用阻止。有关更多信息,请参阅 处理 Amazon Bedrock 护栏检测到的有害内容的选项

    4. (可选)对于输入,指定是否为模型响应启用护栏评估。如果启用,请选择您希望护栏对响应执行的操作。默认情况下启用阻止。有关更多信息,请参阅 处理 Amazon Bedrock 护栏检测到的有害内容的选项

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

    6. 对于被拒绝的主题层级,请选择您希望护栏用于阻止提示和响应中的主题的保护层级。有关更多信息,请参阅 护栏策略的保护层级

    7. 配置完拒绝的主题后,选择确认

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

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

  5. 查看护栏的设置。

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

    2. 配置完策略后,选择创建以创建护栏。

API

通过发送 CreateGuardrail 请求,将被拒绝的主题添加到护栏。该请求的格式如下:

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" }
  • blockedInputMessagingblockedOutputsMessaging 字段中指定护栏成功阻止提示或模型响应时显示的消息。

  • 指定护栏要在 topicPolicyConfig 对象中拒绝的主题。topicsConfig 列表中的每个项目都与一个主题相关。

    • 为应该被拒绝的主题指定 namedefinition

    • type 字段中指定 DENY

    • 使用 inputAction(在提示中)和 outputAction(在响应中)指定检测到该主题时要执行的操作。选择 BLOCK 以阻止内容并替换为被阻止时显示的消息,或选择 NONE,不执行任何操作而只返回检测信息。有关更多信息,请参阅 处理 Amazon Bedrock 护栏检测到的有害内容的选项

    • 设置 inputEnabledoutputEnabled 以控制是否为模型提示和响应启用护栏评估。

    • (可选)在 examples 列表中,指定最多五个示例短语,这些短语表示与该主题相关的提示或响应。

  • (可选)在 tierConfig 对象中为护栏指定保护层级。选项包括 STANDARDCLASSIC 层级。

    有关更多信息,请参阅 护栏策略的保护层级

  • (可选)要启用跨区域推理,请在 crossRegionConfig 对象中指定护栏配置文件。使用 STANDARD 层级时必须这样做。

  • namedescription 字段分别为护栏指定名称和描述。

响应的格式如下:

HTTP/1.1 202 Content-type: application/json { "createdAt": "string", "guardrailArn": "string", "guardrailId": "string", "version": "string" }