適用対象:
Databricks SQL
Databricks Runtime
Important
この機能は ベータ版です。
ai_decide()関数は、テキストや構造化データに対して1つ以上の質問を評価します。 各質問に対して、確率、指定された基準からの選択肢、または順序付けられたスケールのスコアのいずれかを返します。 サポートチケットのルーティング、イベントの対応の評価、または自分で定義したルーブリックを使って作業の優先順位を決めるのに使ってください。
通話中のすべての質問は「 state」と呼ばれる同じ入力を使用します。 異なる質問タイプを1回の呼び出しで組み合わせ、返答を下流のSQLクエリで使うことができます。
データのセキュリティ
ドキュメント データは、Databricks セキュリティ境界内で処理されます。 DatabricksはAI関数呼び出しに渡されるパラメータを保存しませんが、Databricksランタイムバージョンなどのメタデータ実行の詳細は保持します。
必要条件
Apache 2.0 ライセンス
現時点で使用できる基になるモデルは、 Apache 2.0 ライセンスの Copyright © The Apache Software Foundation に基づくライセンスが付与されています。 お客様は、該当するモデル ライセンスへのコンプライアンスを確保する責任を負います。
Databricks では、該当する使用条件に準拠するために、これらのライセンスを確認することをお勧めしています。 Databricks の内部ベンチマークに従ってパフォーマンスが向上するモデルが将来出現した場合、Databricks によってモデルが変更される可能性があります (および、このページで提供されている該当するライセンスの一覧)。
この関数を利用するモデルは、Model Serving Foundation Model API を使用して使用できるようになります。 Databricks で使用できるモデルと、それらのモデルの使用を管理するライセンスとポリシーについては、該当するモデルの 用語 を参照してください。
Azure Databricksの内部ベンチマークに従ってパフォーマンスが向上するモデルが出現した場合、Databricks によってモデルが変更され、ドキュメントが更新される可能性があります。
この関数は、一部のリージョンでのみ使用できます。 AI 関数の可用性に関するページを参照してください。
セキュリティとコンプライアンスの強化アドオンを使用するワークスペースの場合は、
- 適切な
ai_decideについては、 の地域サポートを参照してください。 - ワークスペースで有効にする方法については、「Azure Databricksプレビューの管理」を参照してください。
- 適切な
この関数は、Azure Databricks SQL クラシックでは使用できません。
Databricks Runtime 15.4 LTS以上のものが必要です。 最高のパフォーマンスと最新機能へのアクセスのために、Databricks Runtime 18.2以上が推奨されます。
Databricks SQL の価格ページを確認してください。
Syntax
ai_decide(state, questions [, options])
論争
state: 質問に答えるために必要な内容、文脈、例を含むVARIANTまたはSTRINGの表現。 値は行ごとに異なる場合があります。 以下のいずれかを受け入れます:- プレーンテキストやJSONでエンコードされたオブジェクトや配列を含む
STRING。 JSONオブジェクトや配列は構造化データとして解釈されます。 他の文字列はテキストとして扱われます。 - 別の AI 関数によって生成される
VARIANT(ai_parse_documentやai_extractなど)
- プレーンテキストやJSONでエンコードされたオブジェクトや配列を含む
questions: 空でないJSONオブジェクトを含む定数STRING式。 各キーは空でない質問IDであり、各値は質問の定義です。 同じ定義はすべての行に当てはまります。 質問 の定義を参照してください。options: オプションの定数MAP<STRING, STRING>式です。 サポートされるオプションはversionで、価値は'1.0'です。 バージョン1.0がデフォルトです。 明示的に指定するにはmap('version', '1.0')を使います。
質問の定義
各問題の定義には type と instructionsが必要で、問題タイプに応じて criteria も必要です。 必須項目は nullできません。 他の分野はサポートされていません。
-
type:noul、choice、またはscoreのいずれか。 -
instructions: 状態を評価する命令で、文字列、JSONオブジェクト、またはJSON配列として表現されます。 -
criteria答え方を定義する記述です。 必要な形状はtypeによって異なります。
ノールの質問
noulを使って、その質問が真である可能性を推定します。 その結果、0から1までの数値が得られます。
オプションの criteria オブジェクトには、その結果を表す true キーや false キーを含めることができます。 各記述は文字列、JSONオブジェクト、またはJSON配列で構成できます。 これらの説明が必要ない場合は省略 criteria してください。 供給された場合、 criteria はオブジェクトでなければならず、 nullしてはいけません。
{
"needs_escalation": {
"type": "noul",
"instructions": "Does this ticket need immediate escalation?",
"criteria": {
"true": "An active service outage blocks the customer from working.",
"false": "The customer can continue working or has a workaround."
}
}
}
選択質問
choiceを使って、名前付きの基準の中から1つのラベルを選択します。
必要な criteria オブジェクトは、1から255個の空でないラベルを記述にマッピングします。 各説明は文字列、JSONオブジェクト、JSON配列、または nullでいることができます。 ラベルだけで選択を表す場合は、その null を使いましょう。
{
"team": {
"type": "choice",
"instructions": "Which team should handle this ticket?",
"criteria": {
"shipping": "Delivery or shipment issues",
"billing": "Payment or invoice issues",
"technical_support": "Product technical problems"
}
}
}
スコア問題
scoreを使って、秩序立てられた尺度に対して状態を評価します。
必要な criteria 配列は2から10の記述を含み、低い順に並びます。 各記述は文字列、JSONオブジェクト、またはJSON配列で構成できます。 最初の基準は指数 0、次の基準は指数 1、という具合です。
その結果、これらの指数の確率加重平均が得られます。 それは分数的で、 0 から基準の数マイナス1までの範囲です。 例えば、3つの基準における 0.1、 0.3、 0.6 の確率は 1.5となります。
{
"urgency": {
"type": "score",
"instructions": "How urgent is this ticket?",
"criteria": [
"Routine request with no time pressure",
"Time-sensitive issue with a workaround",
"Critical issue that blocks the customer"
]
}
}
返品
フィールドresponse、metadata、error_messageのVARIANTを返します。
responseフィールドにはanswersオブジェクトがあり、各質問につき1つのエントリーがあります。 問題IDは questions パラメータに記載されたものと完全に一致します。 各回答には、問題タイプに合わせた type フィールド( noul、 choice、または score)が含まれています。 以下の例は、各問題タイプの response フィールドを示しています。
ノール質問:質問が真である可能性を推定する0から1への
probability。{ "answers": { "needs_escalation": { "type": "noul", "probability": 0.1 } } }選択問題:最も確率の高いラベルを含む
choiceと、すべてのラベルをその確率に写す対象probabilities。confidenceは0から1までの数値で、州が評価をどれだけ支援しているかを示します。probabilities値は合計1になります。 ラベル名はcriteriaで提供されたものと完全に一致しています。{ "answers": { "team": { "type": "choice", "choice": "shipping", "probabilities": { "shipping": 0.8, "billing": 0.1, "technical_support": 0.1 }, "confidence": 0.9 } } }スコア問題:基準インデックスの確率加重平均を含む
score、元の基準記述に写像する文字列インデックス(例:"0")を写像するlegend、そしてそれらのインデックスを確率にマッピングするprobabilitiesオブジェクト。confidenceは0から1までの数値で、州が評価をどれだけ支援しているかを示します。probabilities値は合計1になります。{ "answers": { "urgency": { "type": "score", "score": 1.5, "legend": { "0": "Routine request with no time pressure", "1": "Time-sensitive issue with a workaround", "2": "Critical issue that blocks the customer" }, "probabilities": { "0": 0.1, "1": 0.3, "2": 0.6 }, "confidence": 0.8 } } }
成功すると、metadata.versionは使用された関数のバージョンを特定し、error_messagenullします。
故障時には response が null であり、 error_message 故障を表現します。 無効な引数型や非定数の質問定義もクエリエラーの原因となることがあります。
例示
以下の例は、1回の通話で複数の質問を評価する方法を示しています。 生成される回答は通話ごとに異なる場合があります。
複数の問題タイプを評価する
この例は、商品リストのカテゴリー、リサイクル素材の使用、雨天時のハイキング適性を評価するものです。
SELECT ai_decide(
'{"name": "TrailShell jacket", "description": "Lightweight waterproof hiking jacket made from recycled polyester. Packs into its own pocket."}',
'{
"category": {
"type": "choice",
"instructions": "Which product category best fits this item?",
"criteria": {
"outerwear": "Jackets, coats, and other protective outer layers",
"footwear": "Shoes, boots, and sandals",
"accessories": "Bags, hats, and other accessories"
}
},
"recycled_materials": {
"type": "noul",
"instructions": "Does the listing state that the product uses recycled materials?"
},
"hiking_suitability": {
"type": "score",
"instructions": "How suitable is this product for hiking in rainy weather?",
"criteria": [
"Not suitable for outdoor use in rain",
"Offers some protection from rain",
"Designed for hiking with waterproof protection"
]
}
}',
map('version', '1.0')
) AS decision;
応答の例:
{
"response": {
"answers": {
"category": {
"type": "choice",
"choice": "outerwear",
"probabilities": { "outerwear": 0.95, "footwear": 0.01, "accessories": 0.04 },
"confidence": 0.95
},
"recycled_materials": { "type": "noul", "probability": 0.98 },
"hiking_suitability": {
"type": "score",
"score": 1.8,
"legend": {
"0": "Not suitable for outdoor use in rain",
"1": "Offers some protection from rain",
"2": "Designed for hiking with waterproof protection"
},
"probabilities": { "0": 0.05, "1": 0.1, "2": 0.85 },
"confidence": 0.9
}
}
},
"metadata": { "version": "1.0" },
"error_message": null
}