いまさらなのですが、当社では最近、Azure Open AIを使って業務を回す仕組みづくりについて研究を進めております。
その一環として、領収書を読み取って経費精算をする仕組みを自社用に開発してみましたので紹介したいと思います。
アーキテクチャ
Power Appsで簡単なスマホアプリを作り、領収書を撮影したものをPower Automate経由でGPT-4o miniに投げ、仕訳っぽいデータを作ってもらって、それをBusiness Centralに送り込む、という仕組みです。
操作イメージ
1画面だけのシンプルなスマホアプリです。まずはスマホのカメラで領収書の写真を撮ります。
写真を撮った瞬間に領収書の解析が始まり、その結果が画面下の方に表示されます。
OKを押すと経費明細がDataverse(Power Appsモデル駆動アプリ)に書き込まれます。
これを承認するとBusiness Centralに仕訳が書き込まれます。
Lessons Learned
科目コードはどうする?
ChatGPTに仕訳(っぽいデータ)を作ってもらうためには科目マスタを覚えてもらう必要があります。
Azure Open AI Studioでデータソースを追加して対応する、という方法も考えたのですが、領収書から判定させる科目なんかは数えるほどしかないので、以下のようにプロンプトに直接放り込むことで対応しました。
GPT-4o miniはトークンあたりの単価が非常に安いので、プロンプトが多少長くなってもあまり気にしなくてよさそうです。日当の計算ルールなんかもプロンプトに放り込んでしまってもいいのかもしれません。
仕訳の精度は?
ChatGPT-4はUSCPAやEAに余裕で合格するくらいの会計知識があるので、超雑な指示でもいい感じに科目を判定してくれました。
会議費と交際費の判断など、微妙なものは自社の実情にあわせてプロンプトに反映させるといいかなと思いました。
一方、インボイス登録番号の読み取りはうまくいかないケースもありました。プロンプトを工夫すれば精度を上げられるかもしれません。(そんな必要があるかどうかは別として)
JSONの階層深め
ChatGPTのAPIは階層が深いJSONを返してきます。Power AutomateからPower Appsに値を返すときは、式を書いて使いたいところだけに絞って渡してあげるとよさげです。
まとめ
・・・ということで、気分転換にアプリを作り始めたのですが、半日程度でだいたいここまで仕上げることができました。
領収書を読み取って仕訳を起こす、という仕組みははるか昔から存在していますが、それを自分で作って使ってみる、ということを通じて生成AIが社会に与える影響というものをリアルに感じ取ることができました。
プロンプト変えたら完了、という世界
なによりも、会社別の設定やカスタマイズをするのではなく、プロンプトをちょっと変えるだけでその会社のルールを反映させることができる、というのは業務アプリを導入・開発する側の観点からみると画期的な体験でした。
つまり、Human in the loopが許容される、もしくは必須となるビジネスシナリオにおいては、「要件定義→設計→コーディング→テスト」ではなく「要件定義→プロンプトを日本語で書いて終わり」みたいな世界が、業務システムの導入の現場にもうすぐやってくることがわかりました。
そのような世界で価値を生み出せる人間にならないといけないですね。(自戒)