

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立人工審核工作流程 (API)
<a name="a2i-create-flow-definition"></a>

使用 Amazon 增強版 AI (Amazon A2I) *人工審核工作流程*或*流程定義*，來指定下列項目：
+ 對於 Amazon Textract 和 Amazon Rekognition 內建任務類型，據以呼叫人工循環的條件
+ 您的任務所發送到的人力資源
+ 您的人力資源收到的一套指示，稱為*工作者任務範本*
+ 工作者任務的組態，包括接收任務的工作者人數，以及完成任務的時間限制 
+ 儲存您的輸出資料的地方 

您可以在 SageMaker AI 主控台中建立人工審核工作流程，也可以使用 SageMaker AI [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html) 作業。您可以在建立流程定義時，使用 Amazon Textract 的主控台和 Amazon Rekognition 任務類型來建立工作者任務範本。

**重要**  
Amazon A2I 自訂任務類型無法使用啟動人工循環的人工循環啟動條件，例如可信度閾值。使用主控台建立自訂任務類型的流程定義時，無法指定啟動條件。使用 Amazon A2I API 建立自訂任務類型的流程定義時，不能設定 `HumanLoopActivationConditionsConfig` 參數的 `HumanLoopActivationConditions` 屬性。若要控制何時啟動人工審核，請在自訂應用程式中指定據以呼叫 `StartHumanLoop` 的條件。在這種情況下，每次 `StartHumanLoop` 調用都會導致人工審核。如需更多詳細資訊，請參閱[搭配使用自訂任務類型和 Amazon 增強版 AI](a2i-task-types-custom.md)。

**先決條件**

若要建立人工審核流程定義，須完成[使用增強版 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 增強版 AI 中，適用於 JSON 結構描述的人工循環啟動條件](a2i-human-fallback-conditions-json-schema.md)

## 建立人工審核工作流程 (主控台)
<a name="a2i-create-human-review-console"></a>

使用此程序可建立使用 SageMaker AI 主控台的 Amazon 增強版 AI (Amazon A2I) 人工審核工作流程。如果您是第一次使用 Amazon A2I，建議您使用組織中的人員來建立私有工作團隊，並在建立流程定義時使用此工作團隊的 ARN。若要了解如何設定私有人力資源及建立工作團隊，請參閱[建立私有人力資源 (Amazon SageMaker AI 主控台)](sms-workforce-create-private-console.md)。如果您已設定私有人力資源，請參閱[使用 SageMaker AI 主控台建立工作團隊](sms-workforce-management-private-console.md#create-workteam-sm-console) 以瞭解如何將工作團隊新增至該人力資源。

如果您將 Amazon A2I 與其中一個內建任務類型搭配使用，當您在主控台建立人工審核工作流程時，您可以使用增強版 AI 提供的預設工作者任務範本來建立工作者指示。若要查看增強版 AI 提供的預設範本範例，請參閱[使用 Amazon A2I 的使用案例和範例](a2i-task-types-general.md)中的內建任務類型。

**建立流程定義 (主控台)**

1. 開啟位於 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 的 SageMaker AI 主控台。

1. 在導覽窗格的**增強版 AI** 區段下，選擇**人工審核工作流程**，然後選擇**建立人工審核工作流程**。

1. 在**概觀**中，執行下列作業：

   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 增強版 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 任務類型，您可以選擇**查看範例工作者任務**來預覽工作者任務使用者介面。

   如果您要為自訂任務類型建立流程定義，則可以使用該 `RenderUiTemplate` 作業預覽工作者任務使用者介面。如需詳細資訊，請參閱[預覽工作者任務範本](a2i-custom-templates.md#a2i-preview-your-custom-template)。

1. 在**工作者**中，選擇人力資源類型。

1. 選擇**建立**。

### 後續步驟
<a name="a2i-next-step-createflowdefinition-console"></a>

建立人工審核工作流程後，它會出現在主控台的**人工審核工作流程**下。若要查看流程定義的 Amazon Resource Name (ARN) 和組態詳細資訊，請選取工作流程名稱來進行選擇。

如果您使用的是內建任務類型，您可以使用流程定義 ARN，使用該 AWS 服務的 API 啟動人工循環 （例如，Amazon Textract API)。若是自訂任務類型，您可以使用 ARN 來啟動使用 Amazon 增強版 AI 執行期 API 的人工循環。若要進一步了解這兩個選項，請參閱[建立和啟動人工循環](a2i-start-human-loop.md)。

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

若要使用 SageMaker API 建立流程定義，請使用 `CreateFlowDefinition` 作業。完成[使用增強版 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 增強版 AI 中，適用於 JSON 結構描述的人工循環啟動條件](a2i-human-fallback-conditions-json-schema.md)。如果您未在此處指定條件，當您提供流程定義給與內建任務類型 （例如 Amazon Textract 或 Amazon Rekognition) 相關聯的 AWS 服務時，該服務會將每個任務傳送給人力工作者以供檢閱。

   如果您使用的是自訂任務類型，則會停用 `HumanLoopActivationConfig`。若要瞭解如何在任務傳送給人力工作者時使用自訂任務類型控制，請參閱[搭配使用自訂任務類型和 Amazon 增強版 AI](a2i-task-types-custom.md)。

1. (選擇性) 如果您使用的是內建任務類型，請在 [HumanLoopRequestSource](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HumanLoopRequestSource.html) 參數中指定整合來源 (例如，Amazon Rekognition 或 Amazon Textract)。

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 Resource Name (ARN)。

如果您使用的是內建任務類型，您可以使用流程定義 ARN，使用該 AWS 服務的 API （即 Amazon Textract API) 啟動人工循環。若是自訂任務類型，您可以使用 ARN 來啟動使用 Amazon 增強版 AI 執行期 API 的人工循環。若要進一步了解這兩個選項，請參閱[建立和啟動人工循環](a2i-start-human-loop.md)。