Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
Databricks SQL
Databricks Runtime
Importante
Esta característica se encuentra en su versión beta.
La ai_decide() función evalúa una o más preguntas en función de datos textuales o estructurados. Para cada pregunta, devuelve una probabilidad, una elección entre criterios nombrados o una puntuación en una escala ordenada. Úsalo para enrutar tickets de soporte, evaluar si un evento necesita atención o priorizar el trabajo usando una rúbrica que tú definas.
Todas las preguntas en una llamada usan la misma entrada, llamada state. Puedes combinar diferentes tipos de preguntas en una sola llamada y usar las respuestas retornadas en consultas SQL posteriores.
Seguridad de datos
Los datos del documento se procesan dentro del perímetro de seguridad de Databricks. Databricks no almacena los parámetros que se pasan a las llamadas a funciones de IA, pero sí conserva los detalles de la ejecución de metadatos, como la versión de ejecución de Databricks utilizada.
Requisitos
Licencia de Apache 2.0
Los modelos subyacentes que se pueden usar en este momento tienen licencia bajo la licencia de Apache 2.0, Copyright © The Apache Software Foundation. Los clientes son responsables de garantizar el cumplimiento de las licencias de modelo aplicables.
Databricks recomienda revisar estas licencias para garantizar el cumplimiento de los términos aplicables. Si los modelos surgen en el futuro que funcionan mejor según las pruebas comparativas internas de Databricks, Databricks podría cambiar el modelo (y la lista de licencias aplicables proporcionadas en esta página).
El modelo que alimenta esta función está disponible mediante las API de modelo de Model Serving Foundation. Consulte Términos de modelo aplicables para obtener información sobre qué modelos están disponibles en Databricks y las licencias y directivas que rigen el uso de esos modelos.
Si los modelos surgen que funcionan mejor según las pruebas comparativas internas de Azure Databricks, Databricks podría cambiar los modelos y actualizar la documentación.
Esta función solo está disponible en algunas regiones, consulte Disponibilidad de funciones de IA.
Para áreas de trabajo con el complemento Seguridad y cumplimiento mejorados,
- Consulte la compatibilidad regional de
ai_decidepara conocer la norma de cumplimiento adecuada. - Consulte Manage Azure Databricks previews (Administrar Azure Databricks versiones preliminares) para obtener información sobre cómo habilitarla en el área de trabajo.
- Consulte la compatibilidad regional de
Esta función no está disponible en Azure Databricks SQL Classic.
Se requiere Databricks Runtime 15.4 LTS o superior. Se recomienda Databricks Runtime 18.2 o superior para el mejor rendimiento y acceso a las últimas funciones.
Consulte la página de precios de Databricks SQL.
Syntax
ai_decide(state, questions [, options])
Arguments
state: AVARIANToSTRINGexpresión que contiene el contenido, contexto y ejemplos necesarios para responder a las preguntas. El valor puede variar según la fila. Acepta cualquiera de:- A que
STRINGcontenga texto plano o un objeto o array codificado en JSON. Los objetos y arrays JSON se interpretan como datos estructurados. Otras cadenas se tratan como texto. - Objeto
VARIANTgenerado por otra función de IA (por ejemploai_parse_document, oai_extract)
- A que
questions: Una expresión constanteSTRINGque contiene un objeto JSON no vacío. Cada clave es un ID de pregunta no vacío, y cada valor es una definición de pregunta. Las mismas definiciones se aplican a cada fila. Ver Definiciones de preguntas.options: Una expresión constanteMAP<STRING, STRING>opcional. La opción soportada esversion, con el valor'1.0'. La versión 1.0 es la predeterminada. Para especificarlo explícitamente, usamap('version', '1.0').
Definiciones de preguntas
Cada definición de pregunta requiere type y instructions, más criteria cuando lo requiera el tipo de pregunta. Los campos requeridos no pueden ser null. No se soportan otros campos.
-
type: uno denoul,choiceoscore. -
instructions: Instrucciones para evaluar el estado, expresadas como una cadena, objeto JSON o matriz JSON. -
criteria: Las descripciones que definen cómo responder. La forma requerida depende detype.
Noul pregunta
Úsalo noul para estimar la probabilidad de que una pregunta sea cierta. El resultado es un número del 0 al 1.
El objeto opcional criteria puede contener true y false claves para describir esos resultados. Cada descripción puede ser una cadena, un objeto JSON o un array JSON. Omite criteria cuando no necesites estas descripciones. Si se suministra, criteria debe ser un objeto y no puede 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."
}
}
}
Preguntas de elección
Úsalo choice para seleccionar una etiqueta de un conjunto de criterios nombrados.
El objeto requerido criteria asigna de 1 a 255 etiquetas no vacías a descripciones. Cada descripción puede ser una cadena, objeto JSON, array JSON o null. Úsalo null cuando la etiqueta por sí sola describe la elección.
{
"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"
}
}
}
Preguntas sobre la puntuación
Úsalo score para evaluar el estado en comparación con una escala ordenada.
El array requerido criteria contiene de 2 a 10 descripciones, ordenadas de menor a mayor. Cada descripción puede ser una cadena, un objeto JSON o un array JSON. El primer criterio tiene índice 0, el siguiente tiene índice 1, y así sucesivamente.
El resultado es el promedio ponderado por probabilidad de estos índices. Puede ser fraccionaria y varía desde 0 hasta el número de criterios menos uno. Por ejemplo, las probabilidades de 0.1, 0.3, y 0.6 en tres criterios producen una puntuación de 1.5.
{
"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"
]
}
}
Devoluciones
Devuelve a VARIANT con los campos response, metadata, y error_message. El response campo contiene un answers objeto con una entrada por pregunta. Los identificadores de las preguntas coinciden exactamente con los proporcionados en el questions parámetro. Cada respuesta incluye un type campo que coincide con el tipo de pregunta: noul, choice, o score. Los siguientes ejemplos muestran el response campo para cada tipo de pregunta:
Preguntas de Noul: A
probabilityde 0 a 1 estimando la probabilidad de que la pregunta sea cierta.{ "answers": { "needs_escalation": { "type": "noul", "probability": 0.1 } } }Preguntas de elección: A que
choicecontiene la etiqueta con mayor probabilidad y unprobabilitiesobjeto que asigna cada etiqueta a su probabilidad.confidencees un número del 0 al 1 que indica qué tan bien respalda el estado la evaluación. Losprobabilitiesvalores suman 1. Los nombres de etiquetas coinciden exactamente con los proporcionados encriteria.{ "answers": { "team": { "type": "choice", "choice": "shipping", "probabilities": { "shipping": 0.8, "billing": 0.1, "technical_support": 0.1 }, "confidence": 0.9 } } }Preguntas de puntuación: A que
scorecontiene el promedio ponderado por probabilidad de los índices criterio, unalegendcadena de indexación (como"0") a las descripciones originales del criterio, y unprobabilitiesobjeto que mapea esos índices a probabilidades.confidencees un número del 0 al 1 que indica qué tan bien respalda el estado la evaluación. Losprobabilitiesvalores suman 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 } } }
En caso de éxito, metadata.version identifica la versión de función utilizada y error_message es null.
En el caso de fallo, response es null y error_message describe el fallo. Los tipos de argumentos inválidos o las definiciones de preguntas no constantes también pueden causar errores de consulta.
Examples
El siguiente ejemplo muestra cómo evaluar varias preguntas en una sola llamada. Las respuestas generadas pueden variar entre llamadas.
Evalúa varios tipos de preguntas
Este ejemplo evalúa un listado de productos según su categoría, uso de materiales reciclados y idoneidad para senderismo en condiciones de lluvia:
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;
Respuesta de ejemplo:
{
"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
}