請求書の情報を抽出し自動でExcelファイルに記載する仕組みをノーコードで作ってみた（AI Builder × Power Automate）

こんにちわ、[のりじ](https://twitter.com/nori790822) です。
今朝、[@fdezjose](https://twitter.com/fdezjose)氏から以下のメンションが飛んできてました。

<blockquote class="twitter-tweet"><p lang="en" dir="ltr">We now have sample docs to try out AI Builder Form Processing in Japanese! 🗾 Check them out:📄 <a href="https://t.co/i5jto2x6tb">https://t.co/i5jto2x6tb</a> <a href="https://twitter.com/mofumofu_dance?ref_src=twsrc%5Etfw">@mofumofu_dance</a> <a href="https://twitter.com/flali_world?ref_src=twsrc%5Etfw">@flali_world</a> <a href="https://twitter.com/nori790822?ref_src=twsrc%5Etfw">@nori790822</a> <a href="https://t.co/WEzhN3jlgo">pic.twitter.com/WEzhN3jlgo</a></p>&mdash; Joe Fernandez (@fdezjose) <a href="https://twitter.com/fdezjose/status/1494441660247416834?ref_src=twsrc%5Etfw">February 17, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

AI Builderの「フォーム処理（カスタムAIモデル）」を日本語で試せるサンプルドキュメントを公開中とのことなので、早速どの程度の精度なのか試してみました。

手っ取り早く「どんな感じになるのか？」を確認したい方は、上記の[@fdezjose](https://twitter.com/fdezjose)氏のツイートからトレーニング用データをDLして試してみてください。

# 0. 事前準備

今回は日本語の請求書で「フォーム処理（カスタムAIモデル）」の精度を確かめたかったので、独自の請求書データ（個人受けの本物）をトレーニングデータとして利用しました。
事前に以下の準備もしておきます。

- データを入れるフォルダー：「請求書2022テスト」
- 解析後の結果を記載するExcelファイル：請求書test2022.xlsx

![ai202202-001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/2f03629e-8ead-02ad-9427-bf124463b97f.jpeg)

Excelファイルはこのような形になるようテーブルを作成しておきます。
また、表題の部分はAI Builderのフィールド名と同じものがわかりやすいと思います。

# 1. 日本語の請求書で「フォーム処理（カスタムAIモデル）」をトレーニングする

日本語の請求書に対応する「カスタムAIモデル」のトレーニングを行います。

![ai202202-002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/d0c246d4-0f0f-5f29-379d-f71ac8887056.jpeg)

Power Automateポータル画面の左メニューにあるAI Builderの「詳細を確認」をクリック。「ドキュメントからカスタム情報を抽出する（カスタムモデル）」をクリックします。

![ai202202-003.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/60f59e8e-9292-4c32-f1d3-97bf84a8988a.jpeg)

種類は「フィールド」とし「名前」は実際にデータ抽出したい請求書の形に合わせて適宜変更してください。

![ai202202-003-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/5a9d9376-3f55-3697-2764-ab664f972b5e.jpeg)

また、右上の「モデル名」を変更することをお勧めします。名前を付けない場合「フォーム処理[日付 / 時間]」と自動で名前が付きますが、のちのち選択するときにわかりにくくなるので。

![ai202202-004.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/7e3ce6cb-8c8a-d0ae-0f0e-a4a610c8faa9.jpeg)

今回の請求書はこのような形です。ドキュメント上のタグ付けは図のような形にしました。

![ai202202-005.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/e03eb37c-4eea-32eb-8749-baec1b579cd6.jpeg)

全てのドキュメントにタグ付けしたら「トレーニング」を行います。
トレーニング後「公開」するのを忘れないように。ワークフロー内で使えませんので…

「フォーム処理（カスタムAIモデル）」のトレーニング方法は以下の記事を参考にしてください。
- [AI Builderの「カスタムモデル」で日本語対応の「名刺リーダー」を作る](https://qiita.com/nori790822/items/8a2303adace8dde68fab)

# 2. ワークフローを作成する

今回はOneDrive内の指定フォルダー内に請求書データを入れると、指定のExcelファイルに請求書内のデータが自動記載される仕組みです。

![workflow-all.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/37d3aac9-2229-298f-4bf4-70704a535d5a.jpeg)

ワークフローの全体図はこちら。たった3つのコネクタでできます！

## 2-1. トリガー：「OneDrive」コネクタ

![ai202202-006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/d3f4d317-c448-9d89-95f6-dc72a901d70d.jpeg)

検索窓に「OneDrive」と入力し、一覧に表示される「OneDrive」をクリックします。
一覧の中から「ファイルが作成されたとき」をクリック。
「フォルダー」は「0. 事前準備」で作成したフォルダーを選択しておきます。

## 2-2. アクション：「AI Builder」コネクタ

![ai202202-007.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/9ab1aa01-a118-31c8-f136-87ade71f3063.jpeg)

検索窓に「AI Builder」と入力し、一覧に表示される「AI Builder」をクリックします。
一覧の中から「フォームからカスタム情報を抽出する」をクリック。

![ai202202-008.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/4fcc642e-face-830e-dbfd-61910d61898f.jpeg)

コネクタは以下のように設定します。

1. AIモデル：「1. 日本語の請求書で「フォーム処理（カスタムAIモデル）」をトレーニングする」で作成したものを選択
2. フォームの種類：今回は「PDFドキュメント」を選択
3. フォーム：「ファイルが作成されたとき」の動的なコンテンツ「ファイルコンテンツ」を選択

## 2-3. アクション：「Excel」コネクタ

![ai202202-010.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/b26e208d-d588-4be7-de99-b2eabb0969ed.jpeg)

検索窓に「Excel」と入力し、一覧に表示される「Excel（OneDrive）」をクリックします。
一覧に表示される「表に行を追加」をクリック。

![ai202202-009.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/a053d239-5f7d-7a7e-e5e7-ae48b989a65a.jpeg)

「Excel（OneDrive）」コネクタは、「0. 事前準備」で作成したExcelを選択すると図のように表題が表示されます。
入力内容は全て動的なコンテンツになります。

ワークフローが完成したら「保存」します。

# 3. 結果

![ai202202-004.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/875fbc35-f7dc-0398-7a1c-40a83efd02e7.jpeg)

今回は、ダミーの請求書データを使って結果をみてみます。

![ai202202-011.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/7844691a-4b1a-7ce9-36ca-9d83b271ef3c.jpeg)

若干、文字の間の半角スペースが気になるところもありますが、Excelファイルに情報がきちんと入力されました。
かなり精度が高くなっていると思います！！

# 4. おまけ

AI Builderを業務で利用する場合はライセンスが必要になります。
詳細は公式Docsで確認してください。

- [AI Builderライセンス](https://docs.microsoft.com/ja-jp/ai-builder/administer-licensing)

とはいえ、Docsでもなんかよくわからんな…という方、ご安心ください！
「AI Builder計算機」が公開されていますので、こちらで大体の目安がわかるのではないかと。

- [AI Builder計算機](https://powerapps.microsoft.com/ja-jp/ai-builder-calculator/)

AI Builderは便利なアドオン機能ですが、どんどん進化していってます。
ぜひ活用してみてください！！