- カテゴリ:
:doc:`/sql-reference/functions-string`(AI 関数)
AI_EXTRACT¶
入力文字列またはファイルから情報を抽出します。
構文¶
入力文字列から情報を抽出する:
ファイルから情報を抽出する:
引数¶
text抽出用の入力文字列。
file抽出用の FILE。
サポートされているファイル形式:
PDF
PNG
PPTX、 PPT
EML
DOC、 DOCX
JPEG, JPG
HTM, HTML
TEXT, TXT
TIF, TIFF
BMP、 GIF、 WEBP
MD
ファイルのサイズは100 MB 未満である必要があります。
responseFormat抽出される情報。形式は抽出のタイプによって異なります。
エンティティ抽出形式
次の形式のいずれかを指定して単一の値を抽出します。
ラベルと抽出する情報をマッピングする単純なオブジェクトスキーマ。
抽出する情報を含む文字列の配列。
2つの文字列(ラベルと抽出する情報)を含む配列の配列。
サブオブジェクトに``'type': 'string'``を持つJSONスキーマ。
リスト抽出形式
サブオブジェクトに``'type': 'array'``を持つJSONスキーマを使用して、値の配列を抽出します。
テーブル抽出形式
'type': 'object'``および``column_ordering``を持つJSONスキーマを使用して、表形式のデータを抽出します。各列は、'type': 'array'``と、ファイルの列名と一致する``description``を持つネストされたプロパティとして定義されます。注釈
JSON スキーマ形式を他の応答形式と組み合わせることはできません。
responseFormatにschemaキーが含まれている場合、すべての質問を JSON スキーマ内で定義する必要があります。追加キーはサポートされていません。このモデルは、 JSON スキーマの特定の形式のみを受け入れます。最上位タイプは常に、独立して抽出されたサブオブジェクトを含むオブジェクトである必要があります。サブオブジェクトは、テーブル(列を表す文字列のリストのオブジェクト)、文字列のリスト、または文字列の場合があります。
現在サポートされているスカラー型は文字列のみです。
descriptionフィールドを使用して、モデルにコンテキストを提供します。たとえば、モデルがドキュメント内の正しい適切なテーブルをローカライズするのに役立ちます。列のヘッダー名を入力するか、他の方法で列を説明することができます。column_orderingフィールドを使用して、抽出されたテーブル内にあるすべての列の順序を指定します。column_orderingフィールドでは大文字と小文字が区別されます。propertiesフィールドで定義された列名と一致する必要があります。順序は、ドキュメントの列の順序を反映する必要があります。
config => config_object構成設定を指定する:ref:
OBJECT <label-data_type_object>`値。このオブジェクトを指定するには、 :ref:`OBJECT 定数 <label-object_constant>を使用します。このオブジェクトでは、次のキーと値のペアを指定できます。
キー
説明
scale_factor1.0から4.0までの数値。基礎となるモデルによって処理される前に、入力ファイルのページをスケーリングします。これにより、OCRの品質を強化し、抽出結果を改善できます。
以下のシナリオで予期しない、または不明確な応答を受け取った場合は、``scale_factor``を使用します。
A4より大きいページサイズのドキュメント
小さなテキスト、詳細な視覚要素、高密度なレイアウトを含むドキュメント
抽出されたテキストに誤字や文字レベルのOCRエラーが含まれている
省略された場合、AI_EXTRACTはデフォルト値(
'scale_factor': 1.0')を使用します。
戻り値¶
抽出された情報を含むJSONオブジェクト。応答の構造は、抽出のタイプによって異なります。+1
エンティティ抽出¶
抽出された各エンティティのキーと値のペアを持つJSONオブジェクトを返します。
リスト抽出¶
抽出された値の配列を持つJSONオブジェクトを返します。
テーブル抽出¶
抽出されたテーブルを表す列配列を持つJSONオブジェクトを返します。
組み合わせ抽出¶
1回の呼び出しでエンティティ、リスト、テーブルを抽出すると、応答にはすべての抽出タイプが含まれます。
アクセス制御の要件¶
ユーザーは、 SNOWFLAKE.CORTEX_USER データベースロール が付与されているロールを使用する必要があります。この権限の付与については、 Cortex LLM 権限 をご参照ください。
使用上の注意¶
AI_EXTRACT はデジタル作成およびスキャン済みドキュメントの両方に最適化されています。
同じ関数呼び出しの中で、
textとfileの両方のパラメーターを同時に使用することはできません。自然言語で質問するか、抽出する情報(都市、通り、 ZIP コードなど)を説明できます。例:
次の言語がサポートされています。
アラビア語
ベンガル語
ビルマ語
セブアノ語
中国語
チェコ語
オランダ語
英語
フランス語
ドイツ語
ヘブライ語
ヒンディー語
インドネシア語
イタリア語
日本語
クメール語
韓国語
ラオス語
マレー語
ペルシャ語
ポーランド語
ポルトガル語
ロシア語
スペイン語
タガログ語
タイ
トルコ語
ウルドゥー語
ベトナム語
ドキュメントは125ページ以内でなければなりません。
1回の AI_EXTRACT 呼び出しで、エンティティ抽出については最大100件、テーブル抽出については最大10件の質問を行うことができます。
テーブル抽出質問は、エンティティ抽出質問10件に相当します。たとえば、1回の AI_EXTRACT 呼び出しで、4件のテーブル抽出質問と60件のエンティティ抽出質問を行うことができます。
エンティティ抽出の最大出力長は、1問あたり512トークンです。テーブル抽出の場合、モデルは最大4096トークンの回答を返します。
クライアント側の暗号化ステージはサポートされていません。
信頼性スコアはサポートされていません。
コストの考慮事項¶
Cortex AI_EXTRACT関数では、ドキュメントごとのページ数、入力プロンプトトークン、処理される出力トークンに基づいて計算コストが発生します。
ページ化されたファイル形式の場合(PDF、DOCX、TIF、TIFF)、各ページは970トークンとしてカウントされます。
画像ファイル形式の場合(JPEG、JPG、PNG)、個々の画像ファイルはページとして請求され、970トークンとしてカウントされます
``scale_factor``パラメーターを使用すると、消費されるトークン数と、1回の呼び出しで処理できるページ数が変わります。
消費される入力トークンの数は、``scale_factor``に比例して増加します。
AI_EXTRACTで処理できるドキュメントあたりの最大ページ数は、``scale_factor``ずつ減少します。
トークン数およびページ数とscale_factorの関係
scale_factor値ページあたりのトークン数
ドキュメントあたりの最大ページ数
2
970 * 2 = 1940トークン
125/2 = 62.5(62に切り捨て)
2.5
970 * 2.5 = 2425トークン
125/2.5 = 50
4
970 * 4 = 3880トークン
125/4 = 31.25(31に切り捨て)
Snowflake は、Cortex AI_EXTRACT 関数を呼び出すクエリを、小規模なウェアハウス(MEDIUM 以下)で実行することを推奨しています。ウェアハウスが大きくなってもパフォーマンスは向上しません。
リージョンの可用性¶
AI_EXTRACTは、以下のリージョンのアカウントで利用できます。
クラウドプラットフォーム |
リージョン名 |
|---|---|
Amazon Web Services(AWS) |
|
Microsoft Azure |
|
AI_EXTRACT にはクロスリージョンサポートがあります。Cortex AI クロスリージョンのサポートの有効化については、 クロスリージョン推論 をご参照ください。
エラー条件¶
AI_EXTRACT は次のエラーメッセージを生成する可能性があります。
メッセージ |
説明 |
|---|---|
|
システムエラーが発生しました。待って、もう一度お試しください。エラーが解決しない場合は、Snowflakeサポートにお問い合わせください。 |
|
ファイルが見つかりませんでした。 |
|
ファイルが見つかりませんでした。 |
|
現在のユーザーには、ファイルにアクセスするための十分な権限がありません。 |
|
ドキュメントがサポートされている形式ではありません。 |
|
ドキュメントはサーバー側の暗号化を使ってステージに保存されていません。 |
|
パラメーターが提供されていません。 |
|
応答形式が提供されていません。 |
|
応答形式が無効なJSONです。 |
|
応答形式には、1つ以上の重複した機能名が含まれます。 |
|
質問数が許容制限を超えています。 |
|
ドキュメントが125ページの制限を超えています。 |
|
画像入力または変換されたドキュメントページが、サポートされているディメンションよりも大きいです。 |
|
ページがサポートされているディメンションよりも大きいです。 |
|
ドキュメントが100 MB を超えています。 |
例¶
エンティティ抽出¶
次の例では、単純なオブジェクトスキーマを使用して、入力テキストからエンティティを抽出します。
次の例では、入力テキストからエンティティを抽出して解析します。
次の例では、``document.pdf``ファイルからエンティティを抽出します。
次の例では、ステージ上のディレクトリ内のすべてのファイルからエンティティを抽出します。
注釈
ディレクトリテーブルが有効になっていることを確認します。詳細については、 Manage directory tables をご参照ください。
次の例では、JSONスキーマを使用して、``report.pdf``ファイルから``title``エンティティを抽出します。
リスト抽出¶
次の例では、``report.pdf``ファイルから``employees``リストを抽出します。
テーブル抽出¶
次の例では、 report.pdf ファイルから income_table テーブルを抽出します。
組み合わせ抽出¶
次の例では、1回の呼び出しで``report.pdf``ファイルからテーブル(income_table)、エンティティ(title)、リスト(employees)を抽出します。
カスタムスケール係数による抽出¶
次の例では、2.0のスケール係数を使用して、``report.pdf``ファイルから``employees``配列を抽出します。
微調整された``arctic-extract``モデルを使用した抽出¶
AI_EXTRACT 関数による推論に微調整した arctic-extract モデルを使用するには、次の例に示すように、 model パラメーターを使用してモデルを指定します。
次の例に示すように、 responseFormat パラメーターを使用すると、微調整に使用される質問を上書きできます。
次の例では、微調整された``arctic-extract``モデルと2.0のスケール係数を使用して、``invoice.pdf``ファイルからデータを抽出します。
詳細については、 微調整 arctic-extract モデル をご参照ください。
法的通知¶
法的通知については、 Snowflake AI と ML をご参照ください。