ai_generate_text 関数

適用対象: Databricks SQL

重要

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

警告

AI 関数 ai_generate_text() は非推奨です。 Databricks では、外部モデルで ai_query を使うことをお勧めします。

与えられた "prompt" に応じて、選択した大規模言語モデル (LLM) で生成されたテキストを返します。

要件

  • この機能は、Databricks SQL Pro と Serverless でのみ利用できます。
  • この関数の使用は非推奨とされます。 Databricks では、外部モデルを使用したai_query をお勧めします。

構文

ai_generate_text(prompt, modelName[, param1, value1] [...])

引数

  • prompt: 文字列式。選択した LLM に渡されるテキスト プロンプト。
  • modelName: STRING リテラル。'openai/gpt-3.5-turbo''azure_openai/gpt-35-turbo' のみがサポートされています。
  • paramN and valueN: 選択した LLM を認証および構成するためのキーと値のペア。 キーは、文字列リテラルである必要があり、大文字と小文字が区別されます。 値の種類は、次のキーによって異なります:
    • モデル 'openai/gpt-3.5-turbo' には、Open AI のチャット補完 API が使われます。 これは、次のパラメーターをサポートしています。
      • 'apiKey': 必須。 モデル エンドポイントにアクセスするための OpenAI API キー。 指定した値を明示的な定数文字列にすることはできません。 推奨値には、secret(scope, key) 関数と SELECT ... スカラー サブクエリが含まれます。
      • 'temperature': 使用するサンプリング温度。 その値は、02 の間の数値リテラルです。 既定値は 1.0 です。
      • stop: 文字列を停止します。 その値は、STRING リテラルまたは最大 4 つの文字列リテラルの ARRAY<STRING> です。 既定値は null です。
    • モデル 'azure_openai/gpt-35-turbo' には、Azure OpenAI Service のチャット補完 API が使われます。 上記の 'openai/gpt-3.5-turbo' モデルのすべてのパラメーターと、エンドポイント URL を構築するためのすべての追加のパラメーターを受け入れます。 Databricks は、API キー認証のみをサポートしています。
      • 'resourceName': 必須。 その値は、リソース名を指定する文字列リテラルです。
      • 'deploymentName': 必須。 その値は、デプロイ名を指定する文字列リテラルです。
      • 'apiVersion': 必須。 その値は、API バージョンを指定する文字列リテラルです。

返品

選択した LLM から再生成されたテキストを表す文字列式。

ai_generate_text 関数のユース ケースの例については、「ai_generate_text() と OpenAI を使って顧客レビューを分析する」を参照してください。


> SELECT ai_generate_text('Hello', 'openai/gpt-3.5-turbo',
    'apiKey', secret('ml', 'key'),
    'temperature', 0.1);

  Hello! How can I assist you today?

> SELECT ai_generate_text('Hello',
    'azure_openai/gpt-35-turbo',
    'apiKey', secret('ml', 'key'),
    'resouceName', 'resource',
    'deploymentName', 'deploy',
    'apiVersion', '2023-03-15-preview',
    'temperature', 0.1);

  Hello! How can I assist you today?

> SELECT ai_generate_text('Hello', 'openai/gpt-3.5-turbo',
    'apiKey', (SELECT secret FROM secrets.open_ai_tokens LIMIT 1),
    'temperature', 0.1);

  Hello! How can I assist you today?

> CREATE FUNCTION summarize(text STRING)
  RETURNS STRING
  RETURN AI_GENERATE_TEXT(
    CONCAT('Summarize the following text: ',
      text),
    'openai/gpt-3.5-turbo',
    'apiKey', (SELECT secret FROM secrets.open_ai_tokens LIMIT 1),
    'temperature', 0.1
  );

  SELECT summarize('This is the text to be summarized.')

  This is the summarization.

> SELECT ai_generate_text('Hello',
    'openai/gpt-3.5-turbo',
    'apiKey', 'sg-xxxxxxxxxxxxxxxxxxxxxx',
    'temperature', 0.1);

 Error: DATATYPE_MISMATCH.INVALID_SECRET
 The parameter value of the "apiKey" argument to the ai_generate_text function can not be a constant 'sg-xxxxxxxxxxxxxxxxxxxxxx'. Recommended usages include `secret(scope, key)` function or a `SELECT ...` subquery.