Condividi tramite


Funzione ai_classify

Si applica a:check contrassegnato come sì controllo SQL di Databricks contrassegnato come sì Databricks Runtime

Importante

Questa funzionalità è disponibile in anteprima pubblica e conforme a HIPAA.

Durante l'anteprima:

La ai_classify() funzione classifica il contenuto del testo in base alle etichette personalizzate fornite. È possibile usare nomi di etichetta semplici per la classificazione di base o aggiungere descrizioni e istruzioni per migliorare l'accuratezza per i casi d'uso come il routing del supporto clienti, la categorizzazione dei documenti e l'analisi del contenuto.

La funzione accetta testo o VARIANT output da altre funzioni di intelligenza artificiale, ad ai_parse_documentesempio , consentendo flussi di lavoro componibili.

Per una versione dell'interfaccia utente in cui eseguire l'iterazione in ai_classify, vedere Classificazione.

Requisiti

Licenza di Apache 2.0

I modelli sottostanti che potrebbero essere usati in questo momento sono concessi in licenza con la licenza Apache 2.0, Copyright © The Apache Software Foundation. I clienti sono tenuti a garantire la conformità con i modelli di licenza applicabili.

Databricks consiglia di esaminare queste licenze per garantire la conformità con le condizioni applicabili. Se i modelli emergono in futuro che offrono prestazioni migliori in base ai benchmark interni di Databricks, Databricks potrebbe modificare il modello (e l'elenco delle licenze applicabili fornite in questa pagina).

Il modello che alimenta questa funzione viene reso disponibile tramite le API Model Serving Foundation Model. Vedere Condizioni per sviluppatori di modelli applicabili per informazioni sui modelli disponibili in Databricks e sulle licenze e i criteri che regolano l'uso di tali modelli.

Se i modelli emergono in futuro che offrono prestazioni migliori in base ai benchmark interni di Databricks, Databricks potrebbe modificare i modelli e aggiornare la documentazione.

  • Questa funzione è disponibile solo in alcune aree, vedere Disponibilità delle funzioni di intelligenza artificiale.
  • Questa funzione non è disponibile in Azure Databricks SQL classico.
  • Controllare la pagina dei prezzi di Databricks SQL.
  • In Databricks Runtime 15.1 e versioni successive questa funzione è supportata nei notebook di Databricks, inclusi i notebook eseguiti come attività in un flusso di lavoro di Databricks.
  • Per migliorare le prestazioni, i carichi di lavoro di inferenza batch richiedono Databricks Runtime 15.4 ML LTS.

Sintassi

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

Versione 1

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

Argomenti

  • content: espressione VARIANT o STRING . Accetta una:

    • Testo non elaborato come STRING
    • Oggetto VARIANT prodotto da un'altra funzione di intelligenza artificiale (ad esempio ai_parse_document o ai_extract)
  • labels: valore STRING letterale che definisce le etichette di classificazione. Le etichette possono essere:

    • Etichette semplici: matrice JSON di nomi di etichetta.
      ["urgent", "not_urgent"]
      
    • Etichette con descrizioni: un oggetto JSON che esegue il mapping dei nomi delle etichette alle descrizioni. Le descrizioni delle etichette devono essere di 0-1000 caratteri.
      {
        "billing_error": "Payment, invoice, or refund issues",
        "product_defect": "Any malfunction, bug, or breakage",
        "account_issue": "Login failures, password resets"
      }
      

    Ogni etichetta deve essere di 1-100 caratteri. labels deve contenere almeno 2 etichette e non più di 500 etichette.

  • options: facoltativo MAP<STRING, STRING> contenente le opzioni di configurazione:

    • version: opzione versione per supportare la migrazione ("1.0" per il comportamento v1, "2.0" per il comportamento v2). Il valore predefinito è basato sui tipi di input, ma eseguirà il fallback a "1.0".
    • instructions: descrizione globale dell'attività e del dominio per migliorare la qualità della classificazione. Deve essere minore di 20.000 caratteri.
    • multilabel: impostare su per "true" restituire più etichette quando si applicano più categorie. Il valore predefinito è "false" (classificazione a etichetta singola).

Versione 1

  • content STRING: espressione contenente il testo da classificare.

  • labels: valore ARRAY<STRING> letterale con le etichette di classificazione di output previste. Deve contenere almeno 2 elementi e non più di 20 elementi. Ogni etichetta deve essere di 1-50 caratteri.

  • options: facoltativo MAP<STRING, STRING> contenente le opzioni di configurazione:

    • version: opzione versione per supportare la migrazione ("1.0" per il comportamento v1, "2.0" per il comportamento v2). Il valore predefinito è basato sui tipi di input, ma eseguirà il fallback a "1.0".

Valori restituiti

Restituisce un oggetto VARIANT contenente:

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

Il response campo contiene:

  • Modalità a etichetta singola (impostazione predefinita): matrice con un elemento contenente l'etichetta corrispondente migliore
  • Modalità multi-etichetta (multilabel: "true"): matrice con più etichette quando si applicano più categorie
  • I nomi delle etichette corrispondono esattamente a quelli specificati nel labels parametro

Restituisce NULL se content è NULL o se il contenuto non può essere classificato.

Versione 1

Restituisce un oggetto STRING. Il valore corrisponde a una delle stringhe fornite nell'argomento labels.

Restituisce NULL se content è NULL o se il contenuto non può essere classificato.

Esempi

Etichette semplici - solo nomi di etichette

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

Etichette con descrizioni

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

Uso delle istruzioni globali

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

Classificazione con più etichette

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

Componibilità con 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;

Classificazione batch

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

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

Limitazioni

Limitazioni della versione 2:

  • Questa funzione non è disponibile in Azure Databricks SQL classico.

  • Questa funzione non può essere utilizzata con Views.

  • I nomi delle etichette devono essere di 1-100 caratteri ciascuno.

  • Il labels parametro deve contenere tra 2 e 500 etichette univoche.

  • Le descrizioni delle etichette devono essere di 0-1.000 caratteri ciascuno.

  • La dimensione totale massima del contesto è 128.000 token.

Versione 1

Limitazioni della versione 1:

  • Questa funzione non è disponibile in Azure Databricks SQL classico.

  • Questa funzione non può essere utilizzata con Views.

  • I nomi delle etichette devono essere di 1-50 caratteri ciascuno.

  • La labels matrice deve contenere tra 2 e 20 etichette.

  • L'input content deve essere minore di 128.000 token (circa 300.000 caratteri).