IQ Bot：出力の流れ

#IQ Botのデータ出力の流れを押さえよう

RPAからIQ Botに投げ込まれたデータは、以下のフローで処理されます。
図の右側の黄色い部分は、オンプレの場合はオンプレのIQ Botサーバーを表しますが、クラウドの場合もクラウドのIQ Botサーバーの内部で同じことが起こっているというイメージです。

![キャプチャ.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/d4ec8c78-c956-c451-782b-e42f3cda9b39.jpeg)


CSVが出力されるのはSuccessフォルダのみで、あとはオリジナルの画像データがコピーされて入ってきます。

なお、オンプレの場合、上記の図に書いてある出力のフォルダパスは、インストール時の[こちら](https://qiita.com/IQ_Bocchi/items/fef152c38a5d18cac896#11-%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E5%85%88%E3%81%8A%E3%82%88%E3%81%B3%E5%87%BA%E5%8A%9B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%91%E3%82%B9%E3%81%AE%E8%A8%AD%E5%AE%9A)のステップで指定したフォルダパスとなります。

#各フォルダに振り分けられたファイルを取得するには？

図中のSuccess, Unclassified, Not Processed, Invalid のどのフォルダに振り分けられたファイルも、下記のページで説明しているダウンロードのアクションで取得することができます。

https://qiita.com/IQ_Bocchi/items/5b0cc3bb7e4ddcbc43bd

# *1：分類の失敗とは

ここでいう分類の失敗は、帳票が「Unclassified」となるケースです。
Unclassifiedになる原因など、詳細は[こちら](https://qiita.com/IQ_Bocchi/items/b9f6bd9abeb4b9925744)の記事をご覧ください。

# *2：未知のグループ（学習済みでない）とは

これは、「Unclassifiedにはならなかったが、トレーニング済みでない新しいグループが作成された場合」です。
イメージとしては、A社とB社の請求書をトレーニングしたIQ Botに対して、C社の請求書を処理させようとしたケースなどがこれにあたります。

# *3：違反ありとは

マッピング設定の際に指定しておいた[誤り検知](https://qiita.com/IQ_Bocchi/items/4e220a9bd6e337de4508)の条件に違反した場合に、人間による検証に回ります。

# *4：無効な書類とは

検証の画面では、検証に回ってきた書類の該当項目を訂正してCSVを出力するか、該当書類を「無効な書類」とするかをボタンで選ぶことができます。

該当書類を「無効な書類」とした場合、その書類は「Invalid」フォルダ配下に画像データのまま出力されます。

# Successフォルダ

上記の判定をくぐり抜けて自動処理ができた場合、あるいは検証画面での検証が完了した場合は、取得結果のCSVがSuccessフォルダに出力されます。

# *5：新グループ作成の閾値とは

A2019.15から加わった新しい機能です。
インスタンスの編集画面の以下の部分のことです。
![キャプチャx.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/954f1f02-d5cb-828b-3166-99dfc523cd5a.jpeg)

具体例で説明します。

A社(グループ1)とB社(グループ2)の請求書をトレーニングしたIQ Botに対して、C社の請求書を処理させた場合に、この閾値を1に設定した場合と10に設定した場合、「Never create new groups」をチェックした場合（この場合、閾値は非活性となる）の挙動は以下のように変わります。

## 閾値を1とした場合

C社の請求書に対して、ただちに新しいグループ(グループ3)が作成されます。
C社の請求書の画像ファイルは、出力フォルダ ＞ 当該インスタンスフォルダ ＞ Not Processeedフォルダ ＞ グループ3のフォルダ の中に、画像データとして出力されます（★）。
IQ Botの画面上には、グループ3がただちに表示されるので、ユーザーはグループ3のマッピング学習画面に入ってC社の請求書のマッピングを設定します。
C社の請求書のマッピングが完了し、ユーザーが当該グループをプロダクション化した時点で、グループ3に分類された帳票のCSVファイルが出力されます（★の部分で画像として出力されたファイルについても、CSVデータが出力される）。

この作業を一度行った後は、C社の請求書はA社・B社と同じように自動処理されます。

## 閾値を10とした場合

C社の請求書に対して、新しいグループ(グループ3)が作成されますが、グループ3に分類される帳票が閾値である10ファイルに到達するまでは、このグループはまだIQ Botが内部的に保持している状態です。

### 9枚目までの帳票に対する挙動

出力フォルダ配下に、グループ3に対するNot Processedフォルダが作成されることはありません。
また、IQ Botの画面上にも、グループ3は出てきません。

かわりに、IQ Botが内部的にグループ3に分類した帳票は、人間による検証（Validation）に回ります。
このルートで検証（Validation）に回った帳票は、すべての項目がIQ Botの自動取得結果に従って表示された状態となっています（マッピング設定画面の初期状態で取得した値がそのまま表示されているイメージ）。

人間が検証（Validation）を終えると、その結果がSuccessフォルダにCSVファイルとして出力されるか、またはドキュメントを無効とした場合は「Invalid」フォルダ配下に画像データのまま出力されます（この部分は*4と同様）。

### 10枚目の帳票および10枚目と同時にアップロードされた11枚目以降の帳票に対する挙動

10枚目の帳票がRPAからアップロードされると、このときにようやく画面上にグループ3が表示されます。
また、10枚目および同時にアップロードされた11枚目以降の帳票の画像ファイルは、出力フォルダ ＞ 当該インスタンスフォルダ ＞ Not Processeedフォルダ ＞ グループ3のフォルダ の中に、画像データとして出力されます（★）。

ユーザーがグループ3のマッピング学習画面に入ってC社の請求書のマッピングを設定すると、グループをプロダクション化した時点で、グループ3に分類された帳票のCSVファイルが出力されます。

この作業を一度行った後は、C社の請求書はA社・B社と同じように自動処理されます。

## Never create new groups をチェックした場合

当該インスタンスに対して、RPAで未知の分類の処理をした場合でも、IQ Botが新規のグループを作成することはありません。
RPAで処理した帳票をIQ Botが未知の分類と判断した場合は、閾値を10とした場合の9枚目までの帳票に対する挙動を永遠に繰り返します。

## 閾値設定およびNever create new groups をチェックした場合に共通の補足

上記の解説はあくまでも「RPAで処理した帳票」に対する挙動の解説であり、インスタンスの編集画面から明示的に学習用として帳票をアップロードした場合は、閾値の値やNever create new groupsのチェックの状態に関わらず、未知の帳票として分類された帳票が1枚でも存在すればただちに新規のグループを作成します。

## 閾値をあとから減らした場合の挙動

閾値を5に設定　→　学習済みでないグループの帳票を4枚アップロード　→　閾値を4に変更　とした場合は、その変更を保存したからといって新しいグループができるわけではありません。

閾値の変更の効力は、あくまでも変更時点以降にアップロードされる帳票に対して有効ということのようです。