3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UiPath (produced with UiPath Friends)Advent Calendar 2024

Day 13

【UiPath】StudioWeb × Document Understanding 実装上のポイント

Last updated at Posted at 2024-12-09

はじめに

  • 本記事は、StudioWeb で Document Understanding(モダンプロジェクト) を扱いたい方向けの内容です。
  • 記事の内容は、個人の見解または確認結果であり、UiPath の公式見解ではありません。
  • 製品仕様や参考画像は 24.10 バージョンのもので構成しています。

StudioWeb × Document Understanding のテンプレート(自動生成WF)

テンプレートは次の2通りの手順で自動生成できます。

■すぐ使えるモデルから生成(フォームAI)

Document Understanding のトップ画面の右上の「オートメーションを作成する」をクリック > 以降の手順は省略

フォームAI.JPG

(生成されるWF)
フォームAI2.JPG

■独自モデルのパブリッシュ画面から生成

対象プロジェクト(モダン)>パブリッシュ画面の右下の「StudioWebを開く」をクリック > 以降の手順は省略

独自モデル.JPG

(生成されるWF)
独自モデル2.JPG
独自モデル2-2.JPG

💡ポイント

  1. 両テンプレートの違いは単一ファイルをロードするか、ディレクトリ以下のファイルを繰り返し処理でロード・抽出するかのみです。
  2. 処理内容を端的に書くと 「➀ストレージバケットから読み取り対象ファイルをダウンロード」>「➁ドキュメントデータを抽出」>「➂検証タスクを登録」>「➃ドキュメントデータの中身をログに書き出す」 です。

StudioWeb のプロジェクトでは IntelligentOCRパッケージのアクティビティが利用できない(2024/12/06時点)ため、定型帳票(固定レイアウト)の自動化は従来通りStudioでおこなう必要があります。

StudioWeb × Document Understanding 実装上のポイント

入力ファイルの取得

Gドライブに配置したファイルを利用する例を以下で説明します。
(ストレージバケットのサンプルはテンプレートにあるため省略)

Gドライブのファイルで入力.JPG
Gドライブのファイルで入力2.JPG
Gドライブのファイルで入力3.JPG

■手順

  1. 「ファイル/フォルダーのリストを取得」(出力:GDriveRemoteItem[])
  2. 繰り返し(コレクションの各要素)でGDriveRemoteItemを取得
  3. 必要に応じて処理対象ファイルの判定ロジックを追加
  4. 「ファイルをダウンロード」(入力:GDriveRemoteItem 出力:GDriveLocalItem ← こちらはドキュメントデータ抽出の入力にそのまま使えます)

ストレージバケットは、OCの画面上からだと1ファイルずつしかアップロードできないため、束登録したい場合は別に登録用ロボットを作成する必要があります。

ドキュメントデータの抽出

フォームAIの場合、「Predefined(事前学習済みモデル=すぐ使えるモデル)」がプロジェクトに設定され、抽出器は自由に変更できますが、抽出されるフィールドはカスタマイズできません。 ※データ出力部で任意の項目のみ記述すればよいので、新しいフィールドを追加したいケース以外では特に困ることはありません。

抽出2.JPG

独自モデルの場合、Document Understanding のドキュメント種類マネジャーにて扱うフィールドを定義・カスタマイズできます。
抽出器を選び直したタイミングで抽出されるフィールドは変わります。
※フィールドの定義を変更した際は、抽出器をパブリッシュする前に再度アノテーションをおこなうなどしてトレーニング処理を走らせましょう!

抽出.JPG

✔ IntelligentOCRパッケージのデジタル化アクティビティでは 「ドキュメントテキスト」「DOM」 を出力できました。
「ドキュメントデータを抽出」の出力である Document Data オブジェクト も、メタデータセクションに同内容を含みます!

■ドキュメントテキストの取得例
extractedResults.DocumentMetadata.Text
■DOMの操作例
extractedResults.DocumentMetadata.DocumentObjectModel.Pages(0).Sections(0).WordGroups(0).Words(0).Text

自動検証.JPG
自動検証を適用 - 生成 AI による抽出のクロスチェックを使用し
て、信頼度を調整します。生成 AI によって確認された報告値の信
頼度は 99% に引き上げられます。この機能を有効化すると、追
加の AI ユニットが消費されます。

抽出結果の検証

Action Center での確認が不要であれば、検証タスクの登録部はコメントアウトするだけでOK

検証.JPG

検証タスクを登録するアクティビティにはストレージバケットを指定する詳細オプションがあります。
設定したバケット内にはタクソノミーやDOM、抽出結果オブジェクトのJSONが出力されますが、こちらはファイルパスのIDの生成ロジックが不明(少なくともジョブのキーやドキュメントのIDなどでないことは確か)で利用できません。

image.png

自動検証2.JPG
「ドキュメントデータを抽出」で 「自動検証」をオンに設定し、信頼度に 99% が表示されている例です。

抽出結果からのデータ出力

抽出結果オブジェクト(Document Data)からの値の取り出し方は、以前書いた記事をご参照ください↓↓

今回は、OneDrive&SharePointのEXCELファイルに明細データを書き出す実装例を記載します。

EXCELに出力.JPG
EXCELに出力2.JPG

■手順

  1. 繰り返し(コレクションの各要素)でextractedResults.Data.Itemsを取得
  2. 「行を書き込み」アクティビティを配置
  3. 書き込みたい範囲を指定(Sheet1のA1セルであれば「"Sheet1!A1"」)
  4. 書き込み方法に「追加」、書き込む内容に「配列行」を選択
  5. 書き込む配列行の値を設定(以下、例)

(配列の値の例)
{currentItems.明細行番号.ToString,currentItems.明細品番.ToString,currentItems.明細行の小計.ToString}

さいごに

いかがでしたでしょうか。
OCにパブリッシュしたロボットは、Cloud - サーバレスロボットをフォルダのマシンタブに割り当てれば、他のURと同様にスケジュール実行も可能です。

サーバレスロボット割り当て参考.JPG

テンプレート(自動生成WF)をちょっといじるだけでDUロボット出来上がり☀
ご興味のある方は是非是非触ってみてください。
最後までお読みいただきありがとうございます(・ω・)ノ

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?