適用対象:
Databricks SQL
Databricks Runtime
重要
この機能は 、パブリック プレビュー と HIPAA に準拠しています。
プレビュー期間中:
- 基になる言語モデルでは複数の言語を処理できますが、この AI 関数は英語用にチューニングされています。
- AI Functionsの地域可用性については、地域限定の機能を参照してください。
ai_classify()関数は、指定したカスタム ラベルに従ってテキストコンテンツを分類します。 基本的な分類には単純なラベル名を使用するか、ラベルの説明と指示を追加して、カスタマー サポートのルーティング、ドキュメントの分類、コンテンツ分析などのユース ケースの精度を向上させることができます。
この関数は、ai_parse_documentなどの他の AI 関数からのテキストまたはVARIANT出力を受け取り、構成可能なワークフローを可能にします。
ai_classifyで反復処理する UI バージョンについては、「分類」を参照してください。
要件
Apache 2.0 ライセンス
現時点で使用できる基になるモデルは、 Apache 2.0 ライセンスの Copyright © The Apache Software Foundation に基づくライセンスが付与されています。 お客様は、該当するモデル ライセンスへのコンプライアンスを遵守する責任を負います。
Databricks では、該当する使用条件に準拠するために、これらのライセンスを確認することをお勧めしています。 Databricks の内部ベンチマークに従ってパフォーマンスが向上するモデルが将来出現した場合、Databricks によってモデルが変更される可能性があります (および、このページで提供されている該当するライセンスの一覧)。
この関数を利用するモデルは、Model Serving Foundation Model API を使用して使用できるようになります。 Databricks で使用できるモデルと、それらのモデルの使用を管理するライセンスとポリシーについては、 該当するモデル開発者の用語 を参照してください。
Databricks の内部ベンチマークに従ってパフォーマンスが向上するモデルが将来出現した場合、Databricks によってモデルが変更され、ドキュメントが更新される可能性があります。
- この関数は、一部のリージョンでのみ使用できます。 AI 関数の可用性に関するページを参照してください。
- この関数は、Azure Databricks SQL クラシックでは使用できません。
- Databricks SQL の価格ページを確認してください。
- Databricks Runtime 15.1 以上では、この関数は Databricks ノートブック内でサポートされ、これには Databricks ワークフロー内でタスクとして実行されるノートブックも含まれます。
- バッチ推論ワークロードでは、パフォーマンスを向上させるために Databricks Runtime 15.4 ML LTS が必要です。
構文
バージョン 2 (推奨)
ai_classify(
content VARIANT | STRING,
labels STRING,
[options MAP<STRING, STRING>]
) RETURNS VARIANT
バージョン 1
ai_classify(
content STRING,
labels ARRAY<STRING>,
[options MAP<STRING, STRING>]
) RETURNS STRING
議論
バージョン 2 (推奨)
content:VARIANTまたはSTRING式。 以下のいずれかを受け入れます:- 生テキスト
STRING - 別の AI 関数によって生成される
VARIANT(ai_parse_documentやai_extractなど)
- 生テキスト
labels: 分類ラベルを定義するSTRINGリテラル。 ラベルは次のようになります。- 単純なラベル: ラベル名の JSON 配列。
["urgent", "not_urgent"] - 説明付きのラベル: ラベル名を説明にマッピングする JSON オブジェクト。 ラベルの説明は 0 ~ 1000 文字にする必要があります。
{ "billing_error": "Payment, invoice, or refund issues", "product_defect": "Any malfunction, bug, or breakage", "account_issue": "Login failures, password resets" }
各ラベルは 1 ~ 100 文字にする必要があります。
labelsには、少なくとも 2 つのラベルと 500 個以下のラベルを含む必要があります。- 単純なラベル: ラベル名の JSON 配列。
options: 構成オプションを含む省略可能なMAP<STRING, STRING>:-
version: 移行をサポートするバージョン スイッチ (v1 動作の場合は"1.0"、v2 動作の場合は"2.0")。 既定値は入力の種類に基づいていますが、"1.0"にフォールバックします。 -
instructions:分類の品質を向上させるためのタスクとドメインのグローバルな説明。 20,000 文字未満にする必要があります。 -
multilabel: 複数のカテゴリが適用されたときに複数のラベルを返す"true"に設定します。 既定値は"false"(単一ラベル分類) です。
-
バージョン 1
content: 分類するテキストを含むSTRING式。labels: 予期される出力分類ラベルを持つARRAY<STRING>リテラル。 2 個以上 20 個以下の要素を含む必要があります。 各ラベルは 1 ~ 50 文字にする必要があります。options: 構成オプションを含む省略可能なMAP<STRING, STRING>:-
version: 移行をサポートするバージョン スイッチ (v1 動作の場合は"1.0"、v2 動作の場合は"2.0")。 既定値は入力の種類に基づいていますが、"1.0"にフォールバックします。
-
戻り値
バージョン 2 (推奨)
次を含む VARIANT を返します。
{
"response": ["label_name"], // Array with single label (or multiple if multilabel=true)
"error_message": null // null on success, or error message on failure
}
response フィールドには次のものが含まれます。
- 単一ラベル モード (既定): 最適に一致するラベルを含む 1 つの要素を含む配列
-
複数ラベル モード (
multilabel: "true"): 複数のカテゴリが適用される場合に複数のラベルを持つ配列 - ラベル名は、
labelsパラメーターで指定されているものと完全に一致します
contentがNULLされている場合、またはコンテンツを分類できない場合は、NULLを返します。
バージョン 1
STRINGを返します。 この値は、labels 引数で指定された文字列のいずれかとマッチします。
contentがNULLされている場合、またはコンテンツを分類できない場合は、NULLを返します。
例
バージョン 2 (推奨)
単純なラベル - ラベル名のみ
> SELECT ai_classify(
'My password is leaked.',
'["urgent", "not_urgent"]'
);
{
"response": ["urgent"],
"error": null
}
説明付きのラベル
> SELECT ai_classify(
'Customer cannot complete checkout due to payment processing error.',
'{
"billing_error": "Payment, invoice, or refund issues",
"product_defect": "Any malfunction, bug, or breakage",
"account_issue": "Login failures, password resets",
"feature_request": "Customer suggestions for improvements"
}'
);
{
"response": ["billing_error"],
"error": null
}
グローバル命令の使用
> SELECT ai_classify(
'User reports app crashes on startup after update.',
'["critical", "high", "medium", "low"]',
MAP('instructions', 'Classify bug severity based on user impact and frequency.')
);
{
"response": ["critical"],
"error": null
}
複数ラベル分類
> SELECT ai_classify(
'Customer wants refund and reports product arrived broken.',
'{
"billing_issue": "Payment or refund requests",
"product_defect": "Damaged or malfunctioning items",
"shipping_issue": "Delivery problems"
}',
MAP('multilabel', 'true')
);
{
"response": ["billing_issue", "product_defect"],
"error": null
}
を使用したコンポーザビリティ ai_parse_document
> WITH parsed_docs AS (
SELECT
path,
ai_parse_document(
content,
MAP('version', '2.0')
) AS parsed_content
FROM READ_FILES('/Volumes/support/tickets/', format => 'binaryFile')
)
SELECT
path,
ai_classify(
parsed_content,
'["billing_error", "product_defect", "account_issue", "feature_request"]',
MAP('instructions', 'Customer support ticket classification.')
) AS ticket_category
FROM parsed_docs;
バッチ分類
> SELECT
description,
ai_classify(
description,
'["clothing", "shoes", "accessories", "furniture", "electronics"]'
) AS category
FROM products
LIMIT 10;
バージョン 1
> SELECT ai_classify("My password is leaked.", ARRAY("urgent", "not urgent"));
urgent
> SELECT
description,
ai_classify(description, ARRAY('clothing', 'shoes', 'accessories', 'furniture')) AS category
FROM
products
LIMIT 10;
制限事項
バージョン 2 (推奨)
バージョン 2 の制限事項:
この関数は、Azure Databricks SQL クラシックでは使用できません。
この関数は Views では使用できません。
ラベル名はそれぞれ 1 ~ 100 文字にする必要があります。
labelsパラメーターには、2 ~ 500 個の一意のラベルが含まれている必要があります。ラベルの説明はそれぞれ 0 ~ 1,000 文字にする必要があります。
コンテキストの最大合計サイズは 128,000 トークンです。
バージョン 1
バージョン 1 の制限事項:
この関数は、Azure Databricks SQL クラシックでは使用できません。
この関数は Views では使用できません。
ラベル名はそれぞれ 1 ~ 50 文字にする必要があります。
labels配列には、2 ~ 20 個のラベルが含まれている必要があります。content入力は、128,000 トークン (約 300,000 文字) 未満である必要があります。