Document AI、Workflows、Cloud Functions を使ったスマート アプリケーション
Google Cloud Japan Team
※この投稿は米国時間 2022 年 2 月 1 日に、Google Cloud blog に投稿されたものの抄訳です。
業種を問わず、企業の基軸となるビジネス プロセスの中心にあるのはドキュメントです。請求書、人事資料、税務申告書といった企業のドキュメントには貴重な情報が詰まっています。しかしながら、こうしたドキュメントは基本的に構造化されていないため、データソースとして扱うのは困難です。このようにビジネスの一環として収集、処理、格納されながら、分析や収益化などの目的に活用されていない非構造化データは「ダークデータ」と呼ばれます。PDF や画像形式のデータなどが該当しますが、こうしたドキュメントの処理は複雑を極め、これまでは分離されたテクノロジーや手作業に頼るしかありませんでした。Google Cloud のコンピューティング ソリューションと Document AI を使えば、スムーズな連係処理を実現し、社員にとって使いやすいアプリケーションを作ることが可能になります。Document AI は、ビジネスで機械学習を活用し、ドキュメントを構造化データに変換するためのプラットフォームとソリューション ファミリーです。このブログ投稿では、この Document AI のほか、サーバーレス技術を用いて Cloud Functions でドキュメントを処理する方法や、Workflows によってビジネス プロセスのワークフローを自動化し、マイクロサービス、API 呼び出し、関数をオーケストレーションする方法について説明します。
Cloud Next 2021 では、Google Cloud で AI を活用したアプリケーションを簡単に構築する方法をご紹介しました。具体的には、経費報告書の受信処理および経費領収書の分析を行うサンプル アプリケーションです。このアプリケーションでは、まず DocAI ソリューションである Procurement Document AI を使って、請求書や公共料金明細などの伝票から調達データを自動的に取り込みます。続けて、Cloud Functions 経由でワークフローを起動し、解析済みドキュメントを分析する一方で、Workflows によって報告書承認プロセスのロジックを調整する、という流れになっています。このアプリケーションについて詳しくお知りになりたい場合は、GitHub リポジトリにてコードをオープンソースとして公開しておりますので、どうぞご利用ください。
上の図には、2 種類のユーザー操作が含まれています。1 つ目は、従業員が経費報告書を提出する操作で、報告書に含まれる領収書がまとめて処理されます。2 つ目は、管理者が経費報告書を承認または拒否する操作です。
まず、従業員がウェブサイトにアクセスします。このウェブサイトには、フロントエンド向けのプログレッシブな JavaScript フレームワークである Vue.js と、ウェブ コンポーネントのライブラリ Shoelace が使用されています。ウェブサイトは Firebase Hosting によってホストされます。フロントエンドからHTTP 関数が呼び出されると、Workflows YAML 構文を使って定義されたビジネス ワークフローが実行されるという仕組みになっています。
Workflows では、コードを別途追加することなく、長時間実行オペレーション(この例では、領収書ファイル セットの非同期処理)を扱うことができます。このワークフローで、Document AI コネクタはバッチ処理エンドポイントを直接呼び出し、サービスを要求します。呼び出された API は、長時間実行オペレーションを返します。具体的には、API にポーリングすると、オペレーションの状態として「RUNNING」か、またはオペレーションが完了した場合は「SUCCEEDED」か「FAILED」が返されます。オペレーションが完了するまで待機する必要がありますが、Workflows のコネクタなら、こうした長時間実行オペレーションを処理するときに、オペレーションの状態が更新されるまで何度も API にポーリングしなくて済みます。以下に、Document AI コネクタからバッチ処理オペレーションを呼び出す方法を示します。
Document AI の機械学習では、最新のビジョンおよび自然言語処理モデルを駆使して、ドキュメントからスキーマ化されたデータを自動抽出します。デベロッパー側で、領収書画像の微調整や再構成を行ったり、領収書内の特定の項目や情報を見つけたりする方法を考慮する必要はありません。そうした処理は Document AI のほうでやってくれます。具体的には、line_item、currency、supplier_name、total_amount などのフィールドを含む JSON ドキュメントを返します。Document AI はさらに、請求書、融資書類、給料明細、運転免許証など、標準的な形式の書類やフォームを識別することが可能です。
Cloud Functions の関数を使えば、領収書の該当項目をすべて抽出し、適宜集計して、経費報告書を管理者に送信して承認を求めることができます。昨年導入された Workflows の便利な新機能、Callbacks も活用されています。具体的には、ワークフローを定義するにあたり、コールバック エンドポイントを作成しておき、ワークフローを実行する際、このコールバックが呼び出されるのを待ってからフローを継続します。そのためには、以下のように 2 つの命令を使用します。
まとめると、このサンプル アプリケーションは Document AI のインテリジェントな機能を組み合わせて画像形式の複雑なドキュメントを使用可能な構造化データに自動変換し、Cloud Functions でデータの変換、プロセスの開始、処理ロジックのコールバックを行い、Workflows によって下層のビジネス プロセスおよびそのサービス呼び出しロジックをオーケストレートするという仕組みになっています。
詳しく学ぶには
ドキュメントの内容を識別したり、ダークデータを構造化データに変換したりすることにご興味がおありの場合は、Document AI の機能をぜひご確認ください。Codelab を使って、今すぐ使用を開始することもできます。このラボでは、手書きのフォームを処理する方法も紹介されています。Workflows については、クイックスタートで使用の開始方法が説明されているほか、codelab でも基本的な事柄がカバーされています。前述のとおり、Smart Expense アプリケーションのソースコードは GitHub で公開されているので、こちらで具体例をご覧ください。スケーラブルなスマートアプリについてのご相談にも応じておりますので、@glaforge または @asrivas_dev までお気軽にお問い合わせください。
- デベロッパー アドボケイト Guillaume Laforge
- Google Cloud Developer Relations シニア エンジニア Anu Srivastava