メインコンテンツまでスキップ

ジョブにおける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 タスクを追加するには:

  1. ジョブUIの タスク タブに移動します。

  2. プラスアイコン。 [タスクの追加] をクリックします。ジョブにタスクがまだない場合は、 プラスアイコン。 [別のタスク タイプを追加] をクリックします。

  3. ドキュメントインテリジェンス で、 ドキュメント解析 を選択します。

  4. 「タスク名」 フィールドに名前を入力します。defaultはparsingです。

  5. 「 入力 」の下で、解析するドキュメントを選択します。入力を参照してください。

    • ボリューム :ボリューム、またはボリューム内のフォルダを選択します。
    • テーブル :テーブルとFILEまたはBINARY カラム を選択します。
  6. 「 出力 」の下で、「 場所 」を選択し、オプションで「 テーブル名 」を入力します。出力を参照してください。

  7. (オプション)テーブル入力の場合、 ID列 を追加します。ID列を参照してください。

  8. 「 要素タイプの説明 」で、AI生成の説明を取得する解析済み要素を選択します:「 サポートされているすべてのタイプ 」、「 図のみ 」、または「 なし 」。「 なし 」は説明を生成しないため、多くの図を含むドキュメントのコンピュートとコストを削減できます。要素の理解を参照してください。

  9. (オプション)再試行、実行時間、ストリーミングバックログのthreshold、または通知を設定するには、「 高度なタスク設定」を参照してください。

  10. タスクの保存 をクリックします。

タスクは、次にジョブが実行される時に実行されます。ジョブをスケジュールに従って実行するには、 「スケジュールに従ってジョブをランする」を参照してください。このタスクの編集、クローン作成、無効化、または削除を行うには、 「 Lakeflow Jobsでタスクを構成および編集する」を参照してください。

宣言型オートメーションバンドルでタスクを定義する​

宣言型オートメーション・バンドルを使用すると、ソース・ファイルでジョブを定義できるため、コードのように変更をバージョン管理、レビュー、デプロイできます。次の例では、ボリューム内の各ファイルを解析し、図の記述のみを生成するai_parse_documentタスクを含むジョブを定義します。記述を生成しない場合は、description_element_typesを省略します。各ページを描画した画像を保存するには、image_output_pathにボリュームパスを設定します。代わりにJobs APIでジョブを作成するには、同じジョブ設定をjobs/createに送信します。

YAML
# 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 カラムとして使用します。

YAML
# 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"}
}

その他のリソース​