

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

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

与 Amazon A2I 结合使用时，`AnalyzeDocument` 操作支持 `ConditionType` 参数中的以下输入：
+ `ImportantFormKeyConfidenceCheck` – 对于文档表单键和词块，当推理置信度在指定范围内时，使用此条件创建人工循环。*表单键* 是文档中与输入关联的任何单词。输入称为*值*。表单键和值一起称为*键/值对*。*词块*是指 Amazon Textract 在检测的文本块内识别的单词。要了解有关 Amazon Textract 文档块的更多信息，请参阅《Amazon Textract 开发者指南》**中的[文档和块对象](https://docs.amazonaws.cn/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
            }
          }
        }
      ]
    }
  ]
}
```