Udostępnij za pośrednictwem


Funkcja ai_classify

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Ważne

Ta funkcja jest w publicznej wersji zapoznawczej i zgodna ze standardem HIPAA.

Podczas korzystania z wersji zapoznawczej:

  • Podstawowy model językowy może obsługiwać kilka języków, ale ta funkcja sztucznej inteligencji jest dostrojona do języka angielskiego.
  • Zobacz Funkcje z ograniczoną dostępnością regionalną w kontekście dostępności AI Functions w regionach.

Funkcja ai_classify() klasyfikuje zawartość tekstową zgodnie z określonymi etykietami niestandardowymi. Możesz użyć prostych nazw etykiet do podstawowej klasyfikacji lub dodać opisy etykiet i instrukcje, aby zwiększyć dokładność przypadków użycia, takich jak routing obsługi klienta, kategoryzacja dokumentów i analiza zawartości.

Funkcja akceptuje tekst lub VARIANT dane wyjściowe z innych funkcji sztucznej inteligencji, takich jak ai_parse_document, umożliwiając komponowalne przepływy pracy.

Aby uzyskać wersję interfejsu użytkownika do iterowania w systemie ai_classify, zobacz Klasyfikacja.

Wymagania

Licencja apache 2.0

Podstawowe modele, które mogą być używane w tej chwili, są licencjonowane w ramach licencji apache 2.0, Copyright © The Apache Software Foundation. Klienci są odpowiedzialni za zapewnienie zgodności z odpowiednimi licencjami modelu.

Usługa Databricks zaleca przejrzenie tych licencji w celu zapewnienia zgodności z dowolnymi odpowiednimi warunkami. Jeśli modele pojawią się w przyszłości, które działają lepiej zgodnie z wewnętrznymi testami porównawczymi usługi Databricks, usługa Databricks może zmienić model (oraz listę odpowiednich licencji dostępnych na tej stronie).

Model obsługujący tę funkcję jest udostępniany przy użyciu interfejsów API modelu obsługującego model. Aby uzyskać informacje na temat modeli dostępnych w usłudze Databricks oraz licencji i zasad, które regulują korzystanie z tych modeli, zobacz Odpowiednie terminy dla deweloperów modeli.

Jeśli modele pojawią się w przyszłości, które działają lepiej zgodnie z wewnętrznymi testami porównawczymi usługi Databricks, usługa Databricks może zmienić modele i zaktualizować dokumentację.

  • Ta funkcja jest dostępna tylko w niektórych regionach. Zobacz Dostępność funkcji sztucznej inteligencji.
  • Ta funkcja nie jest dostępna w usłudze Azure Databricks SQL Classic.
  • Sprawdź stronę cennika usługi Databricks SQL.
  • W środowisku Databricks Runtime 15.1 lub nowszym ta funkcja jest obsługiwana w notesach usługi Databricks, w tym notesach uruchamianych jako zadanie w przepływie pracy usługi Databricks.
  • Obciążenia związane z wnioskowaniem wsadowym wymagają korzystania ze środowiska Databricks Runtime 15.4 ML LTS w celu poprawy wydajności.

Składnia

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

Wersja 1

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

Argumenty

  • content: wyrażenie VARIANT lub STRING. Akceptuje albo:

    • Nieprzetworzonego tekstu jako STRING
    • Utworzona VARIANT przez inną funkcję sztucznej inteligencji (np ai_parse_document . lub ai_extract)
  • labels STRING: literał definiujący etykiety klasyfikacji. Etykiety mogą być następujące:

    • Proste etykiety: tablica nazw etykiet JSON.
      ["urgent", "not_urgent"]
      
    • Etykiety z opisami: nazwy etykiet mapowania obiektów JSON na opisy. Opisy etykiet muszą zawierać od 0 do 1000 znaków.
      {
        "billing_error": "Payment, invoice, or refund issues",
        "product_defect": "Any malfunction, bug, or breakage",
        "account_issue": "Login failures, password resets"
      }
      

    Każda etykieta musi zawierać od 1 do 100 znaków. labels musi zawierać co najmniej 2 etykiety i nie więcej niż 500 etykiet.

  • options: opcjonalny MAP<STRING, STRING> zawierający opcje konfiguracji:

    • version: Przełączenie wersji na obsługę migracji ("1.0" w przypadku zachowania w wersji 1 w "2.0" przypadku zachowania w wersji 2). Wartość domyślna jest oparta na typach wejściowych, ale powróci do "1.0"wartości .
    • instructions: globalny opis zadania i domeny w celu poprawy jakości klasyfikacji. Musi zawierać mniej niż 20 000 znaków.
    • multilabel: ustaw wartość , aby "true" zwracać wiele etykiet, gdy stosuje się wiele kategorii. Wartość domyślna to "false" (klasyfikacja z pojedynczą etykietą).

Wersja 1

  • content STRING: Wyrażenie zawierające tekst do sklasyfikowania.

  • labels ARRAY<STRING>: literał z oczekiwanymi etykietami klasyfikacji danych wyjściowych. Musi zawierać co najmniej 2 elementy i nie więcej niż 20 elementów. Każda etykieta musi zawierać od 1 do 50 znaków.

  • options: opcjonalny MAP<STRING, STRING> zawierający opcje konfiguracji:

    • version: Przełączenie wersji na obsługę migracji ("1.0" w przypadku zachowania w wersji 1 w "2.0" przypadku zachowania w wersji 2). Wartość domyślna jest oparta na typach wejściowych, ale powróci do "1.0"wartości .

Zwraca

Zwraca element VARIANT zawierający:

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

Pole response zawiera:

  • Tryb pojedynczej etykiety (ustawienie domyślne): tablica z jednym elementem zawierającym najlepszą etykietę dopasowania
  • Tryb wielu etykiet (multilabel: "true"): tablica z wieloma etykietami, gdy stosuje się wiele kategorii
  • Nazwy etykiet dokładnie pasują do podanych w parametrze labels

Zwraca wartość NULL , jeśli content jest NULL lub jeśli nie można sklasyfikować zawartości.

Wersja 1

Zwraca wartość STRING. Wartość odpowiada jednemu z ciągów podanych w argumencie labels .

Zwraca wartość NULL , jeśli content jest NULL lub jeśli nie można sklasyfikować zawartości.

Przykłady

Proste etykiety — tylko nazwy etykiet

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

Etykiety z opisami

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

Korzystanie z instrukcji globalnych

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

Klasyfikacja wielu etykiet

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

Możliwość komponowania za pomocą polecenia 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;

Klasyfikacja wsadowa

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

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

Ograniczenia

Ograniczenia wersji 2:

  • Ta funkcja nie jest dostępna w usłudze Azure Databricks SQL Classic.

  • Tej funkcji nie można używać z widokami.

  • Nazwy etykiet muszą zawierać od 1 do 100 znaków.

  • Parametr labels musi zawierać od 2 do 500 unikatowych etykiet.

  • Opisy etykiet muszą zawierać od 0 do 1000 znaków.

  • Maksymalny całkowity rozmiar kontekstu to 128 000 tokenów.

Wersja 1

Ograniczenia wersji 1:

  • Ta funkcja nie jest dostępna w usłudze Azure Databricks SQL Classic.

  • Tej funkcji nie można używać z widokami.

  • Nazwy etykiet muszą zawierać od 1 do 50 znaków.

  • Tablica labels musi zawierać od 2 do 20 etykiet.

  • Dane content wejściowe muszą być mniejsze niż 128 000 tokenów (około 300 000 znaków).