Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime
Importante
Este recurso está em versão Beta.
A ai_decide() função avalia uma ou mais perguntas com base em texto ou dados estruturados. Para cada pergunta, devolve ou uma probabilidade, uma escolha entre critérios nomeados ou uma pontuação numa escala ordenada. Use-o para encaminhar tickets de suporte, avaliar se um evento precisa de atenção ou priorizar trabalho usando uma rubrica que definir.
Todas as perguntas numa chamada usam a mesma entrada, chamada state. Podes combinar diferentes tipos de perguntas numa única chamada e usar as respostas retornadas em consultas SQL posteriores.
Segurança de dados
Os dados do documento são processados dentro do perímetro de segurança Databricks. O Databricks não armazena os parâmetros que são passados para as chamadas de função de IA, mas mantém detalhes de execução de metadados, como a versão de Runtime do Databricks utilizada.
Requisitos
Licença Apache 2.0
Os modelos subjacentes que poderão ser usados atualmente estão licenciados sob a Licença Apache 2.0, Direitos de Autor © da Apache Software Foundation. Os clientes são responsáveis por garantir a conformidade com as licenças de modelo aplicáveis.
A Databricks recomenda a revisão dessas licenças para garantir a conformidade com quaisquer termos aplicáveis. Se surgirem modelos no futuro com melhor desempenho de acordo com os benchmarks internos da Databricks, a Databricks poderá alterar o modelo (e a lista de licenças aplicáveis fornecida nesta página).
O modelo que alimenta esta função está disponível através das APIs Model Serving Foundation Model Model. Consulte Termos de modelo Aplicável para informações sobre quais modelos estão disponíveis nos Databricks e as licenças e políticas que regem a utilização desses modelos.
Se surgirem modelos que tenham melhor desempenho segundo os benchmarks internos do Azure Databricks, o Databricks poderá alterar os modelos e atualizar a documentação.
Esta função está disponível apenas em algumas regiões, veja disponibilidade de funções de IA.
Para espaços de trabalho com o add-on Enhanced Security and Compliance,
- Consulte o suporte regional relativamente a
ai_decidepara a norma de conformidade adequada. - Consulte Gerir as pré-visualizações do Azure Databricks para saber como ativá-lo no seu espaço de trabalho.
- Consulte o suporte regional relativamente a
Esta função não está disponível no Azure Databricks SQL Classic.
É necessário o Databricks Runtime 15.4 LTS ou superior. O Databricks Runtime 18.2 ou superior é recomendado para o melhor desempenho e acesso às funcionalidades mais recentes.
Consulte a página de preços do Databricks SQL.
Syntax
ai_decide(state, questions [, options])
Arguments
state: AVARIANTouSTRINGexpressão contendo o conteúdo, contexto e exemplos necessários para responder às perguntas. O valor pode variar consoante a linha. Aceita um:- A contendo
STRINGtexto simples ou um objeto ou array codificado em JSON. Os objetos e arrays JSON são interpretados como dados estruturados. Outras cadeias são tratadas como texto. - Um
VARIANTproduzido por outra função de IA (comoai_parse_documentouai_extract)
- A contendo
questions: Uma expressão constanteSTRINGcontendo um objeto JSON não vazio. Cada tecla é um ID de pergunta não vazio, e cada valor é uma definição de pergunta. As mesmas definições aplicam-se a todas as linhas. Ver definições de perguntas.options: Uma expressão constanteMAP<STRING, STRING>opcional. A opção suportada éversion, com o valor'1.0'. A versão 1.0 é a padrão. Para especificar explicitamente, usemap('version', '1.0').
Definições de perguntas
Cada definição de pergunta requer type e instructions, mais criteria quando exigido pelo tipo de pergunta. Campos obrigatórios não podem ser null. Outros campos não são suportados.
-
type: Um denoul,choice, ouscore. -
instructions: Instruções para avaliar o estado, expressas como uma string, objeto JSON ou array JSON. -
criteria: As descrições que definem como responder. A forma necessária depende detype.
Noul pergunta
Use noul para estimar a probabilidade de uma pergunta ser verdadeira. O resultado é um número de 0 a 1.
O objeto opcional criteria pode conter true e false teclas para descrever esses resultados. Cada descrição pode ser uma string, objeto JSON ou array JSON. Omita criteria quando não precisares destas descrições. Se fornecida, criteria deve ser um objeto e não pode ser null.
{
"needs_escalation": {
"type": "noul",
"instructions": "Does this ticket need immediate escalation?",
"criteria": {
"true": "An active service outage blocks the customer from working.",
"false": "The customer can continue working or has a workaround."
}
}
}
Perguntas de escolha
Use choice para selecionar uma etiqueta a partir de um conjunto de critérios nomeados.
O objeto requerido criteria mapeia de 1 a 255 rótulos não vazios para descrições. Cada descrição pode ser uma string, objeto JSON, array JSON ou null. Use null quando só o rótulo descreve a escolha.
{
"team": {
"type": "choice",
"instructions": "Which team should handle this ticket?",
"criteria": {
"shipping": "Delivery or shipment issues",
"billing": "Payment or invoice issues",
"technical_support": "Product technical problems"
}
}
}
Perguntas sobre pontuação
Use score para avaliar o estado em relação a uma escala ordenada.
O array requerido criteria contém de 2 a 10 descrições, ordenadas do mais baixo para o mais alto. Cada descrição pode ser uma string, objeto JSON ou array JSON. O primeiro critério tem índice 0, o seguinte tem índice 1, e assim sucessivamente.
O resultado é a média ponderada pela probabilidade destes índices. Pode ser fracionado e varia de 0 até ao número de critérios menos um. Por exemplo, probabilidades de 0.1, , e 0.6 em três critérios produzem uma pontuação de 1.50.3.
{
"urgency": {
"type": "score",
"instructions": "How urgent is this ticket?",
"criteria": [
"Routine request with no time pressure",
"Time-sensitive issue with a workaround",
"Critical issue that blocks the customer"
]
}
}
Devoluções
Devolve a VARIANT com os campos response, metadata, e error_message. O response campo contém um answers objeto com uma entrada por pergunta. Os IDs das perguntas correspondem exatamente aos fornecidos no questions parâmetro. Cada resposta inclui um type campo que corresponde ao tipo de pergunta: noul, choice, ou score. Os seguintes exemplos mostram o response campo para cada tipo de pergunta:
Perguntas de Noul: A
probabilityde 0 para 1 estimando a probabilidade de a pergunta ser verdadeira.{ "answers": { "needs_escalation": { "type": "noul", "probability": 0.1 } } }Perguntas de escolha: A contendo
choiceo rótulo com maior probabilidade e umprobabilitiesobjeto que mapeia cada rótulo à sua probabilidade.confidenceé um número de 0 a 1 que indica quão bem o estado apoia a avaliação. Osprobabilitiesvalores somam 1. Os nomes das etiquetas correspondem exatamente aos fornecidos emcriteria.{ "answers": { "team": { "type": "choice", "choice": "shipping", "probabilities": { "shipping": 0.8, "billing": 0.1, "technical_support": 0.1 }, "confidence": 0.9 } } }Perguntas de pontuação: A
scorecontendo a média ponderada pela probabilidade dos índices critério, umlegendmapeamento de índices de cadeia (como"0") para as descrições originais do critério, e umprobabilitiesobjeto que mapeia esses índices para probabilidades.confidenceé um número de 0 a 1 que indica quão bem o estado apoia a avaliação. Osprobabilitiesvalores somam 1.{ "answers": { "urgency": { "type": "score", "score": 1.5, "legend": { "0": "Routine request with no time pressure", "1": "Time-sensitive issue with a workaround", "2": "Critical issue that blocks the customer" }, "probabilities": { "0": 0.1, "1": 0.3, "2": 0.6 }, "confidence": 0.8 } } }
Em caso de sucesso, metadata.version identifica a versão da função usada e error_message é null.
No caso da falha, response é null e error_message descreve a falha. Tipos de argumentos inválidos ou definições de perguntas não constantes também podem causar erros de consulta.
Exemplos
O exemplo seguinte mostra como avaliar várias perguntas numa só chamada. As respostas geradas podem variar entre chamadas.
Avalie vários tipos de perguntas
Este exemplo avalia uma lista de produtos pela sua categoria, uso de materiais reciclados e adequação para caminhadas em tempo chuvoso:
SELECT ai_decide(
'{"name": "TrailShell jacket", "description": "Lightweight waterproof hiking jacket made from recycled polyester. Packs into its own pocket."}',
'{
"category": {
"type": "choice",
"instructions": "Which product category best fits this item?",
"criteria": {
"outerwear": "Jackets, coats, and other protective outer layers",
"footwear": "Shoes, boots, and sandals",
"accessories": "Bags, hats, and other accessories"
}
},
"recycled_materials": {
"type": "noul",
"instructions": "Does the listing state that the product uses recycled materials?"
},
"hiking_suitability": {
"type": "score",
"instructions": "How suitable is this product for hiking in rainy weather?",
"criteria": [
"Not suitable for outdoor use in rain",
"Offers some protection from rain",
"Designed for hiking with waterproof protection"
]
}
}',
map('version', '1.0')
) AS decision;
Resposta de exemplo:
{
"response": {
"answers": {
"category": {
"type": "choice",
"choice": "outerwear",
"probabilities": { "outerwear": 0.95, "footwear": 0.01, "accessories": 0.04 },
"confidence": 0.95
},
"recycled_materials": { "type": "noul", "probability": 0.98 },
"hiking_suitability": {
"type": "score",
"score": 1.8,
"legend": {
"0": "Not suitable for outdoor use in rain",
"1": "Offers some protection from rain",
"2": "Designed for hiking with waterproof protection"
},
"probabilities": { "0": 0.05, "1": 0.1, "2": 0.85 },
"confidence": 0.9
}
}
},
"metadata": { "version": "1.0" },
"error_message": null
}