Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzione
Si applica a:
controllo SQL di Databricks
Databricks Runtime
Importante
Questa funzionalità è disponibile in anteprima pubblica e conforme a HIPAA.
Durante l'anteprima:
- Il modello linguistico sottostante può gestire diverse lingue, ma questa funzione di intelligenza artificiale è ottimizzata per l'inglese.
- Consulta Funzionalità con disponibilità limitata a livello regionale per la disponibilità regionale delle Funzioni di intelligenza artificiale.
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 del modello 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 che offrono prestazioni migliori in base ai benchmark interni di Azure 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 la funzione
ai_classifyè supportata nei notebook Azure Databricks, inclusi i notebook eseguiti come attività in Un flusso di lavoro Azure Databricks. - Per migliorare le prestazioni, i carichi di lavoro di inferenza batch richiedono Databricks Runtime 15.4 ML LTS.
Sintassi
Versione 2 (scelta consigliata)
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
Versione 2 (scelta consigliata)
content: espressioneVARIANToSTRING. Accetta una:- Testo non elaborato come
STRING - Oggetto
VARIANTprodotto da un'altra funzione di intelligenza artificiale (ad esempioai_parse_documentoai_extract)
- Testo non elaborato come
labelsSTRING: espressione che definisce le etichette di classificazione. Può trattarsi di un valore letterale stringa o di qualsiasi espressione SQL che restituisce unSTRINGoggetto , inclusa una colonna di tabella Delta. 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.
labelsdeve contenere almeno 2 etichette e non più di 500 etichette. Per le tassonomie superiori a 500 etichette, vedere Classificazione con 500 etichette+ .- Etichette semplici: matrice JSON di nomi di etichetta.
options: facoltativoMAP<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 esegue 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
contentSTRING: espressione contenente il testo da classificare.labels: valoreARRAY<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: facoltativoMAP<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 esegue il fallback a"1.0".
-
Valori restituiti
Versione 2 (scelta consigliata)
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
labelsparametro
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
Versione 2 (scelta consigliata)
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
}
Etichette da tabella delta
Passare le etichette da una tabella Delta convertendole in una stringa JSON. Ad esempio, data una tabella di etichette con schema news_topics(topic STRING, description STRING), è possibile passare le etichette a ai_classify come indicato di seguito:
SELECT
ai_classify(
"Leicester City Wins Premier League Title at 5000-1 Odds",
l.labels,
map('version', '2.0')
) AS classification
FROM (
SELECT to_json(map_from_entries(collect_list(struct(topic, description)))) AS labels
FROM news_topics
) l;
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('version', '2.0','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;
Classificazione con 500 etichette+
Per classificare con più di 500 etichette, è consigliabile incorporare documenti ed etichette, recuperare le principali k etichette per documento e quindi eseguire ai_classify nel sottoinsieme più piccolo.
Per una procedura dettagliata, vedere Esercitazione: Classificare i documenti con 500 etichette e versioni successive .
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
Versione 2 (scelta consigliata)
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
labelsparametro 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
labelsmatrice deve contenere tra 2 e 20 etichette.L'input
contentdeve essere minore di 128.000 token (circa 300.000 caratteri).