ai_classify fungsi

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

Penting

Fungsionalitas ini sesuai dengan Pratinjau Umum dan HIPAA.

Selama pratinjau:

  • Model bahasa yang mendasar dapat menangani beberapa bahasa, tetapi Fungsi AI ini disetel untuk bahasa Inggris.
  • Lihat Fitur dengan ketersediaan regional terbatas untuk mengetahui ketersediaan regional dari Fungsi AI.

Fungsi ini ai_classify() mengklasifikasikan konten teks sesuai dengan label kustom yang Anda sediakan. Anda dapat menggunakan nama label sederhana untuk klasifikasi dasar, atau menambahkan deskripsi label dan instruksi untuk meningkatkan akurasi untuk kasus penggunaan seperti perutean dukungan pelanggan, kategorisasi dokumen, dan analisis konten.

Fungsi menerima teks atau VARIANT output dari fungsi AI lainnya seperti ai_parse_document, mengaktifkan alur kerja yang dapat disusupi.

Untuk versi UI yang akan diulang pada ai_classify, lihat Klasifikasi.

Persyaratan

Lisensi Apache 2.0

Model dasar yang mungkin digunakan saat ini dilisensikan di bawah Lisensi Apache 2.0, Hak Cipta © Apache Software Foundation. Pelanggan bertanggung jawab untuk memastikan kepatuhan terhadap lisensi model yang berlaku.

Databricks merekomendasikan untuk meninjau lisensi ini untuk memastikan kepatuhan terhadap persyaratan yang berlaku. Jika model muncul di masa depan yang berkinerja lebih baik sesuai dengan tolok ukur internal Databricks, Databricks mungkin mengubah model (dan daftar lisensi yang berlaku yang disediakan di halaman ini).

Model yang mendukung fungsi ini tersedia menggunakan MODEL Model Serving Foundation API. Lihat Ketentuan model yang berlaku untuk informasi tentang model mana yang tersedia di Databricks serta lisensi dan kebijakan yang mengatur penggunaan model tersebut.

Jika model muncul di masa depan yang berkinerja lebih baik sesuai dengan tolok ukur internal Databricks, Databricks dapat mengubah model dan memperbarui dokumentasi.

  • Fungsi ini hanya tersedia di beberapa wilayah, lihat Ketersediaan fungsi AI.
  • Fungsi ini tidak tersedia di Azure Databricks SQL Classic.
  • Periksa halaman harga Databricks SQL.
  • Di Databricks Runtime 15.1 ke atas, fungsi ini didukung di notebook Databricks, termasuk notebook yang dijalankan sebagai tugas dalam alur kerja Databricks.
  • Beban kerja inferensi batch memerlukan Databricks Runtime 15.4 ML LTS untuk meningkatkan performa.

Sintaks

ai_classify(
    content VARIANT | STRING,
    labels STRING,
    [options MAP<STRING, STRING>]
) RETURNS VARIANT

Versi 1

ai_classify(
    content STRING,
    labels ARRAY<STRING>,
    [options MAP<STRING, STRING>]
) RETURNS STRING

Argumen

  • content: Ekspresi VARIANT atau STRING. Menerima:

  • labels: Harfiah STRING yang mendefinisikan label klasifikasi. Label dapat berupa:

    • Label sederhana: Array nama label JSON.
      ["urgent", "not_urgent"]
      
    • Label dengan deskripsi: Nama label pemetaan objek JSON ke deskripsi. Deskripsi label harus 0-1000 karakter.
      {
        "billing_error": "Payment, invoice, or refund issues",
        "product_defect": "Any malfunction, bug, or breakage",
        "account_issue": "Login failures, password resets"
      }
      

    Setiap label harus 1-100 karakter. labels harus berisi setidaknya 2 label, dan tidak lebih dari 500 label.

  • options: Opsi MAP<STRING, STRING> konfigurasi opsional yang berisi:

    • version: Peralihan versi untuk mendukung migrasi ("1.0" untuk perilaku v1, "2.0" untuk perilaku v2). Default didasarkan pada jenis input, tetapi akan kembali ke "1.0".
    • instructions: Deskripsi global tentang tugas dan domain untuk meningkatkan kualitas klasifikasi. Harus kurang dari 20.000 karakter.
    • multilabel: Atur ke "true" untuk mengembalikan beberapa label saat beberapa kategori berlaku. Defaultnya adalah "false" (klasifikasi label tunggal).

