Dela via


ai_classify Funktionen

Gäller för:avbockad ja Databricks SQL avbockad ja Databricks Runtime

Viktigt!

Den här funktionen är i offentlig förhandsversion och HIPAA-kompatibel.

Under förhandsversionen:

Funktionen ai_classify() klassificerar textinnehåll enligt anpassade etiketter som du anger. Du kan använda enkla etikettnamn för grundläggande klassificering eller lägga till etikettbeskrivningar och instruktioner för att förbättra noggrannheten för användningsfall som routning av kundsupport, dokumentkategorisering och innehållsanalys.

Funktionen accepterar text eller VARIANT utdata från andra AI-funktioner som ai_parse_document, vilket aktiverar komposterbara arbetsflöden.

En användargränssnittsversion som ska iterera på ai_classifyfinns i Klassificering.

Krav

Apache 2.0-licens

De underliggande modeller som kan användas just nu är licensierade under Apache 2.0-licensen, Copyright © Apache Software Foundation. Kunderna ansvarar för att säkerställa efterlevnaden av tillämpliga modelllicenser.

Databricks rekommenderar att du granskar dessa licenser för att säkerställa efterlevnad av tillämpliga villkor. Om modeller dyker upp i framtiden som presterar bättre enligt Databricks interna riktmärken kan Databricks ändra modellen (och listan över tillämpliga licenser som tillhandahålls på den här sidan).

Den modell som driver den här funktionen görs tillgänglig med hjälp av API:er för Modellserver foundation-modell. Se Tillämpliga modellvillkor för information om vilka modeller som är tillgängliga på Databricks och de licenser och principer som styr användningen av dessa modeller.

Om modeller dyker upp i framtiden som presterar bättre enligt Databricks interna riktmärken kan Databricks ändra modellerna och uppdatera dokumentationen.

  • Den här funktionen är endast tillgänglig i vissa regioner, se TILLGÄNGLIGHET för AI-funktioner.
  • Den här funktionen är inte tillgänglig på Azure Databricks KLASSISK SQL.
  • Kontrollera prissättningssidan för Databricks SQL.
  • I Databricks Runtime 15.1 och senare stöds den här funktionen i Databricks notebooks, inklusive anteckningsblock som körs som en uppgift i en Databricks-arbetsflödesprocess.
  • Batch-slutsatsdragningsarbetsbelastningar kräver Databricks Runtime 15.4 ML LTS för bättre prestanda.

Syntax

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

Version 1

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

Argument

  • content: Ett VARIANT eller STRING uttryck. Accepterar antingen:

  • labels: En STRING literal som definierar klassificeringsetiketterna. Etiketterna kan vara:

    • Enkla etiketter: En JSON-matris med etikettnamn.
      ["urgent", "not_urgent"]
      
    • Etiketter med beskrivningar: Ett JSON-objekt som mappar etikettnamn till beskrivningar. Etikettbeskrivningar måste vara 0–1 000 tecken.
      {
        "billing_error": "Payment, invoice, or refund issues",
        "product_defect": "Any malfunction, bug, or breakage",
        "account_issue": "Login failures, password resets"
      }
      

    Varje etikett måste vara 1–100 tecken. labels måste innehålla minst 2 etiketter och högst 500 etiketter.

  • options: Ett valfritt MAP<STRING, STRING> som innehåller konfigurationsalternativ:

    • version: Versionsväxling för att stödja migrering ("1.0" för v1-beteende, "2.0" för v2-beteende). Standardvärdet baseras på indatatyper, men återgår till "1.0".
    • instructions: Global beskrivning av uppgiften och domänen för att förbättra klassificeringskvaliteten. Måste vara mindre än 20 000 tecken.
    • multilabel: Ange till för att "true" returnera flera etiketter när flera kategorier gäller. Standardvärdet är "false" (klassificering med en etikett).

Version 1

  • content: Ett STRING uttryck som innehåller texten som ska klassificeras.

  • labels: En ARRAY<STRING> literal med de förväntade klassificeringsetiketterna för utdata. Måste innehålla minst 2 element och högst 20 element. Varje etikett måste innehålla 1–50 tecken.

  • options: Ett valfritt MAP<STRING, STRING> som innehåller konfigurationsalternativ:

    • version: Versionsväxling för att stödja migrering ("1.0" för v1-beteende, "2.0" för v2-beteende). Standardvärdet baseras på indatatyper, men återgår till "1.0".

Returer

Returnerar en VARIANT innehållande:

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

Fältet response innehåller:

  • Läge med en etikett (standard): En matris med ett element som innehåller den bästa matchande etiketten
  • Läge för flera etiketter (multilabel: "true"): En matris med flera etiketter när flera kategorier tillämpas
  • Etikettnamn matchar exakt de som anges i parametern labels

Returnerar NULL om content är NULL eller om innehållet inte kan klassificeras.

Version 1

Returnerar en STRING. Värdet matchar en av de strängar som anges i labels argumentet.

Returnerar NULL om content är NULL eller om innehållet inte kan klassificeras.

Exempel

Enkla etiketter – endast etikettnamn

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

Etiketter med beskrivningar

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

Använda globala instruktioner

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

Klassificering med flera etiketter

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

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

Batch-klassificering

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

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

Begränsningar

Version 2-begränsningar:

  • Den här funktionen är inte tillgänglig på Azure Databricks KLASSISK SQL.

  • Den här funktionen kan inte användas med Vyer.

  • Etikettnamnen måste innehålla mellan 1 och 100 tecken vardera.

  • Parametern labels måste innehålla mellan 2 och 500 unika etiketter.

  • Etikettbeskrivningar måste vara mellan 0 och 1 000 tecken vardera.

  • Den maximala totala kontextstorleken är 128 000 token.

Version 1

Version 1-begränsningar:

  • Den här funktionen är inte tillgänglig på Azure Databricks KLASSISK SQL.

  • Den här funktionen kan inte användas med Vyer.

  • Etikettnamnen måste vara mellan 1 och 50 tecken vardera.

  • Matrisen labels måste innehålla mellan 2 och 20 etiketter.

  • Indata content måste vara mindre än 128 000 token (cirka 300 000 tecken).