Bagikan melalui


ai_query fungsi

Berlaku untuk: centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Penting

Fitur ini ada di Pratinjau Publik.

Memanggil titik akhir dan penguraian Azure Databricks Model Serving yang ada dan mengurai dan mengembalikan responsnya.

Persyaratan

  • Fungsi ini tidak tersedia di Azure Databricks SQL Classic.
  • API Model Querying Foundation diaktifkan secara default. Untuk mengkueri titik akhir yang melayani model kustom atau model eksternal, aktifkan AI_Query untuk Model Kustom dan Model Eksternal di antarmuka pengguna Pratinjau Databricks.
  • Saluran gudang DLT saat ini tidak menggunakan versi Databricks Runtime terbaru yang mendukung ai_query(). Atur pipelines.channel dalam properti tabel sebagai 'preview' untuk menggunakan ai_query(). Lihat Contoh untuk kueri sampel.

Catatan

  • Di Databricks Runtime 14.2 ke atas, fungsi ini didukung di notebook Databricks, termasuk notebook yang dijalankan sebagai tugas dalam alur kerja Databricks.
  • Di Databricks Runtime 14.1 ke bawah, fungsi ini tidak didukung di notebook Databricks.

Sintaks

Untuk mengkueri titik akhir yang melayani model eksternal atau model fondasi:

ai_query(endpointName, request)

Untuk mengkueri model kustom yang melayani titik akhir:

ai_query(endpointName, request, returnType)

Argumen

  • endpointName: String literal, nama titik akhir Penyajian Model AI Mosaik yang ada di ruang kerja yang sama untuk pemanggilan. Pendefinisi harus memiliki izin CAN QUERY pada titik akhir.
  • request: Ekspresi, permintaan yang digunakan untuk memanggil titik akhir.
    • Jika titik akhir adalah model eksternal yang melayani titik akhir atau titik akhir API Model Databricks Foundation, permintaan harus berupa STRING.
    • Jika titik akhir adalah model kustom yang melayani titik akhir, permintaan dapat berupa kolom tunggal atau ekspresi struct. Nama bidang struct harus cocok dengan nama fitur input yang diharapkan oleh titik akhir.
  • returnType: Ekspresi, returnType yang diharapkan dari titik akhir. Ini mirip dengan parameter skema dalam fungsi from_json, yang menerima ekspresi STRING atau pemanggilan fungsi schema_of_json. Diperlukan untuk mengkueri Titik Akhir Penyajian Model kustom.

Mengembalikan

Respons yang diurai dari titik akhir.

Contoh

Untuk mengkueri model eksternal yang melayani titik akhir:

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

Untuk mengkueri model fondasi yang didukung oleh API Model Databricks Foundation:

> SELECT *,
  ai_query(
    'databricks-meta-llama-3-1-70b-instruct',
    "Can you tell me the name of the US state that serves the provided ZIP code? zip code: " || pickup_zip
    )
  FROM samples.nyctaxi.trips
  LIMIT 10

Secara opsional, Anda juga dapat membungkus panggilan ke ai_query() dalam UDF untuk panggilan fungsi sebagai berikut:

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

Untuk mengkueri model kustom yang melayani titik akhir:


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

Contoh kueri untuk mengatur saluran DLT untuk dipratinjau:

> create or replace materialized view
    ai_query_mv
    TBLPROPERTIES('pipelines.channel' = 'PREVIEW') AS
  SELECT
    ai_query("databricks-dbrx-instruct", text) as response
  FROM
    messages