本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
概念:消息、内容区块类型和支票
以下概念描述了 InvokeGuardrailChecks API 请求的结构。
消息
消息是您提交评估的基本内容单元。每条消息都有两个字段:一个用于标识谁制作了内容的角色,以及一个将实际文本保存为一个或多个键入内容块的内容数组。
{ "role": "user", "content": [{ "text": "Hello world" }] }
这反映了 Amazon Bedrock 中其他地方使用的角色加内容块结构,因此你已经为模型建立的对话只需很少或根本不需要重塑就可以传递给他们。InvokeGuardrailChecks请求的messages字段是一个数组,因此您可以提交一条消息或一个表示多回合交换的序列(例如,系统指令后面是用户回合)。消息是按照您提供的顺序进行评估的,它们的位置很重要:有些结果按从零开始引用消息messageIndex,并按其从零开始引用该消息中的块contentIndex(参见敏感信息结果)。
该角色会标记内容的来源。支持以下角色:
-
system— 配置模型行为的说明。 -
user— 来自最终用户的输入。 -
assistant— 模型产生的输出。
内容块类型
该content字段是一个由类型化块组成的数组,而不是纯字符串。类型化块是一个小对象,其密钥命名其类型。这种设计使消息格式将来可以承载其他类型的内容(例如图像或文档),而不会改变消息的整体形状。目前,唯一支持的区块类型是text,其值为裸字符串:
{ "text": "Hello world" }
一条消息最多可以包含十个内容块。一个内容块最多可以包含一个text块。由于text是当今唯一支持的类型,因此这实际上意味着每个内容块都有一个文本块。要评估一个角色中的几段不同的文本,请将它们作为content数组中单独的内容块发送。要评估跨多个角色的几段不同的文本,请将它们作为messages数组中的单独消息发送。
支票
“支票” 一词可以与 Amazon Bedrock Guardrails 提供的术语保障措施互换。该checks对象是一个配置对象,每种检查类型都有一个可选字段,并且您只包括要运行的检查。您无需设置单独的 enable/disable 标志:当且仅当其字段存在时,检查才会运行,省略的检查不会产生任何结果也没有用法。必须至少设置一个复选字段。
"checks": { "contentFilter": { ... }, "promptAttack": { ... }, "sensitiveInformation": { ... } }
由于配置是根据请求进行内联的,因此您可以根据每个呼叫更改安全态势,而无需管理存储的护栏资源。代理循环中的不同步骤可以请求对相同或不同的消息进行不同的检查组合。
每张支票都有自己的配置形状。字段名称选择检查项;其中的对象列出了该检查要查找的内容:
-
contentFilter—categories列出清单(仇恨、侮辱、性、暴力、不当行为)。 -
promptAttack— 取一个categories清单(越狱、提示注入、PROMPT_LEAKEAL)。 -
sensitiveInformation—entities列出一个列表(31 个支持的 PII 实体)。
请求和响应是对称的 — 您设置的密钥与返回results和usage下的密钥相同。checks如果您请求contentFilter和sensitiveInformation,则只有这两个出现在响应中;promptAttack不存在,因为它从未运行过。这样可以轻松地将调查结果映射回生成它的支票。
Detect-only 在每张支票中 — 没有复选块、掩码或重写内容。每个都返回分数(a severityScore 表示内容过滤和提示攻击,confidenceScore加上敏感信息的位置偏移量),您可以根据特定要求决定应用程序如何处理这些分数。