はじめに
こんにちは!株式会社マクニカでDatabricksのセールスエンジニアをしているtm_mtaishiです。
Databricksとは?(マクニカ紹介ページ)
以前、こちらでAgent Bricksの「ナレッジアシスタント」機能でチャットボットを作成してみました。
今回は、「情報の抽出」機能を用いてPDFの情報を構造化しましたので、その方法をご紹介します。
このようなPDFが・・・
機能概要
DatabricksのAgent Bricksは、ノーコードでドメイン固有の高品質なAIエージェントシステムを構築できる機能です。
その中の「情報の抽出」機能は、PDFやレポートなどの非構造化データから情報を自動的に抽出し、構造化データに変換することができます。
これにより、複雑なコードを書くことなく、非構造化データから価値のある情報を自動的・効率的に抽出することができるようになります!
PDFのデータを使いたいが、表などが入っていていまいちうまく使えない、、という方にぴったりの機能と思います!
※ただし、2025年9月2日現在、Agent Bricksの機能は、東京リージョンでは利用できない為USリージョンで実施しています。
検証
準備
今回は、以下のような表やテキストの情報を持つ注文書を使用します。
(この注文書は、生成AIで作成したサンプルのデータです。)
そして、後ほど使用するのでSQLウェアハウスを立ち上げておきます。
PDFデータの一次処理
DatabricksのAgent Bricksの画面にて、”情報の抽出”というユースケースから作成を進めます。
最初に、今回は対象のデータがPDFなので、「PDFを使用」というボタンをクリックします。
すると、右側に画面が表示されるので、対象となるフォルダや保存先テーブル、先ほど立ち上げたSQLウェアハウスを指定します。
「インポートを開始」をクリックすると、PDFをマークダウンに変換する処理が自動的に始まります。
(ここでは、ai_parse_documentという関数によって処理がなされます。)
問題なければステータスが成功となり、指定した場所にテーブルが保存されます。
以下のようなテーブルが作成されました。
中身を見ると、raw_parsedカラムにて、PDFの情報が入っています。
エージェント作成
ここまでで、PDFの情報をテーブルに保存することができました。
ここから構造化していきます。
Agent Bricks画面に戻り、”情報の抽出”から「ビルド」をクリックします。
先ほど作成したテーブルデータの場所や、解析したいカラムなどを入力します。
入力すると、JSON出力の例が表示されるので確認します。
その後、「エージェント作成」をクリックします。
構造化の実践
作成後、早速使っていきます。
作成後の画面の右上「使用」ボタンから、このエージェントを使っていきます。
自動的にSQLが作成されるので、実行してみます。
すると、input列とresponse列が表示され、response列に構造化された情報が存在しております!
発注者情報や表の内容まで、しっかりと抽出されていることが分かります!!
(さらにパーシングしたい場合は、Databricksの生成AIアシスタントに「responseカラムをパースするコード例を教えて・・・」のようなプロンプトを打っていけば、よしなにコードを教えてくれます。)
感想
PDFをもっと活用したい、けど表などが入っていて情報が使いにくい・・・という方にはかなり使える機能ではないでしょうか!
また、ai_parse_document関数だけだと、PDFをマークダウンに変換するだけで、表のデータのラベリング(今回の例では、商品コードや単価など)まで読み取れないので、その点でもこのAgent Bricksの「情報の抽出」機能は良いですね!
ぜひお試しください!