

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Augmented AI を使用した人間によるレビュー
<a name="a2i-use-augmented-ai-a2i-human-review-loops"></a>

Amazon Rekognition、Amazon Textract、またはカスタム機械学習 (ML) モデルなどの AI アプリケーションを使用する場合、Amazon Augmented AI を使用して、信頼性の低い予測やランダムな予測サンプルについて人間によるレビューを行うことができます。
<a name="what-is-amazon-augmented-ai-a2i"></a>
**Amazon Augmented AI とは**  
Amazon Augmented AI (Amazon A2I) は、人間によるレビューシステムの構築や多数の人間によるレビュー担当者の管理に伴う面倒な作業を行う必要なく、誰でも ML 予測の人間によるレビューを利用できるようにするサービスです。

多くの ML アプリケーションでは、信頼性の低い予測は人間が確認し、結果が正しいかどうかを確認する必要があります。例えば、スキャンした住宅ローン申請書から情報を抽出する場合、スキャンや手書きの品質が低いなどの理由から、人間によるレビューが必要になることがあります。人間によるレビューシステムの構築は、複雑なプロセスまたはワークフローの実装、レビュータスクと結果を管理するためのカスタムソフトウェアの作成、大規模なレビュー担当グループの管理を伴うため、時間と費用がかかります。**

Amazon A2I は ML アプリケーションの人間によるレビューの構築と管理を効率化します。Amazon A2I には、コンテンツモデレーションやドキュメントからのテキスト抽出など、一般的な ML のユースケース用に組み込みの人間によるレビューワークフローが用意されています。SageMaker AI またはその他のツールで構築した ML モデル用に、独自のワークフローを作成することも可能です。Amazon A2I を使用すると、モデルが信頼性の高い予測を行うことができない場合、またはその予測を継続的に監査できない場合に、人間によるレビュー担当者を介入させることができます。
<a name="a2i-use-cases-intro"></a>
**Amazon A2I のユースケース例**  
次の例は、Amazon A2I を使用して ML アプリケーションに人間によるレビューループを統合する方法を示しています。これらの各例については、「[Amazon A2I を使用したユースケースと例](a2i-task-types-general.md)」でそのワークフローを示す Jupyter ノートブックを参照できます。
+ **Amazon Textract で Amazon A2I を使用する** - 単一ページのドキュメントで重要なキーと値のペアについて人間によるレビューを行うか、Amazon Textract を使用してランダムにサンプリングし、データセットからドキュメントを人間によるレビュー用に送ります。
+ **Amazon Rekognition で Amazon A2I を使用する** - Amazon Rekognition が信頼性の低いスコアを返した場合に明示的なアダルトコンテンツや暴力的なコンテンツなどの安全でない画像について人間によるレビューを行うか、Amazon Rekognition を使用してランダムにサンプリングし、データセットから画像を人間によるレビュー用に送ります。
+ **Amazon A2I を使用してリアルタイム ML 推論を確認する** - Amazon A2I を使用して、SageMaker AI でホストされているエンドポイントにデプロイされたモデルによって行われたリアルタイムの信頼性の低い推論を確認し、Amazon A2I 出力データを使用してモデルを段階的にトレーニングします。
+ **Amazon Comprehend で Amazon A2I を使用する** - 感情分析、テキスト構文、エンティティ検出など、テキストデータに関する Amazon Comprehend の推論について人間によるレビューを行います。
+ **Amazon Transcribe で Amazon A2I を使用する** - Amazon Transcribe によるビデオファイルやオーディオファイルのトランスクリプションについて人間によるレビューを行います。トランスクリプションの人間によるレビューループの結果を使用してカスタム語彙を作成し、今後の類似するビデオまたはオーディオコンテンツのトランスクリプションを向上させます。
+ **Amazon Translate で Amazon A2I を使用する** - Amazon Translate から返された信頼性の低い翻訳について人間によるレビューを行います。
+ **Amazon A2I を使用して表形式のデータを確認する** - Amazon A2I を使用して表形式のデータを使用する ML アプリケーションに人間によるレビューループを統合します。

![\[Amazon Augmented AI - 仕組み\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/amazon-augmented-ai-how-it-works.png)


**Topics**
+ [Amazon Augmented AI の使用を開始する](a2i-getting-started.md)
+ [Amazon A2I を使用したユースケースと例](a2i-task-types-general.md)
+ [人間によるレビューワークフローを作成する](a2i-create-flow-definition.md)
+ [人間によるレビューワークフローを削除する](a2i-delete-flow-definition.md)
+ [ヒューマンループを作成および開始する](a2i-start-human-loop.md)
+ [ヒューマンループを削除する](a2i-delete-human-loop.md)
+ [ワーカータスクテンプレートを作成および管理する](a2i-instructions-overview.md)
+ [ヒューマンループの監視と管理](a2i-monitor-humanloop-results.md)
+ [Amazon A2I 出力データ](a2i-output-data.md)
+ [Amazon Augmented AI におけるアクセス許可とセキュリティ](a2i-permissions-security.md)
+ [Amazon Augmented AI Amazon CloudWatch Events で を使用する](a2i-cloudwatch-events.md)
+ [Amazon Augmented AI で API を使用する](a2i-api-references.md)

# Amazon Augmented AI の使用を開始する
<a name="a2i-getting-started"></a>

Amazon Augmented AI の使用を開始するには、[Amazon A2I のコアコンポーネント](a2i-getting-started-core-components.md) と [Augmented AI の使用の前提条件](a2i-getting-started-prerequisites.md) を確認してください。次に、以下に示すドキュメントを使用して、Amazon A2I コンソールと API の使用方法について学習します。
+ [チュートリアル: Amazon A2I コンソールの使用を開始する](a2i-get-started-console.md)
+ [チュートリアル: Amazon A2I API の使用を開始する](a2i-get-started-api.md)

Jupyter ノートブックのチュートリアルに従って Amazon A2I API の使用を開始することもできます。ノートブックとユースケースのリストについては、「[Amazon A2I を使用したユースケースと例](a2i-task-types-general.md)」を参照してください。

# Amazon A2I のコアコンポーネント
<a name="a2i-getting-started-core-components"></a>

Amazon A2I のコアコンポーネントを理解するために、以下の用語を確認してください。

## タスクタイプ
<a name="a2i-task-type-get-started"></a>

Amazon A2I を統合する AI/ML ワークフローは、Amazon A2I の*タスクタイプ*を定義します。

Amazon A2I では以下をサポートしています。
+ 2 つの組み込みタスクタイプ**: [Amazon Textract キーと値のペアの抽出](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-textract-task-type.html)と [Amazon Rekognition イメージモデレーション](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-rekognition-task-type.html)
+ [カスタムタスクタイプ](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-task-types-custom.html): カスタムタスクタイプを使用して、人間によるレビューループを任意の機械学習ワークフローと統合します。**カスタムタスクタイプを使用して、Amazon A2I を Amazon Comprehend、Amazon Transcribe、Amazon Translate などの他の AWS サービスと、独自のカスタム機械学習ワークフローと統合できます。詳細については[Amazon A2I を使用したユースケースと例](a2i-task-types-general.md)を参照してください。

次の表でタブを選択すると、Amazon A2I が各タスクタイプとどのように連携しているかを示す図が表示されます。前述したリストのリンクを使用してタスクタイプのページを選択し、そのタスクタイプの詳細を確認してください。

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

この図は、Amazon Textract を使用した Amazon A2I 組み込みのワークフローを示しています。左側には、Amazon Textract の人間によるレビューワークフロー作成に必要なリソース (Amazon S3 バケット、アクティベーション条件、ワーカータスクテンプレート、ワークチーム) が表示されています。これらのリソースは、人間によるレビューワークフロー (フロー定義) の作成に使用されます。矢印は、右側にあるワークフローの次のステップ (Amazon Textract を使用して人間によるレビューワークフローのヒューマンループを設定する) を指しています。2 番目の矢印は、このステップから右側にあるステップ (人間によるレビューワークフローで指定されたアクティベーション条件が満たされる) を指しています。これにより、ヒューマンループの作成が開始されます。図の右側には、1) ワーカー UI とツールが生成され、タスクをワーカーが使用できるようにし、2) ワーカーが入力データをレビューし、最終的に 3) 結果が Amazon S3 に保存されるという 3 つのステップのヒューマンループが示されています。

![\[Amazon Textract を使用した Amazon A2I 組み込みのワークフロー\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i/diagrams/product-page-diagram_A21-Components_Textract@2x.png)


------
#### [ Amazon Rekognition – Image moderation ]

この図は、Amazon Rekognition を使用した Amazon A2I 組み込みのワークフローを示しています。左側には、Amazon Rekognition の人間によるレビューワークフロー作成に必要なリソース (Amazon S3 バケット、アクティベーション条件、ワーカータスクテンプレート、ワークチーム) が表示されています。これらのリソースは、人間によるレビューワークフロー (フロー定義) の作成に使用されます。矢印は、右側にあるワークフローの次のステップ (Amazon Rekognition を使用して人間によるレビューワークフローのヒューマンループを設定する) を指しています。2 番目の矢印は、このステップから右側にあるステップ (人間によるレビューワークフローで指定されたアクティベーション条件が満たされる) を指しています。これにより、ヒューマンループの作成が開始されます。図の右側には、1) ワーカー UI とツールが生成され、タスクをワーカーが使用できるようにし、2) ワーカーが入力データをレビューし、最終的に 3) 結果が Amazon S3 に保存されるという 3 つのステップのヒューマンループが示されています。

