Partilhar via


Função ai_query

Aplica-se a:check marked yes Databricks SQL

Importante

Esta funcionalidade está em Pré-visualização Pública.

Invoca um ponto de extremidade existente do Azure Databricks Model Serving e analisa e retorna sua resposta.

Requisitos

  • Esta função não está disponível no Azure Databricks SQL Classic.
  • O Querying Foundation Model APIs está habilitado por padrão. Para consultar pontos de extremidade que servem modelos personalizados ou modelos externos, você deve se inscrever na visualização pública. Preencha e envie o formulário de inscrição do AI Functions Public Preview.

Sintaxe

Para consultar um ponto de extremidade que serve um modelo externo ou um modelo básico:

ai_query(endpointName, request)

Para consultar um ponto de extremidade de serviço de modelo personalizado:

ai_query(endpointName, request, returnType)

Argumentos

  • endpointName: Um literal STRING, o nome do ponto de extremidade Databricks Model Serving existente no mesmo espaço de trabalho para invocações. O definer deve ter a permissão CAN QUERY no ponto de extremidade.
  • request: Uma expressão, a solicitação usada para invocar o ponto de extremidade.
    • Se o ponto de extremidade for um modelo externo que serve o ponto de extremidade ou o ponto de extremidade das APIs do Databricks Foundation Model, a solicitação deverá ser uma STRING.
    • Se o ponto de extremidade for um modelo personalizado que serve o ponto de extremidade, a solicitação pode ser uma única coluna ou uma expressão struct. Os nomes de campo struct devem corresponder aos nomes de recursos de entrada esperados pelo ponto de extremidade.
  • returnType: Uma expressão, o returnType esperado do ponto de extremidade. Isso é semelhante ao parâmetro schema em from_json função, que aceita uma expressão STRING ou a invocação de schema_of_json função. Necessário para consultar um ponto de extremidade de serviço de modelo personalizado.

Devoluções

A resposta analisada do ponto de extremidade.

Exemplos

Para consultar um Modelo Externo Servindo Ponto de Extremidade ou Modelo do 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;

Para consultar um ponto de extremidade de serviço de modelo personalizado:


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