Transcription
Power Automate 「AI Builderを使って領収書をデータ化」ということで、ライブコーディングを交えながら説明させていただきます。よろしくお願いします。りなたむでございます。バイクのヘルメットかぶってますけど、株式会社ソントレーゾ CTO かつ Co-Founder、設立経営者みたいなことをやらせていただいてます。Power Platform の導入支援とかもさせて頂いたりとか、社内コミュニティ形成とかですね、そういったことのお手伝いをさせていただいてます。
最近Twitterのりなたむさんの活動を社内に展開してほしいと、「同じようなことできるようになってほしい」みたいなことをちょっと言われた、ちょっと嬉しいオーダーも実は最近来ております。頑張って良かったなって感じですね。市民開発者の創出とか、そういったアドバイスしてたりとか。バイク好きなんで、それに関わる動画も作ってはいたんですけど、仕事がバタバタしてて、引っ越しもしてるんで、ちょっと大変だっていう状況でございます。
ということで最近ですけども、2月の…何日だっけ?4日か5日か忘れたけど、引っ越しました大阪に。っていうところですね。ということで、色んな記事と執筆・監修とか動画を作らせていただいております。というところですね。最近だとLinkedInのLearningデビューしておりますので、LinkedInのアカウントを持ってる方で、かつプレミアムを購入している方、有償プランの方はですね、いつでも見ることができますので、是非見ていただければなと思います。もしLinkedIn持ってるけどプレミアムのライセンス持ってないって方は、お試しの試用版がありますので、そちらを使っていただくことで見ることもできます。
ではAgendaです。AI Builderってなに?ってことと、実際に領収書を読み取るフローを簡単に作っていきましょう、といった形でライブコーディングとさせていただきます。では、画面を切り替えていきましょう。
AI Builder は何かっていうと、Power Automate とか Power Apps 上で使用できるAIの機能ですね。本来だとですね、Azureさんにログインして、最近OpenAIとか追加されたAIの機能を使うときとかは、Azure Machine Learningとか、こういうサービスを作ったりとかして、それで自分たちが開発していったりとか、モデル作ったりとかすることが大変、やらないといけないですよと。色々と学習とかさせるところから自分たちで作っていかないといけない、っていうのがAIの機能を使う上で、どうしても開発者頼りになってたところがあります。
最近だとCognitive Servicesっていうのがあって、それ専用のですね、Cognitive Servicesっていうのを使って、Face APIとかですね、RPACommunityでもですね、顔認証のアプリ作成をやりましたけども、こういったものをですね、やる時にはAzureに一旦登録して、そこからAPI Key発行するとか、そういったことをしないといけない。APIの仕様に基づいて調べてやらないといけない、っていうのがありました。それだとですね、やっぱり大変だっていうところがありましたので、Microsoftではですね、そういったものも皆さんが使えるようにAI Builderっていうものを立ち上げてですね、市民開発者の方でも簡単にAIのモデルを使って、何かしらの業務に改善していこうっていうものがAI Builderになります。
様々なAI Builderが用意されています。最初5個くらいしかなかったのが今十何個?16個ぐらいかな、ぐらいまで増えてきてます。ドキュメント系ですと、それこそ請求書の処理だったりとか、請求書から情報を抽出するとか、テキスト認識、写真とかPDFのドキュメントからテキストを抽出したりとか。今回使うのは領収書ですね。あとはIDドキュメントから…IDドキュメントっていうのは、免許証とかそういったものになります。免許証とかマイナンバーカードとかそういったものになります。あとは名詞リーダーですね。名詞の機能だったりドキュメントの処理、ドキュメント情報からカスタムで提供してやるってやつですね。
あとはテキストで、テキストが感情分析したりとか、カテゴリ分類を掛けてみたりとか、エンティティを抽出したりとか、キーフレーズ抽出したり、言語をどうのこうのとか、対象言語を検出するみたいな感じで、検出して翻訳するとか、そういったものがあります。あとはデータですね、データ予測みたいなものがあったり、画像みたいなものもあります。
実はですね、まだまだPublicになってないPreviewとしてもですね、実はありまして、このAI Builderに、AI Builderの中にOpenAIのですね、サービスが組み込まれますよっていうのも実はPreview。これはPublicじゃなくて招待制のPreviewなので、試すことはできないんですが、こういったものをPowerAppsではありますけども、Create text with GPTってところでGPTですね。最近流行りのChatGPTがありますが、自然言語で会話できるようなモデルっていうのも作られたりされていますよっていうのがAI Builderの新しいところでございます。
そういったかたちでですね、自分たちでモデルを作るっていうのも、機械学習の勉強とか知識がないとできなかったものが、こういったかたちですね、ある程度の使われ方に分類された上でですね、皆さんでも学習させて、独自のAIとして組み込むことができる。PowerAppsとかPowerAutomateに組み込むことができるよっていうのがAI Builderの特徴になります。
ということで、まずこのAI Builderを実際に使ってみようというところで、まずはですね、AI Builderを使えるような設定を今からしていきたいと思います。まずAI Builderを使うためには、AI Builderにはクレジットっていうものがあります。AI Builderクレジットっていうものがありますので、それを環境に割り当てるっていうところから始めます。いわゆるPower AutomateとかPower Appsを作るDataverseの環境ですね。そちらに対して設定をしていくことから始めていきます。
設定はですね、Power Platform 管理センターから容量をクリックすると、こういった形で出てきます。ここにですね、アドオンっていうところでAI Builderクレジットっていうのがあります。AI Builderのクレジットですけども、全部で4つ買い方がありまして、1つはPower Appsのライセンスに含まれているパターンですね。Power AppsユーザプランとPower Apps per appプランを契約すると、1ユーザーあたりですね、クレジットがついてるといったイメージです。2つ目がですね、Power Automate のAttendedプランの場合もこのクレジットが付く場合があります。この3つのライセンスに関しては、お試しのクレジットっていう考え方をしていただくといいかなと思いますので、業務に使うにはこれ多分数回やれば使い切っちゃうレベルです。なので、そのAI Builderクレジット自体を購入するといったやり方があります。
実際にこのAI Builderのクレジットを作るフローの環境に割り当てたいと思います。今すでにですね、2,000クレジットは別の環境に割り当ててるんですけども、今回はPower Automate を使うので、US_Rinatamu っていう環境、アメリカ環境ですね、ありますのでそちらに割り当てたいと思います。環境を選択すると、こういった形で出てきますので、US_Rinatamuのところに選択してですね、クレジットを指定しますよと。3,500個のクレジットがありますので、2,000クレジットを割り当てたいと思います。クレジット4,000が割り当て済みになりましたと出てきました。これだけでですね、実際に指定された環境上でAI Builderを使うことができるようになります。
US_Rinatamuの方に戻ります。実はですね、昨日今日ぐらいに(※23/3/17開催のイベントです)、Power Automate のですね、作成画面がちょっと変わりましたので、それもあわせてですね、ちょっとご紹介したいと思います。作成画面ですね、フォームから作成画面でもどちらでもいいんですけども、こういった形でですね、テンプレートを使って使用するとか、独自に構築するっていう形で2つに分かれました。前はですね、3つのフローから作ることできます、みたいな感じだったんですけど、こういったテンプレートを使うか、独自に構築するかといった形でまず出てくるようになりました。「独自に構築する」をクリックします。
そうするとですね、こういった形でトリガーを選択すると、なんかウィザード形式に変わりました。多分ですね、出たばっかりなので若干読み込みが遅いですけども、今回は手動トリガーを使って写真をそのままアップロードする形で作っていきたいと思います。まずコネクタですね、トリガーからですね、フローを開始するイベントトリガーをまずは選択してくださいなので、トリガーで手動トリガーを使っていきます。次にですね、アクションを選択しますよってことで、コネクタをこれまた選択するよって形になります。今回AI Builderを使いますので、こちらのAI Builderをクリックしましょう。そうするとですね、アクションが出てきますので、これの方が見やすいですね。やっぱり3列で見えるので、非常に見やすくなりましたけども、今回領収書ですので、領収書から情報を抽出するをクリックします。これで「次へ」をクリックします。
情報を抽出すると出てきましたが、これですね、ちょっとですね、不具合が今あるんですよ(※23/3/17開催のイベントです)。これ識別のですね、この認識の接続情報をクリックしても、コネクションでエラーになっちゃうトラブルが起きているのが今日分かったので、一旦このやり方はしません。独自フローの構築にスキップするで、一旦これはちょっとキャンセルします。何をしたかったんだ問題がありますけどね。
ここでですね、ちょっとこれまでは先ほどまではちょっと前座的な感じで、こんなのもありますという紹介です。これからは実際に元々作ってたやり方でですね、やっていきます。まずフローは必ず名前をつけましょう。まず名前を付けるってことは必ず守るようにしましょう。じゃないと何のフローか分かんなくなっちゃうんで。で、モバイルフロートリガーを選択します。画像はですね、入力の追加をクリックして、今度写真を使うんでファイルからですね、領収書みたいな。新しいステップをクリックしまして、AI Builderを選択します。AI Builderを使って領収書から情報を抽出しますよってなりますので、こちらでクリックします。Dataverseに接続サインインができましたので、領収書ファイルですね。じゃあ何を設定するかなんですけども、こちらはですね、ここでいう領収書ですね。ここでファイルで指定されたものですね。こちらを使っていきます。領収書をクリックします。
これでですね、保存で一旦取り込めるかどうかをチェックしていきたいと思いますんで、画面を出します。はい、スマートフォンが出てきました。Power Automate を起動しましょう。アカウントクリックして、先程US_Rinatamuが選択されていることを確認しましたので、ボタンをクリックすると領収書を取り込みっていうのが出てきましたよ。ちょっと領収書っていうかレシートを読み込んでいきたいと思います。クリックしましょう。そうすると領収書ファイルイメージを取り込んでくださいって出てきますので、この部分をクリックしますと、カメラとかフォトライブラリが出てきますので、カメラをクリックします。するとカメラが出てくるので、そうですね、この前行った居酒屋の領収書っていうかレシートですね。大阪のですね、美味しかったですね。これクリックします。これでUse Photo をクリックします。領収書を取り込みましたので完了とします。領収書を取り込みましたので結果を見ていきましょう。領収書取り込みを選びました。
はい、そうするとですね、なぜか失敗するんですね。ちょっとですね、見てみるとデータの形はあってるんだけど、なぜか何かおかしいよと。この形式を取り込みませんと言われました。これでですね、どうするか問題が出てくるんですけども、1つとしてはここの写真データをそのまま直接を渡そうとすると、何かトラブルんだなーっていうのがあるので、一旦OneDriveに入れましょう。データをOneDriveに、OneDriveに入れましょうってことでテストフォルダを作ったんで、ここにですね、入れ込んでいきたいと思います。一旦ですね、このOneDriveに直接入れていきます。なんか出来なかったな、なんだおかしいなと思ったらですね、一旦出来上がってるものから取り込めるか?ってすると割と簡単にできるかなと思うので、ファイルの作成をクリックします。OneDrive for Business にですね、ファイルを置いていきます。これ何の接続情報もないんですけど、接続されていますけども、パスはですね、Rootからスマートフォンが切れちゃったんで、Test_Folderかな、ここに持っていきます。ファイル名はちょっとあれなんで、これはちょっとですね、関数を使って生成したいと思いますけども(記入中)、ファイル名ですね(記入中)、ファイルのコンテンツですね、こちらの領収書データを使いますんで、このまま領収書とします。
この後ですね、この作ったファイルをですね、コンテンツを抽出しますのでアクション追加ですね。OneDrive今度はですね、ファイルのコンテンツを取得しますんで、コピーされたデータですね、こちらに対してコンテンツの取得をしますので、ファイルにはIDを指定します。ここで作成したやつを渡してあげるって形になります。この後に抽出するのは領収書からですね、先ほどのコンテンツの取得で取得した、こちらで取得していきます。保存を押します。
保存が完了しましたので、テストを実行します。が、また取り込むのかいとなると思うんですけれども、実はですね、先ほど実行した結果はですね、このフローのテストの自動のところで、最近使用したトリガーで。をクリックすると、その取り込んだデータを使ってですね、再テストすることができますので、実行していきたいと思います。テストを実行します。そうするとですね、なんかファイル作成にエラーが起きたな。なんかエラーになったぞ。こういうことがあるんだよな。なんか違うことするとね、多分なんかおかしいんだろうな。入力データを見ると…うわっ、分からん。
えーちょっと編集します。なんかおかしいな。ファイル名。ちょっといいやこれtest.jpg に一旦しよ。こういうこともあるんで、テストでログインします。これで行けるよな、たぶん。ファイル名がおかしかったって言われた気がするんで、とりあえずファイルはできたわ。ファイルコンテンツの取得をしまして、請求書から情報を抽出するっていうのを今やっていますけども、AI Builderの処理の中でですね、データの取り込みしたものを画像からデータを抽出するっていうのはですね、AI君にお願いしてるような状況でございます。
はい、できましたよってことで、出力結果ですね、見ていきましょう。なんかいっぱい出てきましたね。「たこから」がどうのこうのって出てきましたね。「酢がき」こんな感じで出てきましたけど、データ量が多いのでちょっとあれだったんですけども。じゃあこのデータソースを使ってですね、じゃあ何をするかっていうと、テキストに抽出したいなと思うので、テキストファイル作りましょう。ここから先は僕何もテストしてないんですけども、ファイルを作成、テキスト作成なんてまず無理なんで、どうしよっかな。なんかExcelファイル作るでもいいけど、テキストなんか作れなかったっけな。まぁいいや。
一旦ですね、Excel君を作るんで、そこにですね、書き込みしていきたいと。新規作成でExcel。ここにですね、テキストでテーブルをちょっと作りたいと思います。(作成中)今作りましたので、名前ですね、testっていうExcelを今作りました。これちょっと閉じときます。Power Automateのフロー編集で一旦読み込みなおしたいので、一旦更新します。
ここでですね、Excelを使って書いていきましょう。ということで、表に行を追加です。ですね、こちらに行を追加していきます。場所は自分のOneDriveなんで、ドキュメントライブラリはOneDrive、ファイル、テストデータってのがあるので、テストフォルダですね。こちらに持っていって、test.xlsxですね。こちらに入れていきます。テーブルに今回作ったテーブルにですね、こちらを入れていきます。そして品目、単価、金額が出てきましたので、こちらにですね、入れていきたいと思います。
ここにですね、先ほど情報抽出が出てきましたんで、これちなみに何がなんだか全然分からないんで、ちょっと待ってくださいね。他のやつを見たいと思います。別のやつでやった同じようなものがあるので、そこでちょっと結果に入れたものを見たいと思います。これだと合計とかですね、これになるかな。合計とか出てるのかな。なんでこれ品目には、品目かな。品目の説明があって、品目があって、単価(作成中)、品目の税額でいいのかな。これで行こう。中身のデータ見てないから分かんないですけど、とりあえずこれで行けるかなっていうところで、もう一回これでですね、実行していきたいと思います。テスト実行していきます。
ではですね、実際これまた実行していきますよ。トリガー実行した画像データに対して情報抽出が行われまして、えーそっからえーExcelに転記していくっていうのがですね、行われていきます。中身のデータを見てみるとですね、実際には上の方には店名とかっていうのは1行データとして入っていて、小計みたいな先ほど細かいデータはItemsの中に入るみたいなデータ構造になっていると、いうのが分かったような感じですね。取り込みが多分十秒ぐらいなんで、うんちゃんとなんかExcelに来てますね。失敗は今のところないっぽい。大丈夫そうな気がする。OKですね。
実際にExcelを見ていきましょう。なんか取り込めてるのかな。さっき15件ぐらい更新した…あっ、取り込めた。これ指定ミスってるな。多分単価じゃないところに出てきてるような気がするんで。実際のデータはですね、このところの入力のところが「おでん」だけになってるっぽいんで、多分指定場所を多分ね、他の変えてみれば、たぶん出てくるかなというところです。とりあえずですね、データとして取り込むことができましたよというところで、こういった形でですね、簡単にPower Automate のAI Builder を使うことでですね、データ抽出が簡単にできますよっていうのが今回のデモでございました。
ってところで、本日は以上となります。ご清聴ありがとうございました。