次の方法で共有


ai_query 関数

適用対象:check marked yes Databricks SQL

重要

この機能はパブリック プレビュー段階にあります。

既存の Azure Databricks Model Serving エンドポイントを呼び出し、その応答を解析して返します。

要件

構文

外部モデルまたは基盤モデルを提供するエンドポイントに対してクエリを実行するには:

ai_query(endpointName, request)

カスタム モデル提供エンドポイントにクエリを実行するには:

ai_query(endpointName, request, returnType)

引数

  • endpointName: 文字列リテラル。呼び出し用の同じワークスペース内の既存の Databricks Model Serving エンドポイントの名前。 定義者には、エンドポイントに対するクエリ可能アクセス許可が必要です。
  • request: 式。エンドポイントの呼び出しに使用される要求。
    • エンドポイントが、外部モデル提供エンドポイントまたは Databricks Foundation Model API エンドポイントの場合、要求は STRING である必要があります。
    • エンドポイントがカスタム モデル提供エンドポイントである場合、要求には単一の列または構造体式を指定できます。 構造体フィールド名は、エンドポイントで予期される入力機能名と一致する必要があります。
  • returnType: 式。エンドポイントからの予期される returnType。 これは、from_json 関数 のスキーマ パラメーターに似ています。このパラメーターは、文字列式または schema_of_json の呼び出しの両方を受け入れます。 カスタム モデル提供エンドポイントのクエリを実行するために必要です。

返品

エンドポイントから解析された応答。

外部モデル提供エンドポイントまたは Databricks Foundation モデルに対してクエリを実行するには:

> SELECT ai_query(
    'my-external-model-openai-chat',
    'Describe Databricks SQL in 30 words.'
  ) AS summary

  "Databricks SQL is a cloud-based platform for data analytics and machine learning, providing a unified workspace for collaborative data exploration, analysis, and visualization using SQL queries."

> CREATE FUNCTION correct_grammar(text STRING)
  RETURNS STRING
  RETURN ai_query(
    'databricks-llama-2-70b-chat',
    CONCAT('Correct this to standard English:\n', text));
> GRANT EXECUTE ON correct_grammar TO ds;
- DS fixes grammar issues in a batch.
> SELECT
    * EXCEPT text,
    correct_grammar(text) AS text
  FROM articles;

カスタム モデル提供エンドポイントにクエリを実行するには:


> SELECT text, ai_query(
    endpoint => 'spam-classification-endpoint',
    request => named_struct(
      'timestamp', timestamp,
      'sender', from_number,
      'text', text),
    returnType => 'BOOLEAN') AS is_spam
  FROM messages

> SELECT ai_query(
    'weekly-forecast',
    request => struct(*),
    returnType => 'FLOAT') AS predicted_revenue
  FROM retail_revenue

> SELECT ai_query(
    'custom-llama-2-7b-chat',
    request => named_struct("messages",
        ARRAY(named_struct("role", "user", "content", "What is ML?"))),
    returnType => 'STRUCT<candidates:ARRAY<STRING>>')

  {"candidates":["ML stands for Machine Learning. It's a subfield of Artificial Intelligence that involves the use of algorithms and statistical models to enable machines to learn from data, make decisions, and improve their performance on a specific task over time."]}