

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

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

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

您可以在 SageMaker AI 控制台中或使用 AI [https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_CreateFlowDefinition.html](https://docs.amazonaws.cn/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.amazonaws.cn/sagemaker/](https://console.amazonaws.cn/sagemaker/)。

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

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

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

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

   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 默认模板来为工作人员创建说明，请选择**从默认模板构建**。
          + 如果您选择**从默认模板构建**，请在**工作人员任务设计**中创建您的说明。
            + 请提供在您 Amazon 所在区域中唯一的**模板名称**。
            + 在**说明**部分中，提供有关如何完成您的任务的详细说明。为了帮助工作人员达到更好的准确性，请提供好示例和坏示例。
            + （可选）在**其他说明**中，向您的工作人员提供其他信息和说明。

              有关创建有效说明的信息，请参阅[创建良好的工作人员说明](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，使用该 Amazon 服务的 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.amazonaws.cn/sagemaker/latest/APIReference/API_CreateFlowDefinition.html](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_CreateFlowDefinition.html)。

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

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

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

1. 对于 `HumanLoopConfig`，输入有关工作人员及其所见内容的信息。有关中每个参数的信息`HumanLoopConfig`，请参见[HumanLoopConfig](https://docs.amazonaws.cn/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）关联的 Amazon 服务提供流程定义时，该服务会将所有任务发送给人工工作人员进行审核。

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

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

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

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

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

以下请求示例使用 适用于 Python (Boto3) 的 Amazon 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) 的 Amazon 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，使用该 Amazon 服务的 API（即 Amazon Textract API）启动人工循环。对于自定义任务类型，您可以使用 ARN，通过 Amazon Augmented AI 运行时系统 API 启动人工循环。要了解有关这些选项的更多信息，请参阅[创建和启动人工循环](a2i-start-human-loop.md)。