![\[Amazon Rekognition を使用した Amazon A2I 組み込みのワークフロー\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i/diagrams/product-page-diagram_A2I-Components_Rekognition@2x.png)


------
#### [ Custom Task Type ]

次の図は、Amazon A2I カスタムワークフローを示しています。カスタム ML モデルは予測の生成に使用されます。クライアントアプリケーションは、ユーザー定義の基準を使用してこれらの予測をフィルタリングし、人間によるレビューが必要かどうかを判断します。必要と判断した場合、これらの予測は人間によるレビュー用に Amazon A2I に送信されます。Amazon A2I は人間によるレビューの結果を Amazon S3 で収集します。この結果にはクライアントアプリケーションからアクセスできます。人間によるレビューが必要ないとフィルターによって判断された場合、予測をクライアントアプリケーションに直接送信できます。

![\[Amazon A2I カスタムワークフロー\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i/diagrams/product-page-diagram_A2I-Components_Custom@2x.png)


------

## 人間によるレビューワークフロー (フロー定義)
<a name="a2i-getting-started-human-review-workflow"></a>

人間によるレビューワークフローを使用して、ヒューマンワークチームを指定し、ワーカータスクテンプレートを使用してワーカー UI を設定し、ワーカーがレビュータスクを完了する方法に関する情報を提供します。****

組み込みタスクタイプの場合、フロー定義を使用して、ヒューマンループが開始される条件を特定することもできます。例えば、Amazon Rekognition は機械学習を使用してイメージコンテンツのモデレーションを実行できます。人間によるレビューワークフローを使用して、Amazon Rekognition の信頼度が低すぎる場合に、コンテンツモデレーションレビュー用にイメージを人に送信するように指定できます。

人間によるレビューワークフローを使用して、複数のヒューマンループを作成できます。

フロー定義は、SageMaker AI コンソールで、または SageMaker API を使用して作成できます。これらのオプションの詳細については、「[人間によるレビューワークフローを作成する](a2i-create-flow-definition.md)」を参照してください。

**ワークチーム**  
ワークチームとは、人間によるレビュータスクを送信する人間のワーカーグループです。**

人間によるレビューワークフローを作成するときは、1 つのワークチームを指定します。

ワークチームは、[Amazon Mechanical Turk ワークフォース](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-management-public.html)、[ベンダー管理のワークフォース](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-management-vendor.html)、独自の[プライベートワークフォース](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-private.html)から形成できます。プライベートワークフォースを使用する場合、複数のワークチームを作成できます。各ワークチームは、複数の人間によるレビューワークフローで使用できます。ワークフォースとワークチームの作成方法については、「[ワークフォース](sms-workforce-management.md)」を参照してください。

**ワーカータスクテンプレートとヒューマンタスク UI**  
ワーカータスクテンプレートを使用して、人間によるレビュータスク用のワーカー UI (ヒューマンタスク UI) を作成します。****

ヒューマンタスク UI には、ドキュメントやイメージなどの入力データ、ワーカーへの指示が表示されます。また、ワーカーがタスクを完了するために使用する対話型ツールも用意されています。

組み込みタスクタイプの場合、そのタスクタイプに用意されている Amazon A2I ワーカータスクテンプレートを使用する必要があります。

## ヒューマンループ
<a name="a2i-getting-started-human-loop"></a>

ヒューマンループを使用して、人間によるレビュージョブが作成されます。**人間によるレビュージョブごとに、1 つのデータオブジェクトをレビューするタスクを送信するワーカーの数を選択できます。**例えば、イメージ分類ラベリングジョブに対するオブジェクトあたりのワーカー数を `3` に設定すると、3 人のワーカーが各入力イメージを分類します。オブジェクトあたりのワーカー数を増やすと、ラベルの精度を向上させることができます。

ヒューマンループは人間によるレビューワークフローを使用して次のように作成されます。
+ 組み込みタスクタイプの場合、人間によるレビューワークフローで指定された条件によって、ヒューマンループが作成されるタイミングが決まります。
+ 人間によるレビュータスクは、人間によるレビューワークフローで指定されたワークチームに送信されます。
+ 人間によるレビューワークフローで指定されたワーカータスクテンプレートは、ヒューマンタスク UI のレンダリングに使用されます。

**ヒューマンループが作成されるタイミング**

*組み込みタスクタイプ*のいずれかを使用すると、ヒューマンレビューワークフローで指定された条件が満たされると、対応する AWS サービスがユーザーに代わってヒューマンループを作成して開始します。 例:
+ Amazon Textract で Augmented AI を使用する場合、API オペレーション `AnalyzeDocument` を使用して Amazon A2I をドキュメントレビュータスクに統合できます。ヒューマンループは、Amazon Textract が人間によるレビューワークフローで指定した条件を満たすキーと値のペアについての推論を返すたびに作成されます。
+ Amazon Rekognition で Augmented AI を使用する場合、API オペレーション `DetectModerationLabels` を使用して Amazon A2I をイメージモデレーションタスクに統合できます。ヒューマンループは、Amazon Rekognition が人間によるレビューワークフローで指定した条件を満たすイメージコンテンツについての推論を返すたびに作成されます。

カスタムタスクタイプを使用する場合、[Amazon Augmented AI ランタイム API](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/Welcome.html) を使用してヒューマンループを開始します。**カスタムアプリケーションで `StartHumanLoop` を呼び出すと、タスクはヒューマンレビュワーに送信されます。

ヒューマンループを作成して開始する方法については、「[ヒューマンループを作成および開始する](a2i-start-human-loop.md)」を参照してください。

これらのリソースを生成し、人間によるレビューワークフローを作成するために、Amazon A2I は、Amazon Augmented AI ランタイムモデル、SageMaker API、タスクタイプに関連付けられた API など、複数の API を統合します。詳細については[Amazon Augmented AI で API を使用する](a2i-api-references.md)を参照してください。

**注記**  
AWS Amazon Textract などの他の AWS サービスで Augmented AI を使用すると、リージョンの可用性が異なる場合があります。これらの AWS サービスとやり取りするために使用するのと同じ AWS リージョンに Augmented AI リソースを作成します。すべてのサービスの AWS リージョンの可用性については、[リージョンテーブル](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)を参照してください。

# Augmented AI の使用の前提条件
<a name="a2i-getting-started-prerequisites"></a>

Amazon A2I は IAM、SageMaker AI、Amazon S3 のリソースを使用して、人間によるレビューワークフローを作成して実行します。人間によるレビューワークフローを作成するときに、Amazon A2I コンソールでこれらのリソースの一部を作成できます。この方法の詳細は、「[チュートリアル: Amazon A2I コンソールの使用を開始する](a2i-get-started-console.md)」を参照してください。

Amazon A2I を使用するには、次のリソースが必要です。
+ 入力および出力データのワークフローと同じ AWS リージョンにある 1 つ以上の Amazon S3 バケット。バケットを作成するには、*Amazon Simple Storage Service コンソールユーザーガイド*の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)」の手順に従います。
+ 人間によるレビューワークフローの作成に必要な権限を持つ IAM ロールと、Augmented AI へのアクセス許可を持つ IAM ユーザーまたはロール。詳細については、「[Amazon Augmented AI におけるアクセス許可とセキュリティ](a2i-permissions-security.md)」を参照してください。
+ 人間によるレビューワークフローに対するパブリック、プライベート、ベンダーワークフォース。プライベートワークフォースを使用する場合は、Amazon A2I ワークフローと同じ AWS リージョンで事前にセットアップする必要があります。これらのワークフォースタイプの詳細については、「[ワークフォース](sms-workforce-management.md)」を参照してください。
**重要**  
現時点での Amazon Augmented AI に対応するコンプライアンスプログラムの詳細については、「[コンプライアンスプログラムによる対象範囲内のAWS のサービス](https://aws.amazon.com/compliance/services-in-scope/)」を参照してください。Amazon Augmented AI を他の AWS サービス (Amazon Rekognition や Amazon Textract など) と組み合わせて使用する場合、Amazon Augmented AI はそれらの他のサービスと同じコンプライアンスプログラムの対象ではない可能性があることに注意してください。お客様は、サービスによる顧客データの処理と保存方法や、データ環境のコンプライアンスへの影響について理解することなど、Amazon Augmented AI の使用について責任があります。ワークロードの目的と目標を AWS アカウントチームに相談する必要があります。これらは、サービスが提案されたユースケースとアーキテクチャに適しているかどうかを評価するのに役立ちます。

# チュートリアル: Amazon A2I コンソールの使用を開始する
<a name="a2i-get-started-console"></a>

次のチュートリアルは、Amazon A2I コンソールで Amazon A2I の使用を開始する方法を示しています。

このチュートリアルでは、ドキュメントレビューに Amazon Textract で Augmented AI を使用するか、イメージコンテンツのレビューに Amazon Rekognition を使用するオプションが用意されています。

## 前提条件
<a name="a2i-getting-started-console-prerequisites"></a>

Amazon A2I の使用を開始するには、次の前提条件を満たしてください。
+ 入出力データのワークフローと同じ AWS リージョンに Amazon S3 バケットを作成します。例えば、us-east-1 で Amazon A2I を Amazon Textract と使用している場合、us-east-1 でバケットを作成します。バケットを作成するには、*Amazon Simple Storage Service コンソールユーザーガイド*の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)」の手順に従います。
+ 次のいずれかを行います。
  + Amazon Textract を使用してチュートリアルを実施する場合は、以下のイメージをダウンロードして Amazon S3 バケットに配置します。  
![\[簡単な雇用申請書\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i/getting-started/sample-document-final.png)
  + Amazon Rekognition を使用してチュートリアルを実施する場合は、以下のイメージをダウンロードして Amazon S3 バケットに配置します。  
![\[ビーチでヨガをしているビキニ姿の女性\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i/getting-started/yoga_swimwear_resized.jpg)

**注記**  
Amazon A2I コンソールは SageMaker AI コンソールに埋め込まれています。

## ステップ 1: ワークチームを作成する
<a name="a2i-get-started-console-step-1"></a>

まず、Amazon A2I コンソールでワークチームを作成し、ワーカーレビュータスクをプレビューできるようにワーカーとして自分自身を追加します。

**重要**  
このチュートリアルでは、プライベートワークチームを使用します。Amazon A2I プライベートワークフォースは SageMaker AI コンソールの Ground Truth 領域で設定され、Amazon A2I と Ground Truth 間で共有されます。

**ワーカーの E メールを使用してプライベートワークフォースを作成するには**

1. SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

1. ナビゲーションペインで、**[Ground Truth]** にある **[Labeling workforces]** (ラベリングワークフォース) を選択します。

1. **[Private]** (プライベート)、**[Create private team]** (プライベートチームの作成) の順に選択します。

1. **[Invite new workers by email]** (E メールで新しいワーカーを招待する) を選択します。

1. このチュートリアルでは、E メールや、ヒューマンタスク UI をプレビュー可能にするその他の要素を入力します。最大 50 のメールアドレスが含まれるカンマ区切りの E メールアドレスリストを E メールアドレスボックスに貼り付けるか、入力できます。

1. 組織名と連絡先メールアドレスを入力します。

1. 必要に応じて、新しい Ground Truth ラベリングジョブが利用可能になったときに、ワーカーに E メールで通知されるように、チームをサブスクライブする Amazon SNS トピックを選択します。Amazon SNS 通知は Ground Truth でサポートされていますが、Augmented AI ではサポートされていません。Amazon SNS 通知を受信するようワーカーをサブスクライブすると、Ground Truth ラベリングジョブに関する通知のみがワーカーに届きます。Augmented AI タスクに関する通知は届きません。

1.  **[Create private team]** (プライベートチームを作成) を選択します。

プライベートワークチームに自分自身を追加すると、ログイン情報が含まれる E メールが `no-reply@verificationemail.com` から届きます。この E メールのリンクを使用してパスワードをリセットし、ワーカーポータルにログインします。ヒューマンループの作成時に、人間によるレビュータスクはここに表示されます。

## ステップ 2: 人間によるレビューワークフローを作成する
<a name="a2i-get-started-console-step-2"></a>

このステップでは、人間によるレビューワークフローを作成します。人間によるレビューワークフローは特定の[タスクタイプ](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-task-types-general.html)ごとに作成されます。このチュートリアルでは、組み込みタスクタイプ (Amazon Rekognition と Amazon Textract) のいずれかを選択できます。

**人間によるレビューワークフローを作成するには、次の手順を実行します。**

1. Augmented AI コンソール ([https://console.aws.amazon.com/a2i](https://console.aws.amazon.com/a2i/)) を開き、**[Human review workflows]** (人間によるレビューワークフロー) ページにアクセスします。

1. **[Create human review workflow]** (人間によるレビューワークフローを作成) を選択します。

1. **ワークフロー設定**で、このチュートリアル用に作成したワークフロー**名**、**S3 バケット**、**IAM ロール**を、 AWS 管理ポリシーが`AmazonAugmentedAIIntegratedAPIAccess`アタッチされた状態で入力します。

1. **[Task type]** (タスクタイプ) に対して、**[Textract – Key-value pair extraction]** (Textract - キーと値のペアの抽出) または **[Rekognition – Image moderation]** (Rekognition - イメージモデレーション) を選択します。

1. 次の表から選択したタスクタイプを選択し、そのタスクタイプの手順を確認します。

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

   1. **[Trigger a human review for specific form keys based on the form key confidence score or when specific form keys are missing]** (フォームキーの信頼性スコアに基づいて、または特定のフォームキーが見つからない場合、特定のフォームキーに対して人間によるレビューをトリガー) を選択します。

   2. **[Key name]** (キー名) で `Mail Address` を入力します。

   3. `0` から `99` までの識別信頼度しきい値を設定します。

   4. `0` から `99` までの資格信頼度しきい値を設定します。

   5. **[指定された範囲の信頼性スコアであると Amazon Textract によって識別されたすべてのフォームキーに対して、人間によるレビューをトリガー]** を選択します。

   6. `0` から `90` までの識別信頼度しきい値を設定します。

   7. `0` から `90` までの資格信頼度しきい値を設定します。

   この結果、Amazon Textract が `Mail Address` とそのキーに対して `99` 未満の信頼スコアを返すか、ドキュメントで検出された任意のキーと値のペアに対して `90` 未満の信頼スコアを返す場合、人間によるレビューが開始されます。

   次の図は、Amazon A2I コンソールの [Amazon Textract form extraction - Conditions for invoking human review ] (Amazon Textract フォームの抽出 - 人間によるレビューを呼び出す条件) セクションを示しています。この図では、前の段落で説明した 2 つのタイプのトリガーのチェックボックスがオンになっており、`Mail Address` は最初のトリガーの **[Key name]** (キー名) として使われています。識別信頼しきい値は、フォーム内で検出されるキーと値のペアの信頼度スコアを使用して定義され、0 ～ 99 の間で設定されます。資格信頼度しきい値は、フォーム内のキーと値に含まれるテキストの信頼度スコアを使用して定義され、0 ～ 99 の間で設定されます。

![\[Amazon A2I コンソールの、人間によるレビューを呼び出す条件のセクション。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i/getting-started/Textract-conditions.png)


------
#### [ Amazon Rekognition – Image moderation ]

   1. **[ラベルの信頼性スコアに基づいて Amazon Rekognition によって識別されたラベルに対して人間によるレビューをトリガー]** を選択します。

   2. `0` から `98` の **[Threshold]** (しきい値) を設定します。

   Amazon Rekognition がイメージモデレーションジョブに対して `98` 未満の信頼度スコアを返す場合、人間によるレビューが開始されます。

   次の図は、**[Trigger human review for labels identified by Amazon Rekognition based on label confidence score]** (ラベルの信頼性スコアに基づいて Amazon Rekognition によって識別されたラベルに対して人間によるレビューをトリガー) オプションを選択し、Amazon A2I コンソールで 0 ～ 98 の **[Threshold]** (しきい値) を入力する方法を示しています。

![\[Amazon A2I コンソールの、人間によるレビューを呼び出す条件のセクション。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i/getting-started/Rek-conditions.png)


------

1. **[Worker task template creation]** (ワーカータスクテンプレートを作成) で、**[Create from a default template]** (既定のテンプレートから作成) を選択します。

1. **[Template name]** (テンプレート名) を入力します。

1. **[Task description]** (タスクの説明) フィールドに、次のテキストを入力します。

   `Read the instructions carefully and complete the task.`

1. **[Workers]** (ワーカー) で、**[Private]** (プライベート) を選択します。

1. 作成したプライベートチームを選択します。

1. **[作成]** を選択します。

人間によるレビューワークフローが作成されると、そのワークフローは、**[Human review workflows]** (人間によるレビューワークフロー) ページに表示されます。**[Status]** (ステータス) が `Active` の場合、ワークフロー ARN をコピーして保存します。これは次の手順で必要になります。

## ステップ 3: ヒューマンループを開始する
<a name="a2i-get-started-console-step-3"></a>

ヒューマンループを開始するには、API オペレーションを使用する必要があります。これらの API オペレーションの操作には言語固有のさまざまな SDK を使用できます。これらの SDK の各ドキュメントについては、次の図に示すように、API ドキュメントの「**以下の資料も参照してください**」を参照してください。

![\[Amazon Textract API ドキュメントの [See Also] セクションのスクリーンショット\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i/getting-started/see-also.png)


このチュートリアルでは、次の API のいずれかを使用します。
+ Amazon Textract タスクタイプを選択した場合、`[AnalyzeDocument](https://docs.aws.amazon.com/textract/latest/dg/API_AnalyzeDocument.html)` オペレーションを使用します。
+ Amazon Rekognition タスクタイプを選択した場合、`[DetectModerationLabels](https://docs.aws.amazon.com/rekognition/latest/dg/API_DetectModerationLabels.html)` オペレーションを使用します。

これらの APIs は、SageMaker ノートブックインスタンス (新規ユーザーに推奨) または AWS Command Line Interface () を使用して操作できますAWS CLI。これらのオプションの詳細について、次のいずれかを選択して参照します。
+ ノートブックインスタンスの詳細を確認して設定する場合は、「[Amazon SageMaker ノートブックインスタンス](nbi.md)」を参照してください。
+ の詳細と使用開始については AWS CLI、「 *AWS Command Line Interface ユーザーガイド*[」の AWS 「 コマンドラインインターフェイスとは](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)」を参照してください。

 AWS SDK for Python (Boto3)を使用した Amazon Textract および Amazon Rekognition のリクエスト例については、次の表からタスクタイプを選択して参照してください。

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

次の例では、 を使用して us-west-2 `analyze_document`で AWS SDK for Python (Boto3) を呼び出します。斜体の赤いテキストはリソースに置き換えます。Amazon Mechanical Turk ワークフォースを使用している場合は、[https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_HumanLoopDataAttributes.html](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_HumanLoopDataAttributes.html) パラメータを含めます。詳細については、*AWS SDK for Python (Boto) API リファレンス*の「`[analyze\$1document](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/textract.html#Textract.Client.analyze_document)`」のドキュメントを参照してください。

```
   response = client.analyze_document(
         Document={
                "S3Object": {
                    "Bucket": "amzn-s3-demo-bucket", 
                    "Name": "document-name.pdf"
                }
         },
         HumanLoopConfig={
            "FlowDefinitionArn":"arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name",
            "HumanLoopName":"human-loop-name",
            "DataAttributes" : {
                "ContentClassifiers":["FreeOfPersonallyIdentifiableInformation","FreeOfAdultContent"]
            }
         },
         FeatureTypes=["TABLES", "FORMS"])
```

------
#### [ Amazon Rekognition – Image moderation ]

次の例では、 を使用して us-west-2 `detect_moderation_labels`で AWS SDK for Python (Boto3) を呼び出します。斜体の赤いテキストはリソースに置き換えます。Amazon Mechanical Turk ワークフォースを使用している場合は、[https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_HumanLoopDataAttributes.html](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_HumanLoopDataAttributes.html) パラメータを含めます。詳細については、*AWS SDK for Python (Boto) API リファレンス*の「`[detect\$1moderation\$1labels](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rekognition.html#Rekognition.Client.detect_moderation_labels)`」のドキュメントを参照してください。

```
   response = client.detect_moderation_labels(
            Image={
                "S3Object":{
                    "Bucket": "amzn-s3-demo-bucket", 
                    "Name": "image-name.png"
                }
            },
            HumanLoopConfig={
               "FlowDefinitionArn":"arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name",
               "HumanLoopName":"human-loop-name",
               "DataAttributes":{
                    ContentClassifiers:["FreeOfPersonallyIdentifiableInformation"|"FreeOfAdultContent"]
                }
             })
```

------

## ステップ 4: コンソールでヒューマンループステータスを表示する
<a name="a2i-get-started-console-step-4"></a>

ヒューマンループを開始すると、Amazon A2I コンソールでそのステータスを表示できます。

**ヒューマンループステータスを表示するには**

1. Augmented AI コンソール ([https://console.aws.amazon.com/a2i](https://console.aws.amazon.com/a2i/)) を開き、**[Human review workflows]** (人間によるレビューワークフロー) ページにアクセスします。

1. ヒューマンループの開始に使用した人間によるレビューワークフローを選択します。

1. **[Human loops]** (ヒューマンループ) セクションで、ヒューマンループを確認できます。そのステータスを **[Status]** (ステータス) 列で確認します。

## ステップ 5: 出力データをダウンロードする
<a name="a2i-get-started-console-step-5"></a>

出力データは、人間によるレビューワークフローの作成時に指定した Amazon S3 バケットに保存されます。

**Amazon A2I 出力データを表示するには**

1. [Amazon S3 コンソール](https://console.aws.amazon.com/s3/)を開きます。

1. この例のステップ 2 で人間によるレビューワークフローの作成時に指定した Amazon S3 バケットを選択します。

1. 人間によるレビューワークフローと同じ名前のフォルダから開始し、次の命名規則でフォルダを選択して出力データに移動します。

   ```
   s3://output-bucket-specified-in-human-review-workflow/human-review-workflow-name/YYYY/MM/DD/hh/mm/ss/human-loop-name/output.json
   ```

1. `output.json` を選択し、**[Download]** (ダウンロード) を選択します。

# チュートリアル: Amazon A2I API の使用を開始する
<a name="a2i-get-started-api"></a>

このチュートリアルでは、Amazon A2I で使用開始に使用できる API オペレーションについて説明します。

Jupyter ノートブックを使用してこれらの操作を実行するには、「[Amazon A2I を使用したユースケースと例](a2i-task-types-general.md)」から Jupyter ノートブックを選択し、それを SageMaker AI ノートブックインスタンスで使用する方法について、「[Amazon A2I Jupyter ノートブックで SageMaker ノートブックインスタンスを使用する](a2i-task-types-general.md#a2i-task-types-notebook-demo)」を参照して学習します。

Amazon A2I で使用できる API オペレーションの詳細については、「[Amazon Augmented AI で API を使用する](a2i-api-references.md)」を参照してください。

## プライベートワークチームを作成する
<a name="a2i-get-started-api-create-work-team"></a>

プライベートワークチームを作成し、自分自身をワーカーとして追加して Amazon A2I をプレビューできます。

Amazon Cognito について詳しくない場合は、SageMaker AI コンソールを使用してプライベートワークフォースを作成し、プライベートワーカーとして自分自身を追加することをお勧めします。手順については、「[ステップ 1: ワークチームを作成する](a2i-get-started-console.md#a2i-get-started-console-step-1)」を参照してください。

Amazon Cognito に精通している場合は、次の手順に従い、SageMaker API を使用してプライベートワークチームを作成できます。ワークチームを作成したら、ワークチーム ARN (`WorkteamArn`) を確認します。

プライベートワークフォースと、利用可能な他の設定の詳細については、「[プライベートワークフォース](sms-workforce-private.md)」を参照してください。

**プライベートワークフォースを作成する**  
プライベートワークフォースを作成していない場合、[Amazon Cognito ユーザープール](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html)を使用して作成できます。このユーザープールに自分自身を追加してください。`[create\$1workforce](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_workforce)` 関数を使用して AWS SDK for Python (Boto3) プライベートワークチームを作成できます。その他の言語固有の SDK については、「[CreateWorkforce](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateWorkforce.html#API_CreateWorkforce_SeeAlso)」のリストを参照してください。

```
    
    response = client.create_workforce(
        CognitoConfig={
            "UserPool": "Pool_ID",
            "ClientId": "app-client-id"
        },
        WorkforceName="workforce-name"
    )
```

**プライベートワークチームを作成する**  
 AWS リージョンでヒューマンループを設定して開始するプライベートワークフォースを作成したら、 AWS SDK for Python (Boto3) `[create\$1workteam](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_workteam)`関数を使用してプライベートワークチームを作成できます。その他の言語固有の SDK については、「`[CreateWorkteam](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateWorkteam.html#API_CreateWorkteam_SeeAlso)`」のリストを参照してください。

```
    response = client.create_workteam(
        WorkteamName="work-team-name",
        WorkforceName= "workforce-name",
        MemberDefinitions=[
            {
                "CognitoMemberDefinition": {
                    "UserPool": "<aws-region>_ID",
                    "UserGroup": "user-group",
                    "ClientId": "app-client-id"
                },
            }
        ]
    )
```

次のように、ワークチーム ARN にアクセスします。

```
    workteamArn = response["WorkteamArn"]
```

**アカウント内のプライベートワークチームを一覧表示する**  
プライベート作業チームを既に作成している場合は、 関数を使用して AWS SDK for Python (Boto3) `[list\$1workteams](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.list_workteams)`、アカウント内の特定の AWS リージョンのすべての作業チームを一覧表示できます。その他の言語固有の SDK については、「`[ListWorkteams](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListWorkteams.html#API_ListWorkteams_SeeAlso)`」のリストを参照してください。

```
    response = client.list_workteams()
```

アカウントに多数のワークチームがある場合、`MaxResults`、`SortBy`、`NameContains` を使用して結果をフィルタリングすることもできます。

## 人間によるレビューワークフローを作成する
<a name="a2i-get-started-api-create-human-review-workflow"></a>

Amazon A2I `[CreateFlowDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html)` オペレーションを使用して、人間によるレビューワークフローを作成できます。人間によるレビューワークフローを作成する前に、ヒューマンタスク UI を作成する必要があります。これは、`[CreateHumanTaskUi](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html)` オペレーションで実行できます。

Amazon Textract または Amazon Rekognition 統合で Amazon A2I を使用している場合、JSON を使用してアクティベーション条件を指定できます。

### ヒューマンタスク UI を作成する
<a name="a2i-get-started-api-worker-task-template"></a>

Amazon Textract または Amazon Rekognition 統合で使用する人間によるレビューワークフローを作成する場合、事前に作成されたワーカータスクテンプレートを使用して変更する必要があります。すべてのカスタム統合で独自のカスタムワーカータスクテンプレートを使用できます。次の表では、2 つの組み込み統合のワーカータスクテンプレートを使用してヒューマンタスク UI を作成する方法について説明します。テンプレートを独自のテンプレートに置き換えて、このリクエストをカスタマイズしてください。

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

このテンプレートの詳細については、「[Amazon Textract のカスタムテンプレートの例](a2i-custom-templates.md#a2i-custom-templates-textract-sample)」を参照してください。

```
template = r"""
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script>
{% capture s3_uri %}http://s3.amazonaws.com/{{ task.input.aiServiceRequest.document.s3Object.bucket }}/{{ task.input.aiServiceRequest.document.s3Object.name }}{% endcapture %}
<crowd-form>
  <crowd-textract-analyze-document 
      src="{{ s3_uri | grant_read_access }}" 
      initial-value="{{ task.input.selectedAiServiceResponse.blocks }}" 
      header="Review the key-value pairs listed on the right and correct them if they don"t match the following document." 
      no-key-edit="" 
      no-geometry-edit="" 
      keys="{{ task.input.humanLoopContext.importantFormKeys }}" 
      block-types='["KEY_VALUE_SET"]'>
    <short-instructions header="Instructions">
        <p>Click on a key-value block to highlight the corresponding key-value pair in the document.
        </p><p><br></p>
        <p>If it is a valid key-value pair, review the content for the value. If the content is incorrect, correct it.
        </p><p><br></p>
        <p>The text of the value is incorrect, correct it.</p>
        <p><img src="https://assets.crowd.aws/images/a2i-console/correct-value-text.png">
        </p><p><br></p>
        <p>A wrong value is identified, correct it.</p>
        <p><img src="https://assets.crowd.aws/images/a2i-console/correct-value.png">
        </p><p><br></p>
        <p>If it is not a valid key-value relationship, choose No.</p>
        <p><img src="https://assets.crowd.aws/images/a2i-console/not-a-key-value-pair.png">
        </p><p><br></p>
        <p>If you can’t find the key in the document, choose Key not found.</p>
        <p><img src="https://assets.crowd.aws/images/a2i-console/key-is-not-found.png">
        </p><p><br></p>
        <p>If the content of a field is empty, choose Value is blank.</p>
        <p><img src="https://assets.crowd.aws/images/a2i-console/value-is-blank.png">
        </p><p><br></p>
        <p><strong>Examples</strong></p>
        <p>Key and value are often displayed next or below to each other.
        </p><p><br></p>
        <p>Key and value displayed in one line.</p>
        <p><img src="https://assets.crowd.aws/images/a2i-console/sample-key-value-pair-1.png">
        </p><p><br></p>
        <p>Key and value displayed in two lines.</p>
        <p><img src="https://assets.crowd.aws/images/a2i-console/sample-key-value-pair-2.png">
        </p><p><br></p>
        <p>If the content of the value has multiple lines, enter all the text without line break. 
        Include all value text even if it extends beyond the highlight box.</p>
        <p><img src="https://assets.crowd.aws/images/a2i-console/multiple-lines.png"></p>
    </short-instructions>
    <full-instructions header="Instructions"></full-instructions>
  </crowd-textract-analyze-document>
</crowd-form>
"""
```

------
#### [ Amazon Rekognition – Image moderation ]

このテンプレートの詳細については、「[Amazon Rekognition のカスタムテンプレートの例](a2i-custom-templates.md#a2i-custom-templates-rekognition-sample)」を参照してください。

```
template = r"""
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script>
{% capture s3_uri %}http://s3.amazonaws.com/{{ task.input.aiServiceRequest.image.s3Object.bucket }}/{{ task.input.aiServiceRequest.image.s3Object.name }}{% endcapture %}

<crowd-form>
  <crowd-rekognition-detect-moderation-labels
    categories='[
      {% for label in task.input.selectedAiServiceResponse.moderationLabels %}
        {
          name: "{{ label.name }}",
          parentName: "{{ label.parentName }}",
        },
      {% endfor %}
    ]'
    src="{{ s3_uri | grant_read_access }}"
    header="Review the image and choose all applicable categories."
  >
    <short-instructions header="Instructions">
      <style>
        .instructions {
          white-space: pre-wrap;
        }
      </style>
      <p class="instructions">Review the image and choose all applicable categories.
If no categories apply, choose None.

<b>Nudity</b>
Visuals depicting nude male or female person or persons

<b>Partial Nudity</b>
Visuals depicting covered up nudity, for example using hands or pose

<b>Revealing Clothes</b>
Visuals depicting revealing clothes and poses

<b>Physical Violence</b>
Visuals depicting violent physical assault, such as kicking or punching

<b>Weapon Violence</b>
Visuals depicting violence using weapons like firearms or blades, such as shooting

<b>Weapons</b>
Visuals depicting weapons like firearms and blades
    </short-instructions>

    <full-instructions header="Instructions"></full-instructions>
  </crowd-rekognition-detect-moderation-labels>
</crowd-form>"""
```

------
#### [ Custom Integration ]

カスタム統合で使用できるテンプレートの例を次に示します。このテンプレートは、Amazon Comprehend とのカスタム統合を示す、こちらの[ノートブック](https://github.com/aws-samples/amazon-a2i-sample-jupyter-notebooks/blob/master/Amazon%20Augmented%20AI%20(A2I)%20and%20Comprehend%20DetectSentiment.ipynb)で使用されています。

```
template = r"""
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script>

<crowd-form>
    <crowd-classifier
      name="sentiment"
      categories='["Positive", "Negative", "Neutral", "Mixed"]'
      initial-value="{{ task.input.initialValue }}"
      header="What sentiment does this text convey?"
    >
      <classification-target>
        {{ task.input.taskObject }}
      </classification-target>
      
      <full-instructions header="Sentiment Analysis Instructions">
        <p><strong>Positive</strong> sentiment include: joy, excitement, delight</p>
        <p><strong>Negative</strong> sentiment include: anger, sarcasm, anxiety</p>
        <p><strong>Neutral</strong>: neither positive or negative, such as stating a fact</p>
        <p><strong>Mixed</strong>: when the sentiment is mixed</p>
      </full-instructions>

      <short-instructions>
       Choose the primary sentiment that is expressed by the text. 
      </short-instructions>
    </crowd-classifier>
</crowd-form>
"""
```

------

上記のテンプレートを使用して、 AWS SDK for Python (Boto3) `[create\$1human\$1task\$1ui](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_human_task_ui)`関数を使用してテンプレートを作成できます。その他の言語固有の SDK については、「`[CreateHumanTaskUi](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html#API_CreateHumanTaskUi_SeeAlso)`」のリストを参照してください。

```
    
    response = client.create_human_task_ui(
        HumanTaskUiName="human-task-ui-name",
        UiTemplate={
            "Content": template
        }
    )
```

このレスポンス要素には、ヒューマンタスク UI ARN が含まれます。これを次のように保存します。

```
    humanTaskUiArn = response["HumanTaskUiArn"]
```

### JSON を作成してアクティベーション条件を指定する
<a name="a2i-get-started-api-activation-conditions"></a>

Amazon Textract と Amazon Rekognition の組み込み統合では、アクティベーション条件を JSON オブジェクトに保存し、それを `CreateFlowDefinition` リクエストで使用できます。

次に、タブを選択して、これらの組み込み統合に使用できるアクティベーション条件の例を確認します。アクティベーション条件オプションの詳細については、「[Amazon Augmented AI のヒューマンループのアクティベーション条件に対する JSON スキーマ](a2i-human-fallback-conditions-json-schema.md)」を参照してください。

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

この例では、ドキュメント内の特定のキー (`Mail address` など) の条件を指定します。Amazon Textract の信頼度がこちらで設定したしきい値を超えている場合、ドキュメントは人間によるレビュー用に送られ、ヒューマンループを開始した特定のキーによりそのワーカーにプロンプト表示されます。

```
      import json  

      humanLoopActivationConditions = json.dumps(
        {
            "Conditions": [
                {
                  "Or": [
                    
                    {
                        "ConditionType": "ImportantFormKeyConfidenceCheck",
                        "ConditionParameters": {
                            "ImportantFormKey": "Mail address",
                            "ImportantFormKeyAliases": ["Mail Address:","Mail address:", "Mailing Add:","Mailing Addresses"],
                            "KeyValueBlockConfidenceLessThan": 100,
                            "WordBlockConfidenceLessThan": 100
                        }
                    },
                    {
                        "ConditionType": "MissingImportantFormKey",
                        "ConditionParameters": {
                            "ImportantFormKey": "Mail address",
                            "ImportantFormKeyAliases": ["Mail Address:","Mail address:","Mailing Add:","Mailing Addresses"]
                        }
                    },
                    {
                        "ConditionType": "ImportantFormKeyConfidenceCheck",
                        "ConditionParameters": {
                            "ImportantFormKey": "Phone Number",
                            "ImportantFormKeyAliases": ["Phone number:", "Phone No.:", "Number:"],
                            "KeyValueBlockConfidenceLessThan": 100,
                            "WordBlockConfidenceLessThan": 100
                        }
                    },
                    {
                      "ConditionType": "ImportantFormKeyConfidenceCheck",
                      "ConditionParameters": {
                        "ImportantFormKey": "*",
                        "KeyValueBlockConfidenceLessThan": 100,
                        "WordBlockConfidenceLessThan": 100
                      }
                    },
                    {
                      "ConditionType": "ImportantFormKeyConfidenceCheck",
                      "ConditionParameters": {
                        "ImportantFormKey": "*",
                        "KeyValueBlockConfidenceGreaterThan": 0,
                        "WordBlockConfidenceGreaterThan": 0
                      }
                    }
            ]
        }
            ]
        }
    )
```

------
#### [ Amazon Rekognition – Image moderation ]

ここで使われるヒューマンループのアクティベーション条件は、Amazon Rekognition コンテンツのモデレーションに合わせて調整されます。これらは、`Suggestive` と `Female Swimwear Or Underwear` モデレーションラベルに対する信頼度しきい値に基づいています。

```
        import json  

        humanLoopActivationConditions = json.dumps(
        {
            "Conditions": [
                {
                  "Or": [
                    {
                        "ConditionType": "ModerationLabelConfidenceCheck",
                        "ConditionParameters": {
                            "ModerationLabelName": "Suggestive",
                            "ConfidenceLessThan": 98
                        }
                    },
                    {
                        "ConditionType": "ModerationLabelConfidenceCheck",
                        "ConditionParameters": {
                            "ModerationLabelName": "Female Swimwear Or Underwear",
                            "ConfidenceGreaterThan": 98
                        }
                    }
                  ]
               }
            ]
        }
    )
```

------

### 人間によるレビューワークフローを作成する
<a name="a2i-get-started-api-flow-definition"></a>

このセクションでは、前のセクションで作成したリソースを使用した`CreateFlowDefinition` AWS SDK for Python (Boto3) リクエストの例を示します。その他の言語固有の SDK については、「[CreateFlowDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html#API_CreateFlowDefinition_SeeAlso)」のリストを参照してください。次の表にあるタブで、Amazon Textract と Amazon Rekognition の組み込み統合に対する人間によるレビューワークフローの作成リクエストを確認します。

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

Amazon Textract との組み込み統合を使用する場合、`HumanLoopRequestSource` で `"AWS/Textract/AnalyzeDocument/Forms/V1"` と `"AwsManagedHumanLoopRequestSource"` を指定する必要があります。

```
    response = client.create_flow_definition(
        FlowDefinitionName="human-review-workflow-name",
        HumanLoopRequestSource={
            "AwsManagedHumanLoopRequestSource": "AWS/Textract/AnalyzeDocument/Forms/V1"
        }, 
        HumanLoopActivationConfig={
            "HumanLoopActivationConditionsConfig": {
                "HumanLoopActivationConditions": humanLoopActivationConditions
            }
        },
        HumanLoopConfig={
            "WorkteamArn": workteamArn,
            "HumanTaskUiArn": humanTaskUiArn,
            "TaskTitle": "Document entry review",
            "TaskDescription": "Review the document and instructions. Complete the task",
            "TaskCount": 1,
            "TaskAvailabilityLifetimeInSeconds": 43200,
            "TaskTimeLimitInSeconds": 3600,
            "TaskKeywords": [
                "document review",
            ],
        },
        OutputConfig={
            "S3OutputPath": "s3://amzn-s3-demo-bucket/prefix/",
        },
        RoleArn="arn:aws:iam::<account-number>:role/<role-name>",
        Tags=[
            {
                "Key": "string",
                "Value": "string"
            },
        ]
    )
```

------
#### [ Amazon Rekognition – Image moderation ]

Amazon Rekognition との組み込み統合を使用する場合、`HumanLoopRequestSource` で `"AWS/Rekognition/DetectModerationLabels/Image/V3"` と `"AwsManagedHumanLoopRequestSource"` を指定する必要があります。

```
    response = client.create_flow_definition(
        FlowDefinitionName="human-review-workflow-name",
        HumanLoopRequestSource={
            "AwsManagedHumanLoopRequestSource": "AWS/Rekognition/DetectModerationLabels/Image/V3"
        }, 
        HumanLoopActivationConfig={
            "HumanLoopActivationConditionsConfig": {
                "HumanLoopActivationConditions": humanLoopActivationConditions
            }
        },
        HumanLoopConfig={
            "WorkteamArn": workteamArn,
            "HumanTaskUiArn": humanTaskUiArn,
            "TaskTitle": "Image content moderation",
            "TaskDescription": "Review the image and instructions. Complete the task",
            "TaskCount": 1,
            "TaskAvailabilityLifetimeInSeconds": 43200,
            "TaskTimeLimitInSeconds": 3600,
            "TaskKeywords": [
                "content moderation",
            ],
        },
        OutputConfig={
            "S3OutputPath": "s3://amzn-s3-demo-bucket/prefix/",
        },
        RoleArn="arn:aws:iam::<account-number>:role/<role-name>",
        Tags=[
            {
                "Key": "string",
                "Value": "string"
            },
        ]
    )
```

------
#### [ Custom Integration ]

カスタム統合を使用する場合、`HumanLoopRequestSource` と `HumanLoopActivationConfig` のパラメータを除外します。

```
    response = client.create_flow_definition(
        FlowDefinitionName="human-review-workflow-name",
        HumanLoopConfig={
            "WorkteamArn": workteamArn,
            "HumanTaskUiArn": humanTaskUiArn,
            "TaskTitle": "Image content moderation",
            "TaskDescription": "Review the image and instructions. Complete the task",
            "TaskCount": 1,
            "TaskAvailabilityLifetimeInSeconds": 43200,
            "TaskTimeLimitInSeconds": 3600,
            "TaskKeywords": [
                "content moderation",
            ],
        },
        OutputConfig={
            "S3OutputPath": "s3://amzn-s3-demo-bucket/prefix/",
        },
        RoleArn="arn:aws:iam::<account-number>:role/<role-name>",
        Tags=[
            {
                "Key": "string",
                "Value": "string"
            },
        ]
    )
```

------

人間によるレビューワークフローを作成した後、レスポンスからフロー定義 ARN を取得できます。

```
    humanReviewWorkflowArn = response["FlowDefinitionArn"]    
```

## ヒューマンループを作成する
<a name="a2i-get-started-api-create-human-loop"></a>

ヒューマンループの開始に使用する API オペレーションは、使用する Amazon A2I 統合によって異なります。
+ Amazon Textract 組み込み統合を使用する場合、[AnalyzeDocument](https://docs.aws.amazon.com/textract/latest/dg/API_AnalyzeDocument.html) オペレーションを使用します。
+ Amazon Rekognition 組み込み統合を使用する場合、[DetectModerationLabels](https://docs.aws.amazon.com/rekognition/latest/dg/API_DetectModerationLabels.html) オペレーションを使用します。
+ カスタム統合を使用する場合、[StartHumanLoop](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_StartHumanLoop.html) オペレーションを使用します。

 AWS SDK for Python (Boto3)を使用した Amazon Textract および Amazon Rekognition のリクエスト例については、次の表からタスクタイプを選択して参照してください。

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

次の例では、 を使用して us-west-2 `analyze_document`で AWS SDK for Python (Boto3) を呼び出します。斜体の赤いテキストはリソースに置き換えます。Amazon Mechanical Turk ワークフォースを使用している場合は、[https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_HumanLoopDataAttributes.html](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_HumanLoopDataAttributes.html) パラメータを含めます。詳細については、*AWS SDK for Python (Boto) APIリファレンス*の「[analyze\$1document](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/textract.html#Textract.Client.analyze_document)」のドキュメントを参照してください。

```
   response = client.analyze_document(
         Document={"S3Object": {"Bucket": "amzn-s3-demo-bucket", "Name": "document-name.pdf"},
         HumanLoopConfig={
            "FlowDefinitionArn":"arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name",
            "HumanLoopName":"human-loop-name",
            "DataAttributes" : {ContentClassifiers:["FreeOfPersonallyIdentifiableInformation"|"FreeOfAdultContent"]}
         }
         FeatureTypes=["FORMS"]
    )
```

ヒューマンループは、Amazon Textract のドキュメント分析に対する信頼度タスクが人間によるレビューワークフローで指定したアクティベーション条件を満たしている場合にのみ作成されます。`response` 要素をチェックし、ヒューマンループが作成されたかどうかを判断できます。このレスポンスに含まれるものすべてを表示するには、[https://docs.aws.amazon.com/textract/latest/dg/API_HumanLoopActivationOutput.html](https://docs.aws.amazon.com/textract/latest/dg/API_HumanLoopActivationOutput.html) を確認します。

```
    if "HumanLoopArn" in analyzeDocumentResponse["HumanLoopActivationOutput"]:
        # A human loop has been started!
        print(f"A human loop has been started with ARN: {analyzeDocumentResponse["HumanLoopActivationOutput"]["HumanLoopArn"]}"
```

------
#### [ Amazon Rekognition – Image moderation ]

次の例では、 を使用して us-west-2 `detect_moderation_labels`で AWS SDK for Python (Boto3) を呼び出します。斜体の赤いテキストはリソースに置き換えます。Amazon Mechanical Turk ワークフォースを使用している場合は、[https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_HumanLoopDataAttributes.html](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_HumanLoopDataAttributes.html) パラメータを含めます。詳細については、*AWS SDK for Python (Boto) API リファレンス*の「[detect\$1moderation\$1labels](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rekognition.html#Rekognition.Client.detect_moderation_labels)」のドキュメントを参照してください。

```
   response = client.detect_moderation_labels(
            Image={"S3Object":{"Bucket": "amzn-s3-demo-bucket", "Name": "image-name.png"}},
            HumanLoopConfig={
               "FlowDefinitionArn":"arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name",
               "HumanLoopName":"human-loop-name",
               "DataAttributes":{ContentClassifiers:["FreeOfPersonallyIdentifiableInformation"|"FreeOfAdultContent"]}
             }
    )
```

ヒューマンループは、イメージモデレーションタスクに対する Amazon Rekognition の信頼度が人間によるレビューワークフローで指定したアクティベーション条件を満たしている場合にのみ作成されます。`response` 要素をチェックし、ヒューマンループが作成されたかどうかを判断できます。このレスポンスに含まれるものすべてを表示するには、[https://docs.aws.amazon.com/rekognition/latest/dg/API_HumanLoopActivationOutput.html](https://docs.aws.amazon.com/rekognition/latest/dg/API_HumanLoopActivationOutput.html) を確認します。

```
    if "HumanLoopArn" in response["HumanLoopActivationOutput"]:
        # A human loop has been started!
        print(f"A human loop has been started with ARN: {response["HumanLoopActivationOutput"]["HumanLoopArn"]}")
```

------
#### [ Custom Integration ]

次の例では、 を使用して us-west-2 `start_human_loop`で AWS SDK for Python (Boto3) を呼び出します。斜体の赤いテキストはリソースに置き換えます。Amazon Mechanical Turk ワークフォースを使用している場合は、[https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_HumanLoopDataAttributes.html](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_HumanLoopDataAttributes.html) パラメータを含めます。詳細については、*AWS SDK for Python (Boto) APIリファレンス*の「[start\$1human\$1loop](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-a2i-runtime.html#AugmentedAIRuntime.Client.start_human_loop)」のドキュメントを参照してください。

```
   response = client.start_human_loop(
        HumanLoopName= "human-loop-name",
        FlowDefinitionArn= "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name",
        HumanLoopInput={"InputContent": inputContentJson},
        DataAttributes={"ContentClassifiers":["FreeOfPersonallyIdentifiableInformation"|"FreeOfAdultContent"]}
   )
```

この例では、入力コンテンツを変数 *`inputContentJson`* に保存します。入力コンテンツには、宣伝文とセンチメント (`Positive`、`Negative`、`Neutral` など) の 2 つの要素が含まれ、次のようにフォーマットされていると想定します。

```
    inputContent = {
        "initialValue": sentiment,
         "taskObject": blurb
     }
```

キー `initialValue` と `taskObject` は、ワーカータスクテンプレートの liquid 要素で使用されるキーに対応している必要があります。例については、「[ヒューマンタスク UI を作成する](#a2i-get-started-api-worker-task-template)」のカスタムテンプレートを参照してください。

`inputContentJson` を作成するには、次の手順を実行します。

```
    import json
    
    inputContentJson = json.dumps(inputContent)
```

ヒューマンループは `start_human_loop` を呼び出すたびに開始されます。ヒューマンループのステータスを確認するには、[describe\$1human\$1loop](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-a2i-runtime.html#AugmentedAIRuntime.Client.describe_human_loop) を使用します。

```
    human_loop_info = a2i.describe_human_loop(HumanLoopName="human_loop_name")
    print(f"HumanLoop Status: {resp["HumanLoopStatus"]}")
    print(f"HumanLoop Output Destination: {resp["HumanLoopOutput"]}")
```

------

# Amazon A2I を使用したユースケースと例
<a name="a2i-task-types-general"></a>

Amazon Augmented AI を使用して、人間によるレビューを組み込みタスクタイプ (Amazon Textract と Amazon Rekognition) またはカスタムタスクタイプを使ったワークフローに組み込むことができます。****

組み込みタスクタイプのいずれかを使用して人間によるレビューワークフローを作成する場合、信頼度しきい値などの条件を指定して、人間によるレビューを開始できます。サービス (Amazon Rekognition または Amazon Textract) は、これらの条件が満たされた場合にユーザーに代わってヒューマンループを作成し、入力データを Amazon A2I に直接提供して人間によるレビュー担当者に送信します。組み込みタスクタイプの詳細については、以下を参照してください。
+ [Amazon Textract で Amazon Augmented AI を使用する](a2i-textract-task-type.md)
+ [Amazon Rekognition で Amazon Augmented AI を使用する](a2i-rekognition-task-type.md)

カスタムタスクタイプを使用する場合は、Amazon A2I ランタイム API を使用してヒューマンループを作成して開始します。カスタムタスクタイプを使用して、人間によるレビューワークフローを他の AWS サービス、または独自のカスタム ML アプリケーションに組み込むことができます。
+ 詳細については、「[カスタムタスクタイプで Amazon Augmented AI を使用する](a2i-task-types-custom.md)」を参照してください。

次の表に、SageMaker AI Jupyter Notebook を使用して参照できる Amazon A2I のさまざまなユースケースの概要を示します。Jupyter ノートブックの使用を開始するには、「[Amazon A2I Jupyter ノートブックで SageMaker ノートブックインスタンスを使用する](#a2i-task-types-notebook-demo)」の手順を参照してください。その他の例については、この [GitHub リポジトリ](https://github.com/aws-samples/amazon-a2i-sample-jupyter-notebooks)を参照してください。


****  

| **ユースケース** | **説明** | **タスクタイプ** | 
| --- | --- | --- | 
|  [Amazon A2I で Amazon Textract を使用する](https://github.com/aws-samples/amazon-a2i-sample-jupyter-notebooks/blob/master/Amazon%20Augmented%20AI%20(A2I)%20and%20Textract%20AnalyzeDocument.ipynb)  |  人間が単一ページのドキュメントで重要なフォームのキーと値のペアについてレビューを行うか、Amazon Textract でランダムにサンプリングを行い、ドキュメントをデータセットから人間に送り人間がレビューします。  | 組み込み | 
| [Amazon A2I で Amazon Rekognition を使用する](https://github.com/aws-samples/amazon-a2i-sample-jupyter-notebooks/blob/master/Amazon%20Augmented%20AI%20(A2I)%20and%20Rekognition%20DetectModerationLabels.ipynb) |  Amazon Rekognition が信頼性の低いスコアを返した場合に明示的なアダルトコンテンツや暴力的なコンテンツなどの安全でない画像について人間がレビューを行うか、Amazon Rekognition でランダムにサンプリングを行い、データセットから人間に画像を送り人間がレビューします。  |  組み込み  | 
| [Amazon A2I で Amazon Comprehend を使用する](https://github.com/aws-samples/amazon-a2i-sample-jupyter-notebooks/blob/master/Amazon%20Augmented%20AI%20(A2I)%20and%20Comprehend%20DetectSentiment.ipynb) |  感情分析、テキスト構文、エンティティ検出など、テキストデータに関する Amazon Comprehend の推論について人間によるレビューを行います。  |  カスタム  | 
| [Amazon A2I で Amazon Transcribe を使用する](https://github.com/aws-samples/amazon-a2i-sample-jupyter-notebooks/blob/master/A2I-Video-Transcription-with-Amazon-Transcribe.ipynb) |  Amazon Transcribe によるビデオファイルやオーディオファイルのトランスクリプションについて人間によるレビューを行います。トランスクリプションの人間によるレビューループの結果を使用してカスタム語彙を作成し、今後の類似するビデオまたはオーディオコンテンツのトランスクリプションを向上させます。  | カスタム | 
| [Amazon A2I で Amazon Translate を使用する](https://github.com/aws-samples/amazon-a2i-sample-jupyter-notebooks/blob/master/Amazon%20Augmented%20AI%20(A2I)%20and%20Amazon%20Translate.ipynb) |  Amazon Translate から返された信頼性の低い翻訳について人間によるレビューを行います。  |  カスタム  | 
| [Amazon A2I を使用してリアルタイム ML 推論を確認する](https://github.com/aws-samples/amazon-a2i-sample-jupyter-notebooks/blob/master/Amazon%20A2I%20with%20Amazon%20SageMaker%20for%20object%20detection%20and%20model%20retraining.ipynb)  |  Amazon A2I を使用して、SageMaker AI でホストされているエンドポイントにデプロイされたモデルによって行われたリアルタイムの信頼性の低い推論を確認し、Amazon A2I 出力データを使用してモデルを段階的にトレーニングします。  |  カスタム  | 
| [Amazon A2I を使用して表形式のデータを確認する](https://github.com/aws-samples/amazon-a2i-sample-jupyter-notebooks/blob/master/Amazon%20Augmented%20AI%20(Amazon%20A2I)%20Integration%20with%20tabular%20data.ipynb) |  Amazon A2I を使用して表形式のデータを使用する ML アプリケーションに人間によるレビューループを統合します。  |  カスタム  | 

**Topics**
+ [Amazon A2I Jupyter ノートブックで SageMaker ノートブックインスタンスを使用する](#a2i-task-types-notebook-demo)
+ [Amazon Textract で Amazon Augmented AI を使用する](a2i-textract-task-type.md)
+ [Amazon Rekognition で Amazon Augmented AI を使用する](a2i-rekognition-task-type.md)
+ [カスタムタスクタイプで Amazon Augmented AI を使用する](a2i-task-types-custom.md)

## Amazon A2I Jupyter ノートブックで SageMaker ノートブックインスタンスを使用する
<a name="a2i-task-types-notebook-demo"></a>

Amazon A2I の人間によるレビューループを機械学習ワークフローに統合する方法を示すエンドツーエンドの例については、SageMaker ノートブックインスタンスでこちらの「[GitHub リポジトリ](https://github.com/aws-samples/amazon-a2i-sample-jupyter-notebooks)」から Jupyter ノートブックを参照してください。

**Amazon SageMaker ノートブックインスタンスで Amazon A2I カスタムタスクタイプのサンプルノートブックを使用するには、次の手順を実行します。**

1. アクティブな SageMaker ノートブックインスタンスがない場合、「[チュートリアル用 Amazon SageMaker ノートブックインスタンスを作成する](gs-setup-working-env.md)」に記載されている手順に従って作成できます。

1. ノートブックインスタンスがアクティブになったら、ノートブックインスタンスの名前の右側にある **[Open JupyterLab]** (JupyterLab を開く) を選択します。JupyterLab の読み込みにはしばらく時間がかかる場合があります。

1. GitHub リポジトリの追加アイコン (![\[Diagonal arrow icon with N and 1 symbols, representing a one-to-many relationship.\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/icons/Git_squip_add_repo.png)) を選択して、GitHub リポジトリのクローンをワークスペースに作成します。

1. [amazon-a2i-sample-jupyter-notebooks](https://github.com/aws-samples/amazon-a2i-sample-jupyter-notebooks) リポジトリの HTTPS URL を入力します。

1. [**クローン**] を選択します。

1. 実行するノートブックを開きます。

1. ノートブックの手順に従って、人間によるレビューワークフローとヒューマンループを設定し、セルを実行します。

1. 不要な料金が発生しないようにするため、デモが終了したら、チュートリアル中に作成された Amazon S3 バケット、IAM ロール、CloudWatch Events リソースに加えてノートブックインスタンスを停止して削除します。

# Amazon Textract で Amazon Augmented AI を使用する
<a name="a2i-textract-task-type"></a>

Amazon Textract を使用すると、ドキュメントのテキスト検出と分析をアプリケーションに追加できます。Amazon Augmented AI (Amazon A2I) は、Amazon Textract の `AnalyzeDocument` API オペレーションと直接統合します。`AnalyzeDocument` を使用して、ドキュメントで検出されたアイテム間の関係を分析できます。Amazon A2I の人間によるレビューループを `AnalyzeDocument` リクエストに追加すると、Amazon A2I は Amazon Textractの 結果をモニタリングし、フロー定義で指定された条件が満たされると、レビュー用に 1 人以上の人間のワーカーにドキュメントを送信します。例えば、人間に「`Full name:`」などの特定のキーとそれに関連する入力値をレビューしてもらう場合は、キー「`Full name:`」が検出されたときや、そのキーの推論信頼性が指定した範囲内にあるときは随時、人間によるレビューを開始するアクティベーション条件を作成できます。

次の図は、Amazon Textract を使用した Amazon A2I 組み込みのワークフローを示しています。左側には、Amazon Textract の人間によるレビューワークフロー作成に必要なリソース (Amazon S3 バケット、アクティベーション条件、ワーカータスクテンプレート、ワークチーム) が表示されています。これらのリソースは、人間によるレビューワークフロー (フロー定義) の作成に使用されます。矢印は、右側にあるワークフローの次のステップ (Amazon Textract を使用して人間によるレビューワークフローのヒューマンループを設定する) を指しています。2 番目の矢印は、このステップから右側にあるステップ (人間によるレビューワークフローで指定されたアクティベーション条件が満たされる) を指しています。これにより、ヒューマンループの作成が開始されます。図の右側には、1) ワーカー UI とツールが生成され、タスクをワーカーが使用できるようにし、2) ワーカーが入力データをレビューし、最終的に 3) 結果が Amazon S3 に保存されるという 3 つのステップのヒューマンループが示されています。

![\[Amazon Textract で Amazon Augmented AI を使用する\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i/diagrams/product-page-diagram_A21-Components_Textract@2x.png)


人間によるレビューのワークフロー (フロー定義) の作成時に、アクティベーション条件を指定することにより、Amazon Textract から人間のワーカーにレビュー用のタスクが送信されるタイミングを指定できます。**

Amazon Textract タスクタイプを使用する場合は、次のアクティベーション条件を設定できます。
+ フォームキーの信頼性スコアに基づいて、特定のフォームキーに対して人間によるレビューを開始します。
+ 特定のフォームキーが見つからない場合に人間によるレビューを開始します。
+ 指定された範囲の信頼性スコアであると Amazon Textract によって識別されたすべてのフォームキーに対して、人間によるレビューを開始します。
+ ランダムにフォームのサンプルを人間に送信してレビューします。

アクティベーション条件がフォームのキー信頼性スコアに依存する場合、次の 2 種類の予測信頼度を使用してヒューマンループを開始できます。
+ **Identification confidence** (識別信頼度) - フォーム内で検出されたキーと値のペアの信頼スコア。
+ **Qualification confidence** (資格信頼度)- フォーム内のキーと値に含まれるテキストの信頼性スコア。

次のセクションのイメージでは、**[Full name: Jane Doe]** (フルネーム: Jane Doe) がキーと値のペアで、**[Full Name]** (フルネーム) がキー、**[Jane Doe]** が値です。

これらのアクティベーション条件は、人間によるレビューワークフローを作成するときに Amazon SageMaker AI コンソールを使用するか、ヒューマンループアクティベーション条件の JSON を作成し、これを `CreateFlowDefinition` API オペレーションの `HumanLoopActivationConditions` パラメータで入力として指定することによっても設定できます。JSON 形式でアクティベーション条件を指定する方法については、「[Amazon Augmented AI のヒューマンループのアクティベーション条件に対する JSON スキーマ](a2i-human-fallback-conditions-json-schema.md)」および「[Amazon Textract でヒューマンループのアクティベーション条件 JSON スキーマを使用する](a2i-json-humantaskactivationconditions-textract-example.md)」を参照してください。

**注記**  
Amazon Textract で Augmented AI を使用する場合は、 の呼び出しに使用するのと同じ AWS リージョンに Augmented AI リソースを作成します`AnalyzeDocument`。

## はじめに: 人間によるレビューを Amazon Textract ドキュメント分析ジョブに統合する
<a name="a2i-create-textract-human-review"></a>

人間によるレビューを Amazon Textract テキスト検出および分析ジョブに統合するには、フロー定義を作成し、Amazon Textract API を使用してそのフロー定義をワークフローに統合する必要があります。SageMaker AI コンソールまたは Augmented AI API を使用してフロー定義を作成する方法については、次のトピックを参照してください。
+ [ヒューマンレビューワークフローを作成する (コンソール)](a2i-create-flow-definition.md#a2i-create-human-review-console)
+ [ヒューマンレビューワークフローを作成する (API)](a2i-create-flow-definition.md#a2i-create-human-review-api)

フロー定義を作成したら、「[Amazon Textract で Augmented AI を使用する](https://docs.aws.amazon.com/textract/latest/dg/a2i-textract.html)」を参照して、フロー定義を Amazon Textract タスクに統合する方法を確認してください。

## Amazon Textract と Amazon A2I を使用したエンドツーエンドの例
<a name="a2i-task-types-textract-notebook-demo"></a>

コンソールを使用して Amazon Textract を Amazon A2I で使用する方法を示すエンドツーエンドの例については、「[チュートリアル: Amazon A2I コンソールの使用を開始する](a2i-get-started-console.md)」を参照してください。

Amazon A2I API を使用して人間によるレビューを作成し、開始する方法については、SageMaker ノートブックインスタンスで「[Amazon Textract 分析ドキュメントとの Amazon Augmented AI (Amazon A2I) 統合 [例]](https://github.com/aws-samples/amazon-a2i-sample-jupyter-notebooks/blob/master/Amazon%20Augmented%20AI%20(A2I)%20and%20Textract%20AnalyzeDocument.ipynb)」を参照してください。開始するには、「[Amazon A2I Jupyter ノートブックで SageMaker ノートブックインスタンスを使用する](a2i-task-types-general.md#a2i-task-types-notebook-demo)」を参照してください。

## A2I Textract ワーカーコンソールのプレビュー
<a name="a2i-textract-console-preview"></a>

Amazon Textract ワークフローでレビュータスクが割り当てられると、ワーカーに次のようなユーザーインターフェイスが表示されることがあります。

![\[A2I Textract ワーカーコンソールのレビュータスクの例。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i-textract-example.png)


このインターフェイスは、人間によるレビュー定義を作成するとき、またはカスタムテンプレートを作成して使用することによって、SageMaker AI コンソールでカスタマイズできます。詳細については[ワーカータスクテンプレートを作成および管理する](a2i-instructions-overview.md)を参照してください。

# Amazon Rekognition で Amazon Augmented AI を使用する
<a name="a2i-rekognition-task-type"></a>

Amazon Rekognition では、画像分析と動画分析をアプリケーションに簡単に追加できます。Amazon Rekognition `DetectModerationLabels` API オペレーションは Amazon A2Iと直接統合されているため、ヒューマンループを作成して、明示的なアダルトコンテンツや暴力的なコンテンツなど、安全でない画像を簡単に確認できます。`DetectModerationLabels` を使用して、フロー定義 ARN を使用してヒューマンループを設定できます。これにより、Amazon A2I は Amazon Rekognition が行った予測を分析し、フロー定義で設定された条件を満たしているかを確認するために人に結果を送信します。

次の図は、Amazon Rekognition を使用した Amazon A2I 組み込みのワークフローを示しています。左側には、Amazon Rekognition の人間によるレビューワークフロー作成に必要なリソース (Amazon S3 バケット、アクティベーション条件、ワーカータスクテンプレート、ワークチーム) が表示されています。これらのリソースは、人間によるレビューワークフロー (フロー定義) の作成に使用されます。矢印は、右側にあるワークフローの次のステップ (Amazon Rekognition を使用して人間によるレビューワークフローのヒューマンループを設定する) を指しています。2 番目の矢印は、このステップから右側にあるステップ (人間によるレビューワークフローで指定されたアクティベーション条件が満たされる) を指しています。これにより、ヒューマンループの作成が開始されます。図の右側には、1) ワーカー UI とツールが生成され、タスクをワーカーが使用できるようにし、2) ワーカーが入力データをレビューし、最終的に 3) 結果が Amazon S3 に保存されるという 3 つのステップのヒューマンループが示されています。

![\[Amazon Rekognition で Amazon Augmented AI を使用する\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i/diagrams/product-page-diagram_A2I-Components_Rekognition@2x.png)


Amazon Rekognition タスクタイプを使用する場合は、次のアクティベーション条件を設定できます。
+ ラベルの信頼性スコアに基づいて Amazon Rekognition によって識別されたラベルに対して人間によるレビューを開始します。
+ ランダムにイメージのサンプルを人に送信してレビューします。

これらのアクティベーション条件は、人間によるレビューワークフローを作成するときに Amazon SageMaker AI コンソールを使用するか、ヒューマンループアクティベーション条件の JSON を作成し、これを `CreateFlowDefinition` API オペレーションの `HumanLoopActivationConditions` パラメータで入力として指定することによっても設定できます。JSON 形式でアクティベーション条件を指定する方法については、「[Amazon Augmented AI のヒューマンループのアクティベーション条件に対する JSON スキーマ](a2i-human-fallback-conditions-json-schema.md)」および「[Amazon Rekognition でヒューマンループのアクティベーション条件 JSON スキーマを使用する](a2i-json-humantaskactivationconditions-rekognition-example.md)」を参照してください。

**注記**  
Amazon Rekognition で Augmented AI を使用する場合は、 の呼び出しに使用するのと同じ AWS リージョンに Augmented AI リソースを作成します`DetectModerationLabels`。

## はじめに: 人間によるレビューを Amazon Rekognition イメージモデレーションジョブに統合する
<a name="a2i-create-rekognition-human-review"></a>

人間によるレビューを Amazon Rekognition に統合するには、次のトピックを参照してください。
+ [ヒューマンレビューワークフローを作成する (コンソール)](a2i-create-flow-definition.md#a2i-create-human-review-console)
+ [ヒューマンレビューワークフローを作成する (API)](a2i-create-flow-definition.md#a2i-create-human-review-api)

フロー定義を作成したら、「[Amazon Rekognition で Augmented AI を使用する](https://docs.aws.amazon.com/rekognition/latest/dg/a2i-rekognition.html)」を参照して、フロー定義を Amazon Rekognition タスクに統合する方法を確認してください。

## Amazon Rekognition と Amazon A2I を使用したエンドツーエンドのデモ
<a name="a2i-task-types-rekognition-notebook-demo"></a>

コンソールを使用して Amazon Rekognition を Amazon A2I で使用する方法を示すエンドツーエンドの例については、「[チュートリアル: Amazon A2I コンソールの使用を開始する](a2i-get-started-console.md)」を参照してください。

Amazon A2I API を使用して人間によるレビューを作成し、開始する方法については、SageMaker ノートブックインスタンスで「[Amazon Rekognition との Amazon Augmented AI (Amazon A2I) 統合 [例]](https://github.com/aws-samples/amazon-a2i-sample-jupyter-notebooks/blob/master/Amazon%20Augmented%20AI%20(A2I)%20and%20Rekognition%20DetectModerationLabels.ipynb)」を参照してください。開始するには、「[Amazon A2I Jupyter ノートブックで SageMaker ノートブックインスタンスを使用する](a2i-task-types-general.md#a2i-task-types-notebook-demo)」を参照してください。

## A2I Rekognition ワーカーコンソールプレビュー
<a name="a2i-rekognition-console-preview"></a>

Amazon Rekognition ワークフローでレビュータスクが割り当てられると、ワーカーに次のようなユーザーインターフェイスが表示されることがあります。

![\[A2I Rekognition ワーカーコンソールの画像の例。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i-rekognition-example.png)


このインターフェイスは、人間によるレビュー定義を作成するとき、またはカスタムテンプレートを作成して使用することによって、SageMaker AI コンソールでカスタマイズできます。詳細については[ワーカータスクテンプレートを作成および管理する](a2i-instructions-overview.md)を参照してください。

# カスタムタスクタイプで Amazon Augmented AI を使用する
<a name="a2i-task-types-custom"></a>

Amazon Augmented AI (Amazon A2I) を使用して、カスタムタスクタイプを使用した任意の機械学習ワークフローに人間によるレビュー (ヒューマンループ) を組み込むことができます。****このオプションを使用すると、ワーカーユーザーインターフェイスのルックアンドフィールのみでなく、データオブジェクトが人間によるレビュー用に送信される条件を柔軟にカスタマイズできます。

カスタムタスクタイプを使用する場合、カスタムの人間によるレビューワークフローを作成し、アプリケーションで直接、データオブジェクトが人間によるレビュー用に送信される条件を指定します。

次の図は、Amazon A2I カスタムワークフローを示しています。カスタム ML モデルは予測の生成に使用されます。クライアントアプリケーションは、ユーザー定義の基準を使用してこれらの予測をフィルタリングし、人間によるレビューが必要かどうかを判断します。必要と判断した場合、これらの予測は人間によるレビュー用に Amazon A2I に送信されます。Amazon A2I は人間によるレビューの結果を Amazon S3 で収集します。この結果にはクライアントアプリケーションからアクセスできます。人間によるレビューが必要ないとフィルターによって判断された場合、予測をクライアントアプリケーションに直接送信できます。

![\[カスタムタスクタイプで Amazon Augmented AI を使用する\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i/diagrams/product-page-diagram_A2I-Components_Custom@2x.png)


このページの手順では、カスタムタスクタイプを使用して Amazon A2I を機械学習ワークフローに統合する方法について説明します。

**フロー定義を使用してヒューマンループを作成し、アプリケーションに統合して結果をモニタリングする**

1. Amazon A2I [Augmented AI の使用の前提条件](a2i-getting-started-prerequisites.md) を完了します。次の点に注意してください。
   + 入出力データを保存する Amazon Simple Storage Service (Amazon S3) バケットへのパス。
   + 必要なアクセス許可がアタッチされた (IAM) ロールの Amazon リソースネーム AWS Identity and Access Management (ARN)。
   + (オプション) プライベートワークフォースを使用する場合は、その ARN。

1. HTML 要素を使用して、Amazon A2I がワーカータスク UI を生成するために使用するカスタムワーカーテンプレートを作成します。カスタムテンプレートを作成する方法については、「[カスタムワーカータスクテンプレートを作成する](a2i-custom-templates.md)」を参照してください。

1. ステップ 2 のカスタムワーカーテンプレートを使用して、Amazon SageMaker AI コンソールにワーカータスクテンプレートを生成します。この方法の詳細は、「[ワーカータスクテンプレートを作成する](a2i-worker-template-console.md#a2i-create-worker-template-console)」を参照してください。

   次のステップでは、フロー定義を作成します。
   + SageMaker API を使用してフロー定義を作成する場合は、次のステップでこのワーカータスクテンプレートの ARN を書き留めます。
   + コンソールを使用してフロー定義を作成する場合、**[Create human review workflow]** (人間によるレビューワークフローを作成) を選択するとテンプレートは自動的に **[Worker task template]** (ワーカータスクテンプレート) セクションに表示されます。

1. フロー定義を作成するときは、S3 バケット、IAM ロール ARN、ワーカーテンプレートへのパスを指定します。
   + SageMaker AI `CreateFlowDefinition` API を使用してフロー定義を作成する方法については、「[ヒューマンレビューワークフローを作成する (API)](a2i-create-flow-definition.md#a2i-create-human-review-api)」を参照してください。
   + SageMaker AI コンソールを使用してフロー定義を作成する方法については、「[ヒューマンレビューワークフローを作成する (コンソール)](a2i-create-flow-definition.md#a2i-create-human-review-console)」を参照してください。

1. [Amazon A2I ランタイム API](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/Welcome.html) を使用してヒューマンループを設定します。この方法の詳細は、「[ヒューマンループを作成および開始する](a2i-start-human-loop.md)」を参照してください。

1. ヒューマンレビューが開始されるタイミングを制御するには、カスタムアプリケーションで `StartHumanLoop` が呼び出される条件を指定します。カスタムタスクタイプで Amazon A2I を使用する場合、ヒューマンループを開始する信頼度しきい値などのヒューマンループのアクティベーション条件は使用できません。すべての `StartHumanLoop` 呼び出しの結果は、ヒューマンレビューになります。

ヒューマンループを開始したら、Amazon Augmented AI ランタイム API と Amazon EventBridge (Amazon CloudWatch Events とも呼ばれます) を使用してループを管理およびモニタリングできます。詳細については[ヒューマンループの監視と管理](a2i-monitor-humanloop-results.md)を参照してください。

## Amazon A2I のカスタムタスクタイプを使用したエンドツーエンドのチュートリアル
<a name="a2i-task-types-custom-notebook-demo"></a>

Amazon A2I をさまざまな ML ワークフローに統合する方法を示すエンドツーエンドの例については、「[Amazon A2I を使用したユースケースと例](a2i-task-types-general.md)」の表を参照してください。これらのいずれかのノートブックを使用する場合は、「[Amazon A2I Jupyter ノートブックで SageMaker ノートブックインスタンスを使用する](a2i-task-types-general.md#a2i-task-types-notebook-demo)」を参照してください。

# 人間によるレビューワークフローを作成する
<a name="a2i-create-flow-definition"></a>

Amazon Augmented 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 を使用してカスタムタスクタイプのフロー定義を作成する場合、`HumanLoopActivationConditions` パラメータの `HumanLoopActivationConditionsConfig` 属性を設定することはできません。ヒューマンレビューが開始されるタイミングを制御するには、カスタムアプリケーションで `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>

この手順では、SageMaker AI コンソールを使用して Amazon Augmented 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)」を参照して、そのワークフォースにワークチームを追加する方法を学習します。

組み込みタスクタイプの 1 つで Amazon A2I を使用している場合、コンソールで人間によるレビューワークフローを作成するときに、Augmented AI が提供するデフォルトのワーカータスクテンプレートを使用してワーカー指示を作成できます。Augmented AI で提供されるデフォルトテンプレートのサンプルについては、[Amazon A2I を使用したユースケースと例](a2i-task-types-general.md)の組み込みタスクタイプを参照してください。

**フロー定義を作成するには (コンソール)**

1. SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

1. ナビゲーションペインの [**Augmented AI** ] セクションで、[**Human review workflows (ヒューマンレビューワークフロー)**] を選択し、[**Create human review workflow (ヒューマンレビューワークフローの作成)**] を選択します。

1. [**Overview (概要)**] で、次の操作を行います。

   1. [**Name (名前)**] に、一意のワークフロー名を入力します。名前は小文字で、アカウントの AWS リージョン内で一意である必要があり、最大 63 文字を使用できます。有効な文字は、a～z、0～9、- (ハイフン) です。

   1. [**S3 location for output (出力先の S3 の場所)**] に、ヒューマンレビューの結果を保存する S3 バケットを入力します。バケットは、ワークフローと同じ AWS リージョンに配置する必要があります。

   1. **[IAM role]** (IAM ロール) に対して、必要なアクセス許可を持つロールを選択します。組み込みタスクタイプを選択し、コンソールでワーカーテンプレートをプレビューする場合は、「[ワーカータスクテンプレートプレビューを有効にする](a2i-permissions-security.md#permissions-for-worker-task-templates-augmented-ai)」で説明されているポリシーのタイプをアタッチしたロールを指定します。

1. [**Task type (タスクタイプ)**] で、ヒューマンワーカーが実行するタスクタイプを選択します。

1. Amazon Rekognition または Amazon Textract タスクタイプを選択した場合、人間によるレビューを実行する条件を指定します。
   + Amazon Rekognition 画像モデレーションタスクの場合、人間によるレビューを開始する推論信頼スコアのしきい値間隔を選択します。
   + Amazon Textract タスクの場合、特定のフォームキーが欠落しているとき、またはフォームキー検出の信頼性が低いときに、人間によるレビューを開始できます。テキスト内のすべてのフォームキーを評価した後、フォームキーに必要なしきい値より信頼度が低い場合に、人間によるレビューを開始することもできます。**Identification confidence** (識別信頼度) と **Qualification confidence** (資格信頼度) の 2 つの変数を使用して信頼しきい値を指定します。これらの変数の詳細については、「[Amazon Textract で Amazon Augmented AI を使用する](a2i-textract-task-type.md)」を参照してください。
   + どちらのタスクタイプでも、一部のデータオブジェクト (イメージまたはフォーム) とそのラベルを人間にランダムに送信してレビューすることができます。

1. ワーカータスクテンプレートを設定および指定します。

   1. Amazon Rekognition または Amazon Textract タスクタイプを使用している場合は、次のようにします。

      1. [**Create template (テンプレートの作成)**] セクションで、次の操作を行います。
        + Amazon Rekognition および Amazon Textract タスクタイプの Amazon A2I デフォルトテンプレートを使用してワーカー向け指示書を作成するには、**[Build from a default template]** (デフォルトテンプレートからビルド) を選択します。
          + [**Build from a default template (デフォルトテンプレートからビルド)**] を選択した場合、[**Worker task design (ワーカータスクデザイン)**] で指示を作成します。
            + 現在の AWS リージョンで一意の**テンプレート名**を指定します。
            + [**Instructions (指示)**] セクションを使用して、タスクを完了するための詳しい手順を指定します。ワーカーが高い精度を達成できるよう、良い例と悪い例を挙げます。
            + (オプション) [**Additional instructions (追加手順)**] を提供して、ワーカーに追加の情報と手順を提供します。

              効果的な手順の作成については、「[適切なワーカー指示書の作成](a2i-creating-good-instructions-guide.md)」を参照してください。
        + テンプレートを作成したら、[**Template (テンプレート)**] メニューからテンプレートを選択し、ワーカーに対してタスクを簡単に説明するための [**Task description (タスクの説明)**] を入力します。カスタムテンプレートを作成する方法については、「[ワーカータスクテンプレートを作成する](a2i-worker-template-console.md#a2i-create-worker-template-console)」を参照してください。

   1. カスタムタスクタイプを使用している場合は、次の手順を行います。

      1. **[Worker task template]** (ワーカータスクテンプレート) セクションで、リストからテンプレートを選択します。SageMaker AI コンソールで作成したすべてのテンプレートがこのリストに表示されます。カスタムタスクタイプのテンプレートを作成する方法については、「[ワーカータスクテンプレートを作成および管理する](a2i-instructions-overview.md)」を参照してください。

1. (オプション) ワーカーテンプレートをプレビューします。

   Amazon Rekognition および Amazon Textract タスクタイプの場合、**[See a sample worker task]** (サンプルワーカータスクを表示) を選択してワーカータスク UI をプレビューできます。

   カスタムタスクタイプのフロー定義を作成している場合は、`RenderUiTemplate` オペレーションを使用してワーカータスク UI をプレビューできます。詳細については、「[ワーカータスクテンプレートをプレビューする](a2i-custom-templates.md#a2i-preview-your-custom-template)」を参照してください。

1. [**Workers (ワーカー)**] で、ワークフォースタイプを選択します。

1. **[作成]** を選択します。

### 次のステップ
<a name="a2i-next-step-createflowdefinition-console"></a>

ヒューマンレビューワークフローを作成すると、コンソールの [**Human review workflows (ヒューマンレビューワークフロー)**] に表示されます。フロー定義の Amazon リソースネーム (ARN) および設定の詳細を表示するには、名前を選択してワークフローを選択します。

組み込みタスクタイプを使用している場合は、フロー定義 ARN を使用して、その AWS サービスの 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.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 Augmented AI のヒューマンループのアクティベーション条件に対する JSON スキーマ](a2i-human-fallback-conditions-json-schema.md)」を参照してください。ここで条件を指定しない場合、組み込みタスクタイプに関連付けられた AWS サービス (Amazon Textract や Amazon Rekognition など) にフロー定義を指定すると、そのサービスはレビューのためにすべてのタスクを人間のワーカーに送信します。

   カスタムタスクタイプを使用している場合、`HumanLoopActivationConfig` は無効になります。カスタムタスクタイプを使用してタスクをヒューマンワーカーに送信するタイミングを制御する方法については、「[カスタムタスクタイプで Amazon Augmented AI を使用する](a2i-task-types-custom.md)」を参照してください。

1. (オプション) 組み込みタスクタイプを使用する場合、統合のソース (Amazon Rekognition や Amazon Textract など) を [HumanLoopRequestSource](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HumanLoopRequestSource.html) パラメータに指定します。

1. `OutputConfig` の場合、Amazon Simple Storage Service (Amazon S3) でヒューマンループの出力を保存する場所を指定します。

1. (オプション) `Tags` を使用して、フロー定義の分類と整理に役立つキーと値のペアを入力します。タグはそれぞれ、1 つのキーと 1 つの値で構成されており、どちらもお客様側が定義します。

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

 AWS SDK for Python (Boto3)を使用して 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 ]

 AWS SDK for Python (Boto3)を使用して 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 を使用して、その AWS サービスの API (Amazon Textract API) を使用してヒューマンループを開始できます。カスタムタスクタイプの場合、ARN を使用して、Amazon Augmented AI ランタイム API によるヒューマンループを開始できます。これらのオプションの詳細については、「[ヒューマンループを作成および開始する](a2i-start-human-loop.md)」を参照してください。

# Amazon Augmented AI のヒューマンループのアクティベーション条件に対する JSON スキーマ
<a name="a2i-human-fallback-conditions-json-schema"></a>

`HumanLoopActivationConditions` は [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html) API の入力パラメータです。このパラメータは JSON 形式の文字列です。JSON によってヒューマンループを作成する条件をモデル化し、それらの条件を統合 AI サービス API (`Rekognition.DetectModerationLabels` や `Textract.AnalyzeDocument` など) からのレスポンスに対して評価します。このレスポンスは、*推論*と呼ばれます。例えば、Amazon Rekognition でモデレーションラベルの推論とそれに関する信頼スコアを送信するとします。その場合、推論は、モデルによってイメージの最も適切なラベルであると推定されたものになります。Amazon Textract では、推論はテキストのブロックの関連性 (キーと値のペア) に対して作成されます。例えば、フォームの `Name:` と `Sue` の関連性やテキストのブロック (単語ブロック) の内容 (「名前」など) です。****

以下に、JSON のスキーマを示します。最上位レベルでは、`HumanLoopActivationConditions` には JSON 配列、`Conditions` があります。この配列の各メンバーは、`true` と評価された場合、Amazon A2I がヒューマンループを作成する独立した条件です。このような独立した条件は、単純な条件または複雑な条件にすることができます。単純な条件には、次の属性があります。
+ `ConditionType`: この属性は、条件のタイプを識別します。Amazon A2I と統合される各 AWS AI サービス API は、許可される `ConditionTypes` の独自のセットを定義します。
  + Rekognition `DetectModerationLabels` - この API では、`ModerationLabelConfidenceCheck` と `Sampling` `ConditionType` の値がサポートされています。
  + Textract `AnalyzeDocument` - この API では、`ImportantFormKeyConfidenceCheck`、`MissingImportantFormKey`、`Sampling` `ConditionType` の値がサポートされています。
+ `ConditionParameters` - これは、条件をパラメータ化する JSON オブジェクトです。このオブジェクトで許可される属性のセットは、`ConditionType` の値によって異なります。それぞれの `ConditionType` が独自の `ConditionParameters` のセットを定義します。

`Conditions` 配列のメンバーは、複雑な条件をモデル化できます。これは、論理演算子の `And` および `Or` を使用して基になる単純な条件をネストして、単純な条件を論理的に結合することで実現されます。最大 2 つのレベルのネストがサポートされています。

```
{
    "$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"
            }
        }
    }
}
```

**注記**  
ヒューマンループのアクティブ化条件は、カスタムタスクタイプと統合されたヒューマンレビューワークフローでは使用できません。カスタムタスクタイプでは、`HumanLoopActivationConditions` パラメータは無効です。

**Topics**
+ [Amazon Textract でヒューマンループのアクティベーション条件 JSON スキーマを使用する](a2i-json-humantaskactivationconditions-textract-example.md)
+ [Amazon Rekognition でヒューマンループのアクティベーション条件 JSON スキーマを使用する](a2i-json-humantaskactivationconditions-rekognition-example.md)

# Amazon Textract でヒューマンループのアクティベーション条件 JSON スキーマを使用する
<a name="a2i-json-humantaskactivationconditions-textract-example"></a>

Amazon A2I で使用する場合、`AnalyzeDocument` オペレーションでは、`ConditionType` パラメータで次の入力がサポートされます。
+ `ImportantFormKeyConfidenceCheck` - この条件を使用して、推論の信頼度がドキュメントのフォームのキーと単語ブロックに対して指定した範囲内である場合にヒューマンループを作成します。*フォームのキー*は、入力に関連付けられているドキュメント内の任意の単語です。入力は*値*と呼ばれます。フォームのキーと値の組み合わせは、*キーと値のペア*と呼ばれます。単語ブロックは、検出されたテキストのブロック内で Amazon Textract によって認識される単語を指します。**Amazon Textract ドキュメントブロックの詳細については、*Amazon Textract デベロッパーガイド*の「[ドキュメントとブロックオブジェクト](https://docs.aws.amazon.com/textract/latest/dg/how-it-works-document-layout.html)」を参照してください。
+ `MissingImportantFormKey` - Amazon Textract でドキュメント内のキーまたは関連するエイリアスが識別されなかった場合、この条件を使用してヒューマンループを作成します。
+ `Sampling` - 推論信頼スコアに関係なく、人間によるレビュー用に送る推論の割合を指定するには、この条件を使用します。この条件を使用して、次のオペレーションを行います。
  + モデルによって分析されたすべてのフォームからランダムにサンプリングし、指定した割合をヒューマンレビューに送ることにより、ML モデルを監査します。
  + `ImportantFormKeyConfidenceCheck` 条件を使用して、`ImportantFormKeyConfidenceCheck` で指定したヒューマンループを開始するための条件と一致する推論の何割かをランダムにサンプリングし、その指定した割合のみをヒューマンレビューに送ります。

**注記**  
同じリクエストを `AnalyzeDocument` に複数回送っても、その入力の推論に対する `Sampling` の結果は変わりません。例えば、`AnalyzeDocument` へのリクエストを 1 回行って `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 SageMaker AI コンソールの **[人間によるレビューワークフロー]** セクションで提供されているデフォルトのワーカータスクテンプレートを使用する場合、このアクティベーション条件によって人間によるレビュー用に送られたキーと値およびブロック推論がワーカー UI に含まれます。カスタムのワーカータスクテンプレートを使用する場合、Amazon Textract の初期値入力データ (推論) を含めるために `{{ task.input.selectedAiServiceResponse.blocks }}` 要素を含める必要があります。この入力要素を使用するカスタムテンプレートの例については、「[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` のみが特定され、(`MissingImportantFormKey` 条件タイプ内で) `ImportantFormKey` `Name` が欠落していた場合、そのフォームは人間によるレビュー用に送られます。検出されたフォームキー (`Address` および `Phone`) は含められません。

SageMaker AI コンソールで提供されているデフォルトのワーカータスクテンプレートを使用する場合、`ImportantFormKey` のキーおよび関連する値を特定するようにワーカーに求めるタスクが作成されます。カスタムのワーカータスクテンプレートを使用する場合、このタスクを設定するにはカスタム HTML 要素の `<task.input.humanLoopContext>` を含める必要があります。

## サンプリングの入力と結果
<a name="a2i-textract-randomsamplingpercentage"></a>

`Sampling` `ConditionType` では、`RandomSamplingPercentage` `ConditionParameters` がサポートされています。`RandomSamplingPercentage` の入力は、0.01～100 の実数である必要があります。この数値は、人間によるレビューの対象となるデータの割合を表し、この割合が人間によるレビューに送られます。`Sampling` 条件をその他の条件を指定せずに使用する場合、この数値は 1 つのリクエストによって `AnalyzeDocument` オペレーションが行ったすべての推論に対する割合を表し、この割合が人間によるレビュー用に送られます。

その他の条件タイプを指定せずに `Sampling` 条件を指定すると、すべてのキーと値のペアとブロックの推論がレビューのためにワーカーに送られます。

フロー定義を作成するときに、SageMaker AI コンソールの **[人間によるレビューワークフロー]** セクションで提供されているデフォルトのワーカータスクテンプレートを使用する場合、このアクティベーション条件によって人間によるレビュー用に送られたすべてのキーと値およびブロック推論がワーカー UI に含まれます。カスタムのワーカータスクテンプレートを使用する場合、Amazon Textract の初期値入力データ (推論) を含めるために `{{ task.input.selectedAiServiceResponse.blocks }}` 要素を含める必要があります。この入力要素を使用するカスタムテンプレートの例については、「[Amazon Textract のカスタムテンプレートの例](a2i-custom-templates.md#a2i-custom-templates-textract-sample)」を参照してください。

## 例
<a name="a2i-json-activation-condition-examples"></a>

ヒューマンループを開始するために `true` と評価される必要がある条件は 1 つのみですが、Amazon A2I は Amazon Textract によって分析される各オブジェクトのすべての条件を評価します。人間によるレビュー担当者は、`true` と評価されたすべての条件の重要なフォームキーを確認するように求められます。

**例 1: ヒューマンループを開始する指定された範囲の信頼スコアを持つ重要なフォームキーを検出する**

次の 3 つの条件のいずれかが満たされた場合に、ヒューマンループを開始する `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: Sampling を使用する**

次の例では、Amazon Textract の `AnalyzeDocument` へのリクエストによって行われた推論の 5% がレビューのために人間のワーカーに送られます。Amazon Textract から返された検出されたすべてのキーと値のペアがレビュー用にワーカーに送られます。

```
{
  "Conditions": [
    {
      "ConditionType": "Sampling",
      "ConditionParameters": {
        "RandomSamplingPercentage": 5
      }
    }
  ]
}
```

**例 4: `MissingImportantFormKey` を使用する**

次の例では、Amazon Textract によって検出されたキーで、`Mailing Address` またはそのエイリアス `Mailing Address:` が欠落している場合に、人間によるレビューが開始されます。デフォルトのワーカータスクテンプレートを使用する場合、ワーカーは、キー `Mailing Address` か、`Mailing Address:` および関連する値を特定するように、ワーカー UI によって要求されます。

```
{
    "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
            }
          }
        }
      ]
    }
  ]
}
```

# Amazon Rekognition でヒューマンループのアクティベーション条件 JSON スキーマを使用する
<a name="a2i-json-humantaskactivationconditions-rekognition-example"></a>

Amazon A2I で使用する場合、Amazon Rekognition `DetectModerationLabels` オペレーションでは、`ConditionType` パラメータで次の入力がサポートされます。
+ `ModerationLabelConfidenceCheck` - この条件タイプを使用することにより、指定した 1 つ以上のラベルの推論の信頼度が低い場合にヒューマンループを作成します。
+ `Sampling` - この条件を使用することにより、人間によるレビュー用に送るすべての推論の割合を指定します。この条件を使用して、次のオペレーションを行います。
  + ML モデルのすべての推論からランダムにサンプリングして、指定した割合をヒューマンレビューに送ることにより、モデルを監査します。
  + `ModerationLabelConfidenceCheck` 条件を使用して、`ModerationLabelConfidenceCheck` で指定したヒューマンループを開始するための条件と一致する推論の何割かをランダムにサンプリングし、その指定した割合のみをヒューマンレビューに送ります。

**注記**  
同じリクエストを `DetectModerationLabels` に複数回送っても、その入力の推論に対する `Sampling` の結果は変わりません。例えば、`DetectModerationLabels` へのリクエストを 1 回行って `Sampling` によってヒューマンループが開始されなかった場合、同じ設定で `DetectModerationLabels` に続けてリクエストを行ってもヒューマンループは開始されません。

フロー定義を作成するときに、Amazon SageMaker AI コンソールの **[人間によるレビューワークフロー]** セクションで提供されているデフォルトのワーカータスクテンプレートを使用する場合、これらのアクティベーション条件によって人間によるレビュー用に送られた推論はワーカーがタスクを開くとワーカー UI に含まれます。カスタムワーカータスクテンプレートを使用する場合は、それらの推論にアクセスするにはカスタム HTML 要素の `<task.input.selectedAiServiceResponse.blocks>` を含める必要があります。この HTML 要素を使用するカスタムテンプレートの例については、「[Amazon Rekognition のカスタムテンプレートの例](a2i-custom-templates.md#a2i-custom-templates-rekognition-sample)」を参照してください。

## `ModerationLabelConfidenceCheck` 入力
<a name="a2i-rek-moderationlabelconfidencecheck"></a>

`ModerationLabelConfidenceCheck` `ConditionType` では、以下の `ConditionParameters` がサポートされています。
+ `ModerationLabelName` - Amazon Rekognition `DetectModerationLabels`オペレーションによって検出された [ModerationLabel](https://docs.aws.amazon.com/rekognition/latest/dg/API_ModerationLabel.html) の正確な (大文字と小文字を区別する) 名前。特別なキャッチオール値 (\$1) を指定して、モデレーションラベルを示すことができます。
+ `ConfidenceEquals`
+ `ConfidenceLessThan`
+ `ConfidenceLessThanEquals`
+ `ConfidenceGreaterThan`
+ `ConfidenceGreaterThanEquals`

`ModerationLabelConfidenceCheck` `ConditionType` を使用すると、Amazon A2I によって、人間によるレビューのために `ModerationLabelName` で指定されているラベルの推論が送られます。

## 入力のサンプリング
<a name="a2i-rek-randomsamplingpercentage"></a>

`Sampling` `ConditionType` では、`RandomSamplingPercentage` `ConditionParameters` がサポートされています。`RandomSamplingPercentage` パラメータの入力は、0.01～100 の実数である必要があります。この数値は、ヒューマンレビューの対象となる推論の割合を表し、その数量がヒューマンレビューに送られます。`Sampling` 条件をその他の条件を指定せずに使用する場合、この数値は 1 つの `DetectModerationLabel` リクエストによって行われたすべての推論に対する割合を表し、その割合がヒューマンレビューに送られます。

## 例
<a name="a2i-json-rek-activation-condition-examples"></a>

**例 1: `ModerationLabelConfidenceCheck` を `And` オペレーターで使用する**

この `HumanLoopActivationConditions` 条件の例では、次の 1 つ以上の条件が満たされた場合にヒューマンループが開始されます。
+ Amazon Rekognition は、90 ～ 99 の信頼度を持つ `Graphic Male Nudity` モデレーションラベルを検出します。
+ Amazon Rekognition は、80 ～ 99 の信頼度を持つ `Graphic Female Nudity` モデレーションラベルを検出します。

このロジックのモデル化には、論理演算子の `Or` と `And` が使用されていることに注意してください。

ヒューマンループが作成されるために `Or` 演算子によって `true` と評価される必要がある条件は 2 つのうちの 1 つのみですが、Amazon Augmented AI はすべての条件を評価します。人間によるレビュー担当者は、`true` と評価されたすべての条件のモデレーションラベルを確認するように求められます。

```
{
     "Conditions": [{
         "Or": [{
                 "And": [{
                         "ConditionType": "ModerationLabelConfidenceCheck",
                         "ConditionParameters": {
                             "ModerationLabelName": "Graphic Male Nudity",
                             "ConfidenceLessThanEquals": 99
                         }
                     },
                     {
                         "ConditionType": "ModerationLabelConfidenceCheck",
                         "ConditionParameters": {
                             "ModerationLabelName": "Graphic Male Nudity",
                             "ConfidenceGreaterThanEquals": 90
                         }
                     }
                 ]
             },
             {
                 "And": [{
                         "ConditionType": "ModerationLabelConfidenceCheck",
                         "ConditionParameters": {
                             "ModerationLabelName": "Graphic Female Nudity",
                             "ConfidenceLessThanEquals": 99
                         }
                     },
                     {
                         "ConditionType": "ModerationLabelConfidenceCheck",
                         "ConditionParameters": {
                             "ModerationLabelName": "Graphic Female Nudity",
                             "ConfidenceGreaterThanEquals": 80
                         }
                     }
                 ]
             }
         ]
     }]
}
```

**例 2: `ModerationLabelConfidenceCheck` をキャッチオール値 (\$1)で使用する**

次の例では、信頼度が 75 以上のモデレーションラベルが検出された場合にヒューマンループが開始されます。ヒューマンレビュー担当者には、信頼スコアが 75 以上のすべてのモデレーションラベルをレビューすることが求められます。

```
{
    "Conditions": [
        {
            "ConditionType": "ModerationLabelConfidenceCheck",
            "ConditionParameters": {
                "ModerationLabelName": "*",
                "ConfidenceGreaterThanEquals": 75
            }
        }
    ]
}
```

**例 3: Sampling を使用する**

次の例では、`DetectModerationLabels` リクエストによって行われた Amazon Rekognition の推論の 5% が人間のワーカーに送られます。SageMaker AI コンソールで提供されているデフォルトのワーカータスクテンプレートを使用する場合、Amazon Rekognition から返されたすべてのモデレーションラベルがレビュー用にワーカーに送られます。

```
{
  "Conditions": [
    {
      "ConditionType": "Sampling",
      "ConditionParameters": {
        "RandomSamplingPercentage": 5
      }
    }
  ]
}
```

**例 4: サンプリングと `ModerationLabelConfidenceCheck` を `And` オペレーターで使用する**

この例では、Amazon Rekognition の信頼度が 50 より上の `Graphic Male Nudity` モデレーションラベルの推論の 5% がレビュー用にワーカーに送られます。SageMaker AI コンソールで提供されているデフォルトのワーカータスクテンプレートを使用する場合、`Graphic Male Nudity` ラベルの推論のみがレビュー用にワーカーに送られます。

```
{
  "Conditions": [
    {
      "And": [
        {
          "ConditionType": "Sampling",
          "ConditionParameters": {
            "RandomSamplingPercentage": 5
          }
        },
        {
          "ConditionType": "ModerationLabelConfidenceCheck",
          "ConditionParameters": {
            "ModerationLabelName": "Graphic Male Nudity",
            "ConfidenceGreaterThan": 50
          }
        }
      ]
    }
  ]
}
```

**例 5: サンプリングと `ModerationLabelConfidenceCheck` を `And` オペレーターで使用する**

この例では、指定したラベルの信頼度の低い推論は常に人間によるレビュー用に送られ、ラベルの信頼度の高い推論は指定した割合でサンプリングされるように人間によるレビューワークフローを設定します。

この例では、人間によるレビューは次のいずれかの方法で開始されます。
+ 信頼スコアが 60 未満の `Graphic Male Nudity` モデレーションラベルの推論は常にヒューマンレビューに送られます。`Graphic Male Nudity` ラベルのみがレビューのためにワーカーに送られます。
+ 信頼スコアが 90 より上の `Graphic Male Nudity` モデレーションラベルのすべての推論の 5% が人間によるレビュー用に送られます。`Graphic Male Nudity` ラベルのみがレビューのためにワーカーに送られます。

```
{
  "Conditions": [
    {
      "Or": [
        {
          "ConditionType": "ModerationLabelConfidenceCheck",
          "ConditionParameters": {
            "ModerationLabelName": "Graphic Male Nudity",
            "ConfidenceLessThan": 60
          }
        },
        {
            "And": [
                {
                    "ConditionType": "Sampling",
                    "ConditionParameters": {
                        "RandomSamplingPercentage": 5
                    }
                },
                {
                    "ConditionType": "ModerationLabelConfidenceCheck",
                    "ConditionParameters": {
                        "ModerationLabelName": "Graphic Male Nudity",
                        "ConfidenceGreaterThan": 90
                    }
                }
            ]
        }
      ]
    }
  ]
}
```

**例 6: サンプリングと `ModerationLabelConfidenceCheck` を `Or` オペレーターで使用する**

次の例では、Amazon Rekognition からの推論レスポンスに「Graphic Male Nudity」ラベルが含まれていて、推論の信頼度が 50 より上の場合にヒューマンループが作成されます。また、その他のすべての推論の 5% によって、ヒューマンループが開始されます。

```
{
  "Conditions": [
    {
      "Or": [
        {
          "ConditionType": "Sampling",
          "ConditionParameters": {
            "RandomSamplingPercentage": 5
          }
        },
        {
          "ConditionType": "ModerationLabelConfidenceCheck",
          "ConditionParameters": {
            "ModerationLabelName": "Graphic Male Nudity",
            "ConfidenceGreaterThan": 50
          }
        }
      ]
    }
  ]
}
```

# 人間によるレビューワークフローを削除する
<a name="a2i-delete-flow-definition"></a>

ヒューマンレビューワークフローを削除するか、ヒューマンループの進行中に AWS アカウントを削除すると、ヒューマンレビューワークフローのステータスが に変わります`Deleting`。これらのヒューマンループによって作成されたタスクをワーカーがまだ開始していない場合、Amazon A2I は関連するすべてのヒューマンループを自動的に停止して削除します。人間のワーカーがすでにタスクに取り組んでいる場合、そのタスクは完了するか期限が切れるまで引き続き使用できます。ワーカーがタスクで作業している限り、人間によるレビューワークフローのステータスは `Deleting` になります。これらのタスクが完了すると、結果はフロー定義で指定された Amazon S3 バケットに保存されます。

フロー定義を削除しても、S3 バケットからワーカーの回答は削除されません。タスクは完了したが、 AWS アカウントを削除した場合、結果は Augmented AI サービスバケットに 30 日間保存され、その後完全に削除されます。

すべてのヒューマンループが削除されると、人間によるレビューワークフローは完全に削除されます。人間によるレビューワークフローが削除されると、その名前を再利用して人間によるレビューワークフローを新しく作成できます。

人間によるレビューフローは、次のいずれかの理由で削除できます。
+ ヒューマンレビュー担当者のセットにデータを送信し、開始されていないヒューマンループをすべて削除する必要があるのは、これらのワーカーがこれらのタスクで作業しないようにするためです。
+ ワーカー UI を生成するために使用されるワーカータスクテンプレートが正しくレンダリングされないか、想定どおりに機能していません。

人間によるレビューワークフローを削除すると、次の変更が行われます。
+ 人間によるレビューワークフローは Amazon SageMaker AI コンソールの Augmented AI エリア内にある **[人間によるレビューワークフロー]** ページに表示されなくなります。
+ 人間によるレビューワークフロー名を API オペレーション [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFlowDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFlowDefinition.html) または [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteFlowDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteFlowDefinition.html) の入力として使用すると、Augmented AI は `ResourceNotFound` エラーを返します。
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListFlowDefinitions.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListFlowDefinitions.html) を使用する場合、削除された人間によるレビューワークフローは結果に含まれません。
+ 人間によるレビューワークフロー ARN を Augmented AI ランタイム API オペレーション `[ListHumanLoops](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_ListHumanLoops.html)` の入力として使用する場合、Augmented AI は `ResourceNotFoundException` を返します。

## コンソールまたは SageMaker API を使用してフロー定義を削除する
<a name="a2i-delete-flow-definition-how-to"></a>

人間によるレビューワークフローは SageMaker AI コンソールの Augmented AI エリアにある **[人間によるレビューワークフロー]** または SageMaker AI API を使用して削除できます。

フロー定義は、ステータスが `Active` である場合にのみ削除できます。

**人間によるレビューワークフローを削除する (コンソール)**

1. Augmented AI コンソール ([https://console.aws.amazon.com/a2i/](https://console.aws.amazon.com/a2i)) に移動します。

1. ナビゲーションペインの **[Augmented AI]** セクションで、**[Human review workflows]** (人間によるレビューワークフロー) を選択します。

1. 削除する人間によるレビューワークフローのハイパーリンク名を選択します。

1. 人間によるレビューワークフローの **[Summary]** (概要) ページで、**[Delete]** (削除) を選択します。

1. ヒューマンレビューワークフローを削除するかどうかを確認するダイアログボックスで、[**削除**] を選択します。

自動的に [**Human review workflows (ヒューマンレビューワークフロー)**] ページにリダイレクトされます。ヒューマンレビューワークフローが削除されている間は、そのワークフローの [ステータス] 列に [**削除**] というステータスが表示されます。削除すると、このページのワークフローの一覧には表示されなくなります。

**人間によるレビューワークフローを削除する (API)**  
SageMaker AI [DeleteFlowDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteFlowDefinition.html) API オペレーションを使用して人間によるレビューワークフロー (フロー定義) を削除できます。この API オペレーションは、[AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-flow-definition.html) および [さまざまな言語固有の SDK](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteFlowDefinition.html#API_DeleteFlowDefinition_SeeAlso) を介してサポートされています。次の表は、SDK for Python (Boto3) と AWS CLI を使用してヒューマンレビューワークフロー を削除するリクエストの例を示しています*`example-flow-definition`*。

------
#### [ AWS SDK for Python (Boto3) ]

次のリクエスト例では、SDK for Python (Boto3) を使用して人間によるレビューワークフローを削除します。詳細については、*AWS SDK for Python (Boto) API リファレンス*の「[delete\$1flow\$1definition](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.delete_flow_definition)」を参照してください。

```
import boto3

sagemaker_client = boto3.client('sagemaker')
response = sagemaker_client.delete_flow_definition(FlowDefinitionName='example-flow-definition')
```

------
#### [ AWS CLI ]

次のリクエスト例では、 CLI AWS を使用してヒューマンレビューワークフローを削除します。詳細については、*[AWS CLI CLI コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/)*の「[delete-flow-definition](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-flow-definition.html)」を参照してください。

```
$ aws sagemaker delete-flow-definition --flow-definition-name 'example-flow-definition'
```

------

アクションが成功した場合、Augmented AI は空の HTTP 本文を持つ HTTP 200 応答を返します。

# ヒューマンループを作成および開始する
<a name="a2i-start-human-loop"></a>

*ヒューマンループ*は、ヒューマンレビューワークフローを開始し、ヒューマンワーカーにデータレビュータスクを送信します。Amazon A2I 組み込みタスクタイプのいずれかを使用すると、フロー定義で指定された条件が満たされると、対応する AWS サービスがユーザーに代わってヒューマンループを作成して開始します。フロー定義で条件が指定されていない場合、オブジェクトごとにヒューマンループが作成されます。カスタムタスクに Amazon A2I を使用する場合、アプリケーションで `StartHumanLoop` が呼び出された時点で、ヒューマンループが開始されます。

次の手順に従って、Amazon Rekognition または Amazon Textract 組み込みタスクタイプとカスタムタスクタイプでヒューマンループを構成します。

**前提条件**

ヒューマンループを作成して開始するには、ヒューマンループを設定または開始する AWS Identity and Access Management (IAM) ユーザーまたはロールに`AmazonAugmentedAIFullAccess`ポリシーをアタッチする必要があります。これは、組み込みタスクタイプに `HumanLoopConfig` を使用してヒューマンループを設定するために使用する ID になります。カスタムタスクタイプの場合、`StartHumanLoop` を呼び出す際に使用する ID になります。

さらに、組み込みタスクタイプを使用する場合、ユーザーまたはロールには、タスクタイプに関連付けられた AWS サービスの API オペレーションを呼び出すアクセス許可が必要です。例えば、Augmented AI で Amazon Rekognition を使用する場合、`DetectModerationLabels` を呼び出すのに必要なアクセス許可をアタッチする必要があります。これらのアクセス許可を付与するために使用できるアイデンティティベースのポリシーの例については、「[Amazon Rekognition アイデンティティベースのポリシーの例](https://docs.aws.amazon.com/rekognition/latest/dg/security_iam_id-based-policy-examples.html)」と「[Amazon Textract アイデンティティベースのポリシーの例](https://docs.aws.amazon.com/textract/latest/dg/security_iam_id-based-policy-examples.html)」を参照してください。また、より一般的なポリシー `AmazonAugmentedAIIntegratedAPIAccess` を使用して、これらのアクセス許可を付与することもできます。詳細については、「[Amazon A2I、Amazon Textract、Amazon Rekognition API オペレーションを呼び出すアクセス権限を持つユーザーを作成する](a2i-permissions-security.md#a2i-grant-general-permission)」を参照してください。

ヒューマンループを作成して開始するには、フロー定義 ARN が必要です。フロー定義 (またはヒューマンレビューワークフロー) の作成方法については、「[人間によるレビューワークフローを作成する](a2i-create-flow-definition.md)」を参照してください。

**重要**  
Amazon A2I では、ヒューマンループ入力イメージデータを含むすべての S3 バケットに CORS ポリシーが添付されている必要があります。この変更の詳細については、「[CORS アクセス許可要件](a2i-permissions-security.md#a2i-cors-update)」を参照してください。

## 組み込みタスクタイプのヒューマンループを作成および開始する
<a name="a2i-human-loop-built-in-task-type"></a>

組み込みタスクタイプを使用してヒューマンループを開始するには、対応するサービスの API を使用して入力データを提供し、ヒューマンループを設定します。Amazon Textract の場合、`AnalyzeDocument` API オペレーションを使用します。Amazon Rekognition の場合、`DetectModerationLabels` API オペレーションを使用します。 AWS CLI または言語固有の SDK を使用して、これらの API オペレーションを使用してリクエストを作成できます。

**重要**  
組み込みタスクタイプを使用してヒューマンループを作成する場合、`DataAttributes` を使用して `StartHumanLoop` オペレーションに提供された入力に関連する一連の `ContentClassifiers` を指定できます。コンテンツ分類子を使用して、コンテンツに個人を特定できる情報やアダルトコンテンツが含まれていないことを宣言します。  
Amazon Mechanical Turk を使用するには、HIPAA で保護された健康情報を含む個人を特定できる情報がデータに含まれていないことを確認してください。​`FreeOfPersonallyIdentifiableInformation` コンテンツ分類子を含めます。このコンテンツ分類子を使用しない場合、SageMaker AI はタスクを Mechanical Turk に送信しません。データにアダルトコンテンツが含まれていない場合、`'FreeOfAdultContent'` 分類子も含めます。これらのコンテンツ分類子を使用しない場合、SageMaker AI が、タスクを表示できる Mechanical Turk ワーカーを制限する可能性があります。

組み込みタスクタイプの AWS サービス API を使用して ML ジョブを開始すると、Amazon A2I はそのサービスの推論結果をモニタリングします。例えば、Amazon Rekognition を使用してジョブを実行する場合、Amazon A2I は各イメージの推論信頼スコアをチェックし、フロー定義で指定されている信頼性のしきい値と比較します。ヒューマンレビュータスクを開始する条件が満たされている場合、またはフロー定義で条件を指定しなかった場合は、ヒューマンレビュータスクがワーカーに送信されます。

### Amazon Textract のヒューマンループを作成する
<a name="a2i-human-loop-textract"></a>

Amazon A2I は Amazon Textract と統合されており、Amazon Textract API を使用してヒューマンループを設定および開始できます。ドキュメント分析のためにドキュメントファイルを Amazon Textract に送信するには、[`AnalyzeDocument` API オペレーション](https://docs.aws.amazon.com/textract/latest/dg/API_AnalyzeDocument.html)を使用します。このドキュメント分析ジョブにヒューマンループを追加するには、パラメータ `HumanLoopConfig` を設定する必要があります。

ヒューマンループを設定する場合、`HumanLoopConfig` の `FlowDefinitionArn` で指定したフロー定義は `Document` パラメータの `Bucket` で識別されるバケットと同じ AWS リージョンにあることが必要です。

次の表は、 AWS CLI および でこのオペレーションを使用する方法の例を示しています AWS SDK for Python (Boto3)。

------
#### [ AWS SDK for Python (Boto3) ]

次のリクエスト例では、SDK for Python (Boto3) を使用します。詳細については、*AWS SDK for Python (Boto) APIリファレンス*の「[analyze\$1document](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/textract.html#Textract.Client.analyze_document)」を参照してください。

```
import boto3

textract = boto3.client('textract', aws_region)

response = textract.analyze_document(
            Document={'S3Object': {'Bucket': bucket_name, 'Name': document_name}},
            FeatureTypes=["TABLES", "FORMS"],
            HumanLoopConfig={
                'FlowDefinitionArn': 'arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name',
                'HumanLoopName': 'human_loop_name',
                'DataAttributes': {'ContentClassifiers': ['FreeOfPersonallyIdentifiableInformation','FreeOfAdultContent']}
            }
          )
```

------
#### [ AWS CLI ]

次のリクエスト例では、 CLI AWS を使用しています。詳細については、*[AWS CLI コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/)*の「[analyze-document](https://docs.aws.amazon.com/cli/latest/reference/textract/analyze-document.html)」を参照してください。

```
$ aws textract analyze-document \
     --document '{"S3Object":{"Bucket":"bucket_name","Name":"document_name"}}' \
     --human-loop-config HumanLoopName="human_loop_name",FlowDefinitionArn="arn:aws:sagemaker:aws-region:aws_account_number:flow-definition/flow_def_name",DataAttributes='{ContentClassifiers=["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}' \
     --feature-types '["TABLES", "FORMS"]'
```

```
$ aws textract analyze-document \
     --document '{"S3Object":{"Bucket":"bucket_name","Name":"document_name"}}' \
     --human-loop-config \
          '{"HumanLoopName":"human_loop_name","FlowDefinitionArn":"arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name","DataAttributes": {"ContentClassifiers":["FreeOfPersonallyIdentifiableInformation","FreeOfAdultContent"]}}' \
     --feature-types '["TABLES", "FORMS"]'
```

------

ヒューマンループを設定して `AnalyzeDocument` を実行した後、Amazon A2I が `AnalyzeDocument` の結果をモニタリングし、フロー定義のアクティベーション条件と照合します。1 つ以上のキー値のペアの Amazon Textract 推論信頼スコアがレビューの条件を満たしている場合、Amazon A2I は人間によるレビューループを開始し、その [https://docs.aws.amazon.com/textract/latest/dg/API_HumanLoopActivationOutput.html](https://docs.aws.amazon.com/textract/latest/dg/API_HumanLoopActivationOutput.html) オブジェクトを `AnalyzeDocument` のレスポンスに含めます。

### Amazon Rekognition のヒューマンループを作成する
<a name="a2i-human-loop-rekognition"></a>

Amazon A2I は Amazon Rekognition と統合されており、Amazon Rekognition API を使用してヒューマンループを設定および開始できます。コンテンツモデレーションのためにイメージを Amazon Rekognition に送信するには、[`DetectModerationLabels` API オペレーション](https://docs.aws.amazon.com/rekognition/latest/dg/API_DetectModerationLabels.html)を使用します。ヒューマンループを設定するには、`DetectModerationLabels` を設定する際に `HumanLoopConfig` パラメータを設定します。

ヒューマンループを設定する場合、`HumanLoopConfig` の `FlowDefinitionArn` で指定したフロー定義は `Image` パラメータの `Bucket` で識別される S3 バケットと同じ AWS リージョンにあることが必要です。

次の表は、 AWS CLI および でこのオペレーションを使用する方法の例を示しています AWS SDK for Python (Boto3)。

------
#### [ AWS SDK for Python (Boto3) ]

以下の リクエスト例では、 SDK for Python (Boto3) を使用します。詳細については、*AWS SDK for Python (Boto) API リファレンス*の「[detect\$1moderation\$1labels](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rekognition.html#Rekognition.Client.detect_moderation_labels)」を参照してください。

```
import boto3

rekognition = boto3.client("rekognition", aws_region)

response = rekognition.detect_moderation_labels( \
        Image={'S3Object': {'Bucket': bucket_name, 'Name': image_name}}, \
        HumanLoopConfig={ \
            'HumanLoopName': 'human_loop_name', \
            'FlowDefinitionArn': , "arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name" \
            'DataAttributes': {'ContentClassifiers': ['FreeOfPersonallyIdentifiableInformation','FreeOfAdultContent']}
         })
```

------
#### [ AWS CLI ]

次のリクエスト例では、 CLI AWS を使用しています。詳細については、*[AWS CLI コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/)*の「[detect-moderation-labels](https://docs.aws.amazon.com/cli/latest/reference/rekognition/detect-moderation-labels.html)」を参照してください。

```
$ aws rekognition detect-moderation-labels \
    --image "S3Object={Bucket='bucket_name',Name='image_name'}" \
    --human-loop-config HumanLoopName="human_loop_name",FlowDefinitionArn="arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name",DataAttributes='{ContentClassifiers=["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}'
```

```
$ aws rekognition detect-moderation-labels \
    --image "S3Object={Bucket='bucket_name',Name='image_name'}" \
    --human-loop-config \
        '{"HumanLoopName": "human_loop_name", "FlowDefinitionArn": "arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name", "DataAttributes": {"ContentClassifiers": ["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}}'
```

------

ヒューマンループを設定して `DetectModerationLabels` を実行した後、Amazon A2I が `DetectModerationLabels` の結果をモニタリングし、フロー定義のアクティベーション条件と照合します。イメージの Amazon Rekognition 推論信頼スコアがレビューの条件を満たしている場合、Amazon A2I が人間によるレビューループを開始し、応答要素 `HumanLoopActivationOutput` を `DetectModerationLabels` の応答に含めます。

## カスタムタスクタイプのヒューマンループを作成および開始する
<a name="a2i-instructions-starthumanloop"></a>

カスタムヒューマンレビュータスクのヒューマンループを設定するには、アプリケーション内で `StartHumanLoop` オペレーションを使用します。このセクションでは、 AWS SDK for Python (Boto3) と AWS Command Line Interface () を使用したヒューマンループリクエストの例を示しますAWS CLI。`StartHumanLoop` をサポートしている他の言語固有の SDK に関するドキュメントについては、 Amazon Augmented AI ランタイム API のドキュメントで、**[See Also]** (その他の資料) セクションの [StartHumanLoop](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_StartHumanLoop.html) を使用してください。カスタムタスクタイプで Amazon A2I を使用する方法を示す例については、「[Amazon A2I を使用したユースケースと例](a2i-task-types-general.md)」を参照してください。

**前提条件**

この手順を完了するには、以下が必要です。
+ JSON 形式のファイルの文字列表現としてフォーマットされた入力データ
+ フロー定義の Amazon リソースネーム (ARN)

**ヒューマンループを設定するには**

1. `DataAttributes` の場合、`StartHumanLoop` オペレーションに提供される入力に関連する `ContentClassifiers` のセットを指定します。コンテンツ分類子を使用して、コンテンツに個人を特定できる情報やアダルトコンテンツが含まれていないことを宣言します。

   Amazon Mechanical Turk を使用するには、HIPAA で保護された健康情報を含む個人を特定できる情報がデータに含まれていないことを確認し、`FreeOfPersonallyIdentifiableInformation` コンテンツ識別子を含めます。このコンテンツ分類子を使用しない場合、SageMaker AI はタスクを Mechanical Turk に送信しません。データにアダルトコンテンツが含まれていない場合、`'FreeOfAdultContent'` 分類子も含めます。これらのコンテンツ分類子を使用しない場合、SageMaker AI が、タスクを表示できる Mechanical Turk ワーカーを制限する可能性があります。

1. `FlowDefinitionArn` の場合、フロー定義の Amazon リソースネーム (ARN) を入力します。

1. `HumanLoopInput` の場合、JSON 形式のファイルの文字列表現として入力データを入力します。ヒューマンループを開始したときに、入力データがヒューマンワーカーに適切に表示されるように、入力データとカスタムワーカータスクテンプレートを構造化します。カスタムワーカータスクテンプレートをプレビューする方法については、「[ワーカータスクテンプレートをプレビューする](a2i-custom-templates.md#a2i-preview-your-custom-template)」を参照してください。

1. `HumanLoopName` の場合、ヒューマンループの名前を入力します。名前は、アカウントのリージョン内で一意である必要があり、63 文字以内で指定できます。有効な文字は、a ～ z、0 ～ 9、- (ハイフン) です。

**ヒューマンループを開始するには**
+ ヒューマンループを始めるには、希望する言語固有の SDK を使用して、次の例のようなリクエストを送信します。

------
#### [ AWS SDK for Python (Boto3) ]

次のリクエスト例では、SDK for Python (Boto3) を使用します。詳細については、*AWS SDK for Python (Boto) API リファレンス*の「[Boto 3 Augmented AI ランタイム](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-a2i-runtime.html#AugmentedAIRuntime.Client.start_human_loop)」を参照してください。

```
import boto3

a2i_runtime_client = boto3.client('sagemaker-a2i-runtime')

response = a2i_runtime_client.start_human_loop(
    HumanLoopName='human_loop_name',
    FlowDefinitionArn='arn:aws:sagemaker:aws-region:xyz:flow-definition/flow_def_name',
    HumanLoopInput={
        'InputContent': '{"InputContent": {\"prompt\":\"What is the answer?\"}}'    
    },
    DataAttributes={
        'ContentClassifiers': [
            'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent',
        ]
    }
)
```

------
#### [ AWS CLI ]

次のリクエスト例では、 CLI AWS を使用しています。詳細については、*[AWS CLI コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/)*の「[start-human-loop](https://docs.aws.amazon.com/cli/latest/reference/sagemaker-a2i-runtime/start-human-loop.html)」を参照してください。

```
$ aws sagemaker-a2i-runtime start-human-loop
        --flow-definition-arn 'arn:aws:sagemaker:aws_region:xyz:flow-definition/flow_def_name' \
        --human-loop-name 'human_loop_name' \
        --human-loop-input '{"InputContent": "{\"prompt\":\"What is the answer?\"}"}' \
        --data-attributes ContentClassifiers="FreeOfPersonallyIdentifiableInformation","FreeOfAdultContent" \
```

------

`StartHumanLoop` を直接呼び出すことによってヒューマンループを正常に開始すると、レスポンスには `HumanLoopARN` と、`NULL` に設定される `HumanLoopActivationResults` オブジェクトが含まれます。このヒューマンループ名を使用して、ヒューマンループを監視および管理できます。

## 次のステップ:
<a name="a2i-next-step-starthumanloop"></a>

ヒューマンループを開始したら、Amazon Augmented AI ランタイム API と Amazon CloudWatch Events を使用して管理およびモニタリングできます。詳細については[ヒューマンループの監視と管理](a2i-monitor-humanloop-results.md)を参照してください。

# ヒューマンループを削除する
<a name="a2i-delete-human-loop"></a>

ヒューマンループを削除すると、ステータスが `Deleting` に変わります。ヒューマンループが削除されると、関連付けられている人間によるレビュータスクをワーカーが使用できなくなります。ヒューマンループは、次のいずれかの状況で削除できます。
+ ワーカーユーザーインターフェイスの生成に使用されるワーカータスクテンプレートが正しくレンダリングされないか、想定どおりに機能していない。
+ 1 つのデータオブジェクトが誤ってワーカーに複数回送信された。
+ 人間によってレビューされたデータオブジェクトが不要になった。

ヒューマンループのステータスが `InProgress` の場合、削除する前にヒューマンループを停止する必要があります。ヒューマンループを停止すると、停止中にステータスは `Stopping` に変わります。ステータスが `Stopped` に変わると、ヒューマンループを削除できます。

人間のワーカーがすでにタスクに取り組んでいる場合に関連するヒューマンループを停止しても、そのタスクは完了するか期限が切れるまで引き続き使用できます。ワーカーがタスクで作業している限り、ヒューマンループのステータスは `Stopping` になります。これらのタスクが完了すると、結果は人間によるレビューワークフローで指定された Amazon S3 バケット URI に保存されます。ワーカーが作業を送信せずにタスクを離れると、そのタスクは停止され、ワーカーがタスクに戻ることはできません。タスクの作業を開始しているワーカーがいない場合は、すぐに停止されます。

ヒューマンループの作成に使用した AWS アカウントを削除すると、自動的に停止および削除されます。

## ヒューマンループのデータ保持と削除
<a name="a2i-delete-human-loop-data-retention"></a>

人間のワーカーがレビュータスクを完了すると、その結果は、ヒューマンループの作成に使用される人間によるレビューワークフローで指定した Amazon S3 出力バケットに保存されます。ヒューマンループを削除または停止しても、S3 バケットからワーカーの回答は削除されません。

また、Amazon A2I は次の理由によりヒューマンループの入出力データを内部で一時的に保存します。
+ 1 つのデータオブジェクトがレビュー用に複数のワーカーに送信されるようにヒューマンループを設定した場合、Amazon A2I はすべてのワーカーがレビュータスクを完了するまで S3 バケットに出力データを書き込みません。S3 バケットに完全な結果を書き込むため、Amazon A2I は部分的な回答 (個々のワーカーからの回答) を内部で保存します。
+ 品質が低い人間によるレビュー結果をレポートすると、Amazon A2I でその問題を調査して対応できます。
+ ヒューマンループの作成に使用した人間によるレビューワークフローで指定した出力 S3 バケットへのアクセスを失うか削除すると、タスクがすでに 1 人以上のワーカーに送信されている場合、Amazon A2I には人間によるレビュー結果を一時的に保存する場所が必要になります。

ヒューマンループのステータスが `Deleted`、`Stopped`、`Completed` のいずれかに変わってから 30 日後に、Amazon A2I はこのデータを内部で削除します。つまり、ヒューマンループが完了、停止、削除されてから 30 日後にデータが削除されます。さらに、関連するヒューマンループの作成に使用した AWS アカウントを閉鎖すると、このデータは 30 日後に削除されます。

## コンソールまたは Amazon A2I API を使用してフロー定義を停止または削除する
<a name="a2i-delete-human-loop-how-to"></a>

Augmented AI コンソールで、または SageMaker API を使用してヒューマンループを停止および削除できます。ヒューマンループが削除されると、ステータスが `Deleted` に変わります。

**ヒューマンループを削除する (コンソール)**

1. Augmented AI コンソール ([https://console.aws.amazon.com/a2i/](https://console.aws.amazon.com/a2i)) に移動します。

1. ナビゲーションペインの **[Augmented AI]** セクションで、**[Human review workflows]** (人間によるレビューワークフロー) を選択します。

1. 削除するヒューマンループの作成に使用した人間によるレビューワークフローのハイパーリンク名を選択します。

1. ページ下部にある **[Human loops]** (ヒューマンループ) セクションで、停止および削除するヒューマンループを選択します。

1. ヒューマンループのステータスが `Completed`、`Stopped`、`Failed` の場合、**[Delete]** (削除) を選択します。

   ヒューマンループの **[Status]** (ステータス) が `InProgress` の場合、**[Stop]** (停止) を選択します。ステータスが **Stopped** (停止) に変わったら、**[Delete]** (削除) をクリックします。

**ヒューマンループ (API) を削除する**

1. Augmented AI ランタイム API オペレーション `[DescribeHumanLoop](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_DescribeHumanLoop.html)` を使用してヒューマンループのステータスを確認します。次の表で、このオペレーションの使用例を参照してください。

------
#### [ AWS SDK for Python (Boto3) ]

   次の例では SDK for Python (Boto3) を使用して *example-human-loop* という名前のヒューマンループを記述します。詳細については、*AWS SDK for Python (Boto) API リファレンス*の「[describe\$1human\$1loop](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-a2i-runtime.html#AugmentedAIRuntime.Client.describe_human_loop)」を参照してください。

   ```
   import boto3
   
   a2i_runtime_client = boto3.client('sagemaker-a2i-runtime')
   response = a2i_runtime_client.describe_human_loop(HumanLoopName='example-human-loop')
   human_loop_status = response['HumanLoopStatus']
   print(f'example-human-loop status is: {human_loop_status}')
   ```

------
#### [ AWS CLI ]

   次の例では、 CLI AWS を使用して example*example-human-loop*という名前のヒューマンループを記述します。詳細については、*[AWS CLI コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/)*の「[describe-human-loop](https://docs.aws.amazon.com/cli/latest/reference/sagemaker-a2i-runtime/describe-human-loop.html)」を参照してください。

   ```
   $ aws sagemaker-a2i-runtime describe-human-loop --human-loop-name 'example-human-loop'
   ```

------

1. フロー定義のステータスが `Completed`、`Stopped`、`Failed` の場合、Augmented AI ランタイム API オペレーション `[DeleteHumanLoop](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_DeleteHumanLoop.html)` を使用してフロー定義を削除します。

------
#### [ AWS SDK for Python (Boto3) ]

   次の例では SDK for Python (Boto3) を使用して *example-human-loop* という名前のヒューマンループを削除します。詳細については、*AWS SDK for Python (Boto) API リファレンス*の「[delete\$1human\$1loop](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-a2i-runtime.html#AugmentedAIRuntime.Client.delete_human_loop)」を参照してください。

   ```
   import boto3
   
   a2i_runtime_client = boto3.client('sagemaker-a2i-runtime')
   response = a2i_runtime_client.delete_human_loop(HumanLoopName='example-human-loop')
   ```

------
#### [ AWS CLI ]

   次の例では、 CLI AWS を使用して example*example-human-loop*という名前のヒューマンループを削除します。詳細については、*[AWS CLI コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/)*の「[delete-human-loop](https://docs.aws.amazon.com/cli/latest/reference/sagemaker-a2i-runtime/delete-human-loop.html)」を参照してください。

   ```
   $ aws sagemaker-a2i-runtime delete-human-loop --human-loop-name 'example-human-loop'
   ```

------

   ヒューマンループのステータスが `InProgress` の場合、`[StopHumanLoop](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_StopHumanLoop.html)` を使用してヒューマンループを停止してから、`DeleteHumanLoop` を使用して削除します。

------
#### [ AWS SDK for Python (Boto3) ]

   次の例では SDK for Python (Boto3) を使用して *example-human-loop* という名前のヒューマンループを記述します。詳細については、*AWS SDK for Python (Boto) API リファレンス*の「[stop\$1human\$1loop](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-a2i-runtime.html#AugmentedAIRuntime.Client.stop_human_loop)」を参照してください。

   ```
   import boto3
   
   a2i_runtime_client = boto3.client('sagemaker-a2i-runtime')
   response = a2i_runtime_client.stop_human_loop(HumanLoopName='example-human-loop')
   ```

------
#### [ AWS CLI ]

   次の例では、 CLI AWS を使用して example*example-human-loop*という名前のヒューマンループを記述します。詳細については、*[AWS CLI コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/)*の「[stop-human-loop](https://docs.aws.amazon.com/cli/latest/reference/sagemaker-a2i-runtime/stop-human-loop.html)」を参照してください。

   ```
   $ aws sagemaker-a2i-runtime stop-human-loop --human-loop-name 'example-human-loop'
   ```

------

# ワーカータスクテンプレートを作成および管理する
<a name="a2i-instructions-overview"></a>

ワーカータスクテンプレートを作成し、ワーカーのタスクユーザーインターフェイスを作成できます。**ワーカータスクテンプレートは、ワーカーがタスクを完了するのに役立つ入力データと指示の表示に使用される HTML ファイルです。

Amazon Rekognition または Amazon Textract タスクタイプでは、グラフィカルユーザーインターフェイス (GUI) を使用して事前に作成されたワーカータスクテンプレートをカスタマイズし、HTML コードの操作を回避できます。このオプションでは、「[ヒューマンレビューワークフローを作成する (コンソール)](a2i-create-flow-definition.md#a2i-create-human-review-console)」の手順に従って人間によるレビューワークフローを作成し、Amazon SageMaker AI コンソールでワーカータスクテンプレートをカスタマイズします。これらの手順に従ってテンプレートを作成すると、[Augmented AI コンソール](https://console.aws.amazon.com/a2i)のワーカータスクテンプレートページに表示されます。

カスタムタスクタイプの人間によるレビューワークフローを作成する場合、HTML コードを使用してカスタムワーカータスクテンプレートを作成する必要があります。**詳細については、「[カスタムワーカータスクテンプレートを作成する](a2i-custom-templates.md)」を参照してください。

HTML を使用してテンプレートを作成する場合、このテンプレートを使用して、Amazon A2I コンソールで Amazon A2I のヒューマンタスク UI Amazon リソースネーム (ARN)を生成する必要があります。**この ARN は次の形式になります。`arn:aws:sagemaker:<aws-region>:<aws-account-number>:human-task-ui/<template-name>`この ARN は、1 つ以上の人間によるレビューワークフロー (フロー定義) で使用できるワーカータスクテンプレートリソースに関連付けられています。

「[ワーカータスクテンプレートを作成する](a2i-worker-template-console.md#a2i-create-worker-template-console)」の指示に従ったワーカータスクテンプレートを使用して、または、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html) API オペレーションを使用して、ヒューマンタスク UI ARN を生成します。

**Topics**
+ [ワーカータスクテンプレートを作成および削除する](a2i-worker-template-console.md)
+ [カスタムワーカータスクテンプレートを作成する](a2i-custom-templates.md)
+ [適切なワーカー指示書の作成](a2i-creating-good-instructions-guide.md)

# ワーカータスクテンプレートを作成および削除する
<a name="a2i-worker-template-console"></a>

ワーカーテンプレートを使用して、ワーカーがタスクで作業するときに表示されるインターフェイスと指示をカスタマイズできます。Amazon SageMaker AI コンソールの Augmented AI 領域でワーカータスクテンプレートを作成するには、このページの手順を使用します。Amazon Textract および Amazon Rekognition タスクには、スターターテンプレートが用意されています。HTML crowd 要素を使用してテンプレートをカスタマイズする方法については、「[カスタムワーカータスクテンプレートを作成する](a2i-custom-templates.md)」を参照してください。

SageMaker AI コンソールの Augmented AI 領域のワーカータスクテンプレートページでワーカーテンプレートを作成すると、ワーカータスクテンプレート ARN が生成されます。この ARN を API オペレーション [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html) を使用してフロー定義を作成するときの `HumanTaskUiArn` への入力として使用します。このテンプレートは、コンソールのヒューマンレビューワークフローページで人間によるレビューワークフローを作成するときに選択できます。

Amazon Textract または Amazon Rekognition タスクタイプのワーカータスクテンプレートリソースを作成する場合、ワーカータスクテンプレートのコンソールページでテンプレートから生成されたワーカー UI をプレビューできます。「[ワーカータスクテンプレートプレビューを有効にする](a2i-permissions-security.md#permissions-for-worker-task-templates-augmented-ai)」で説明されているポリシーを、テンプレートのプレビューに使用する IAM ロールにアタッチする必要があります。

## ワーカータスクテンプレートを作成する
<a name="a2i-create-worker-template-console"></a>

SageMaker AI コンソールと SageMaker API オペレーション [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html) を使用して、ワーカータスクテンプレートを作成できます。

**ワーカータスクテンプレート (コンソール) を作成する**

1. Amazon A2I コンソール ([https://console.aws.amazon.com/a2i/](https://console.aws.amazon.com/a2i)) を開きます。

1. 左側のナビゲーションペインの **Amazon Augmented AI** で、**[Worker task templates]** (ワーカータスクテンプレート) を選択します。

1. **[テンプレートを作成]** をクリックします。

1. [**Template name (テンプレート名)**] に一意の名前を入力します。

1. (オプション) ユーザーに代わってサービスの呼び出しに必要なアクセス許可を Amazon A2I に付与する **[IAM role]** (IAM ロール) を入力します。

1. **[Template type]** (テンプレートの種類) で、ドロップダウンメニューからテンプレートの種類を選択します。**Textract 形式の抽出** または **Rekognition 画像モデレーション** タスク用のテンプレートを作成する場合は、適切なオプションを選択します。

1. カスタムテンプレート要素を次のように入力します。
   + Amazon Textract または Amazon Rekognition タスクテンプレートを選択した場合、**[Template editor]** (テンプレートエディタ) はカスタマイズ可能なデフォルトテンプレートで自動入力されます。
   + カスタムテンプレートを使用している場合は、定義済みのテンプレートをエディタに入力します。

1. (オプション) このステップを完了するには、**[Step 5]** (ステップ 5) でユーザーインターフェイスにレンダリングされる Amazon S3 オブジェクトを読み取る権限を IAM ロール ARN に付与する必要があります。

   Amazon Textract または Amazon Rekognition のテンプレートを作成する場合のみ、テンプレートをプレビューできます。

   **[See preview]** (プレビューを表示) を選択して、ワーカーに表示されるインターフェイスと指示をプレビューします。これは対話型コマンドです。サンプルタスクを完了して、[**Submit (送信)**] を選択すると、実行したタスクの結果出力が表示されます。

   カスタムタスクタイプのワーカータスクテンプレートを作成している場合は、`RenderUiTemplate` を使用してワーカータスク UI をプレビューできます。詳細については、「[ワーカータスクテンプレートをプレビューする](a2i-custom-templates.md#a2i-preview-your-custom-template)」を参照してください。

1. テンプレートに問題がなければ、[**Create (作成)**] を選択します。

テンプレートを作成したら、コンソールでヒューマンレビューワークフローを作成するときに、そのテンプレートを選択できます。テンプレートは SageMaker AI コンソールの **[Amazon Augmented AI]** セクションで **[ワーカータスクテンプレート]** に表示されます。テンプレートを選択して ARN を表示します。[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html) API オペレーションを使用する場合は、この ARN を使用します。

**ワーカータスクテンプレート (API) を使用してワーカータスクテンプレートを作成する**  
SageMaker API オペレーション [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html) を使用してワーカータスクテンプレートを生成するには、`HumanTaskUiName` で UI の名前を指定し、`UiTemplate` の `Content` で HTML テンプレートを入力します。この API オペレーションをサポートする言語固有の SDK に関するドキュメントについては、「[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html)」の **[その他の資料]** セクションを参照してください。

## ワーカータスクテンプレートを削除する
<a name="sms-delete-worker-task-template"></a>

ワーカータスクテンプレートを作成したら、SageMaker AI コンソールまたは SageMaker API オペレーション [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteHumanTaskUi.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteHumanTaskUi.html) を使用して削除できます。

ワーカータスクテンプレートを削除すると、そのテンプレートを使用して作成された人間によるレビューワークフロー (フロー定義) を使用してヒューマンループを開始することはできません。削除したワーカータスクテンプレートを使用してすでに作成されているヒューマンループは、完了するまで継続して処理され、影響を受けません。

**ワーカータスクテンプレートを削除する (コンソール)**

1. Amazon A2I コンソール ([https://console.aws.amazon.com/a2i/](https://console.aws.amazon.com/a2i)) を開きます。

1. 左側のナビゲーションペインの Amazon Augmented AI で、**[Worker task templates]** (ワーカータスクテンプレート) を選択します。

1. 削除するテンプレートを選択します。

1. **[Delete]** (削除) を選択します。

1. 選択内容を確定するモーダルが表示されます。**[削除]** を選択します。

**ワーカータスクテンプレート (API) を削除する**  
SageMaker API オペレーション [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteHumanTaskUi.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteHumanTaskUi.html) を使用してワーカータスクテンプレートを削除するには、`HumanTaskUiName` で UI の名前を指定します。

# カスタムワーカータスクテンプレートを作成する
<a name="a2i-custom-templates"></a>

*crowd HTML 要素*は、質問したい内容に合わせて調整できるさまざまなタスクウィジェットとデザイン要素を提供するウェブコンポーネントです。これらの crowd 要素を使用してカスタムワーカーテンプレートを作成し、それを Amazon Augmented AI (Amazon A2I) の人間によるレビューワークフローと統合して、ワーカーコンソールと手順をカスタマイズできます。

Amazon A2I ユーザーが使用できるすべての HTML crowd 要素のリストについては、「[Crowd HTML 要素のリファレンス](sms-ui-template-reference.md)」を参照してください。テンプレートの例を確認するには、60 を超えるサンプルのカスタムタスクテンプレートがある「[AWS Github リポジトリ](https://github.com/aws-samples/amazon-a2i-sample-task-uis)」を参照してください。

## ローカルでテンプレートを開発する
<a name="developing-templates-locally"></a>

テンプレートによって入力データがどのように処理されるかをコンソールでテストする場合、次のコードを HTML ファイルの先頭に追加することによって、テンプレートの HTML およびカスタム要素のブラウザでのルックアンドフィールをテストできます。

```
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script>
```

これによって、カスタム HTML 要素のレンダリングに必要なコードがロードされます。このコードは、テンプレートのルックアンドフィールをコンソールではなく任意のエディタで作成する場合に使用します。

このコードでは、変数は解析されません。ローカルでの作成時には、それらを仮の内容で置き換えておくことができます。

## 外部アセットを使用する
<a name="a2i-custom-template-using-external-assets"></a>

Amazon Augmented AI カスタムテンプレートを使用すると、外部スクリプトやスタイルシートを埋め込むことができます。たとえば、次のヘッダーは、`https://www.example.com/my-enhancement-styles.css` にある `stylesheet` という名前の `text/css` スタイルシートをカスタムテンプレートに埋め込みます。

**Example**  

```
<script src="https://www.example.com/my-enhancment-script.js"></script>
<link rel="stylesheet" type="text/css" href="https://www.example.com/my-enhancement-styles.css">
```

エラーが発生した場合は、元のサーバーがアセットを含む正しい MIME タイプとエンコードヘッダーを送信していることを確認します。

例えば、リモートスクリプト用の MIME およびエンコードタイプは `application/javascript;CHARSET=UTF-8` です。

リモートスタイルシート用の MIME およびエンコードタイプは `text/css;CHARSET=UTF-8` です。

## 変数を追跡する
<a name="a2i-custom-template-step2-UI-vars"></a>

カスタムテンプレートの作成時には、タスクやワーカーごとに異なる可能性のあるデータを表す変数を追加する必要があります。サンプルテンプレートの 1 つから開始する場合、そのテンプレートで既に使用されている変数を確実に把握する必要があります。

例えば、Augmented AI の人間によるレビューループと Amazon Textract のテキストレビューループを統合するカスタムテンプレートの場合、初期値の入力データに `{{ task.input.selectedAiServiceResponse.blocks }}` を使用します。Amazon Augmented AI (Amazon A2I) を Amazon Rekognition と統合する場合、`{{ task.input.selectedAiServiceResponse.moderationLabels }}` が使用されます。カスタムタスクタイプの場合、タスクタイプの入力パラメータを決定する必要があります。`{{ task.input.customInputValuesForStartHumanLoop}}` を使用して、`customInputValuesForStartHumanLoop` を指定します。

## Amazon Textract のカスタムテンプレートの例
<a name="a2i-custom-templates-textract-sample"></a>

すべてのカスタムテンプレートは `<crowd-form> </crowd-form>` 要素で開始および終了します。標準の HTML の `<form>` 要素と同じく、これらの要素の間にすべてのフォームのコードを記述します。

Amazon Textract のドキュメント分析タスクには、`<crowd-textract-analyze-document>` 要素を使用します。次の属性が含まれています。
+ `src` – 注釈を付ける画像ファイルの URL を指定します。
+ `initialValue` – ワーカー UI で見つかった属性の初期値を設定します。
+ `blockTypes` (必須) – ワーカーが実行できる分析のタイプを決定します。現在、`KEY_VALUE_SET` のみがサポートされています。
+ `keys` (必須) – ワーカーが追加できる新しいキーとそれに関連付けるテキストの値を指定します。
+ `no-key-edit` (必須) – `initialValue` を通過したアノテーションのキーをワーカーが編集できないようにします。
+ `no-geometry-edit` – ワーカーが `initialValue` を介して渡されたアノテーションのポリゴンを編集できなくなります。

`<crowd-textract-analyze-document>` 要素の子要素には、2 つのリージョンを用意する必要があります。これらのリージョンで任意の HTML および CSS 要素を使用することができます。
+ `<full-instructions>` - ツールの **[View full instructions]** (詳細な手順を表示) リンクから使用できる手順。空白のままにしておくこともできますが、よりよい結果を得るために、完全な手順を入力することをお勧めします。
+ `<short-instructions>` - ツールのサイドバーに表示されるタスクの簡単な説明。空白のままにしておくこともできますが、よりよい結果を得るために、完全な手順を入力することをお勧めします。

 Amazon Textract のテンプレートの例を以下に示します。

**Example**  

```
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script>
{% capture s3_uri %}http://s3.amazonaws.com/{{ task.input.aiServiceRequest.document.s3Object.bucket }}/{{ task.input.aiServiceRequest.document.s3Object.name }}{% endcapture %}

<crowd-form>
  <crowd-textract-analyze-document
    src="{{ s3_uri | grant_read_access }}"
    initial-value="{{ task.input.selectedAiServiceResponse.blocks }}"
    header="Review the key-value pairs listed on the right and correct them if they don't match the following document."
    no-key-edit
    no-geometry-edit
    keys="{{ task.input.humanLoopContext.importantFormKeys }}"
    block-types="['KEY_VALUE_SET']"
  >
    <short-instructions header="Instructions">
      <style>
        .instructions {
          white-space: pre-wrap;
        }
        .instructionsImage {
          display: inline-block;
          max-width: 100%;
        }
      </style>
      <p class='instructions'>Choose a key-value block to highlight the corresponding key-value pair in the document.

If it is a valid key-value pair, review the content for the value. If the content is incorrect, correct it.

The text of the value is incorrect, correct it.
<img class='instructionsImage' src="https://example-site/correct-value-text.png" />

A wrong value is identified, correct it.
<img class='instructionsImage' src="https://example-site/correct-value.png" />

If it is not a valid key-value relationship, choose No.
<img class='instructionsImage' src="https://example-site/not-a-key-value-pair.png" />

If you can’t find the key in the document, choose Key not found.
<img class='instructionsImage' src="https://example-site/key-is-not-found.png" />

If the content of a field is empty, choose Value is blank.
<img class='instructionsImage' src="https://example-site/value-is-blank.png" />

<b>Examples</b>
Key and value are often displayed next to or below to each other.

Key and value displayed in one line.
<img class='instructionsImage' src="https://example-site/sample-key-value-pair-1.png" />

Key and value displayed in two lines.
<img class='instructionsImage' src="https://example-site/sample-key-value-pair-2.png" />

If the content of the value has multiple lines, enter all the text without a line break. Include all value text even if it extends beyond the highlight box.
<img class='instructionsImage' src="https://assets.crowd.aws/images/a2i-console/multiple-lines.png" /></p>
    </short-instructions>

    <full-instructions header="Instructions"></full-instructions>
  </crowd-textract-analyze-document>
</crowd-form>
```

## Amazon Rekognition のカスタムテンプレートの例
<a name="a2i-custom-templates-rekognition-sample"></a>

すべてのカスタムテンプレートは `<crowd-form> </crowd-form>` 要素で開始および終了します。標準の HTML の `<form>` 要素と同じく、これらの要素の間にすべてのフォームのコードを記述します。Amazon Rekognition カスタムタスクテンプレートの場合、`<crowd-rekognition-detect-moderation-labels>` 要素を使用します。この要素は、次の属性をサポートします。
+ `categories` - 文字列の配列または各オブジェクトが `name` フィールドを持つオブジェクトの配列。**
  + カテゴリがオブジェクトとして提供された場合は、次の条件が適用されます。
    + 表示されるカテゴリは、`name` フィールドの値です。
    + 返される値には、選択したカテゴリの*すべて*のオブジェクトが含まれます。
  + カテゴリが文字列として提供される場合は、次のようになります。
    + 返された答えは、選択されたすべての文字列の配列です。
+ `exclusion-category` – この属性を設定すると、UI のカテゴリの下にボタンが作成されます。ユーザーがこのボタンを選択すると、すべてのカテゴリの選択が解除されて無効になります。ワーカーがこのボタンを再度選択すると、ユーザーがまたカテゴリを選択できるようになります。このボタンを選択した後にワーカーが **[Submit]** (送信) ボタンを選択してタスクを送信すると、そのタスクは空の配列を返します。

`<crowd-rekognition-detect-moderation-labels>` 要素の子要素には、2 つのリージョンを用意する必要があります。
+ `<full-instructions>` - ツールの **[View full instructions]** (詳細な手順を表示) リンクから使用できる手順。空白のままにしておくこともできますが、よりよい結果を得るために、完全な手順を入力することをお勧めします。
+ `<short-instructions>` - ツールのサイドバーに表示されるタスクの簡単な説明。空白のままにしておくこともできますが、よりよい結果を得るために、完全な手順を入力することをお勧めします。

これらの要素を使用するテンプレートの例を以下に示します。

```
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script>
{% capture s3_uri %}http://s3.amazonaws.com/{{ task.input.aiServiceRequest.image.s3Object.bucket }}/{{ task.input.aiServiceRequest.image.s3Object.name }}{% endcapture %}

<crowd-form>
  <crowd-rekognition-detect-moderation-labels
    categories='[
      {% for label in task.input.selectedAiServiceResponse.moderationLabels %}
        {
          name: "{{ label.name }}",
          parentName: "{{ label.parentName }}",
        },
      {% endfor %}
    ]'
    src="{{ s3_uri | grant_read_access }}"
    header="Review the image and choose all applicable categories."
  >
    <short-instructions header="Instructions">
      <style>
        .instructions {
          white-space: pre-wrap;
        }
      </style>
      <p class='instructions'>Review the image and choose all applicable categories.
If no categories apply, choose None.

<b>Nudity</b>
Visuals depicting nude male or female person or persons

<b>Graphic Male Nudity</b>
Visuals depicting full frontal male nudity, often close ups

<b>Graphic Female Nudity</b>
Visuals depicting full frontal female nudity, often close ups

<b>Sexual Activity</b>
Visuals depicting various types of explicit sexual activities and pornography

<b>Illustrated Nudity or Sexual Activity</b>
Visuals depicting animated or drawn sexual activity, nudity, or pornography

<b>Adult Toys</b>
Visuals depicting adult toys, often in a marketing context

<b>Female Swimwear or Underwear</b>
Visuals depicting female person wearing only swimwear or underwear

<b>Male Swimwear Or Underwear</b>
Visuals depicting male person wearing only swimwear or underwear

<b>Partial Nudity</b>
Visuals depicting covered up nudity, for example using hands or pose

<b>Revealing Clothes</b>
Visuals depicting revealing clothes and poses, such as deep cut dresses

<b>Graphic Violence or Gore</b>
Visuals depicting prominent blood or bloody injuries

<b>Physical Violence</b>
Visuals depicting violent physical assault, such as kicking or punching

<b>Weapon Violence</b>
Visuals depicting violence using weapons like firearms or blades, such as shooting

<b>Weapons</b>
Visuals depicting weapons like firearms and blades

<b>Self Injury</b>
Visuals depicting self-inflicted cutting on the body, typically in distinctive patterns using sharp objects

<b>Emaciated Bodies</b>
Visuals depicting extremely malnourished human bodies

<b>Corpses</b>
Visuals depicting human dead bodies

<b>Hanging</b>
Visuals depicting death by hanging</p>
    </short-instructions>

    <full-instructions header="Instructions"></full-instructions>
  </crowd-rekognition-detect-moderation-labels>
</crowd-form>
```

## Liquid を使用して自動化を追加する
<a name="a2i-custom-templates-step2-automate"></a>

カスタムテンプレートシステムは、自動化に [Liquid](https://shopify.github.io/liquid/) を使用します。*Liquid* はオープンソースのインラインマークアップ言語です。詳細およびドキュメントについては、[Liquid のホームページ](https://shopify.github.io/liquid/)を参照してください。

Liquid では、一重波括弧とパーセント記号で囲まれたテキストは、制御フローやイテレーションなどを実行する 1 つの手順またはタグになります。**二重波括弧で囲まれたテキストは、値を出力する 1 つの変数または*オブジェクト*です。次のリストには、テンプレート入力データの処理を自動化するのに便利な 2 種類の Liquid タグが含まれています。以下のタグタイプのいずれかを選択すると、Liquid のドキュメントにリダイレクトされます。
+ [フロー制御](https://shopify.github.io/liquid/tags/control-flow/): `if/else`、`unless`、`case/when` のようなプログラミングロジック演算子が含まれています。
+ [イテレーション](https://shopify.github.io/liquid/tags/iteration/): FOR LOOP などのステートメントを使用して、コードのブロックを繰り返し実行できます。

  例えば、次のコード例は Liquid の `for` タグを使用して `for` loop を作成する方法を示しています。この例では、Amazon Rekognition から返された [https://docs.aws.amazon.com/rekognition/latest/dg/API_ModerationLabel.html](https://docs.aws.amazon.com/rekognition/latest/dg/API_ModerationLabel.html) をループ処理し、`moderationLabels` 属性 `name` と `parentName` をワーカーのレビュー用に表示します。

  ```
   {% for label in task.input.selectedAiServiceResponse.moderationLabels %}
      {
        name: &quot;{{ label.name }}&quot;,
        parentName: &quot;{{ label.parentName }}&quot;,
      },
   {% endfor %}
  ```

### 変数フィルターを使用する
<a name="a2i-custom-templates-step2-automate-filters"></a>

標準の [Liquid のフィルター](https://shopify.github.io/liquid/filters/abs/)とアクションに加えて、Amazon Augmented AI (Amazon A2I) には追加のフィルターが用意されています。フィルターを適用するには、変数名の後をパイプ (`|`) 文字で区切ってからフィルター名を指定します。フィルターを追加するには、次の形式を使用します。

**Example**  

```
{{ <content> | <filter> | <filter> }}
```

#### 自動的なエスケープおよび明示的なエスケープ
<a name="a2i-custom-templates-step2-automate-filters-autoescape"></a>

デフォルトでは、変数のテキストと HTML との間の混乱を避けるために、入力は HTML エスケープされます。`escape` フィルターを明示的に追加すると、テンプレートのソースを確認するユーザーに、エスケープ処理が行われていることをより明確に示すことができます。

#### escape\$1once
<a name="a2i-custom-templates-step2-automate-escapeonce"></a>

`escape_once` を使用すると、既にエスケープしたコードは確実に再度エスケープされなくなります。例えば、`&amp;` が `&amp;amp;` にならないようにします。

#### skip\$1autoescape
<a name="a2i-custom-templates-step2-automate-skipautoescape"></a>

`skip_autoescape` は、コンテンツが HTML として使用されるよう設計されている場合に便利です。例えば、いくつかの段落のテキストとイメージが境界ボックスの詳細な手順にある場合です。

**注記**  
`skip_autoescape` は慎重に使用してください。テンプレートにおけるベストプラクティスは、渡す値を厳重に管理できることが確実な場合を除いて、`skip_autoescape` を使用して関数のコードやマークアップを渡さないことです。ユーザー入力を渡している場合は、ワーカーをクロスサイトスクリプティング攻撃に対して開放している可能性があります。

#### to\$1json
<a name="a2i-custom-templates-step2-automate-tojson"></a>

`to_json` は、指定したデータを JavaScript Object Notation (JSON) にエンコードします。オブジェクトを指定すると、シリアル化します。

#### grant\$1read\$1access
<a name="a2i-custom-templates-step2-automate-grantreadaccess"></a>

`grant_read_access` は Amazon Simple Storage Service (Amazon S3) URI を使用し、そのリソースに対する存続期間の短いアクセストークンを使用する HTTPS URL にエンコードします。これにより、ワーカーに公開していない S3 バケットに保存されている写真、音声、動画などのオブジェクトをワーカーに表示できるようになります。

#### s3\$1presign
<a name="a2i-custom-templates-step2-automate-s3"></a>

 `s3_presign` フィルターは `grant_read_access` フィルターと同様に機能します。`s3_presign` は Amazon S3 URI を使用し、そのリソースに対する存続期間の短いアクセストークンを使用する HTTPS URL にエンコードします。これにより、ワーカーに公開していない S3 バケットに保存されている写真、音声、動画などのオブジェクトをワーカーに表示できるようになります。

**Example 変数フィルターの例**  
Input  

```
auto-escape: {{ "Have you read 'James & the Giant Peach'?" }}
explicit escape: {{ "Have you read 'James & the Giant Peach'?" | escape }}
explicit escape_once: {{ "Have you read 'James &amp; the Giant Peach'?" | escape_once }}
skip_autoescape: {{ "Have you read 'James & the Giant Peach'?" | skip_autoescape }}
to_json: {{ jsObject | to_json }}                
grant_read_access: {{ "s3://amzn-s3-demo-bucket/myphoto.png" | grant_read_access }}
s3_presign: {{ "s3://amzn-s3-demo-bucket/myphoto.png" | s3_presign }}
```

**Example**  
Output  

```
auto-escape: Have you read &#39;James &amp; the Giant Peach&#39;?
explicit escape: Have you read &#39;James &amp; the Giant Peach&#39;?
explicit escape_once: Have you read &#39;James &amp; the Giant Peach&#39;?
skip_autoescape: Have you read 'James & the Giant Peach'?
to_json: { "point_number": 8, "coords": [ 59, 76 ] }
grant_read_access: https://s3.amazonaws.com/amzn-s3-demo-bucket/myphoto.png?<access token and other params>
s3_presign: https://s3.amazonaws.com/amzn-s3-demo-bucket/myphoto.png?<access token and other params>
```

**Example 自動分類テンプレートの例**  
この単純なテキスト分類のサンプルを自動化するには、Liquid タグの `{{ task.input.source }}` を含めます。この例では、[crowd-classifier](sms-ui-template-crowd-classifier.md) 要素を使用します。  

```
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script>
<crowd-form>
  <crowd-classifier 
    name="tweetFeeling"
    categories="['positive', 'negative', 'neutral', 'cannot determine']"
    header="Which term best describes this tweet?" 
  >
    <classification-target>
       {{ task.input.source }}
    </classification-target>

    <full-instructions header="Analyzing a sentiment">
      Try to determine the feeling the author 
      of the tweet is trying to express. 
      If none seems to match, choose "other."
    </full-instructions>

    <short-instructions>
      Pick the term that best describes the sentiment 
      of the tweet. 
    </short-instructions>

  </crowd-classifier>
</crowd-form>
```

## ワーカータスクテンプレートをプレビューする
<a name="a2i-preview-your-custom-template"></a>

カスタムワーカータスクテンプレートをプレビューするには、SageMaker AI の `RenderUiTemplate` オペレーションを使用します。`RenderUiTemplate` オペレーションは、 AWS CLI または任意の AWS SDK で使用できます。この API オペレーションでサポートされている言語固有の SDK に関するドキュメントについては、「[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html)」の「[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html#API_RenderUiTemplate_SeeAlso](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html#API_RenderUiTemplate_SeeAlso)」セクションを参照してください。

**前提条件**

ワーカータスクテンプレート、 AWS Identity and Access Management (IAM) ロール Amazon リソースネーム (ARN)、または をプレビューするには`RoleArn`、テンプレートで使用される S3 オブジェクトへのアクセス許可が必要です。ロールまたはユーザーを設定する方法については、「[ワーカータスクテンプレートプレビューを有効にする](a2i-permissions-security.md#permissions-for-worker-task-templates-augmented-ai)」を参照してください。

**`RenderUiTemplate` オペレーションを使用してワーカータスクテンプレートをプレビューするには**

1. カスタムテンプレートをプレビューするために必要なポリシーをアタッチしたロールの **`RoleArn`** を指定します。

1. **`Task`** の **`Input`** パラメータで、テンプレートで定義されている変数の値を含む JSON オブジェクトを指定します。これらは、`task.input.source` 変数に代入される変数です。例えば、テンプレートで task.input.text という変数を定義する場合、JSON オブジェクトの変数は `text`: `sample text` のように指定できます。

1. **`UiTemplate`** の **`Content`** パラメータで、テンプレートを挿入します。

`RenderUiTemplate` を設定したら、任意の SDK または AWS CLI を使用して、テンプレートをレンダリングするリクエストを送信します。リクエストが成功した場合、レスポンスには、ワーカーの UI の HTML をレンダリングする Liquid テンプレートである [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html#API_RenderUiTemplate_ResponseSyntax](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html#API_RenderUiTemplate_ResponseSyntax) が含まれます。

**重要**  
テンプレートをプレビューするには、ユーザーインターフェイスでレンダリングされる Amazon S3 オブジェクトの読み取り権限を持つ IAM ロールが必要です。これらのアクセス許可を付与するために IAM ロールにアタッチできるサンプルポリシーについては、「[ワーカータスクテンプレートプレビューを有効にする](a2i-permissions-security.md#permissions-for-worker-task-templates-augmented-ai)」を参照してください。

# 適切なワーカー指示書の作成
<a name="a2i-creating-good-instructions-guide"></a>

ヒューマンレビュージョブに適切な指示書を作成することで、タスクの完了におけるワーカーの精度が向上します。ヒューマンレビューワークフローの作成時にコンソールに表示されるデフォルトの指示を変更するか、コンソールを使用してカスタムワーカーテンプレートを作成し、指示書をこのテンプレートに含めることができます。この指示書は、ラベリングタスクが完了した UI ページでワーカーに表示されます。

## 適切なワーカー指示書を作成する
<a name="a2i-good-instructions-console"></a>

Amazon Augmented AI コンソールには、次の 3 種類の指示書があります。
+ **Task Description** (タスクの説明) - 記述内容は、タスクの簡潔な説明を提供する必要があります。
+ **Instructions** (指示書) – これらの指示書は、ワーカーがタスクを完了するのページと同じウェブページに表示されます。これらの指示書は、タスクを完了するための適切な方法をワーカーに示すものであるため、簡単に参照できるようにする必要があります。
+ **Additional Instructions** (追加の指示書) - これらの指示書は、ワーカーが **[View full instructions]** (すべての指示書を表示) を選択したときに現れるダイアログボックスに表示されます。オブジェクトにラベルを付ける際のエッジケースやその他の難しい状況を示すいくつかの例を含めた、タスク完了のための詳細な指示書を提供することをお勧めします。

## 指示書にサンプル画像を追加する
<a name="sms-using-s3-images"></a>

画像はワーカーに役立つ例を示します。一般公開されている画像を指示書に追加するには、次の操作を行います。

1. 指示書のエディタ内で画像が表示される位置にカーソルを置きます。

1. エディタのツールバーの画像アイコンを選択します。

1. 画像の URL を入力します。

指示書のイメージが、一般公開されていない S3 バケットにある場合は、次の操作を行います。
+ 画像の URL に、`{{ 'https://s3.amazonaws.com/your-bucket-name/image-file-name' | grant_read_access }}` を入力します。

これにより、存続期間の短いワンタイムアクセスコードが追加されたイメージ URL がレンダリングされ、ワーカーのブラウザに表示されるようになります。壊れた画像アイコンが指示書のエディタに表示されますが、ツールをプレビューすると、レンダリングされたプレビューに画像が表示されます。`grand_read_access` 要素の詳細については、「[s3\$1presigngrant\$1read\$1accesss3\$1presign](a2i-custom-templates.md#a2i-custom-templates-step2-automate-grantreadaccess)」を参照してください。

# ヒューマンループの監視と管理
<a name="a2i-monitor-humanloop-results"></a>

人間によるレビューループを開始したら、[Amazon Augmented AI ランタイム API](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/Welcome.html) を使用してタスクの結果を確認してループに送信し、管理できます。さらに、Amazon A2I は Amazon EventBridge (別名:Amazon CloudWatch Events) と統合し、人間によるレビューループのステータスが `Completed`、`Failed`、または `Stopped` に変わったときに警告します。このイベント配信は少なくとも 1 回保証されます。つまり、ヒューマンループが終了したときに作成されたすべてのイベントが EventBridge に正常に配信されます。

次の手順を使用して、Amazon A2I ランタイム API を使用してヒューマンループをモニタリングおよび管理する方法を学習します。Amazon A2I がどのように Amazon EventBridge と統合されているのかについては、「[Amazon Augmented AI Amazon CloudWatch Events で を使用する](a2i-cloudwatch-events.md)」を参照してください。

**出力データを確認するには:**

1. [https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_DescribeHumanLoop.html](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_DescribeHumanLoop.html) オペレーションを呼び出して、ヒューマンループの結果を確認します。この API オペレーションの結果には、ループアクティベーションの理由と結果に関する情報が含まれます。

1. Amazon Simple Storage Service (Amazon S3) で、ヒューマンループからの出力データを確認します。データへのパスで、`YYYY/MM/DD/hh/mm/ss` は年 (`YYYY`)、月 (`MM`)、日 (`DD`)、作成時刻 (`hh`)、分 (`mm`)、秒 (`ss`) を使用してヒューマンループの作成日時を表します。

   ```
   s3://customer-output-bucket-specified-in-flow-definition/flow-definition-name/YYYY/MM/DD/hh/mm/ss/human-loop-name/output.json
   ```

この構造を AWS Glue または Amazon Athena と統合して、出力データを分割して分析できます。詳細については、「[AWS Glue における ETL 出力のパーティションの管理](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-partitions.html)」を参照してください。

Amazon A2I 出力データ形式の詳細については、「[Amazon A2I 出力データ](a2i-output-data.md)」を参照してください。

**ヒューマンループを停止して削除するには:**

1. ヒューマンループが始まったら、`HumanLoopName` を使用して [https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_StopHumanLoop.html](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_StopHumanLoop.html) オペレーションを呼び出し、ヒューマンループを停止できます。ヒューマンループが正常に停止した場合、サーバーは HTTP 200 レスポンスを返送します。

1. ステータスが `Failed`、`Completed`、または `Stopped` に等しいヒューマンループを削除するには、[https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_DeleteHumanLoop.html](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_DeleteHumanLoop.html) オペレーションを使用します。

**ヒューマンループをリストするには:**

1. [https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_ListHumanLoops.html](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_ListHumanLoops.html) オペレーションを呼び出すことによって、アクティブなヒューマンループをすべて一覧表示できます。`CreationTimeAfter` および `CreateTimeBefore` パラメータを使用して、ループの作成日によってヒューマンループをフィルタリングできます。

1. 成功した場合、`ListHumanLoops` はレスポンス要素に [https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_HumanLoopSummary.html](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_HumanLoopSummary.html) と `NextToken` オブジェクトを返します。`HumanLoopSummaries` には、単一のヒューマンループに関する情報が含まれています。例えば、ループのステータスを一覧表示し、該当する場合、失敗理由が表示されます。

   `NextToken` で返された文字列を `ListHumanLoops` への後続の呼び出しで入力として使用し、ヒューマンループの次のページを確認します。

# Amazon A2I 出力データ
<a name="a2i-output-data"></a>

機械学習ワークフローが Amazon A2I にデータオブジェクトを送信すると、ヒューマンループが作成され、人間によるレビュー担当者がタスクを受け取り、そのデータオブジェクトをレビューします。****各人間によるレビュータスクからの出力データは、人間によるレビューワークフローで指定した Amazon Simple Storage Service (Amazon S3) 出力バケットに保存されます。データへのパスで、`YYYY/MM/DD/hh/mm/ss` は年 (`YYYY`)、月 (`MM`)、日 (`DD`)、作成時刻 (`hh`)、分 (`mm`)、秒 (`ss`) を使用してヒューマンループの作成日時を表します。

```
s3://customer-output-bucket-specified-in-flow-definition/flow-definition-name/YYYY/MM/DD/hh/mm/ss/human-loop-name/output.json
```

出力データの内容は、[タスクタイプ](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-task-types-general.html) (組み込みまたはカスタム) と使用する[ワークフォース](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-management.html)のタイプによって異なります。出力データには、常に人間のワーカーからのレスポンスが含まれます。さらに、出力データには、ヒューマンループ、人間によるレビュー担当者 (ワーカー)、データオブジェクトに関するメタデータを含めることができます。

次のセクションでは、さまざまなタスクタイプとワークフォースの Amazon A2I 出力データ形式の詳細について説明します。

## 組み込みタスクタイプからの出力データ
<a name="sms-output-data-textract"></a>

Amazon A2I 組み込みタスクタイプには、Amazon Textract と Amazon Rekognition があります。人間によるレスポンスに加えて、これらのタスクのいずれかからの出力データには、ヒューマンループが作成された理由と、ヒューマンループの作成に使用される統合サービスに関する詳細が含まれます。次の表では、すべての組み込みタスクタイプに対する出力データスキーマの詳細について説明します。これらの各パラメータの値は、Amazon A2I で使用するサービスによって異なります。**これらのサービス固有の値の詳細については、このセクションの 2 番目の表を参照してください。


****  

| パラメータ | 値の型 | 値の例 | 説明 | 
| --- | --- | --- | --- | 
| awsManagedHumanLoopRequestSource |  文字列  | AWS/Rekognition/DetectModerationLabels/Image/V3、または AWS/Textract/AnalyzeDocument/Forms/V1 | Amazon A2I にヒューマンループの作成をリクエストした API オペレーションおよび関連 AWS サービス。これは、Amazon A2I ヒューマンループの設定に使用する API オペレーションです。 | 
| flowDefinitionArn |  String  | arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name |  ヒューマンループの作成に使用される人間によるレビューワークフロー (フロー定義) の Amazon リソースナンバー (ARN)。  | 
| humanAnswers |  JSON オブジェクトのリスト  | <pre>{<br />"answerContent": {<br />    "AWS/Rekognition/DetectModerationLabels/Image/V3": {<br />        "moderationLabels": [...]<br />    }<br />},</pre> または<pre>{<br />    "answerContent": {<br />        "AWS/Textract/AnalyzeDocument/Forms/V1": {<br />            "blocks": [...]<br />    }<br />},</pre> | answerContent にワーカーのレスポンスを含む JSON オブジェクトのリスト。このオブジェクトには、送信の詳細と、プライベートワークフォースが使用された場合は、ワーカーのメタデータも含まれます。詳細については[ワーカーのアクティビティを追跡する](#a2i-worker-id-private)を参照してください。Amazon Rekognition `DetectModerationLabel` レビュータスクから生成された人のループ出力データの場合、このパラメータには肯定レスポンスのみが含まれます。例えば、ワーカーが [No content] (コンテンツなし) を選択した場合、このレスポンスは含まれません。** | 
| humanLoopName |  String  |  `'human-loop-name'`  | ヒューマンループの名前。 | 
| inputContent |  JSON オブジェクト  |  <pre>{<br />    "aiServiceRequest": {...},<br />    "aiServiceResponse": {...},<br />    "humanTaskActivationConditionResults": {...},<br />    "selectedAiServiceResponse": {...}<br />}</pre>  |  ヒューマンループの作成をリクエストしたときに AWS サービスが Amazon A2I に送信した入力コンテンツ。  | 
| aiServiceRequest |  JSON オブジェクト  | <pre>{<br />    "document": {...},<br />    "featureTypes": [...],<br />    "humanLoopConfig": {...}<br />}</pre>または <pre>{<br />    "image": {...},<br />    "humanLoopConfig": {...}<br />}</pre> |  Amazon A2I と統合された AWS サービスに送信された元のリクエスト。例えば、Amazon Rekognition を Amazon A2I とともに使用する場合、これには API オペレーション `DetectModerationLabels` 経由で行われたリクエストが含まれます。Amazon Textract 統合の場合、これには `AnalyzeDocument` 経由で行われたリクエストが含まれます。  | 
| aiServiceResponse |  JSON オブジェクト  |  <pre>{<br />    "moderationLabels": [...],<br />    "moderationModelVersion": "3.0"<br />}</pre> または <pre>{<br />    "blocks": [...],<br />    "documentMetadata": {}<br />}</pre>  |   AWS サービスからのフルレスポンス。これは、人間によるレビューが必要かどうかを判断するために使用されるデータです。このオブジェクトには、人間によるレビュー担当者と共有されていないデータオブジェクトに関するメタデータが含まれていることがあります。  | 
| selectedAiServiceResponse |  JSON オブジェクト  |  <pre>{<br />    "moderationLabels": [...],<br />    "moderationModelVersion": "3.0"<br />}</pre> または <pre>{<br />    "blocks": [...],<br />    "documentMetadata": {}<br />}</pre>  |  `ActivationConditions` のアクティベーション条件に一致する `aiServiceResponse` のサブセット。 `aiServiceResponse` にリストされているすべてのデータオブジェクトは推論がランダムにサンプリングされた場合、またはすべての推論がアクティベーション条件を開始すると `selectedAiServiceResponse` にリストされます。  | 
| humanTaskActivationConditionResults |  JSON オブジェクト  |  <pre>{<br />     "Conditions": [...]<br />}</pre>  |  ヒューマンループが作成された理由を含む `inputContent` 内の JSON オブジェクト。これには、人間によるレビューワークフロー (フロー定義) に含まれるアクティベーション条件 (`Conditions`) のリストと、各条件の評価結果 (`true` または `false`) が含まれます。アクティベーション条件の詳細については、「[Amazon Augmented AI のヒューマンループのアクティベーション条件に対する JSON スキーマ](a2i-human-fallback-conditions-json-schema.md)」を参照してください。  | 

次の表でタブを選択してタスクタイプ固有のパラメータについて確認し、組み込みの各タスクタイプに対する出力データコードブロックの例を参照してください。

------
#### [ Amazon Textract Task Type Output Data ]

Amazon Textract 組み込み統合を使用すると、`'AWS/Textract/AnalyzeDocument/Forms/V1'` が `awsManagedHumanLoopRequestSource` の値として出力データに表示されます。

`answerContent` パラメータには Amazon A2I に送信されたすべてのブロックに対する人間によるレスポンスを含む `Block` オブジェクトが含まれます。

`aiServiceResponse` パラメータには `AnalyzeDocument` に送信された元のリクエストに対する Amazon Textract レスポンスを持つ `Block` オブジェクトが含まれます。

ブロックオブジェクトに表示されるパラメータの詳細については、[Amazon Textract デベロッパーガイド](https://docs.aws.amazon.com/textract/latest/dg/API_Block.html)の「*ブロック*」を参照してください。

Amazon Textract ドキュメント分析の推論に関する Amazon A2I の人間によるレビューからの出力データの例を次に示します。

```
{
    "awsManagedHumanLoopRequestSource": "AWS/Textract/AnalyzeDocument/Forms/V1",
    "flowDefinitionArn": "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name",
    "humanAnswers": [
        {
            "answerContent": {
                "AWS/Textract/AnalyzeDocument/Forms/V1": {
                    "blocks": [...]
                }
            },
            "submissionTime": "2020-09-28T19:17:59.880Z",
            "workerId": "111122223333",
            "workerMetadata": {
                "identityData": {
                    "identityProviderType": "Cognito",
                    "issuer": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_111111",
                    "sub": "c6aa8eb7-9944-42e9-a6b9-111122223333"
                }
            }
        }
    ],
    "humanLoopName": "humnan-loop-name",
    "inputContent": {
        "aiServiceRequest": {
            "document": {
                "s3Object": {
                    "bucket": "amzn-s3-demo-bucket1",
                    "name": "document-demo.jpg"
                }
            },
            "featureTypes": [
                "TABLES",
                "FORMS"
            ],
            "humanLoopConfig": {
                "dataAttributes": {
                    "contentClassifiers": [
                        "FreeOfPersonallyIdentifiableInformation"
                    ]
                },
                "flowDefinitionArn": "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name",
                "humanLoopName": "humnan-loop-name"
            }
        },
        "aiServiceResponse": {
            "blocks": [...],
            "documentMetadata": {
                "pages": 1
            }
        },
        "humanTaskActivationConditionResults": {
            "Conditions": [
                {
                    "EvaluationResult": true,
                    "Or": [
                        {
                            "ConditionParameters": {
                                "ImportantFormKey": "Mail address",
                                "ImportantFormKeyAliases": [
                                    "Mail Address:",
                                    "Mail address:",
                                    "Mailing Add:",
                                    "Mailing Addresses"
                                ],
                                "KeyValueBlockConfidenceLessThan": 100,
                                "WordBlockConfidenceLessThan": 100
                            },
                            "ConditionType": "ImportantFormKeyConfidenceCheck",
                            "EvaluationResult": true
                        },
                        {
                            "ConditionParameters": {
                                "ImportantFormKey": "Mail address",
                                "ImportantFormKeyAliases": [
                                    "Mail Address:",
                                    "Mail address:",
                                    "Mailing Add:",
                                    "Mailing Addresses"
                                ]
                            },
                            "ConditionType": "MissingImportantFormKey",
                            "EvaluationResult": false
                        }
                    ]
                }
            ]
        },
        "selectedAiServiceResponse": {
            "blocks": [...]
        }
    }
}
```

------
#### [ Amazon Rekognition Task Type Output Data ]

Amazon Textract 組み込み統合を使用すると、文字列 `'AWS/Rekognition/DetectModerationLabels/Image/V3'` が `awsManagedHumanLoopRequestSource` の値として出力データに表示されます。

`answerContent` パラメータには Amazon A2I に送信されたすべてのモデレーションラベルに対する人間によるレスポンスを含む `moderationLabels` オブジェクトが含まれます。

`aiServiceResponse` パラメータには `DetectModerationLabels` に送信された元のリクエストに対する Amazon Rekognition レスポンスを持つ `moderationLabels` オブジェクトも含まれます。

ブロックオブジェクトに表示されるパラメータの詳細については、Amazon Rekognition デベロッパーガイドの「[ModerationLabel](https://docs.aws.amazon.com/rekognition/latest/dg/API_ModerationLabel.html)」を参照してください。

Amazon Rekognition イメージモデレーションの推論に関する Amazon A2I の人間によるレビューからの出力データの例を次に示します。

```
{
    "awsManagedHumanLoopRequestSource": "AWS/Rekognition/DetectModerationLabels/Image/V3",
    "flowDefinitionArn": "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name",
    "humanAnswers": [
        {
            "answerContent": {
                "AWS/Rekognition/DetectModerationLabels/Image/V3": {
                    "moderationLabels": [...]
                }
            },
            "submissionTime": "2020-09-28T19:22:35.508Z",
            "workerId": "ef7294f850a3d9d1",
            "workerMetadata": {
                "identityData": {
                    "identityProviderType": "Cognito",
                    "issuer": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_111111",
                    "sub": "c6aa8eb7-9944-42e9-a6b9-111122223333"
                }
            }
        }
    ],
    "humanLoopName": "humnan-loop-name",
    "inputContent": {
        "aiServiceRequest": {
            "humanLoopConfig": {
                "flowDefinitionArn": "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name",
                "humanLoopName": "humnan-loop-name"
            },
            "image": {
                "s3Object": {
                    "bucket": "amzn-s3-demo-bucket1",
                    "name": "example-image.jpg"
                }
            }
        },
        "aiServiceResponse": {
            "moderationLabels": [...],
            "moderationModelVersion": "3.0"
        },
        "humanTaskActivationConditionResults": {
            "Conditions": [
                {
                    "EvaluationResult": true,
                    "Or": [
                        {
                            "ConditionParameters": {
                                "ConfidenceLessThan": 98,
                                "ModerationLabelName": "Suggestive"
                            },
                            "ConditionType": "ModerationLabelConfidenceCheck",
                            "EvaluationResult": true
                        },
                        {
                            "ConditionParameters": {
                                "ConfidenceGreaterThan": 98,
                                "ModerationLabelName": "Female Swimwear Or Underwear"
                            },
                            "ConditionType": "ModerationLabelConfidenceCheck",
                            "EvaluationResult": false
                        }
                    ]
                }
            ]
        },
        "selectedAiServiceResponse": {
            "moderationLabels": [
                {
                    "confidence": 96.7122802734375,
                    "name": "Suggestive",
                    "parentName": ""
                }
            ],
            "moderationModelVersion": "3.0"
        }
    }
}
```

------

## カスタムタスクタイプからの出力データ
<a name="sms-output-data-custom"></a>

Amazon A2I をカスタムの人間によるレビューワークフローに追加すると、人間によるレビュータスクから返される出力データに次のパラメータが表示されます。


****  

| パラメータ | 値の型 | 説明 | 
| --- | --- | --- | 
|  `flowDefinitionArn`  |  文字列  |  ヒューマンループの作成に使用される人間によるレビューワークフロー (フロー定義) の Amazon リソースナンバー (ARN)。  | 
|  `humanAnswers`  |  JSON オブジェクトのリスト  | answerContent にワーカーのレスポンスを含む JSON オブジェクトのリスト。このパラメータの値は、[ワーカータスクテンプレート](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-instructions-overview.html)から受信した出力によって決まります。プライベートワークフォースを使用している場合、ワーカーのメタデータが含まれます。詳細については[ワーカーのアクティビティを追跡する](#a2i-worker-id-private)を参照してください。 | 
|  `humanLoopName`  | String | ヒューマンループの名前。 | 
|  `inputContent`  |  JSON オブジェクト  |  [https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_StartHumanLoop.html](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/API_StartHumanLoop.html) へのリクエストで Amazon A2I に送信される入力コンテンツ。  | 

Amazon A2I および Amazon Transcribe とのカスタム統合からの出力データの例を次に示します。この例では、`inputContent` は次で構成されます。
+ Amazon S3 の .mp4 ファイルへのパスと動画のタイトル
+ Amazon Transscribe から返されたトランスクリプション (Amazon Transcribe 出力データから解析済み)
+ ワーカータスクテンプレートで .mp4 ファイルをクリップし、ワーカーが動画の関連部分の表示に使用する開始時刻と終了時刻

```
{
    "flowDefinitionArn": "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name",
    "humanAnswers": [
        {
            "answerContent": {
                "transcription": "use lambda to turn your notebook"
            },
            "submissionTime": "2020-06-18T17:08:26.246Z",
            "workerId": "ef7294f850a3d9d1",
            "workerMetadata": {
                "identityData": {
                    "identityProviderType": "Cognito",
                    "issuer": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_111111",
                    "sub": "c6aa8eb7-9944-42e9-a6b9-111122223333"
                }
            }

        }
    ],
    "humanLoopName": "human-loop-name",
    "inputContent": {
        "audioPath": "s3://amzn-s3-demo-bucket1/a2i_transcribe_demo/Fully-Managed Notebook Instances with Amazon SageMaker - a Deep Dive.mp4",
        "end_time": 950.27,
        "original_words": "but definitely use Lambda to turn your ",
        "start_time": 948.51,
        "video_title": "Fully-Managed Notebook Instances with Amazon SageMaker - a Deep Dive.mp4"
    }
}
```

## ワーカーのアクティビティを追跡する
<a name="a2i-worker-id-private"></a>

Amazon A2I は、タスク出力データ内の個々のワーカーの追跡に使用できる情報を提供します。人間によるレビュータスクで作業したワーカーを特定するには、Amazon S3 の出力データで以下を使用します。
+ `acceptanceTime` は、ワーカーがタスクを受け入れた時刻です。この日付とタイムスタンプの形式は `YYYY-MM-DDTHH:MM:SS.mmmZ` で、年 (`YYYY`)、月 (`MM`), 日 (`DD`)、時間 (`HH`)、分 (`MM`)、秒 (`SS`)、ミリ秒 (`mmm`) です。日付と時刻は **T** で区切られます。
+ `submissionTime` は、ワーカーが **[SUBMT]** (送信) ボタンを使用して注釈を送信した時刻です。この日付とタイムスタンプの形式は `YYYY-MM-DDTHH:MM:SS.mmmZ` で、年 (`YYYY`)、月 (`MM`), 日 (`DD`)、時間 (`HH`)、分 (`MM`)、秒 (`SS`)、ミリ秒 (`mmm`) です。日付と時刻は **T** で区切られます。
+ `timeSpentInSeconds` は、ワーカーがそのタスクに積極的に取り組んだ合計時間を秒単位で報告します。このメトリクスには、ワーカーが一時停止または休憩した時間は含まれません。
+ `workerId` は、各ワーカーに固有です。
+ `workerMetadata` で[プライベートワークフォース](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-private.html)を使用すると、以下が表示されます。
  + `identityProviderType` は、プライベートワークフォースを管理するために使用するサービスです。
  + `issuer` は、この人間によるレビュータスクに割り当てられたワークチームに関連付けられた Amazon Cognito ユーザープールまたは OpenID Connect (OIDC) ID プロバイダー (IdP) 発行者です。
  + 一意の `sub` 識別子はワーカーを参照します。Amazon Cognito を使用してワークフォースを作成する場合、Amazon Cognito でこの ID に関連付けられているこのワーカーに関する詳細 (名前やユーザー名など) を取得できます。この方法については、*[Amazon Cognito デベロッパーガイド](https://docs.aws.amazon.com/cognito/latest/developerguide/)*の「[ユーザーアカウントの管理と検索](https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-manage-user-accounts.html#manage-user-accounts-searching-user-attributes)」を参照してください。

Amazon Cognito を使用してプライベートワークフォースを作成した場合に表示される出力の例を次に示します。これは、`identityProviderType` で識別されます。

```
"submissionTime": "2020-12-28T18:59:58.321Z",
"acceptanceTime": "2020-12-28T18:59:15.191Z", 
"timeSpentInSeconds": 40.543,
"workerId": "a12b3cdefg4h5i67",
"workerMetadata": {
    "identityData": {
        "identityProviderType": "Cognito",
        "issuer": "https://cognito-idp.aws-region.amazonaws.com/aws-region_123456789",
        "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
    }
}
```

 独自の OIDC IdP を使用してプライベートワークフォースを作成した場合に表示される出力の例を次に示します。

```
"workerMetadata": {
        "identityData": {
            "identityProviderType": "Oidc",
            "issuer": "https://example-oidc-ipd.com/adfs",
            "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
        }
}
```

プライベートワークフォースの使用の詳細については、「[プライベートワークフォース](sms-workforce-private.md)」を参照してください。

# Amazon Augmented AI におけるアクセス許可とセキュリティ
<a name="a2i-permissions-security"></a>

Amazon Augmented AI (Amazon A2I) を使用して ML/AI アプリケーション用の人間によるレビューワークフローを作成するときは、Amazon SageMaker AI でヒューマンワークフォースやワーカータスクテンプレートなどの*リソース*を作成して設定します。ヒューマンループを設定して開始するには、Amazon A2I を Amazon Textract や Amazon Rekognition などの他の AWS サービスと統合するか、Amazon Augmented AI Runtime API を使用します。ヒューマンレビューワークフローを作成してヒューマンループを開始するには、特定のポリシーを AWS Identity and Access Management (IAM) ロールまたはユーザーにアタッチする必要があります。具体的には次のとおりです。
+ 2020 年 1 月 12 日以降に画像入力データを使用してヒューマンループを始める場合は、入力データを含む Amazon S3 バケットに CORS ヘッダーポリシーを追加する必要があります。詳細については、「[CORS アクセス許可要件](#a2i-cors-update)」を参照してください。
+ フロー定義を作成するときは、ヒューマンタスク UI でレンダリングされるオブジェクトの読み取りと、人間によるレビューの結果の書き込みの両方に関して Amazon S3 への アクセス許可を Amazon A2I に付与するロールを指定する必要があります。

  このロールには、SageMaker AI にロールを引き受ける許可を与える信頼ポリシーがアタッチされている必要があります。これにより、Amazon A2I は、ロールにアタッチした許可に従ってアクションを実行できます。

  フロー定義の作成に使用するロールに変更およびアタッチできるポリシーの例については、「[フロー定義の作成に使用する IAM ロールにアクセス許可を追加する](#a2i-human-review-permissions-s3)」を参照してください。これらは、SageMaker AI コンソールの Amazon A2I 領域にある **[人間によるレビューワークフロー]** セクションで作成される IAM ロールにアタッチされるポリシーです。
+ ヒューマンループを作成して開始するには、組み込みタスクタイプ (`DetectModerationLabel` または `AnalyzeDocument` など) からの API オペレーションを使用するか、カスタム ML アプリケーションの Amazon A2I ランタイム API オペレーション `StartHumanLoop` を使用します。これらの API オペレーションを呼び出すユーザーに `AmazonAugmentedAIFullAccess` 管理ポリシーをアタッチし、これらのサービスが Amazon A2I オペレーションを使用できるようにアクセス許可を付与する必要があります。この方法の詳細は、「[Amazon A2I API オペレーションを呼び出せるユーザーを作成する](#create-user-grants)」を参照してください。

  このポリシーは、組み込みタスクタイプに関連付けられた AWS サービスの API オペレーションを呼び出すアクセス許可を付与*しません*。例えば、`AmazonAugmentedAIFullAccess` は、Amazon Rekognition `DetectModerationLabel` API オペレーションまたは Amazon Textract `AnalyzeDocument` API オペレーションを呼び出すアクセス許可を付与しません。より一般的なポリシー `AmazonAugmentedAIIntegratedAPIAccess` を使用して、これらのアクセス許可を付与できます。詳細については、「[Amazon A2I、Amazon Textract、Amazon Rekognition API オペレーションを呼び出すアクセス権限を持つユーザーを作成する](#a2i-grant-general-permission)」を参照してください。これは、Amazon A2I および統合 AWS サービスの API オペレーションを使用するための広範なアクセス許可をユーザーに付与する場合に適しています。

  より詳細なアクセス許可を設定する場合は、これらの個々のサービスを使用するアクセス許可を付与するために使用できる ID ベースのポリシーについては、[Amazon Rekognition アイデンティティベースのポリシーの例](https://docs.aws.amazon.com/rekognition/latest/dg/security_iam_id-based-policy-examples.html)および [Amazon Textract アイデンティティベースのポリシーの例](https://docs.aws.amazon.com/textract/latest/dg/security_iam_id-based-policy-examples.html)を参照してください。
+ カスタムワーカータスク UI テンプレートをプレビューするには、ユーザーインターフェイスでレンダリングされる Amazon S3 オブジェクトの読み取り権限を持つ IAM ロールが必要です。[ワーカータスクテンプレートプレビューを有効にする](#permissions-for-worker-task-templates-augmented-ai) のポリシーの例を参照してください。

**Topics**
+ [CORS アクセス許可要件](#a2i-cors-update)
+ [フロー定義の作成に使用する IAM ロールにアクセス許可を追加する](#a2i-human-review-permissions-s3)
+ [Amazon A2I API オペレーションを呼び出せるユーザーを作成する](#create-user-grants)
+ [Amazon A2I、Amazon Textract、Amazon Rekognition API オペレーションを呼び出すアクセス権限を持つユーザーを作成する](#a2i-grant-general-permission)
+ [ワーカータスクテンプレートプレビューを有効にする](#permissions-for-worker-task-templates-augmented-ai)
+ [暗号化されたバケットでの Amazon A2I AWS KMS の使用](#a2i-kms-encryption)
+ [追加のアクセス許可とセキュリティリソース](#additional-security-resources-augmented-ai)

## CORS アクセス許可要件
<a name="a2i-cors-update"></a>

2020 年初めに、Chrome や Firefox などの広く使用されているブラウザは、[EXIF データ](https://en.wikipedia.org/wiki/Exif)と呼ばれるイメージメタデータに基づいて画像を回転させるデフォルトの動作を変更しました。それまで、イメージは常にディスクに保存されているとおりにブラウザに表示されていましたが、通常は、回転しません。変更後、イメージは、向きの値と呼ばれるイメージメタデータに従って回転するようになりました。**これは、機械学習 (ML) コミュニティ全体にとって重要な意味があります。例えば、EXIF の向きが考慮されない場合、イメージに注釈を付けるために使用されるアプリケーションでは予期しない向きでイメージが表示され、間違ったラベルが表示されることがあります。

Chrome 89 以降、 AWS はイメージのローテーションを自動的に防止できなくなりました。これは、ウェブ標準グループ W3C がイメージのローテーションを制御する機能がウェブの同一オリジンポリシーに違反していると判断したためです。したがって、ヒューマンループを作成するリクエストの送信時に人間のワーカーが予測可能な方向で入力イメージに注釈を付けるには、入力イメージを含む S3 バケットに CORS ヘッダーポリシーを追加する必要があります。

**重要**  
入力データを含む S3 バケットに CORS 設定を追加しないと、それらの入力データオブジェクトに対する人間によるレビュータスクは失敗します。

Amazon S3 コンソールで入力データを含む S3 バケットに CORS ポリシーを追加できます。S3 コンソールで入力イメージを含む S3 バケットに必要な CORS ヘッダーを設定するには、「[CORS によりクロスドメインリソース共有を追加する方法](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-cors-configuration.html)」で説明されている指示に従います。イメージをホストするバケットには、次の CORS 設定コードを使用します。Amazon S3 コンソールを使用してポリシーをバケットに追加する場合は、JSON 形式を使用する必要があります。

**JSON**

```
[{
   "AllowedHeaders": [],
   "AllowedMethods": ["GET"],
   "AllowedOrigins": ["*"],
   "ExposeHeaders": []
}]
```

**XML**

```
<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>
</CORSConfiguration>
```

次の GIF は、Amazon S3 コンソールを使って CORS ヘッダーポリシーを追加する方法に関する Amazon S3 ドキュメントにある手順を示しています。

![\[Amazon S3 コンソールを使用して CORS ヘッダーポリシーを追加する方法を示す GIF。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/sms/gifs/cors-config.gif)


## フロー定義の作成に使用する IAM ロールにアクセス許可を追加する
<a name="a2i-human-review-permissions-s3"></a>

フロー定義を作成するには、このセクションのポリシーを、SageMaker AI コンソールで人間によるレビューワークフローを作成するとき、または `CreateFlowDefinition` API オペレーションを使用するときに使用するロールにアタッチします。
+ コンソールを使用して人間によるレビューワークフローを作成する場合、[コンソールで人間によるレビューワークフローを作成するときに、](https://docs.aws.amazon.com/sagemaker/latest/dg/create-human-review-console.html)ロールの Amazon リソースネーム (ARN) を **[IAM role** (IAM ロール) フィールドに入力します。
+ API を使用してフロー定義を作成する場合は、これらのポリシーを `CreateFlowDefinition` オペレーションの `RoleArn` パラメータに渡されるロールにアタッチします。

人間によるレビューワークフロー (フロー定義) を作成すると、Amazon A2I が Amazon S3 を呼び出してタスクが完了します。ファイルを取得して Amazon S3 バケットに保存する Amazon A2I アクセス許可を付与するには、次のポリシーを作成し、ロールにアタッチします。例えば、人間によるレビュー用に送信するイメージ、ドキュメント、他のファイルが `my_input_bucket` という名前の S3 バケットに保存されており、人間によるレビューが `my_output_bucket` という名前のバケットに保存されるようにする場合、次のポリシーを作成します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::my_input_bucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::my_output_bucket/*"
            ]
        }
    ]
}
```

------

さらに、ロールを引き受ける SageMaker AI アクセス許可を付与するには、IAM ロールに次の信頼ポリシーが必要です。IAM 信頼ポリシーの詳細については、*AWS Identity and Access Management* のドキュメントで「**ポリシーとアクセス許可**」の「[リソースベースのポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)」を参照してください。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowSageMakerToAssumeRole",
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

IAM ロールとポリシーの作成と管理の詳細については、*AWS Identity and Access Management ユーザーガイド*の次のトピックを参照してください。
+ IAM ロールを作成するには、「[IAM ユーザーにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」を参照してください。
+ IAM ポリシーの作成方法については、「[IAM ポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」を参照してください。
+ ロールに IAM ポリシーをアタッチする方法については、「[IAM ID アクセス許可の追加および削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

## Amazon A2I API オペレーションを呼び出せるユーザーを作成する
<a name="create-user-grants"></a>

Amazon A2I を使用して Amazon Rekognition、Amazon Textract、または Amazon A2I ランタイム API のヒューマンループを作成および始めるには、Amazon A2I オペレーションを呼び出すアクセス許可を持つユーザーを使用する必要があります。これを行うには、IAM コンソールを使用して [https://console.aws.amazon.com/iam/home?region=us-east-2#/policies/arn:aws:iam::aws:policy/AmazonAugmentedAIFullAccess$jsonEditor](https://console.aws.amazon.com/iam/home?region=us-east-2#/policies/arn:aws:iam::aws:policy/AmazonAugmentedAIFullAccess$jsonEditor) 管理ポリシーを新規または既存のユーザーにアタッチします。

このポリシーは、フロー定義の作成と管理用の SageMaker API、ヒューマンループの作成と管理用の Amazon Augmented AI ランタイム API から API オペレーションを呼び出すアクセス許可をユーザーに付与します。これらの API オペレーションの詳細については、「[Amazon Augmented AI で API を使用する](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-api-references.html)」を参照してください。

`AmazonAugmentedAIFullAccess` は、Amazon Rekognition または Amazon Textract API オペレーションを使用するアクセス許可を付与しません。

**注記**  
また、`AmazonAugmentedAIFullAccess` ポリシーを、ヒューマンループの作成と開始に使用される IAM ロールにアタッチすることもできます。

アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
+ 以下のユーザーとグループ AWS IAM アイデンティティセンター:

  アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
+ IAM 内で、ID プロバイダーによって管理されているユーザー:

  ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。
+ IAM ユーザー:
  + ユーザーが担当できるロールを作成します。手順については *IAM ユーザーガイド* の [IAM ユーザーのロールの作成](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) を参照してください。
  + (お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。*IAM ユーザーガイド* の [ユーザー (コンソール) へのアクセス許可の追加](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) の指示に従います。

詳細については、*AWS Identity and Access Management ユーザーガイド*の「[IAM ID アクセス許可の追加と削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

## Amazon A2I、Amazon Textract、Amazon Rekognition API オペレーションを呼び出すアクセス権限を持つユーザーを作成する
<a name="a2i-grant-general-permission"></a>

組み込みタスクタイプ (Amazon Rekognition の `DetectModerationLables` と Amazon Textract の `AnalyzeDocument`) で使用される API オペレーションを呼び出すアクセス許可と、すべての Amazon A2I API オペレーションを使用するアクセス許可を持つユーザーを作成するには、IAM 管理ポリシー `AmazonAugmentedAIIntegratedAPIAccess` をアタッチします。複数のタスクタイプで Amazon A2I を使用するユーザーに幅広いアクセス許可を付与する場合、このポリシーを使用できます。これらの API オペレーションの詳細については、「[Amazon Augmented AI で API を使用する](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-api-references.html)」を参照してください。

**注記**  
また、`AmazonAugmentedAIIntegratedAPIAccess` ポリシーを、ヒューマンループの作成と開始に使用される IAM ロールにアタッチすることもできます。

アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
+ 以下のユーザーとグループ AWS IAM アイデンティティセンター:

  アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
+ IAM 内で、ID プロバイダーによって管理されているユーザー:

  ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。
+ IAM ユーザー:
  + ユーザーが担当できるロールを作成します。手順については *IAM ユーザーガイド* の [IAM ユーザーのロールの作成](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) を参照してください。
  + (お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。*IAM ユーザーガイド* の [ユーザー (コンソール) へのアクセス許可の追加](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) の指示に従います。

詳細については、*AWS Identity and Access Management ユーザーガイド*の「[IAM ID アクセス許可の追加と削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

## ワーカータスクテンプレートプレビューを有効にする
<a name="permissions-for-worker-task-templates-augmented-ai"></a>

ワーカーがタスクで作業するときに表示されるインターフェイスと指示をカスタマイズするには、ワーカーテンプレートを作成します。[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html) オペレーションまたは SageMaker AI コンソールを使用してテンプレートを作成できます。

テンプレートをプレビューするには、ユーザーインターフェイスでレンダリングされる Amazon S3 オブジェクトの読み取り権限を持つ IAM ロールが必要です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::my_input_bucket/*"
            ]
        }
    ]
}
```

------

Amazon Rekognition および Amazon Textract タスクタイプでは、SageMaker AI コンソールの Amazon Augmented AI セクションを使用してテンプレートをプレビューできます。カスタムタスクタイプの場合は、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html) オペレーションを呼び出してテンプレートをプレビューします。テンプレートをプレビューするには、タスクタイプの指示に従います。
+  SageMaker AI コンソールの Amazon Rekognition および Amazon Textract タスクタイプでは、「[ワーカータスクテンプレートを作成する](a2i-worker-template-console.md#a2i-create-worker-template-console)」に記載されている手順でロールの Amazon リソースネーム (ARN) を使用します。
+ `RenderUiTemplate` オペレーションのカスタムタスクタイプ は、`RoleArn` パラメータでロールの ARN を使用します。

## 暗号化されたバケットでの Amazon A2I AWS KMS の使用
<a name="a2i-kms-encryption"></a>

`OutputConfig` の で出力データを暗号化するために AWS Key Management Service (AWS KMS) カスタマーマネージドキーを指定する場合は[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html)、そのキーに次のような IAM ポリシーを追加する必要があります。このポリシーは、ヒューマンループの作成に使用する IAM 実行ロールに、このキーを使用して `"Action"` にリストされているすべてのアクションを実行するアクセス権限を付与します。これらのアクションの詳細については、「 AWS Key Management Service デベロッパーガイド」の[AWS KMS 「 アクセス許可](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html)」を参照してください。

このポリシーを使用するには、`"Principal"` の IAM サービスロール ARN を人間によるレビューワークフロー (フロー定義) の作成に使用する実行ロールの ARN と置き換えます。`CreateFlowDefinition` を使用してラベリングジョブを作成する場合、これは [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-RoleArn) に対して指定する ARN です。コンソールでフロー定義を作成する場合は `KmsKeyId` を指定できないことに注意してください。

```
{
    "Sid": "AllowUseOfKmsKey",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/service-role/example-role"
    },
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
    ],
    "Resource": "*"
}
```

## 追加のアクセス許可とセキュリティリソース
<a name="additional-security-resources-augmented-ai"></a>
+ [タグを使用して SageMaker AI リソースへのアクセスを制御する](security_iam_id-based-policy-examples.md#access-tag-policy).
+ [Amazon SageMaker AI 向けのアイデンティティベースのポリシー](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies)
+ [条件キーを使用して SageMaker AI リソースの作成を制御する](security_iam_id-based-policy-examples.md#sagemaker-condition-examples)
+ [Amazon SageMaker AI API アクセス許可: アクション、アクセス許可、リソースの参照](api-permissions-reference.md)
+ [Amazon SageMaker AI でセキュリティを設定する](security.md)

# Amazon Augmented AI Amazon CloudWatch Events で を使用する
<a name="a2i-cloudwatch-events"></a>

Amazon Augmented AI は人間によるレビューループのステータスが `Completed`、`Failed`、または `Stopped` に変わると Amazon CloudWatch Events を使用してアラートを送信します。このイベント配信は少なくとも 1 回保証されます。つまり、作成されたすべてのイベントはヒューマンループの終了時に CloudWatch Events (Amazon EventBridge) に正常に配信されます。レビューループがこれらの状態のいずれかに変わると、Augmented AI は次のような CloudWatch Events にイベントを送信します。

```
{
    "version":"0",
    "id":"12345678-1111-2222-3333-12345EXAMPLE",
    "detail-type":"SageMaker A2I HumanLoop Status Change",
    "source":"aws.sagemaker",
    "account":"1111111111111",
    "time":"2019-11-14T17:49:25Z",
    "region":"us-east-1",
    "resources":["arn:aws:sagemaker:us-east-1:111111111111:human-loop/humanloop-nov-14-1"],
    "detail":{
        "creationTime":"2019-11-14T17:37:36.740Z",
        "failureCode":null,
        "failureReason":null,
        "flowDefinitionArn":"arn:aws:sagemaker:us-east-1:111111111111:flow-definition/flowdef-nov-12",
        "humanLoopArn":"arn:aws:sagemaker:us-east-1:111111111111:human-loop/humanloop-nov-14-1",
        "humanLoopName":"humanloop-nov-14-1",
        "humanLoopOutput":{ 
            "outputS3Uri":"s3://customer-output-bucket-specified-in-flow-definition/flowdef-nov-12/2019/11/14/17/37/36/humanloop-nov-14-1/output.json"
        },
        "humanLoopStatus":"Completed"
    }
}
```

JSON 出力の詳細は次のとおりです。

`creationTime`  
Augmented AI がヒューマンループを作成した際のタイムスタンプ。

`failureCode`  
特定のタイプの障害を示す障害コード。

`failureReason`  
ヒューマンループが失敗した理由。失敗の理由は、ヒューマンレビューのステータスが `failed` である場合にのみ返されます。

`flowDefinitionArn`  
フロー定義の Amazon リソースネーム (ARN)、または *ヒューマンレビューのワークフロー*。

`humanLoopArn`  
ヒューマンループの Amazon リソースネーム (ARN)。

`humanLoopName`  
ヒューマンループの名前。

`humanLoopOutput`  
ヒューマンループの出力に関する情報を含むオブジェクト。

`outputS3Uri`  
Augmented AI がヒューマンループ出力を保存する Amazon S3 オブジェクトの位置。

`humanLoopStatus`  
ヒューマンループのステータス。

## ヒューマンループから CloudWatch Events にイベントを送信する
<a name="a2i-cloud-watch-events-rule-setup"></a>

Amazon A2I ヒューマンループのステータス更新または*イベント*を取得するように CloudWatch Events ルールを設定するには、 AWS Command Line Interface (AWS CLI) [https://docs.aws.amazon.com/cli/latest/reference/events/put-rule.html](https://docs.aws.amazon.com/cli/latest/reference/events/put-rule.html) コマンドを使用します。`put-rule` コマンドを使用する場合は、ヒューマンループのステータスを受け取るために以下を指定します。
+ `\"source\":[\"aws.sagemaker\"]`
+ `\"detail-type\":[\"SageMaker A2I HumanLoop Status Change\"]`

すべてのステータスの変更をモニタリングする CloudWatch Events ルールを設定するには、次のコマンドを使用してプレースホルダテキストを置き換えます。例えば、`"A2IHumanLoopStatusChanges"` を一意の CloudWatch Events ルール名に置き換え、*`"arn:aws:iam::111122223333:role/MyRoleForThisRule"`* は events.amazonaws.com 信頼ポリシーがアタッチされた IAM ロールの Amazon リソース番号 (ARN) に置き換えます。*region* を、ルールを作成する AWS リージョンに置き換えます。

```
aws events put-rule --name "A2IHumanLoopStatusChanges" 
    --event-pattern "{\"source\":[\"aws.sagemaker\"],\"detail-type\":[\"SageMaker A2I HumanLoop Status Change\"]}" 
    --role-arn "arn:aws:iam::111122223333:role/MyRoleForThisRule" 
    --region "region"
```

`put-rule` リクエストの詳細については、*Amazon CloudWatch Events ユーザーガイド*の「[CloudWatch Events のイベントパターン](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html)」を参照してください。

## イベントを処理するターゲットを設定する
<a name="a2i-subscribe-cloud-watch-events"></a>

イベントを処理するには、ターゲットを設定する必要があります。例えば、ヒューマンループのステータス変更時に E メールを受信する場合は、*Amazon CloudWatch ユーザーガイド*の「[Amazon SNS 通知の設定](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)」に記載されている手順を使用して Amazon SNS トピックを設定し、E メールでそれをサブスクライブします。トピックを作成したら、このトピックを使用してターゲットを作成できます。

**CloudWatch Events ルールにターゲットを追加するには**

1. CloudWatch コンソール [https://console.aws.amazon.com/cloudwatch/home](https://console.aws.amazon.com/cloudwatch/home) を開きます。

1. ナビゲーションペインで **[ルール]** を選択します。

1. ターゲットを追加するルールを選択します。

1. **[アクション]** を選択し、**[編集]** を選択します。

1. **ターゲット** で、**ターゲットの追加** を選択し、ヒューマンループステータス変更イベントが検出されたときに実行する AWS サービスを選択します。

1. ターゲットを設定します。手順については、[そのサービスのAWS ドキュメント](https://docs.aws.amazon.com/index.html)のターゲット設定に関するトピックを参照してください。

1. [**詳細の設定**] を選択します。

1. **[名前]** に名前を入力し、必要に応じて [**説明**] にルールの目的の詳細を入力します。

1. **[State]** (状態) のチェックボックスをオンにして、ルールが **[Enabled]** (有効) として表示されることを確認します。

1. [**ルールの更新**] を選択します。

## ヒューマンレビューの出力の使用
<a name="using-human-review-output"></a>

ヒューマンレビューの結果を受け取ったら、結果を分析し、機械学習の予測と比較することができます。Amazon S3 バケットに格納される JSON には、機械学習の予測と人間によるレビューの結果の両方が含まれます。

## 詳細情報
<a name="amazon-augmented-ai-programmatic-walkthroughs"></a>

[Amazon SageMaker AI が Amazon EventBridge に送信するイベント](automating-sagemaker-with-eventbridge.md)

# Amazon Augmented AI で API を使用する
<a name="a2i-api-references"></a>

ヒューマンレビューワークフローまたはワーカータスクテンプレートをプログラムで作成できます。使用する API は、Amazon Rekognition、Amazon Textract またはカスタムタスクタイプのどれを作成するかによって異なります。このトピックでは、各タスクタイプおよびプログラミングタスクの API リファレンスドキュメントへのリンクを提供しています。

Augmented AI では、次の API を使用できます。

**Amazon Augmented AI**  
Augmented AI API を使用して、人間によるレビューループの開始、停止、削除を行います。また、すべてのヒューマンレビューループを一覧表示し、アカウント内のヒューマンレビューループに関する情報を返すことができます。  
人間によるレビューループ API の詳細については、「[Amazon Augmented AI ランタイム APIリファレンス](https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/Welcome.html)」を参照してください。

**Amazon Rekognition**  
`[ DetectModerationLabels](https://docs.aws.amazon.com/rekognition/latest/dg/API_DetectModerationLabels.html)` API の **HumanLoopConfig** パラメータを使用して Amazon Rekognition を使用した人間によるレビューワークフローを開始します。

**Amazon SageMaker AI**  
Amazon SageMaker API を使用して `FlowDefinition` を作成します。これは、人間によるレビューワークフローとも呼ばれます。**また、`HumanTaskUi` またはワーカータスクテンプレートを作成することもできます。**  
詳細については、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html) または [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html) API documentation を参照してください。

**Amazon Textract**  
[AnalyzeDocument](https://docs.aws.amazon.com/textract/latest/dg/API_AnalyzeDocument.html) API の **HumanLoopConfig** パラメータを使用して Amazon Textract を使用した人間によるレビューワークフローを開始します。

## プログラムによるチュートリアル
<a name="amazon-augmented-ai-programmatic-walkthroughs"></a>

次のチュートリアルでは、人間によるレビューワークフローとワーカータスクテンプレートをプログラムで作成するためのサンプルコードと手順について説明します。
+ [チュートリアル: Amazon A2I API の使用を開始する](a2i-get-started-api.md)
+ [ヒューマンレビューワークフローを作成する (API)](a2i-create-flow-definition.md#a2i-create-human-review-api)
+ [ヒューマンループを作成および開始する](a2i-start-human-loop.md)
+ Amazon Rekognition デベロッパーガイドの [Amazon Augmented AI で Amazon Augmented AI を使用する](https://docs.aws.amazon.com/rekognition/latest/dg/a2i-rekognition.html)**
+ Amazon Textract デベロッパーガイドの [Amazon Textract AnalyzeDocument で Amazon Augmented AI を使用する](https://docs.aws.amazon.com/textract/latest/dg/a2i-textract.html)**