Versi 1

  • content: Ekspresi STRING yang berisi teks yang akan diklasifikasikan.

  • labels: Literal ARRAY<STRING> dengan label klasifikasi output yang diharapkan. Harus berisi setidaknya 2 elemen, dan tidak lebih dari 20 elemen. Setiap label harus 1-50 karakter.

  • options: Opsi MAP<STRING, STRING> konfigurasi opsional yang berisi:

    • version: Peralihan versi untuk mendukung migrasi ("1.0" untuk perilaku v1, "2.0" untuk perilaku v2). Default didasarkan pada jenis input, tetapi akan kembali ke "1.0".

Pengembalian

Mengembalikan yang VARIANT berisi:

{
  "response": ["label_name"], // Array with single label (or multiple if multilabel=true)
  "error_message": null // null on success, or error message on failure
}

Bidang response berisi:

  • Mode label tunggal (default): Array dengan satu elemen yang berisi label pencocokan terbaik
  • Mode multi-label (multilabel: "true"): Array dengan beberapa label saat beberapa kategori berlaku
  • Nama label sama persis dengan yang disediakan dalam labels parameter

Mengembalikan jika NULL adalah content atau jika konten tidak dapat diklasifikasikanNULL.

Versi 1

Mengembalikan STRING. Nilai cocok dengan salah satu string yang disediakan dalam labels argumen.

Mengembalikan jika NULL adalah content atau jika konten tidak dapat diklasifikasikanNULL.

Contoh

Label sederhana - nama label saja

> SELECT ai_classify(
    'My password is leaked.',
    '["urgent", "not_urgent"]'
  );
 {
   "response": ["urgent"],
   "error": null
 }

Label dengan deskripsi

> SELECT ai_classify(
    'Customer cannot complete checkout due to payment processing error.',
    '{
      "billing_error": "Payment, invoice, or refund issues",
      "product_defect": "Any malfunction, bug, or breakage",
      "account_issue": "Login failures, password resets",
      "feature_request": "Customer suggestions for improvements"
    }'
  );
 {
   "response": ["billing_error"],
   "error": null
 }

Menggunakan instruksi global

> SELECT ai_classify(
    'User reports app crashes on startup after update.',
    '["critical", "high", "medium", "low"]',
    MAP('instructions', 'Classify bug severity based on user impact and frequency.')
  );
 {
   "response": ["critical"],
   "error": null
 }

Klasifikasi multi-label

> SELECT ai_classify(
    'Customer wants refund and reports product arrived broken.',
    '{
      "billing_issue": "Payment or refund requests",
      "product_defect": "Damaged or malfunctioning items",
      "shipping_issue": "Delivery problems"
    }',
    MAP('multilabel', 'true')
  );
 {
   "response": ["billing_issue", "product_defect"],
   "error": null
 }

Komposabilitas dengan ai_parse_document

> WITH parsed_docs AS (
    SELECT
      path,
      ai_parse_document(
        content,
        MAP('version', '2.0')
      ) AS parsed_content
    FROM READ_FILES('/Volumes/support/tickets/', format => 'binaryFile')
  )
  SELECT
    path,
    ai_classify(
      parsed_content,
      '["billing_error", "product_defect", "account_issue", "feature_request"]',
      MAP('instructions', 'Customer support ticket classification.')
    ) AS ticket_category
  FROM parsed_docs;

Klasifikasi batch

> SELECT
    description,
    ai_classify(
      description,
      '["clothing", "shoes", "accessories", "furniture", "electronics"]'
    ) AS category
  FROM products
  LIMIT 10;

Versi 1

> SELECT ai_classify("My password is leaked.", ARRAY("urgent", "not urgent"));
  urgent

> SELECT
    description,
    ai_classify(description, ARRAY('clothing', 'shoes', 'accessories', 'furniture')) AS category
  FROM
    products
  LIMIT 10;

Keterbatasan

Batasan versi 2:

  • Fungsi ini tidak tersedia di Azure Databricks SQL Classic.

  • Fungsi ini tidak dapat digunakan dengan Tampilan.

  • Nama label harus masing-masing 1–100 karakter.

  • Parameter labels harus berisi antara 2 dan 500 label unik.

  • Deskripsi label harus masing-masing 0–1.000 karakter.

  • Ukuran konteks total maksimum adalah 128.000 token.

Versi 1

Batasan versi 1:

  • Fungsi ini tidak tersedia di Azure Databricks SQL Classic.

  • Fungsi ini tidak dapat digunakan dengan Tampilan.

  • Nama label masing-masing harus 1–50 karakter.

  • Array labels harus berisi antara 2 dan 20 label.

  • Input content harus kurang dari 128.000 token (sekitar 300.000 karakter).