Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Função
Aplica-se a:
Databricks SQL
Databricks Runtime
Importante
Essa funcionalidade está em conformidade com a Versão Prévia Pública e com HIPAA.
Durante a visualização:
- O modelo de idioma subjacente pode lidar com vários idiomas, mas essa Função de IA está ajustada para inglês.
- Consulte recursos com disponibilidade regional limitada para a disponibilidade de região das Funções de IA.
A ai_classify() função classifica o conteúdo do texto de acordo com os rótulos personalizados fornecidos. Você pode usar nomes de rótulo simples para classificação básica ou adicionar descrições de rótulo e instruções para melhorar a precisão para casos de uso, como roteamento de suporte ao cliente, categorização de documentos e análise de conteúdo.
A função aceita texto ou VARIANT saída de outras funções de IA, como ai_parse_documenthabilitar fluxos de trabalho composáveis.
Para obter uma versão da interface do usuário em ai_classifyque iterar, consulte Classificação.
Requisitos
Licença do Apache 2.0
Os modelos subjacentes que podem ser usados neste momento são licenciados sob a Licença do Apache 2.0, direitos autorais © do Apache Software Foundation. Os clientes são responsáveis por garantir a conformidade com as licenças de modelo aplicáveis.
O Databricks recomenda revisar essas licenças para garantir a conformidade com quaisquer termos aplicáveis. Se surgirem modelos no futuro com melhor desempenho de acordo com os parâmetros de comparação internos do Databricks, o Databricks poderá alterar o modelo (e a lista de licenças aplicáveis fornecidas nesta página).
O modelo que alimenta essa função é disponibilizado usando AS APIs de modelo do Model Serving Foundation. Consulte os termos de modelo aplicáveis para obter informações sobre quais modelos estão disponíveis no Databricks e as licenças e políticas que regem o uso desses modelos.
Se surgirem modelos com melhor desempenho de acordo com os parâmetros de comparação internos da Azure Databricks, o Databricks poderá alterar os modelos e atualizar a documentação.
- Essa função só está disponível em algumas regiões, consulte a disponibilidade da função de IA.
- Essa função não está disponível no Azure Databricks SQL Classic.
- Confira a página de preços do SQL do Databricks.
- No Databricks Runtime 15.1 e posteriores, a função
ai_classifytem suporte em blocos de anotações Azure Databricks, incluindo notebooks executados como uma tarefa em Um fluxo de trabalho Azure Databricks. - As cargas de trabalho de inferência em lote exigem o Databricks Runtime 15.4 ML LTS para otimizar o desempenho.
Sintaxe
Versão 2 (recomendado)
ai_classify(
content VARIANT | STRING,
labels STRING,
[options MAP<STRING, STRING>]
) RETURNS VARIANT
Versão 1
ai_classify(
content STRING,
labels ARRAY<STRING>,
[options MAP<STRING, STRING>]
) RETURNS STRING
Argumentos
Versão 2 (recomendado)
content: uma expressãoVARIANTouSTRING. Aceita um:- Texto bruto como um
STRING - Uma
VARIANTproduzida por outra função de IA (comoai_parse_documentouai_extract)
- Texto bruto como um
labels: umaSTRINGexpressão que define os rótulos de classificação. Isso pode ser um literal de cadeia de caracteres ou qualquer expressão SQL que seja avaliada como umaSTRING, incluindo uma coluna de tabela Delta. Os rótulos podem ser:- Rótulos simples: uma matriz JSON de nomes de rótulo.
["urgent", "not_urgent"] - Rótulos com descrições: um rótulo de mapeamento de objeto JSON para descrições. As descrições de rótulo devem ter de 0 a 1.000 caracteres.
{ "billing_error": "Payment, invoice, or refund issues", "product_defect": "Any malfunction, bug, or breakage", "account_issue": "Login failures, password resets" }
Cada rótulo deve ter de 1 a 100 caracteres.
labelsdeve conter pelo menos dois rótulos e no máximo 500 rótulos. Para taxonomias maiores que 500 rótulos, consulte a Classificação com mais de 500 rótulos.- Rótulos simples: uma matriz JSON de nomes de rótulo.
options: um opcionalMAP<STRING, STRING>que contém opções de configuração:-
version: opção de versão para dar suporte à migração ("1.0"para comportamento v1,"2.0"para comportamento v2). O padrão é baseado em tipos de entrada, mas volta para"1.0". -
instructions: descrição global da tarefa e do domínio para melhorar a qualidade da classificação. Deve ter menos de 20.000 caracteres. -
multilabel: defina para"true"retornar vários rótulos quando várias categorias se aplicarem. O padrão é"false"(classificação de rótulo único).
-
Versão 1
content: umaSTRINGexpressão que contém o texto a ser classificado.labels: umARRAY<STRING>literal com os rótulos de classificação de saída esperados. Deve conter pelo menos 2 elementos e não mais do que 20 elementos. Cada rótulo deve ter de 1 a 50 caracteres.options: um opcionalMAP<STRING, STRING>que contém opções de configuração:-
version: opção de versão para dar suporte à migração ("1.0"para comportamento v1,"2.0"para comportamento v2). O padrão é baseado em tipos de entrada, mas volta para"1.0".
-
Retornos
Versão 2 (recomendado)
Retorna um VARIANT que contém:
{
"response": ["label_name"], // Array with single label (or multiple if multilabel=true)
"error_message": null // null on success, or error message on failure
}
O response campo contém:
- Modo de rótulo único (padrão): uma matriz com um elemento que contém o melhor rótulo correspondente
-
Modo de vários rótulos (
multilabel: "true"): uma matriz com vários rótulos quando várias categorias se aplicam - Os nomes de rótulo correspondem exatamente aos fornecidos no
labelsparâmetro
Retorna NULL se content for NULL ou se o conteúdo não puder ser classificado.
Versão 1
Retorna um STRING. O valor corresponde a uma das cadeias de caracteres fornecidas no argumento labels.
Retorna NULL se content for NULL ou se o conteúdo não puder ser classificado.
Exemplos
Versão 2 (recomendado)
Rótulos simples – somente nomes de rótulo
> SELECT ai_classify(
'My password is leaked.',
'["urgent", "not_urgent"]'
);
{
"response": ["urgent"],
"error": null
}
Rótulos com descrições
> 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
}
Rótulos da Tabela Delta
Passe rótulos de uma tabela Delta convertendo-os em uma cadeia de caracteres JSON. Por exemplo, considerando uma tabela de rótulos com esquema news_topics(topic STRING, description STRING), você pode passar seus rótulos da ai_classify seguinte maneira:
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;
Usando instruções globais
> 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
}
Classificação de vários rótulos
> 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
}
Composição com 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;
Classificação em lote
> SELECT
description,
ai_classify(
description,
'["clothing", "shoes", "accessories", "furniture", "electronics"]'
) AS category
FROM products
LIMIT 10;
Classificação com mais de 500 rótulos
Para classificar com mais de 500 rótulos, recomendamos inserir seus documentos e rótulos, recuperar os principais rótulos k por documento e, em seguida, executar ai_classify no subconjunto menor.
Confira o Tutorial: Classificar documentos com mais de 500 rótulos para um passo a passo passo.
Versão 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;
Limitações
Versão 2 (recomendado)
Limitações da versão 2:
Essa função não está disponível no Azure Databricks SQL Classic.
Essa função não pode ser usada com Exibições.
Os nomes de rótulo devem ter de 1 a 100 caracteres cada.
O
labelsparâmetro deve conter entre 2 e 500 rótulos exclusivos.As descrições de rótulo devem ter de 0 a 1.000 caracteres cada.
O tamanho máximo total do contexto é de 128.000 tokens.
Versão 1
Limitações da versão 1:
Essa função não está disponível no Azure Databricks SQL Classic.
Essa função não pode ser usada com Exibições.
Os nomes de rótulo devem ter de 1 a 50 caracteres cada.
A
labelsmatriz deve conter entre 2 e 20 rótulos.A
contententrada deve ter menos de 128.000 tokens (cerca de 300.000 caracteres).