ai_classify işlevi

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Önemli

Bu işlev Genel Önizleme aşamasındadır ve HIPAA ile uyumludur.

Önizleme sırasında:

işlevi, ai_classify() metin içeriğini sağladığınız özel etiketlere göre sınıflandırır. Temel sınıflandırma için basit etiket adları kullanabilir veya müşteri desteği yönlendirmesi, belge kategorilere ayırma ve içerik analizi gibi kullanım örneklerinin doğruluğunu geliştirmek için etiket açıklamaları ve yönergeleri ekleyebilirsiniz.

İşlev, gibi VARIANTdiğer yapay zeka işlevlerinden metin veya ai_parse_document çıktı kabul ederek birleştirilebilir iş akışlarını etkinleştirir.

üzerinde ai_classifyyineleyici bir kullanıcı arabirimi sürümü için bkz . Sınıflandırma.

Gereksinimler

Apache 2.0 lisansı

Şu anda kullanılabilecek temel modeller Apache 2.0 Lisansı, Telif Hakkı © Apache Software Foundation kapsamında lisanslandırılır. Müşteriler, geçerli model lisanslarıyla uyumluluğu sağlamakla sorumludur.

Databricks, geçerli koşullarla uyumluluğu sağlamak için bu lisansların gözden geçirilmesini önerir. Gelecekte Databricks'in iç karşılaştırmalarına göre daha iyi performans gösteren modeller ortaya çıkarsa Databricks modeli (ve bu sayfada sağlanan geçerli lisansların listesini) değiştirebilir.

Bu işlevi güçlendiren model, Model Sunma Temeli Model API'leri kullanılarak kullanılabilir hale getirilir. Databricks'te hangi modellerin kullanılabildiği ve bu modellerin kullanımını yöneten lisanslar ve ilkeler hakkında bilgi için bkz. Geçerli model koşulları .

Gelecekte Databricks'in iç karşılaştırmalarına göre daha iyi performans gösteren modeller ortaya çıkarsa Databricks modelleri değiştirebilir ve belgeleri güncelleştirebilir.

  • Bu işlev yalnızca bazı bölgelerde kullanılabilir. Bkz. Yapay zeka işlevi kullanılabilirliği.
  • Bu işlev Azure Databricks SQL Classic'te kullanılamaz.
  • Databricks SQL fiyatlandırma sayfasını gözden geçirin.
  • Databricks Runtime 15.1 ve üzerinde bu işlev Databricks iş akışında görev olarak çalıştırılacak not defterleri de dahil olmak üzere Databricks not defterlerinde desteklenir.
  • Toplu çıkarım iş yükleri, gelişmiş performans için Databricks Runtime 15.4 ML LTS gerektirir.

Söz dizimi

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

Sürüm 1

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

Argümanlar

  • content: VARIANT veya STRING ifadesi. Kabul eder:

  • labels STRING: Sınıflandırma etiketlerini tanımlayan değişmez değer. Etiketler şu şekilde olabilir:

    • Basit etiketler: Etiket adlarının JSON dizisi.
      ["urgent", "not_urgent"]
      
    • Açıklamalı etiketler: Etiket adlarını açıklamalarla eşleştiren bir JSON nesnesi. Etiket açıklamaları 0-1000 karakter uzunluğunda olmalıdır.
      {
        "billing_error": "Payment, invoice, or refund issues",
        "product_defect": "Any malfunction, bug, or breakage",
        "account_issue": "Login failures, password resets"
      }
      

    Her etiket 1-100 karakter uzunluğunda olmalıdır. labels en az 2 etiket içermeli ve 500'den fazla etiket içermemelidir.

  • options: Yapılandırma seçeneklerini içeren isteğe bağlı MAP<STRING, STRING> bir seçenek:

    • version: Geçişi desteklemek için sürüm anahtarı ("1.0" v1 davranışı için, "2.0" v2 davranışı için). Varsayılan, giriş türlerini temel alır, ancak öğesine geri "1.0"döner.
    • instructions: Sınıflandırma kalitesini artırmak için görevin ve etki alanının genel açıklaması. 20.000 karakterden az olmalıdır.
    • multilabel: Birden çok kategori uygulandığında birden çok etiket döndürmek için olarak ayarlayın "true" . Varsayılan değerdir "false" (tek etiketli sınıflandırma).

Sürüm 1

  • content STRING: Sınıflandırılacak metni içeren ifade.

  • labels ARRAY<STRING>: Beklenen çıkış sınıflandırma etiketlerine sahip değişmez değer. En az 2 öğe ve en fazla 20 öğe içermelidir. Her etiket 1-50 karakter uzunluğunda olmalıdır.

  • options: Yapılandırma seçeneklerini içeren isteğe bağlı MAP<STRING, STRING> bir seçenek:

    • version: Geçişi desteklemek için sürüm anahtarı ("1.0" v1 davranışı için, "2.0" v2 davranışı için). Varsayılan, giriş türlerini temel alır, ancak öğesine geri "1.0"döner.

İadeler

Şunu içeren bir VARIANT döndürür:

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

Alanı response aşağıdakileri içerir:

  • Tek etiket modu (varsayılan): En iyi eşleşen etiketi içeren bir öğeye sahip dizi
  • Çoklu etiket modu (multilabel: "true"): Birden çok kategori uygulandığında birden çok etiketi olan bir dizi
  • Etiket adları, parametresinde labels sağlanan adlarla tam olarak eşleşer

ise NULLcontent veya içerik sınıflandırılamıyorsa döndürürNULL.

Sürüm 1

bir STRINGdöndürür. Değer, labels argümanında sağlanan dizelerden biriyle eşleşir.

ise NULLcontent veya içerik sınıflandırılamıyorsa döndürürNULL.

Örnekler

Basit etiketler - yalnızca etiket adları

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

Açıklamalı etiketler

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

Genel yönergeleri kullanma

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

Çok etiketli sınıflandırma

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

ile birlikte kullanılabilirlik 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;

Toplu sınıflandırma

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

Sürüm 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;

Sınırlamalar

Sürüm 2 sınırlamaları:

  • Bu işlev Azure Databricks SQL Classic'te kullanılamaz.

  • Bu işlev Görünümler ile kullanılamaz.

  • Etiket adları her birinde 1-100 karakter olmalıdır.

  • labels parametresi 2 ile 500 arasında benzersiz etiket içermelidir.

  • Etiket açıklamalarının her birinde 0-1.000 karakter olmalıdır.

  • Toplam bağlam boyutu üst sınırı 128.000 belirteçtir.

Sürüm 1

Sürüm 1 sınırlamaları:

  • Bu işlev Azure Databricks SQL Classic'te kullanılamaz.

  • Bu işlev Görünümler ile kullanılamaz.

  • Etiket adları her birinde 1-50 karakter olmalıdır.

  • Dizi labels 2 ile 20 arasında etiket içermelidir.

  • Giriş content 128.000'den az belirteç (yaklaşık 300.000 karakter) olmalıdır.