

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

# 创建人工审核工作流
<a name="a2i-create-flow-definition"></a>

使用 Amazon Augmented AI (Amazon A2I) *人工审核工作流*（也称为*流定义*），指定以下内容：
+ 对于 Amazon Textract 和 Amazon Rekognition 内置任务类型，指定调用您人工循环的条件
+ 将任务发送到的人力
+ 您的人力将收到的一组说明，称为*工作人员任务模板*
+ 工作人员任务的配置，包括接收任务的工作人员数量和完成任务的时间限制 
+ 存储输出数据的位置 

您可以在 SageMaker AI 控制台中或使用 AI [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html)操作创建 SageMaker 人工审核工作流程。对于 Amazon Textract 和 Amazon Rekognition 任务类型，您可在创建流定义时，使用控制台构建工作人员任务模板。

**重要**  
用于启动人工循环的人工循环激活条件（例如，置信度阈值），不可用于 Amazon A2I 自定义任务类型。使用控制台为自定义任务类型创建流定义时，您无法指定激活条件。使用 Amazon A2I API 为自定义任务类型创建流定义时，您无法设置 `HumanLoopActivationConditionsConfig` 参数的 `HumanLoopActivationConditions` 属性。要控制何时启动人工审核，请指定在自定义应用程序中调用 `StartHumanLoop` 的条件。在这种情况下，每次 `StartHumanLoop` 调用都会导致人工审核。有关更多信息，请参阅 [将 Amazon Augmented AI 与自定义任务类型结合使用](a2i-task-types-custom.md)。

**先决条件**

要创建人工审核工作流定义，您必须已完成[使用 Augmented AI 的先决条件](a2i-getting-started-prerequisites.md)中所述的先决条件。

如果您使用 API 为任意任务类型创建流定义，或者在控制台中创建流定义时使用自定义任务类型，则首先需要创建工作人员任务模板。有关更多信息，请参阅 [创建和管理工作人员任务模板](a2i-instructions-overview.md)。

