カテゴリ:

:doc:`/sql-reference/functions-string`(AI 関数)

AI_PARSE_DOCUMENT

注釈

AI_PARSE_DOCUMENT は PARSE_DOCUMENT (SNOWFLAKE.CORTEX) の更新されたバージョンです。最新の関数については、 AI_PARSE_DOCUMENT を使用してください。

Snowflakeステージ上のドキュメントから抽出したコンテンツを JSON形式の文字列として返します。この関数は、2つのタイプの抽出をサポートしています。光学式文字認識( OCR )およびレイアウト。詳細については、 AI_PARSE_DOCUMENT を使用したドキュメントの解析 をご参照ください。

構文

AI_PARSE_DOCUMENT( <file_object> [, <options> ] [, <return_error_details> ] )

引数

必須:

file_object

Snowflakeステージに格納されている、解析するドキュメントを指定する FILE オブジェクト。ファイルオブジェクトの作成の詳細については、 TO_FILE をご参照ください。

オプション:

options

ドキュメントを解析するためのオプションを含む OBJECT 値。サポートされているキーは以下のとおりです。すべてオプションです。

  • 'extract_images':TRUE に設定されている場合、関数はドキュメントに埋め込まれた画像を抽出します。LAYOUT モードが必要です。

  • 'mode':解析モードを指定します。サポートされているモードは次のとおりです。

    • 'OCR':関数はテキストのみを抽出します。これがデフォルトのモードです。

    • 'LAYOUT':関数は、テーブルなどの構造化されたコンテンツを含むレイアウトとテキストを抽出します。

  • 'page_split':TRUE に設定されている場合、関数はドキュメントをページに分割し、各ページを個別に処理します。この機能は PDF、PowerPoint(.pptx)、およびWord(.docx)ドキュメントのみをサポートしています。他の形式のドキュメントはエラーを返します。デフォルトは FALSE です。

    Tip

    AI_PARSE_DOCUMENT のトークン制限を超える長いドキュメントを処理するには、このオプションを TRUE に設定します。

  • 'page_filter':処理する複数ページドキュメントのページ範囲を指定する配列。各範囲は、範囲の最初(含まれる)と最後のページ(含まれない)を指定する start および end フィールドを持つオブジェクトです。ページインデックスは0から始まります。たとえば、{'start': 0, 'end': 1} は、ドキュメントの最初のページを指定します。

    注釈

    page_filter の指定は、page_split も意味します。ページ範囲を指定する場合、合わせて page_split を設定する必要はありません。

return_error_details

エラーが発生した場合にエラーの詳細を返すかどうかを示す BOOLEAN フラグ。TRUEに設定した場合、関数は``value``、error、および``metadata``フィールドを含むOBJECTを返します。``value``フィールドには解析されたドキュメントデータが含まれ、``error``フィールドにはエラーメッセージ(成功時はNULL)が含まれます。また、``metadata``は解析された出力のサブフィールドではなく、トップレベルのフィールドです。詳細については、`エラー動作`_を参照してください。

戻り値

抽出されたデータと関連するメタデータを含む JSON オブジェクト(文字列として)。options 引数は、返されるオブジェクトの構造を決定します。

Tip

SQL で出力を使用するには、PARSE_JSON 関数を使用して OBJECT 値に変換します。

'page_split' オプションが設定されている場合、出力は次のような構造になります。

  • "pages":JSON オブジェクトの配列。それぞれにドキュメントから抽出されたテキストが含まれます。ドキュメントが1ページのみである場合、出力には引き続き "pages" 配列(単一のオブジェクトを含む)が含まれます。各ページには以下のフィールドがあります。

    • "content":プレーンテキスト(OCR モード)またはMarkdown形式のテキスト(LAYOUT モード)。

    • "index":0から始まるファイルのページインデックス。ドキュメントで指定されたページ番号と形式は無視されます。

  • "metadata":ページ数など、ドキュメントに関するメタデータが含まれます。

'page_split' が FALSE の場合、または存在しない場合、出力は次の構造になります。

  • "content":プレーンテキスト(OCR モード)またはMarkdown形式のテキスト(LAYOUT モード)。

  • "metadata":ページ数など、ドキュメントに関するメタデータが含まれます。

"extract_images" オプションが TRUE に設定されている場合、出力には、次の追加のフィールドが含まれます。

  • "images":それぞれが抽出された画像を表す JSON オブジェクトの配列。各画像オブジェクトには以下のフィールドがあります。

    • "id":画像の一意の識別子。

    • "top_left_x""top_left_y""bottom_right_x""bottom_right_y":ページ上の画像の境界ボックスの座標。

    • "image_base64":base64文字列としてエンコードされた抽出された画像データ。

エラー動作

デフォルトでは、AI_PARSE_DOCUMENTが入力を処理できない場合、関数はNULLを返します。クエリが複数の行を処理する場合、エラーのある行はNULLを返し、クエリの完了を妨げません。

エラー時の戻り値は``return_error_details``引数によって異なります。次の表は、``return_error_details``引数に基づいて、どのような戻り値が返されるかを示しています。

return_error_details

戻り値

説明

FALSE

引数が省略された場合

NULL

TRUE

valueerror、および``metadata``フィールドを持つOBJECT

value:解析されたドキュメントデータを含むOBJECT。エラーが発生した場合はNULL。

error:エラーが発生した場合はエラーメッセージを含む VARCHAR 値、または関数が成功した場合は NULL。``value``内の``error``フィールド(``errorInformation``から名前変更)には、ドキュメントごとのエラーの詳細が含まれます(存在する場合)。

metadata:ページ数などのドキュメントメタデータを含むOBJECT。このフィールドは、解析された出力内ではなくトップレベルにあります。

AI関数のエラー処理について詳しくは、:doc:`/release-notes/bcr-bundles/2026_02/bcr-2184`を参照してください。

例については、AI_PARSE_DOCUMENT の例 をご参照ください。