LLMの活用で帳票の定義作業を大幅に削減可能に!
こちらの記事で発表されたように、Datacapのwatsonx.ai連携機能がリリースされました。Datacapでは、ゾーン認識、ルールによる認識など様々な方式でデータの読み取りが可能です。読み取る帳票の種類が多い場合、そのすべてに対応したゾーン指定や、ルール設定を行うことはかなり大変な作業でした。今回watsonx.aiとの連携機能が提供され、これらの作業を大幅に簡略化することが可能になりました。
watsonx.aiと連携する様々なアクションを提供
LLMとの連携するための様々なアクションが提供され、これらのアクションを組み合わせてキャプチャ・ワークフローを実装します。
今回紹介する使用法以外にも、例えばフィールドの値を生成AIに渡して分類し、読み取り結果の処理フローを分岐するなど様々な活用が可能になります。
実際の帳票読み取りフローの例は以下の通りです。
⓪事前にwatsonx.aiでAPIキーを生成し、SetAPIKey、SetModelアクションなどを用いて接続や利用するLLMの指定を行います。
①任意の方法で帳票全体を読み取ります。
②askQuestionUsingPageTextアクションを用いて、帳票の種類を特定します。LLMに渡すプロンプトは自由に設定が可能です。LLMからの返答を元にページを確定し、setPageTypeアクションを用いて、ページ・タイプを設定します。
③AskForPageValuesUsingKeysアクションを用いて、個々のフィールドの値を取得し、フィールドの値としてセットします。デフォルトでは各フィールドに設定されたLLMKeyという変数を用いてプロンプトが生成されます。例えば「住所」を取得したい場合、LLMKeyとしてキーを設定しておくと、プロンプトに自動的に組み込まれます。デフォルトのプロンプトは英語になりますが、LLMKeyを日本語で定義しても動作することが確認できました。
プロンプトのチューニング
帳票の種類によっては単にキーを指定するだけではなく、個別にプロンプトを調整する必要があるかもしれません。SetEnhancedLoggingアクションでtrueをセットすることで実際にどのようなプロンプトが使用されているかがログに出力され確認することが可能ですので、それをベースにプロンプトを修正しましょう。
その他の注意点
watsonx.aiから正しい結果が返ってこない場合は、エンドポイントアドレスやモデルの値が間違っていないか確認しましょう。また、デフォルトのMaxTokenはかなり小さい値となっているため、SetMaximumNewTokenアクションを用いてトークンの最大数を増やすこともほぼ必須の手順となりますので注意してください。
まとめ
LLMを活用することで、フォーマットごとの帳票定義作業を大幅に簡略化することが可能になりました。生成AIの呼び出しがアクションとして提供されるため、単に読み取りのロジックとしてLLMを活用するという事ではなく、例えばフィールドの値を生成AIに渡して分類するなど、様々な活用も可能になります。
#IBMDatacap
#watsonx.ai