Funktionen ai_query

Gäller för:check marked yes Databricks SQL

Viktigt!

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Anropar en befintlig Azure Databricks Model Serving-slutpunkt och parsar och returnerar svaret.

Behov

  • Den här funktionen är inte tillgänglig i Azure Databricks SQL Classic.
  • Att köra frågor mot Foundation Model-API:er är aktiverat som standard. Om du vill köra frågor mot slutpunkter som hanterar anpassade modeller eller externa modeller måste du registrera dig i den offentliga förhandsversionen. Fyll i och skicka registreringsformuläret för den offentliga förhandsversionen av AI Functions.

Syntax

Så här frågar du en slutpunkt som hanterar en extern modell eller en grundmodell:

ai_query(endpointName, request)

Så här frågar du en anpassad modell som betjänar slutpunkten:

ai_query(endpointName, request, returnType)

Argument

  • endpointName: En STRING-literal, namnet på den befintliga Databricks-modell som betjänar slutpunkten på samma arbetsyta för anrop. Definieraren måste ha behörigheten CAN QUERY på slutpunkten.
  • request: Ett uttryck, den begäran som används för att anropa slutpunkten.
    • Om slutpunkten är en extern modell som betjänar slutpunkten eller Databricks Foundation-modell-API:ernas slutpunkt måste begäran vara en STRING.
    • Om slutpunkten är en anpassad modell som betjänar slutpunkten kan begäran vara en enda kolumn eller ett struct-uttryck. Fältnamnen för struct ska matcha de indatafunktionsnamn som förväntas av slutpunkten.
  • returnType: Ett uttryck, den förväntade returnType från slutpunkten. Detta liknar schemaparametern i from_json funktion, som accepterar både ett STRING-uttryck eller anrop av schema_of_json funktion. Krävs för att köra frågor mot en anpassad modell som betjänar slutpunkten.

Returer

Det tolkade svaret från slutpunkten.

Exempel

Så här frågar du en extern modell som betjänar slutpunkten eller Databricks Foundation-modellen:

> 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;

Så här frågar du en anpassad modell som betjänar slutpunkten:


> 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."]}