

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

# 使用人工循環啟動條件 JSON 結構描述與 Amazon Textract
<a name="a2i-json-humantaskactivationconditions-textract-example"></a>

搭配使用 Amazon A2I，`AnalyzeDocument` 操作支援在 `ConditionType` 參數中的下列輸入：
+ `ImportantFormKeyConfidenceCheck` – 當推論可信度在文件表單索引鍵和字詞區塊的指定範圍內時，請使用此條件來建立人工循環。*表單索引鍵*是與輸入相關聯文件中的任何字詞。此輸入稱為*值*。同時，表單索引鍵和值被稱為*鍵值對*。*字詞區塊*是指在偵測到之文字區塊內部 Amazon Textract 辨識的字詞。要瞭解有關 Amazon Textract 檔塊的更多資訊，請參閱[文件和阻止對象](https://docs.aws.amazon.com/textract/latest/dg/how-it-works-document-layout.html)在*Amazon Textract 開發人員指南*。
+ `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 偵測到的鍵值對中，代表需要由人力工作者審核的索引鍵。如果此參數的值是特殊囊括值 (\*)，則全部索引鍵都視為符合條件。您可使用此值來模擬任何鍵值對需人工審核的情況，而這些鍵值對皆滿足特定可信度閾值。
+ `ImportantFormKeyAliases` – 陣列，代表重要表單鍵的替代拼寫或邏輯同等項。
+ `KeyValueBlockConfidenceEquals`
+ `KeyValueBlockConfidenceLessThan`
+ `KeyValueBlockConfidenceLessThanEquals`
+ `KeyValueBlockConfidenceGreaterThan`
+ `KeyValueBlockConfidenceGreaterThanEquals`
+ `WordBlockConfidenceEquals`
+ `WordBlockConfidenceLessThan`
+ `WordBlockConfidenceLessThanEquals`
+ `WordBlockConfidenceGreaterThan`
+ `WordBlockConfidenceGreaterThanEquals`

當您使用 `ImportantFormKeyConfidenceCheck` `ConditionType` 時，`ImportantFormKey`Amazon A2I 會傳送您在和 `ImportantFormKeyAliases` 中指定之鍵值區塊和關聯別名的鍵值區塊和字詞區塊推論，以供人工審核。

建立流程定義時，如果您使用 Amazon SageMaker AI 主控台的**人工審核工作流程**區段中提供的預設工作者任務範本，則透過此啟動條件傳送供人工審核的鍵值和區塊推論會包含在工作者使用者介面中。如果您使用自訂工作者任務範本，則需要包含 `{{ 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:`，則會觸發人工審核。使用預設工作者任務範本時，工作者使用者介面會要求工作者識別索引鍵 `Mailing Address` 或 `Mailing Address:` 及其相關聯的值。

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

**範例 5：使用取樣和具有 `And` 運算子的 `ImportantFormKeyConfidenceCheck`**

在此範例中，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
            }
          }
        }
      ]
    }
  ]
}
```