Share via


ai_generate_text-Funktion

Gilt für:check marked yes Databricks SQL

Wichtig

Dieses Feature befindet sich in der Public Preview.

Warnung

Die KI-Funktion ai_generate_text() ist veraltet. Databricks empfiehlt die Verwendung von ai_query mit externen Modellen.

Gibt Text zurück, der von einem ausgewählten LLM (Large Language Model) generiert wurde, wenn die Eingabeaufforderung angezeigt wird.

Anforderungen

  • Diese Funktion ist nur in Databricks SQL-Instanzen vom Typ „Pro“ und „Serverlos“ verfügbar.
  • Diese Funktion ist als veraltet markiert. Databricks empfiehlt ai_query mit externen Modellen.

Syntax

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

Argumente

  • prompt: Ein Zeichenfolgenausdruck, die Texteingabeaufforderung, die an das ausgewählte LLM übergeben wird
  • modelName: Ein STRING-Literal, nur 'openai/gpt-3.5-turbo' und 'azure_openai/gpt-35-turbo' werden unterstützt.
  • paramN und valueN: Schlüssel-Wert-Paare zum Authentifizieren und Konfigurieren des ausgewählten LLM. Bei den Schlüsseln muss es sich um Zeichenfolgenliterale handeln, und die Groß-/Kleinschreibung muss beachtet werden. Die Typen der Werte hängen von den folgenden Schlüsseln ab:
    • Das Modell 'openai/gpt-3.5-turbo' verwendet die Chatvervollständigungs-API von Open AI. Die folgenden Parameter werden unterstützt:
      • 'apiKey': Erforderlich. Der OpenAI-API-Schlüssel für den Zugriff auf den Modellendpunkt. Der angegebene Wert darf keine explizite konstante Zeichenfolge sein. Der empfohlene Wert umfasst die Funktion „secret(scope, key)“ und die skalare Unterabfrage SELECT ....
      • 'temperature': Die zu verwendende Temperatur für die Stichprobenentnahme. Der Wert ist ein numerisches Literal zwischen 0 und 2. Der Standardwert ist 1.0.
      • stop: Zeichenfolgen vom Typ „stop“. Der Wert ist ein STRING-Literal oder ARRAY<STRING> mit bis zu 4 Zeichenfolgenliteralen. Der Standardwert ist "null".
    • Das Modell 'azure_openai/gpt-35-turbo' verwendet die Chatvervollständigungs-API aus Azure OpenAI Service. Es akzeptiert alle Parameter aus dem obigen 'openai/gpt-3.5-turbo'-Modell und alle zusätzlichen Parameter, um die Endpunkt-URL zu erstellen. Databricks unterstützt nur die API-Schlüsselauthentifizierung.
      • 'resourceName': Erforderlich. Der Wert ist ein Zeichenfolgenliteral zum Angeben des Ressourcennamens.
      • 'deploymentName': Erforderlich. Der Wert ist ein Zeichenfolgenliteral zum Angeben des Bereitstellungsnamens.
      • 'apiVersion': Erforderlich. Der Wert ist ein Zeichenfolgenliteral zum Angeben der zu verwendenden API-Version.

Gibt zurück

Ein Zeichenfolgenausdruck, der den vom ausgewählten LLM erneut generierten Text darstellt.

Beispiele

Einen Beispielanwendungsfall für die ai_generate_text-Funktion finden Sie unter Analysieren von Kundenbewertungen mit „ai_generate_text()“ und 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.