JSON Schema for Human Loop Activation Conditions in Amazon Augmented AI
The HumanLoopActivationConditions
is an input parameter of the CreateFlowDefinition
API. This parameter is a JSON-formatted
string. The JSON models the conditions under which a human loop is created when those
conditions are evaluated against the response from an integrating AI service API (such as
Rekognition.DetectModerationLabels
or
Textract.AnalyzeDocument
). This response is referred to as an
inference. For example, Amazon Rekognition sends an inference of a moderation
label with an associated confidence score. In this example, the inference is the model's
best estimate of the appropriate label for an image. For Amazon Textract, inference is made on
the association between blocks of text (key-value pairs), such as the
association between Name:
and Sue
in a form as well as content
within a block of text, or word block, such as 'Name'.
The following is the schema for the JSON. At the top level, the
HumanLoopActivationConditions
has a JSON array, Conditions
.
Each member of this array is an independent condition that, if evaluated to
true
, results in Amazon A2I creating a human loop. Each such independent
condition can be a simple condition or a complex condition. A simple condition has the
following attributes:
-
ConditionType
: This attribute identifies the type of condition. Each AWS AI service API that integrates with Amazon A2I defines its own set of allowedConditionTypes
.-
Rekognition
DetectModerationLabels
– This API supports theModerationLabelConfidenceCheck
andSampling
ConditionType
values. -
Textract
AnalyzeDocument
– This API supports theImportantFormKeyConfidenceCheck
,MissingImportantFormKey
, andSampling
ConditionType
values.
-
-
ConditionParameters
– This is a JSON object that parameterizes the condition. The set of allowed attributes of this object is dependent on the value of theConditionType
. EachConditionType
defines its own set ofConditionParameters
.
A member of the Conditions
array can model a complex condition. This is
accomplished by logically connecting simple conditions using the And
and
Or
logical operators and nesting the underlying simple conditions. Up to
two levels of nesting are supported.
{ "$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" } } } }
Note
Human loop activation conditions aren't available for human review workflows that are
integrated with custom task types. The HumanLoopActivationConditions
parameter is disabled for custom task types.