ジョブにおけるai_parse_documentタスク
ベータ版
この機能はベータ版です。使用するには、ワークスペース管理者は プレビュー ページから Lakeflow AI Function タスク を有効にする必要があります。Databricksのプレビューを管理するを参照してください。
ジョブ内のドキュメントを解析するには、ai_parse_documentタスクを使用します。タスクは、Unity Catalogボリュームまたはテーブル内の各ドキュメントでai_parse_documentをランします。タスクは、PDFや画像などのドキュメントからテキスト、テーブル、図の説明、Layoutを解析し、各ドキュメントの結果をUnity Catalogテーブルに書き込みます。サポートされているファイル形式と制限については、ai_parse_documentを参照してください。
ai_parse_documentタスクは、AI関数タスクの一種です。Jobs API および Declarative Automation Bundles では、ai_function_task 関数が設定された ai_parse_document です。要件とAI関数タスクによるデータの処理方法については、ジョブのAI関数タスクを参照してください。
ai_parse_documentタスクを追加します
ai_parse_document タスクを追加するには:
-
ジョブUIの タスク タブに移動します。
-
[タスクの追加] をクリックします。ジョブにタスクがまだない場合は、
[別のタスク タイプを追加] をクリックします。
-
ドキュメントインテリジェンス で、 ドキュメント解析 を選択します。
-
「タスク名」 フィールドに名前を入力します。defaultは
parsingです。 -
「 入力 」の下で、解析するドキュメントを選択します。入力を参照してください。
- ボリューム :ボリューム、またはボリューム内のフォルダを選択します。
- テーブル :テーブルと
FILEまたはBINARYカラム を選択します。
-
「 出力 」の下で、「 場所 」を選択し、オプションで「 テーブル名 」を入力します。出力を参照してください。
-
(オプション)テーブル入力の場合、 ID列 を追加します。ID列を参照してください。
-
「 要素タイプの説明 」で、AI生成の説明を取得する解析済み要素を選択します:「 サポートされているすべてのタイプ 」、「 図のみ 」、または「 なし 」。「 なし 」は説明を生成しないため、多くの図を含むドキュメントのコンピュートとコストを削減できます。要素の理解を参照してください。
-
(オプション)再試行、実行時間、ストリーミングバックログのthreshold、または通知を設定するには、「 高度なタスク設定」を参照してください。
-
タスクの保存 をクリックします。
タスクは、次にジョブが実行される時に実行されます。ジョブをスケジュールに従って実行するには、 「スケジュールに従ってジョブをランする」を参照してください。このタスクの編集、クローン作成、無効化、または削除を行うには、 「 Lakeflow Jobsでタスクを構成および編集する」を参照してください。
宣言型オートメーションバンドルでタスクを定義する
宣言型オートメーション・バンドルを使用すると、ソース・ファイルでジョブを定義できるため、コードのように変更をバージョン管理、レビュー、デプロイできます。次の例では、ボリューム内の各ファイルを解析し、図の記述のみを生成するai_parse_documentタスクを含むジョブを定義します。記述を生成しない場合は、description_element_typesを省略します。各ページを描画した画像を保存するには、image_output_pathにボリュームパスを設定します。代わりにJobs APIでジョブを作成するには、同じジョブ設定をjobs/createに送信します。
# resources/parse_invoices.job.yml
resources:
jobs:
parse_invoices:
name: parse_invoices
tasks:
- task_key: parsing
ai_function_task:
volume:
volume_path: /Volumes/main/finance/invoices
output:
catalog: main
schema: finance
ai_parse_document:
version: '2.0'
description_element_types: [DESCRIPTION_ELEMENT_TYPE_FIGURE]
出力
出力テーブルの response 列には、各ドキュメントの完全な ai_parse_document 結果が VARIANT として保持されます。タスクは値ごとに列を追加しません。値を列として取得するには、クエリーの response から選択します。形式については、ai_parse_document の戻り値 を参照してください。他の列については、出力テーブル を参照してください。
他の AI 関数で使用する
解析されたドキュメントからフィールドを抽出するか、分類するには、 ai_parse_document タスクの後に実行される ai_extract タスクまたは ai_classify タスクを追加します。ジョブ UIでは、新しいタスクの入力はdefaultで ai_parse_document タスクの出力テーブルと response カラムになります。「 後続のタスクで出力を使用する」を参照してください。
次の Declarative Automation Bundles の例では、ボリューム内のファイルを解析し、各解析済みドキュメントからインボイス ID と合計を抽出するジョブを定義しています。extraction タスクは、{{tasks.parsing.output.table_name}} で parsing タスクの出力テーブルを読み取り、その response カラムを読み取り、その id カラムを ID カラムとして使用します。
# resources/parse_and_extract_invoices.job.yml
resources:
jobs:
parse_and_extract_invoices:
name: parse_and_extract_invoices
tasks:
- task_key: parsing
ai_function_task:
volume:
volume_path: /Volumes/main/finance/invoices
output:
catalog: main
schema: finance
ai_parse_document:
version: '2.0'
- task_key: extraction
depends_on:
- task_key: parsing
ai_function_task:
delta_table:
table_name: '{{tasks.parsing.output.table_name}}'
input_column: response
merge_key_columns: [id]
output:
catalog: main
schema: finance
table: invoice_fields
ai_extract:
version: '2.1'
schema: |
{
"invoice_id": {"type": "string", "description": "Unique invoice identifier"},
"total_amount": {"type": "number", "description": "Total invoice amount"}
}
その他のリソース
-
ジョブの AI 関数タスク: AI 関数タスクについて学習します。
-
ドキュメントの解析: Agent Bricks UI のサンプル・ドキュメントを使用して解析をテストします。