Power AppsでForm Recognizerを利用する

はじめに

先日Power AppsでForm Recognizerの機能を活用することができるForm Recognizer Connectorに、Analyze Document for Prebuilt or Custom models (v3.0 API)が追加されていました。

カスタムコネクタ(プレミアムライセンス)を使用せずにForm Recognizer v3.0の機能をPower Appsで利用可能になったので、実装方法を記事にまとめました。

実装に必要なリソース

  • Cognitive Services または Form Recognizer リソース(Azure)
  • Azure Storage Account(Azure) ※カスタムモデルを利用する場合

実装方法

  1. コネクタの作成
  2. アプリの作成
  3. 1で作成したコネクタを使った処理を作成

コネクタの作成

Dataverse > 接続 > 新しい接続 Form Recognizerを選択しコネクタを作成します。

コネクタの作成

Account KeyとEndpoint URLはAzure Portalから事前に作成したForm Recognizerリソースの値を取得します。

azure portal

アプリの作成

アプリ > 新しいアプリ からアプリを作成します。

アプリの作成

コネクタを使った処理を作成

今回はPower Automateを使いForm Recognizerコネクタを使ったドキュメント分析を行います。

Flowの作成

Power Appsを開き、左のPower Automateのアイコン > フローの追加 > フローを新規作成する > 一から作成 の順に選択しフローの作成を開始します。
フローには以下のものを追加します。

  1. 作成 → base64の画像データをbinaryへ変更
  2. Form Recognizer → Analyze Document for Prebuilt or Custom models (v3.0 API)でドキュメントを分析(※ドキュメントのURLを使う場合は、1の「作成」手順は行わずinputFileUrlのパラメーターへURLを入力するように設定します。)
  3. PowerApp または Flowへ応答する → Power Appsへ分析結果を応答

Form Recognizerのコネクタに関して詳しくは以下のリンクから確認可能です。
Form Recognizer - Connectors | Microsoft Learn

Power Appsへ配置

作成したFlowを実行するためのコンポーネントを配置します。


()の名称は各コンポーネントを指定する際に使用します。

  • prebuild_models:Form Recognizerで利用するモデルを選択します。Prebuildやカスタムモデルのidを設定します。
  • fileUpload_1:ファイルをアップロードするためのコンポーネントです。実装方法はPower Apps Easiest Way To Upload Files To A SharePoint Document Libraryで確認できます。
  • Gallery1:アップロードしたドキュメントや画像の情報を表示します。このコンポーネントの画像からbase64の文字列を作成します。詳細設定からItemsをfileUpload_1.Attachmentsに設定し、Gallery内のImageにThisItem.Valueを設定します。※PDFをアップロードした場合、画像は表示されませんがbase64への変換は問題なく実行されます。
  • button:Gallery1の画像をbase64文字列へ変換、Form Recognizerを含むFlowを実行しcontentResultsという名前のCollectionを作成します。OnActionを次の値へ設定します(Flow名は上の手順で作成したFlowの名称に置き換えてください)。
ClearCollect(
    base64Collection,
    ShowColumns(
        AddColumns(
            Gallery1.AllItems,
            "data",
            Last(Split(Substitute(
                JSON(
                    Image1.Image,
                    IncludeBinaryData
                ),
                """",
                ""
            ),",")).Result
        ),
        "Name",
        "data"
    )
);

ClearCollect(contentResults,ForAll(base64Collection,'<Flow名>'.Run(prebuild_models.SelectedText.Value,ThisRecord.data)));
  • Gallery:分析結果を表示します。分析を行う前は空欄が表示されます。詳細設定からItemsはcontentResultsに設定します。Galleryにラベルを配置しTextの値をThisItem.resultへ設定します。

分析結果の出力(応用)

Power AppsではForm Recognizerのカスタムモデルでのドキュメント分析結果を変形しSharePointのフォルダなどへCSVファイルとして出力することが可能です。
詳しい分析結果の処理内容は割愛しますが、各フィールドに対応した読み取り結果をCSVファイルとして指定したSharePointフォルダへ作成します。
※ドキュメントの読み取り内容は公開のため、数値などを変更しております。


まとめ

標準のForm Recognizer ConnectorにAPI v3.0の機能が追加されたことで、プレミアムライセンスなしで精度の上がったForm RecognizerをPower Appsで利用可能になりました。

執筆担当者プロフィール
寺澤 駿

寺澤 駿(日本ビジネスシステムズ株式会社)

IoTやAzure Cognitive ServicesのAIを活用したデモ環境・ソリューション作成を担当。

担当記事一覧