如果您在控制台中为内置任务类型创建流定义时，希望预览工作人员任务模板，请确保使用类似于[启用工作人员任务模板预览](a2i-permissions-security.md#permissions-for-worker-task-templates-augmented-ai)中所述的策略，向您用于创建流定义的角色授予访问 Amazon S3 存储桶（其中包含您的模板构件）的权限。



**Topics**
+ [创建人工审核工作流（控制台）](#a2i-create-human-review-console)
+ [创建人工审核工作流 (API)](#a2i-create-human-review-api)
+ [Amazon Augmented AI 中用于人工循环激活条件的 JSON 架构](a2i-human-fallback-conditions-json-schema.md)

## 创建人工审核工作流（控制台）
<a name="a2i-create-human-review-console"></a>

使用此过程使用 AI 控制台创建 Amazon Agumented AI（Amazon A2I） SageMaker 人工审核工作流程。如果您刚开始使用 Amazon A2I，我们建议您使用部门中的人员创建一个私有工作团队，并在创建流定义时使用该工作团队的 ARN。要了解如何设置私有人力和创建工作团队，请参阅[创建私人员工（Amazon A SageMaker I 控制台）](sms-workforce-create-private-console.md)。如果您已设置私有人力，请参阅[使用 SageMaker AI 控制台创建工作团队](sms-workforce-management-private-console.md#create-workteam-sm-console)以了解如何将工作团队添加到该人力中。

如果您正在将 Amazon A2I 与某个内置任务类型结合使用，则在控制台中创建人工审核工作流时，可以使用 Augmented AI 提供的默认工作人员任务模板来创建工作人员说明。要查看 Augmented AI 提供的默认模板示例，请参阅[使用 Amazon A2I 的使用场景和示例](a2i-task-types-general.md)中的内置任务类型。

**创建流定义（控制台）**

1. 打开 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在导航窗格的 **Augmented AI** 部分中，选择**人工审核工作流**，然后选择**创建人工审核工作流**。

1. 在 **Overview (概述)** 中，执行以下操作：

   1. 在**名称**中，输入唯一工作流名称。该名称必须为小写字母，在您账户的 AWS 区域内是唯一的，并且最多可以包含 63 个字符。有效字符包括：a-z、0-9 和 -（连字符）。

   1. 在**输出的 S3 位置**中，输入将人工审核结果存储到的 S3 存储桶。存储桶必须与工作流程位于同一个 AWS 区域。

   1. 对于 **IAM 角色**，选择具有所需权限的角色。如果您选择内置任务类型并希望在控制台中预览工作人员模板，请提供附加了[启用工作人员任务模板预览](a2i-permissions-security.md#permissions-for-worker-task-templates-augmented-ai)中所描述策略类型的角色。

1. 在**任务类型**中，选择您希望人工执行的任务类型。

1. 如果您选择 Amazon Rekognition 或 Amazon Textract 任务类型，请指定调用人工审核的条件。
   + 对于 Amazon Rekognition 图像监管任务，选择一个推理置信度分数阈值区间，在此区间将启动人工审核。
   + 对于 Amazon Textract 任务，当特定的表单键缺失或表单键检测置信度较低时，您可以启动人工审核。如果在对文本中的所有表单键进行评估后，任何表单键的置信度低于所需的阈值，您也可以启动人工审核。您可以使用两个变量来指定置信阈值：**标识置信度**和**资格置信度**。要了解有关这些变量的更多信息，请参阅[将 Amazon Augmented AI 与 Amazon Textract 结合使用](a2i-textract-task-type.md)。
   + 对于这两种任务类型，您可以随机将一定比例的数据对象（图像或表单）及其标签发送给工作人员以供审查。

1. 配置并指定工作人员任务模板：

   1. 如果您使用的是 Amazon Rekognition 或 Amazon Textract 任务类型：

      1. 在**创建模板**部分：
        + 对于 Amazon Rekognition 和 Amazon Textract 任务类型，要使用 Amazon A2I 默认模板来为工作人员创建说明，请选择**从默认模板构建**。
          + 如果您选择**从默认模板构建**，请在**工作人员任务设计**中创建您的说明。
            + 请提供在您 AWS 所在区域中唯一的**模板名称**。
            + 在**说明**部分中，提供有关如何完成您的任务的详细说明。为了帮助工作人员达到更好的准确性，请提供好示例和坏示例。
            + （可选）在**其他说明**中，向您的工作人员提供其他信息和说明。

              有关创建有效说明的信息，请参阅[创建良好的工作人员说明](a2i-creating-good-instructions-guide.md)。
        + 要选择您已创建的自定义模板，请从**模板**菜单中选择该模板，并提供一个**任务描述**来简要描述工作人员的任务。要了解如何创建自定义模板，请参阅[创建工作人员任务模板](a2i-worker-template-console.md#a2i-create-worker-template-console)。

   1. 使用自定义任务类型时：

      1. 在**工作人员任务模板**部分中，从列表中选择您的模板。您在 SageMaker AI 控制台中创建的所有模板都显示在此列表中。要了解如何为自定义任务类型创建模板，请参阅[创建和管理工作人员任务模板](a2i-instructions-overview.md)。

1. （可选）预览工作人员模板：

   对于 Amazon Rekognition 和 Amazon Textract 任务类型，您可以选择**查看示例工作人员任务**以预览工作人员任务 UI。

   如果要为自定义任务类型创建流定义，您可以使用 `RenderUiTemplate` 操作预览工作人员任务 UI。有关更多信息，请参阅 [预览工作人员任务模板](a2i-custom-templates.md#a2i-preview-your-custom-template)。

1. 在**工作人员**中，选择人力类型。

1. 选择**创建**。

### 后续步骤
<a name="a2i-next-step-createflowdefinition-console"></a>

创建人工审核工作流后，该工作流将显示在控制台中的**人工审核工作流**下。要查看流定义的 Amazon 资源名称 (ARN) 和配置详细信息，请通过选择名称来选择工作流。

如果您使用的是内置任务类型，则可以使用流程定义 ARN，使用该 AWS 服务的 API（例如 Amazon Textract API）启动人工循环。对于自定义任务类型，您可以使用 ARN，通过 Amazon Augmented AI 运行时系统 API 启动人工循环。要了解有关这两个选项的更多信息，请参阅[创建和启动人工循环](a2i-start-human-loop.md)。

## 创建人工审核工作流 (API)
<a name="a2i-create-human-review-api"></a>

要使用 SageMaker API 创建流程定义，请使用`CreateFlowDefinition`操作。完成[使用 Augmented AI 的先决条件](a2i-getting-started-prerequisites.md)之后，请按照以下步骤了解如何使用此 API 操作。

有关 `CreateFlowDefinition` 操作的概览以及有关每个参数的详细信息，请参阅 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html)。

**创建流定义 (API)**

1. 对于 `FlowDeﬁnitionName`，输入唯一名称。该名称在您账户的 AWS 区域内必须是唯一的，并且最多可以包含 63 个字符。有效字符包括：a-z、0-9 和 -（连字符）。

1. 对于 `RoleArn`，输入您为授予对数据源访问权限而配置的角色的 ARN。

1. 对于 `HumanLoopConfig`，输入有关工作人员及其所见内容的信息。有关中每个参数的信息`HumanLoopConfig`，请参见[HumanLoopConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html#sagemaker-CreateFlowDefinition-request-HumanLoopActivationConfig)。

1. （可选）如果您使用内置任务类型，请在 `HumanLoopActivationConﬁg` 中提供启动人工循环的条件。要了解如何创建 `HumanLoopActivationConﬁg` 参数所需的输入，请参阅[Amazon Augmented AI 中用于人工循环激活条件的 JSON 架构](a2i-human-fallback-conditions-json-schema.md)。如果您未在此处指定条件，则当您为与内置任务类型（例如 Amazon Textract 或 Amazon Rekognition）关联的 AWS 服务提供流程定义时，该服务会将所有任务发送给人工工作人员进行审核。

   如果您使用自定义任务类型，则将禁用 `HumanLoopActivationConfig`。要了解如何使用自定义任务类型控制何时将任务发送给工作人员，请参阅[将 Amazon Augmented AI 与自定义任务类型结合使用](a2i-task-types-custom.md)。

1. （可选）如果您使用的是内置任务类型，请在参数中指定集成源（例如 Amazon Rekognition 或 Amazon Textract）。[HumanLoopRequestSource](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HumanLoopRequestSource.html)

1. 对于 `OutputConfig`，指示 Amazon Simple Storage Service (Amazon S3) 中存储人工循环输出的位置。

1. （可选）使用 `Tags` 输入键/值对以帮助您分类和组织流定义。每个标签都由键和值组成，这两个参数都由您定义。

------
#### [ Amazon Textract – Key-value pair extraction ]

以下请求示例使用 适用于 Python (Boto3) 的 AWS SDK创建 Amazon Textract 人工审核工作流（流定义）。您必须使用 `'AWS/Textract/AnalyzeDocument/Forms/V1'` 来创建 Amazon Textract 人工循环。仅当您使用的是 Mechanical Turk 人力时才包括 `PublicWorkforceTaskPrice`。

```
sagemaker_client = boto3.client('sagemaker', aws_region)

response = sagemaker_client.create_flow_definition(
    FlowDefinitionName='ExampleFlowDefinition',
    HumanLoopRequestSource={
         'AwsManagedHumanLoopRequestSource': 'AWS/Textract/AnalyzeDocument/Forms/V1'
    }, 
    HumanLoopActivationConfig={
        'HumanLoopActivationConditionsConfig': {
            'HumanLoopActivationConditions': '{...}'
        }
    },
    HumanLoopConfig={
        'WorkteamArn': 'arn:aws:sagemaker:aws_region:aws_account_number:workteam/private-crowd/workteam_name',
        'HumanTaskUiArn': 'arn:aws:sagemaker:aws_region:aws_account_number:human-task-ui/template_name',
        'TaskTitle': 'Example task title',
        'TaskDescription': 'Example task description.',
        'TaskCount': 123,
        'TaskAvailabilityLifetimeInSeconds': 123,
        'TaskTimeLimitInSeconds': 123,
        'TaskKeywords': [
            'Keyword1','Keyword2'
        ],
        'PublicWorkforceTaskPrice': {
            'AmountInUsd': {
                'Dollars': 123,
                'Cents': 123,
                'TenthFractionsOfACent': 123
            }
        }
    },
    OutputConfig={
        'S3OutputPath': 's3://bucket/path/',
        'KmsKeyId': '1234abcd-12ab-34cd-56ef-1234567890ab'
    },
    RoleArn='arn:aws:iam::aws_account_number:role/role_name',
    Tags=[
        {
            'Key': 'KeyName',
            'Value': 'ValueName'
        },
    ]
)
```

------
#### [ Amazon Rekognition – Image moderation ]

以下请求示例使用 适用于 Python (Boto3) 的 AWS SDK创建 Amazon Rekognition 人工审核工作流（流定义）。您必须使用 `'AWS/Rekognition/DetectModerationLabels/Image/V3'` 以创建 Amazon Rekognition 流定义。仅当您使用的是 Mechanical Turk 人力时才包括 `PublicWorkforceTaskPrice`。

```
sagemaker_client = boto3.client('sagemaker', aws_region)

response = sagemaker_client.create_flow_definition(
    FlowDefinitionName='ExampleFlowDefinition',
    HumanLoopRequestSource={
         'AwsManagedHumanLoopRequestSource': 'AWS/Rekognition/DetectModerationLabels/Image/V3'
    }, 
    HumanLoopActivationConfig={
        'HumanLoopActivationConditionsConfig': {
            'HumanLoopActivationConditions': '{...}'
        }
    },
    HumanLoopConfig={
        'WorkteamArn': 'arn:aws:sagemaker:aws_region:aws_account_number:workteam/private-crowd/workteam_name',
        'HumanTaskUiArn': 'arn:aws:sagemaker:aws_region:aws_account_number:human-task-ui/template_name',
        'TaskTitle': 'Example task title',
        'TaskDescription': 'Example task description.',
        'TaskCount': 123,
        'TaskAvailabilityLifetimeInSeconds': 123,
        'TaskTimeLimitInSeconds': 123,
        'TaskKeywords': [
            'Keyword1','Keyword2'
        ],
        'PublicWorkforceTaskPrice': {
            'AmountInUsd': {
                'Dollars': 123,
                'Cents': 123,
                'TenthFractionsOfACent': 123
            }
        }
    },
    OutputConfig={
        'S3OutputPath': 's3://bucket/path/',
        'KmsKeyId': '1234abcd-12ab-34cd-56ef-1234567890ab'
    },
    RoleArn='arn:aws:iam::aws_account_number:role/role_name',
    Tags=[
        {
            'Key': 'KeyName',
            'Value': 'ValueName'
        },
    ]
)
```

------
#### [ Custom Workflow ]

以下请求示例为自定义集成创建人工审核工作流（流定义）。要创建这种类型的人工审核工作流，请忽略流定义请求中的 `HumanLoopRequestSource`。只有当您使用的是 Mechanical Turk 人力时，才需要包括 `PublicWorkforceTaskPrice`。

```
sagemaker_client = boto3.client('sagemaker', aws_region)

response = sagemaker_client.create_flow_definition(
    FlowDefinitionName='ExampleFlowDefinition',
    HumanLoopActivationConfig={
        'HumanLoopActivationConditionsConfig': {
            'HumanLoopActivationConditions': '{...}'
        }
    },
    HumanLoopConfig={
        'WorkteamArn': 'arn:aws:sagemaker:aws_region:aws_account_number:workteam/private-crowd/workteam_name',
        'HumanTaskUiArn': 'arn:aws:sagemaker:aws_region:aws_acount_number:human-task-ui/template_name',
        'TaskTitle': 'Example task title',
        'TaskDescription': 'Example task description.',
        'TaskCount': 123,
        'TaskAvailabilityLifetimeInSeconds': 123,
        'TaskTimeLimitInSeconds': 123,
        'TaskKeywords': [
            'Keyword1','Keyword2'
        ],
        'PublicWorkforceTaskPrice': {
            'AmountInUsd': {
                'Dollars': 123,
                'Cents': 123,
                'TenthFractionsOfACent': 123
            }
        }
    },
    OutputConfig={
        'S3OutputPath': 's3://bucket/path/',
        'KmsKeyId': '1234abcd-12ab-34cd-56ef-1234567890ab'
    },
    RoleArn='arn:aws:iam::account_number:role/role_name',
    Tags=[
        {
            'Key': 'KeyName',
            'Value': 'ValueName'
        },
    ]
)
```

------

### 后续步骤
<a name="a2i-next-step-createflowdefinition-api"></a>

成功调用 `CreateFlowDefinition` API 操作的返回值是流定义的 Amazon 资源名称 (ARN)。

如果您使用的是内置任务类型，则可以使用流程定义 ARN，使用该 AWS 服务的 API（即 Amazon Textract API）启动人工循环。对于自定义任务类型，您可以使用 ARN，通过 Amazon Augmented AI 运行时系统 API 启动人工循环。要了解有关这些选项的更多信息，请参阅[创建和启动人工循环](a2i-start-human-loop.md)。

# Amazon Augmented AI 中用于人工循环激活条件的 JSON 架构
<a name="a2i-human-fallback-conditions-json-schema"></a>

`HumanLoopActivationConditions` 是 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html) API 的输入参数。此参数是 JSON 格式的字符串。JSON 对创建人工循环的条件建立模型，确定在根据集成 AI 服务 API（例如 `Rekognition.DetectModerationLabels` 或 `Textract.AnalyzeDocument`）的响应评估这些条件时，应该创建哪个人工循环。此响应称为*推理*。例如，Amazon Rekognition 发送对审核标签的推理以及关联的置信度得分。在此示例中，推理是模型对适合图像的标签的最佳估计值。对于 Amazon Textract，推理是针对文本块之间的关联（*键/值对*）进行的，例如表单中 `Name:` 和 `Sue` 之间的关联以及文本块（即*词块*）中的内容，例如“Name”。

下面是 JSON 的架构。在顶层，`HumanLoopActivationConditions` 具有 JSON 数组 `Conditions`。此数组的每个成员都是一个独立的条件，如果评估为 `true`，将导致 Amazon A2I 创建人工循环。每个这样的独立条件可以是简单条件，也可以是复杂条件。简单条件具有以下属性：
+ `ConditionType`：此属性标识条件的类型。与 Amazon A2I 集成的每个 AWS AI 服务 API 都会定义了自己一组允许的 `ConditionTypes`。
  + Rekognition `DetectModerationLabels` – 此 API 支持 `ModerationLabelConfidenceCheck` 和 `Sampling` `ConditionType` 值。
  + Textract `AnalyzeDocument` – 此 API 支持 `ImportantFormKeyConfidenceCheck`、`MissingImportantFormKey` 和 `Sampling` `ConditionType` 值。
+ `ConditionParameters` – 这是一个 JSON 对象，用于将条件参数化。此对象的允许属性集取决于 `ConditionType` 的值。每个 `ConditionType` 定义它自己的 `ConditionParameters` 集。

`Conditions` 数组的成员可以对复杂条件进行建模。为此，它使用 `And` 和 `Or` 逻辑运算符连接原始条件并嵌套底层简单条件。最多支持两层嵌套。

```
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "definitions": {
        "Condition": {
            "type": "object",
            "properties": {
                "ConditionType": {
                    "type": "string"
                },
                "ConditionParameters": {
                    "type": "object"
                }
            },
            "required": [
                "ConditionType"
            ]
        },
        "OrConditionArray": {
            "type": "object",
            "properties": {
                "Or": {
                    "type": "array",
                    "minItems": 2,
                    "items": {
                        "$ref": "#/definitions/ComplexCondition"
                    }
                }
            }
        },
        "AndConditionArray": {
            "type": "object",
            "properties": {
                "And": {
                    "type": "array",
                    "minItems": 2,
                    "items": {
                        "$ref": "#/definitions/ComplexCondition"
                    }
                }
            }
        },
        "ComplexCondition": {
            "anyOf": [
                {
                    "$ref": "#/definitions/Condition"
                },
                {
                    "$ref": "#/definitions/OrConditionArray"
                },
                {
                    "$ref": "#/definitions/AndConditionArray"
                }
            ]
        }
    },
    "type": "object",
    "properties": {
        "Conditions": {
            "type": "array",
            "items": {
                "$ref": "#/definitions/ComplexCondition"
            }
        }
    }
}
```

**注意**  
人工循环激活条件不适用于与自定义任务类型集成的人工审核工作流。对于自定义任务类型，`HumanLoopActivationConditions` 参数禁用。

**Topics**
+ [将人工循环激活条件 JSON 架构与 Amazon Textract 结合使用](a2i-json-humantaskactivationconditions-textract-example.md)
+ [将人工循环激活条件 JSON 架构与 Amazon Rekognition 结合使用](a2i-json-humantaskactivationconditions-rekognition-example.md)

# 将人工循环激活条件 JSON 架构与 Amazon Textract 结合使用
<a name="a2i-json-humantaskactivationconditions-textract-example"></a>

与 Amazon A2I 结合使用时，`AnalyzeDocument` 操作支持 `ConditionType` 参数中的以下输入：
+ `ImportantFormKeyConfidenceCheck` – 对于文档表单键和词块，当推理置信度在指定范围内时，使用此条件创建人工循环。*表单键* 是文档中与输入关联的任何单词。输入称为*值*。表单键和值一起称为*键/值对*。*词块*是指 Amazon Textract 在检测的文本块内识别的单词。要了解有关 Amazon Textract 文档块的更多信息，请参阅《Amazon Textract 开发者指南》**中的[文档和块对象](https://docs.aws.amazon.com/textract/latest/dg/how-it-works-document-layout.html)。
+ `MissingImportantFormKey` – 当 Amazon Textract 未在文档中标识键或其关联的别名时，使用此条件可创建人工循环。
+ `Sampling` – 使用此条件指定发送供人工审核的表单百分比，而不考虑推理置信度得分。使用此条件来执行以下操作：
  + 通过对模型分析的所有表单随机抽样并发送指定百分比的表单进行人工审核，对 ML 模型进行审计。
  + 使用 `ImportantFormKeyConfidenceCheck` 条件随机抽样满足 `ImportantFormKeyConfidenceCheck` 中指定的条件的一定百分比的推理以启动人工循环，并仅发送指定的百分比进行人工审核。

**注意**  
如果您向 `AnalyzeDocument` 多次发送同一请求，则对于该输入的推理，`Sampling` 的结果不会更改。例如，如果您发出一个 `AnalyzeDocument` 请求，并且 `Sampling` 未启动人工循环，则以后发送给 `AnalyzeDocument` 的具有相同配置的请求将不会启动人工循环。

## `ImportantFormKeyConfidenceCheck` 输入和结果
<a name="a2i-textract-importantformkeycofidencecheck"></a>

`ImportantFormKeyConfidenceCheck` `ConditionType` 支持以下 `ConditionParameters`：
+ `ImportantFormKey` – 一个字符串，表示 Amazon Textract 检测到的键/值对中需要进行人工审核的键。如果此参数的值是包罗万象的特殊值 (\$1)，则所有键都被视为与条件匹配。您可以使用此项，对满足特定置信度阈值的任何键/值对都需要人工审核的情况进行建模。
+ `ImportantFormKeyAliases` – 表示重要表单键的替代拼写或逻辑等价物的数组。
+ `KeyValueBlockConfidenceEquals`
+ `KeyValueBlockConfidenceLessThan`
+ `KeyValueBlockConfidenceLessThanEquals`
+ `KeyValueBlockConfidenceGreaterThan`
+ `KeyValueBlockConfidenceGreaterThanEquals`
+ `WordBlockConfidenceEquals`
+ `WordBlockConfidenceLessThan`
+ `WordBlockConfidenceLessThanEquals`
+ `WordBlockConfidenceGreaterThan`
+ `WordBlockConfidenceGreaterThanEquals`

当您使用 `ImportantFormKeyConfidenceCheck` `ConditionType` 时，Amazon A2I 会发送键/值块、对键/值块的词块推理以及您在 `ImportantFormKey` 和 `ImportantFormKeyAliases` 中指定的关联别名，以供人工审核。

创建流程定义时，如果您使用 Amazon A SageMaker I 控制台**的人工审核工作流程**部分中提供的默认工作人员任务模板，则通过此激活条件发送供人工审核的键值和区块推断将包含在工作线程界面中。如果您使用自定义工作人员任务模板，则需要包含 `{{ task.input.selectedAiServiceResponse.blocks }}` 元素以包含来自 Amazon Textract 的初始值输入数据（推理）。有关使用此输入元素的自定义模板的示例，请参阅[Amazon Textract 的自定义模板示例](a2i-custom-templates.md#a2i-custom-templates-textract-sample)。

## `MissingImportantFormKey` 输入和结果
<a name="a2i-textract-missingimportantformkey"></a>

`MissingImportantFormKey` `ConditionType` 支持以下 `ConditionParameters`：
+ `ImportantFormKey` – 一个字符串，表示 Amazon Textract 检测到的键/值对中需要进行人工审核的键。
+ `ImportantFormKeyAliases` – 表示重要表单键的替代拼写或逻辑等价物的数组。

在使用 `MissingImportantFormKey` `ConditionType` 时，如果 `ImportantFormKey` 中的键或 `ImportantFormKeyAliases` 中的别名未包含在 Amazon Textract 推理中，则将发送表单以进行人工审核，并且不包含任何预测的键/值对。例如，如果 Amazon Textract 仅标识表单中的 `Address` 和 `Phone`，但缺少 `ImportantFormKey` 和 `Name`（在 `MissingImportantFormKey` 条件类型中），则将发送表单供人工审核，而不包含任何检测到的表单键（`Address` 和 `Phone`）。

如果您使用 SageMaker AI 控制台中提供的默认工作人员任务模板，则会创建一个任务，要求工作人员识别中的密钥`ImportantFormKey`和关联的值。如果您使用自定义工作人员任务模板，则需要包含 `<task.input.humanLoopContext>` 自定义 HTML 元素以配置此任务。

## 采样输入和结果
<a name="a2i-textract-randomsamplingpercentage"></a>

`Sampling` `ConditionType` 现在支持 `RandomSamplingPercentage` `ConditionParameters`。`RandomSamplingPercentage` 的输入必须是 0.01 到 100 之间的实数。此数字表示符合人工审核条件并将发送供人工审核的数据百分比。如果您使用 `Sampling` 条件而没有附加任何其他条件，则此数字表示从单个请求的 `AnalyzeDocument` 操作的所有推理中，发送供人工审核的百分比。

如果您指定 `Sampling` 条件而没有任何其他条件类型，则所有键/值和块推理都会发送给工作人员审核。

创建流程定义时，如果您使用 SageMaker AI 控制台**的人工审阅工作流程**部分中提供的默认工作人员任务模板，则通过此激活条件发送给人工审核的所有键值和区块推断都将包含在工作线程界面中。如果您使用自定义工作人员任务模板，则需要包含 `{{ task.input.selectedAiServiceResponse.blocks }}` 元素以包含来自 Amazon Textract 的初始值输入数据（推理）。有关使用此输入元素的自定义模板的示例，请参阅[Amazon Textract 的自定义模板示例](a2i-custom-templates.md#a2i-custom-templates-textract-sample)。

## 示例
<a name="a2i-json-activation-condition-examples"></a>

虽然只要有一个条件评估为 `true` 即可启动人工循环，但 Amazon A2I 将评估 Amazon Textract 分析的每个对象的所有条件。人工审核者需要针对评估为 `true` 的所有条件，审核重要表单键。

**示例 1：检测置信度分数在指定范围内、启动人工循环的重要表单键**

以下示例显示了在满足以下三个条件任意之一时，启动人工审核的 `HumanLoopActivationConditions` JSON：
+ Amazon Textract `AnalyzeDocument` API 返回一个键/值对，其键是 `Employee Name`、`Name` 或 `EmployeeName` 之一，键/值块的置信度小于 60，且组成键和值的每个词块的置信度小于 85。
+ Amazon Textract `AnalyzeDocument` API 返回一个键/值对，其键是 `Pay Date`、`PayDate`、`DateOfPay` 或 `pay-date` 之一，键/值块的置信度小于 65，且组成键和值的每个词块的置信度小于 85。
+ Amazon Textract `AnalyzeDocument` API 返回一个键/值对，其键是 `Gross Pay`、`GrossPay` 或 `GrossAmount` 之一，键/值块的置信度小于 60，且组成键和值的每个词块的置信度小于 85。

```
{
    "Conditions": [
        {
            "ConditionType": "ImportantFormKeyConfidenceCheck",
            "ConditionParameters": {
                "ImportantFormKey": "Employee Name",
                "ImportantFormKeyAliases": [
                    "Name",
                    "EmployeeName"
                ],
                "KeyValueBlockConfidenceLessThan": 60,
                "WordBlockConfidenceLessThan": 85
            }
        },
        {
            "ConditionType": "ImportantFormKeyConfidenceCheck",
            "ConditionParameters": {
                "ImportantFormKey": "Pay Date",
                "ImportantFormKeyAliases": [
                    "PayDate",
                    "DateOfPay",
                    "pay-date"
                ],
                "KeyValueBlockConfidenceLessThan": 65,
                "WordBlockConfidenceLessThan": 85
            }
        },
        {
            "ConditionType": "ImportantFormKeyConfidenceCheck",
            "ConditionParameters": {
                "ImportantFormKey": "Gross Pay",
                "ImportantFormKeyAliases": [
                    "GrossPay",
                    "GrossAmount"
                ],
                "KeyValueBlockConfidenceLessThan": 60,
                "WordBlockConfidenceLessThan": 85
            }
        }
    ]
}
```

**示例 2：使用 `ImportantFormKeyConfidenceCheck`**

在以下示例中，如果 Amazon Textract 检测到某个键/值对，其键/值块的置信度低于 60，并且任何基础词块的置信度低于 90，则会创建人工循环。人工审核者被要求审核与置信值比较公式匹配的所有表单键/值对。

```
{
    "Conditions": [
        {
            "ConditionType": "ImportantFormKeyConfidenceCheck",
            "ConditionParameters": {
                "ImportantFormKey": "*",
                "KeyValueBlockConfidenceLessThan": 60,
                "WordBlockConfidenceLessThan": 90
            }
        }
    ]
}
```

**示例 3：使用采样**

在以下示例中，将 Amazon Textract `AnalyzeDocument` 请求得出的 5% 的推理发送给工作人员进行审核。Amazon Textract 返回的所有检测的键/值对将发送给工作人员进行审核。

```
{
  "Conditions": [
    {
      "ConditionType": "Sampling",
      "ConditionParameters": {
        "RandomSamplingPercentage": 5
      }
    }
  ]
}
```

**示例 4：使用 `MissingImportantFormKey`**

在以下示例中，如果 Amazon Textract 所检测的键中缺少 `Mailing Address` 或其别名 `Mailing Address:`，则将启动人工审核。在使用默认工作人员任务模板时，工作人员 UI 将要求工作人员标识键 `Mailing Address` 或 `Mailing Address:` 及其关联值。

```
{
    "ConditionType": "MissingImportantFormKey",
    "ConditionParameters": {
        "ImportantFormKey": "Mailing Address",
        "ImportantFormKeyAliases": ["Mailing Address:"]
    }
}
```

**示例 5：使用采样和 `ImportantFormKeyConfidenceCheck` 及 `And` 运算符**

在此示例中，将 Amazon Textract 所检测的满足下列条件的 5% 的键/值对发送给工作人员进行审核：其键为 `Pay Date`、`PayDate`、`DateOfPay` 或 `pay-date` 之一，键/值块的置信度小于 65，组成键和值的每个词块的置信度小于 85。

```
{
  "Conditions": [
    {
      "And": [
        {
          "ConditionType": "Sampling",
          "ConditionParameters": {
            "RandomSamplingPercentage": 5
          }
        },
        {
          "ConditionType": "ImportantFormKeyConfidenceCheck",
            "ConditionParameters": {
                "ImportantFormKey": "Pay Date",
                "ImportantFormKeyAliases": [
                    "PayDate",
                    "DateOfPay",
                    "pay-date"
                ],
                "KeyValueBlockConfidenceLessThan": 65,
                "WordBlockConfidenceLessThan": 85
            }
        }
      ]
    }
  ]
}
```

**示例 6：使用采样和 `ImportantFormKeyConfidenceCheck` 及 `And` 运算符**

使用此示例可以配置人工审核工作流，始终将指定键/值对的低置信度推理发送进行人工审核，并按指定比率抽样键/值对的高置信度推理。

在以下示例中，通过以下方式之一启动人工审核：
+ 对于所检测的键/值对，其键为 `Pay Date`、`PayDate`、`DateOfPay` 或 `pay-date` 之一，且键/值和词块置信度低于 60 时，将发送供人工审核。仅将 `Pay Date` 表单键（及其别名）和关联值发送给工作人员进行审查。
+ 对于所检测的键/值对，在满足以下条件时，将其 5% 发送供人工审核：键是 `Pay Date`、`PayDate`、`DateOfPay` 或 `pay-date` 之一，且键/值和词块置信度大于 90。仅将 `Pay Date` 表单键（及其别名）和关联值发送给工作人员进行审查。

```
{
  "Conditions": [
    {
      "Or": [
       {
          "ConditionType": "ImportantFormKeyConfidenceCheck",
            "ConditionParameters": {
                "ImportantFormKey": "Pay Date",
                "ImportantFormKeyAliases": [
                    "PayDate",
                    "DateOfPay",
                    "pay-date"
                ],
                "KeyValueBlockConfidenceLessThan": 60,
                "WordBlockConfidenceLessThan": 60
            }
        },
        {
            "And": [
                {
                    "ConditionType": "Sampling",
                    "ConditionParameters": {
                        "RandomSamplingPercentage": 5
                    }
                },
                {
                    "ConditionType": "ImportantFormKeyConfidenceCheck",
                        "ConditionParameters": {
                            "ImportantFormKey": "Pay Date",
                            "ImportantFormKeyAliases": [
                                "PayDate",
                                "DateOfPay",
                                "pay-date"
                        ],
                        "KeyValueBlockConfidenceLessThan": 90
                        "WordBlockConfidenceGreaterThan": 90
                    }
                }
            ]
        }
      ]
    }
  ]
}
```

**示例 7：使用采样和 `ImportantFormKeyConfidenceCheck` 及 `Or` 运算符**

在以下示例中，Amazon Textract `AnalyzeDocument` 操作返回一个键/值对，其键是 `Pay Date`、`PayDate`、`DateOfPay` 或 `pay-date` 之一，键/值块的置信度小于 65，组成键和值的每个词块的置信度小于 85。此外，所有其他表单中有 5% 的表单将启动人工审核。对于随机选择的每个表单，该表单中检测的所有键/值对都将发送给人员进行审核。

```
{
  "Conditions": [
    {
      "Or": [
        {
          "ConditionType": "Sampling",
          "ConditionParameters": {
            "RandomSamplingPercentage": 5
          }
        },
        {
           "ConditionType": "ImportantFormKeyConfidenceCheck",
            "ConditionParameters": {
                "ImportantFormKey": "Pay Date",
                "ImportantFormKeyAliases": [
                    "PayDate",
                    "DateOfPay",
                    "pay-date"
                ],
                "KeyValueBlockConfidenceLessThan": 65,
                "WordBlockConfidenceLessThan": 85
            }
          }
        }
      ]
    }
  ]
}
```

# 将人工循环激活条件 JSON 架构与 Amazon Rekognition 结合使用
<a name="a2i-json-humantaskactivationconditions-rekognition-example"></a>

与 Amazon A2I 一起使用时，Amazon Rekognition `DetectModerationLabels` 操作支持 `ConditionType` 参数中的以下输入：
+ `ModerationLabelConfidenceCheck` – 当一个或多个指定标签的推理置信度低时，使用此条件类型创建人工循环。
+ `Sampling` – 使用此条件指定发送进行人工审核的所有推理的百分比。使用此条件来执行以下操作：
  + 通过对模型的所有推理随机抽样并将指定的百分比发送进行人工审核，对 ML 模型进行审计。
  + 使用 `ModerationLabelConfidenceCheck` 条件随机抽样满足 `ModerationLabelConfidenceCheck` 中指定的条件的一定百分比的推理以启动人工循环，并仅发送指定的百分比进行人工审核。

**注意**  
如果您向 `DetectModerationLabels` 多次发送同一请求，则对于该输入的推理，`Sampling` 的结果不会更改。例如，如果您发出一次 `DetectModerationLabels` 请求，并且 `Sampling` 没有启动人工循环，则以后发送给 `DetectModerationLabels` 的具有相同配置的请求将不会启动人工循环。

创建流程定义时，如果您使用 Amazon A SageMaker I 控制台**的人工审核工作流程**部分中提供的默认工作人员任务模板，则当工作人员打开您的任务时，这些激活条件发送给人工审核的推断将包含在工作线程用户界面中。如果您使用自定义工作人员任务模板，则需要包含 `<task.input.selectedAiServiceResponse.blocks>` 自定义 HTML 元素来访问这些推理。有关使用此 HTML 元素的自定义模板示例，请参阅 [Amazon Rekognition 的自定义模板示例](a2i-custom-templates.md#a2i-custom-templates-rekognition-sample)。

## `ModerationLabelConfidenceCheck` 输入
<a name="a2i-rek-moderationlabelconfidencecheck"></a>

对于 `ModerationLabelConfidenceCheck` `ConditionType`，支持以下 `ConditionParameters`：
+ `ModerationLabelName`— Amazon Rekognit `DetectModerationLabels` ion 操作[ModerationLabel](https://docs.aws.amazon.com/rekognition/latest/dg/API_ModerationLabel.html)检测到的的确切（区分大小写）名称。您可以指定包罗万象的特殊值 (\$1) 来表示任何审核标签。
+ `ConfidenceEquals`
+ `ConfidenceLessThan`
+ `ConfidenceLessThanEquals`
+ `ConfidenceGreaterThan`
+ `ConfidenceGreaterThanEquals`

当您使用 `ModerationLabelConfidenceCheck` `ConditionType` 时，Amazon A2I 为您在 `ModerationLabelName` 中指定的标签发送标签推理供人工审核。

## 采样输入
<a name="a2i-rek-randomsamplingpercentage"></a>

`Sampling` `ConditionType` 现在支持 `RandomSamplingPercentage` `ConditionParameters`。`RandomSamplingPercentage` 参数的输入应是 0.01 到 100 之间的实数。此数字表示符合人工审核条件并将发送进行人工审核的推理百分比。如果您在不使用任何其他条件的情况下使用 `Sampling` 条件，则此数字表示单个 `DetectModerationLabel` 请求生成的所有推理中，发送供人工审核的百分比。

## 示例
<a name="a2i-json-rek-activation-condition-examples"></a>

**示例 1：使用 `ModerationLabelConfidenceCheck` 和 `And` 运算符**

以下 `HumanLoopActivationConditions` 条件示例在满足下列一个或多个条件时启动人工审核：
+ Amazon Rekognition 对置信度介于 90 到 99 之间的 `Graphic Male Nudity` 审核标签进行检测。
+ Amazon Rekognition 对置信度介于 80 到 99 之间的 `Graphic Female Nudity` 审核标签进行检测。

请注意使用 `Or` 和 `And` 逻辑运算符对此逻辑进行建模。

虽然在 `Or` 运算符下的两个条件中，只需要任何一个条件的评估结果为 `true` 即可创建人工循环，但 Amazon Augmented AI 会评估所有条件。人工审核者需要审核所有条件评估为 `true` 的审核标签。

```
{
     "Conditions": [{
         "Or": [{
                 "And": [{
                         "ConditionType": "ModerationLabelConfidenceCheck",
                         "ConditionParameters": {
                             "ModerationLabelName": "Graphic Male Nudity",
                             "ConfidenceLessThanEquals": 99
                         }
                     },
                     {
                         "ConditionType": "ModerationLabelConfidenceCheck",
                         "ConditionParameters": {
                             "ModerationLabelName": "Graphic Male Nudity",
                             "ConfidenceGreaterThanEquals": 90
                         }
                     }
                 ]
             },
             {
                 "And": [{
                         "ConditionType": "ModerationLabelConfidenceCheck",
                         "ConditionParameters": {
                             "ModerationLabelName": "Graphic Female Nudity",
                             "ConfidenceLessThanEquals": 99
                         }
                     },
                     {
                         "ConditionType": "ModerationLabelConfidenceCheck",
                         "ConditionParameters": {
                             "ModerationLabelName": "Graphic Female Nudity",
                             "ConfidenceGreaterThanEquals": 80
                         }
                     }
                 ]
             }
         ]
     }]
}
```

**示例 2：使用 `ModerationLabelConfidenceCheck` 以及 catch-all 值 (\$1)**

在以下示例中，如果检测到置信度大于或等于 75 的任何审核标签，则启动人工循环。人工审核者需要审核置信度得分大于或等于 75 的所有审核标签。

```
{
    "Conditions": [
        {
            "ConditionType": "ModerationLabelConfidenceCheck",
            "ConditionParameters": {
                "ModerationLabelName": "*",
                "ConfidenceGreaterThanEquals": 75
            }
        }
    ]
}
```

**示例 3：使用采样**

在以下示例中，将 `DetectModerationLabels` 请求得出的 5% 的 Amazon Rekognition 推理发送给工作人员。使用 SageMaker AI 控制台中提供的默认工作人员任务模板时，Amazon Rekognition 返回的所有审核标签都将发送给工作人员进行审核。

```
{
  "Conditions": [
    {
      "ConditionType": "Sampling",
      "ConditionParameters": {
        "RandomSamplingPercentage": 5
      }
    }
  ]
}
```

**示例 4：使用采样和 `ModerationLabelConfidenceCheck` 及 `And` 运算符**

在此示例中，将 `Graphic Male Nudity` 审核标签的 5% Amazon Rekognition 推理（其置信度大于 50）发送给工作人员以进行审核。使用 SageMaker AI 控制台中提供的默认工作人员任务模板时，只有`Graphic Male Nudity`标签的推断才会发送给工作人员进行审查。

```
{
  "Conditions": [
    {
      "And": [
        {
          "ConditionType": "Sampling",
          "ConditionParameters": {
            "RandomSamplingPercentage": 5
          }
        },
        {
          "ConditionType": "ModerationLabelConfidenceCheck",
          "ConditionParameters": {
            "ModerationLabelName": "Graphic Male Nudity",
            "ConfidenceGreaterThan": 50
          }
        }
      ]
    }
  ]
}
```

**示例 5：使用采样和 `ModerationLabelConfidenceCheck` 及 `And` 运算符**

使用此示例可以配置人工审核工作流，始终发送指定标签的低置信度推理进行人工审核，并按指定比率对标签的高置信度推理采样。

在以下示例中，通过以下方式之一启动人工审核：
+ 对于 `Graphic Male Nudity` 审核标签的推理，在置信度分数小于 60 时将始终发送供人工审核。仅将 `Graphic Male Nudity` 标签发送给工作人员以进行审查。
+ `Graphic Male Nudity` 审核标签的所有推理（其置信度分数大于 90）的 5% 将发送以供人工审查。仅将 `Graphic Male Nudity` 标签发送给工作人员以进行审查。

```
{
  "Conditions": [
    {
      "Or": [
        {
          "ConditionType": "ModerationLabelConfidenceCheck",
          "ConditionParameters": {
            "ModerationLabelName": "Graphic Male Nudity",
            "ConfidenceLessThan": 60
          }
        },
        {
            "And": [
                {
                    "ConditionType": "Sampling",
                    "ConditionParameters": {
                        "RandomSamplingPercentage": 5
                    }
                },
                {
                    "ConditionType": "ModerationLabelConfidenceCheck",
                    "ConditionParameters": {
                        "ModerationLabelName": "Graphic Male Nudity",
                        "ConfidenceGreaterThan": 90
                    }
                }
            ]
        }
      ]
    }
  ]
}
```

**示例 6：使用采样和 `ModerationLabelConfidenceCheck` 及 `Or` 运算符**

在以下示例中，如果 Amazon Rekognition 推理响应包含“裸体男性图”标签且推理置信度大于 50，则会创建人工循环。此外，所有其他推理中有 5% 的推理将启动人工循环。

```
{
  "Conditions": [
    {
      "Or": [
        {
          "ConditionType": "Sampling",
          "ConditionParameters": {
            "RandomSamplingPercentage": 5
          }
        },
        {
          "ConditionType": "ModerationLabelConfidenceCheck",
          "ConditionParameters": {
            "ModerationLabelName": "Graphic Male Nudity",
            "ConfidenceGreaterThan": 50
          }
        }
      ]
    }
  ]
}
```