Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
Databricks SQL
Databricks Runtime
Important
Cette fonctionnalité est en version bêta.
La ai_decide() fonction évalue une ou plusieurs questions par rapport au texte ou aux données structurées. Pour chaque question, elle retourne soit une probabilité, un choix parmi des critères nommés, ou un score sur une échelle ordonnée. Utilisez-le pour acheminer les tickets de support, évaluer si un événement nécessite de l’attention, ou prioriser le travail en utilisant une grille que vous définissez.
Toutes les questions d’un appel utilisent la même entrée, appelée state. Vous pouvez combiner différents types de questions dans un seul appel et utiliser les réponses retournées dans les requêtes SQL en aval.
Sécurité des données
Vos données de document sont traitées dans le périmètre de sécurité Databricks. Databricks ne stocke pas les paramètres qui sont passés dans les appels de fonctions IA, mais conserve les détails de la gestion des métadonnées, comme la version d’exécution de Databricks utilisée.
Exigences
Licence Apache 2.0
Les modèles sous-jacents qui peuvent être utilisés pour l’instant sont sous licence sous licence Apache 2.0, copyright © The Apache Software Foundation. Les clients sont tenus de veiller à la conformité aux licences de modèle applicables.
Databricks recommande de passer en revue ces licences pour vérifier leur conformité avec les conditions applicables. Si les modèles émergent à l’avenir qui fonctionnent mieux en fonction des benchmarks internes de Databricks, Databricks peut modifier le modèle (et la liste des licences applicables fournies sur cette page).
Le modèle qui alimente cette fonction est rendu disponible à l’aide des API Model Service Foundation. Consultez les conditions de modèle applicables pour plus d’informations sur les modèles disponibles sur Databricks et les licences et stratégies qui régissent l’utilisation de ces modèles.
Si des modèles apparaissent mieux selon les benchmarks internes de Azure Databricks, Databricks peut modifier les modèles et mettre à jour la documentation.
Cette fonction est disponible uniquement dans certaines régions, consultez la disponibilité des fonctions IA.
Pour les espaces de travail avec le module complémentaire sécurité et conformité améliorés,
- Consultez la prise en charge régionale pour
ai_decidela norme de conformité appropriée. - Consultez Gérer les versions préliminaires d’Azure Databricks pour savoir comment l’activer sur votre espace de travail.
- Consultez la prise en charge régionale pour
Cette fonction n’est pas disponible sur Azure Databricks SQL classique.
Databricks Runtime 15.4 LTS ou supérieur est requis. Databricks Runtime 18.2 ou supérieur est recommandé pour les meilleures performances et l’accès aux dernières fonctionnalités.
Consultez la page de tarification de Databricks SQL.
Syntax
ai_decide(state, questions [, options])
Arguments
state: AVARIANTouSTRINGexpression contenant le contenu, le contexte et les exemples nécessaires pour répondre aux questions. La valeur peut varier selon la ligne. Accepte soit :- Un
STRINGcontenant du texte clair ou un objet ou tableau encodé en JSON. Les objets et tableaux JSON sont interprétés comme des données structurées. D’autres chaînes sont traitées comme du texte. - Produit
VARIANTpar une autre fonction IA (par exempleai_parse_document, ouai_extract)
- Un
questions: Une expression constanteSTRINGcontenant un objet JSON non vide. Chaque clé est un identifiant de question non vide, et chaque valeur est une définition de la question. Les mêmes définitions s’appliquent à chaque ligne. Voir définitions de la question.options: Une expression constanteMAP<STRING, STRING>optionnelle. L’option prise en charge estversion, avec la valeur'1.0'. La version 1.0 est la norme par défaut. Pour le spécifier explicitement, utilisezmap('version', '1.0').
Définitions des questions
Chaque définition de question nécessite type et instructions, plus criteria lorsque requis par le type de question. Les champs requis ne peuvent pas être null. D’autres domaines ne sont pas pris en charge.
-
type: Un desnoul,choiceouscore. -
instructions: Instructions pour évaluer l’état, exprimées sous forme de chaîne, objet JSON ou tableau JSON. -
criteria: Les descriptions qui définissent comment répondre. La forme requise dépend detype.
Noul demande
À utiliser noul pour estimer la probabilité qu’une question soit vraie. Le résultat est un nombre de 0 à 1.
L’objet optionnel criteria peut contenir true des false clés pour décrire ces résultats. Chaque description peut être une chaîne, un objet JSON ou un tableau JSON. Omettez criteria quand vous n’avez pas besoin de ces descriptions. Si elle est fournie, criteria doit être un objet et ne peut pas être 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."
}
}
}
Questions de choix
Utilisez choice pour sélectionner une étiquette parmi un ensemble de critères nommés.
L’objet requis criteria correspond de 1 à 255 étiquettes non vides à des descriptions. Chaque description peut être une chaîne de caractères, un objet JSON, un tableau JSON ou null. À utiliser null lorsque l’étiquette seule décrit le choix.
{
"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"
}
}
}
Questions sur les scores
À utiliser score pour évaluer l’état par rapport à une échelle ordonnée.
Le tableau requis criteria contient de 2 à 10 descriptions, classées du plus bas au plus haut. Chaque description peut être une chaîne, un objet JSON ou un tableau JSON. Le premier critère a un indice 0, le suivant a un indice 1, et ainsi de suite.
Le résultat est la moyenne pondérée par probabilité de ces indices. Elle peut être fractionnaire et varie de 0 jusqu’au nombre de critères moins un. Par exemple, les probabilités de 0.1, , et 0.6 sur trois critères produisent un score 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"
]
}
}
Returns
Retourne a VARIANT avec les champs response, metadata, et error_message. Le response champ contient un answers objet avec une entrée par question. Les identifiants de questions correspondent exactement à ceux fournis dans le questions paramètre. Chaque réponse inclut un type champ correspondant au type de question : noul, choice, ou score. Les exemples suivants montrent le response champ pour chaque type de question :
Questions de Noul : A
probabilityde 0 à 1 estimant la probabilité que la question soit vraie.{ "answers": { "needs_escalation": { "type": "noul", "probability": 0.1 } } }Questions de choix : A contenant
choicel’étiquette ayant la plus grande probabilité et unprobabilitiesobjet associant chaque étiquette à sa probabilité.confidenceest un chiffre de 0 à 1 indiquant dans quelle mesure l’État soutient l’évaluation. Lesprobabilitiesvaleurs totalisent 1. Les noms des étiquettes correspondent exactement à ceux fournis danscriteria.{ "answers": { "team": { "type": "choice", "choice": "shipping", "probabilities": { "shipping": 0.8, "billing": 0.1, "technical_support": 0.1 }, "confidence": 0.9 } } }Questions de score : A contenant
scorela moyenne pondérée par probabilité des indices de critère, unelegendcorrespondance des indices de chaînes (comme )"0"aux descriptions originales des critères, et unprobabilitiesobjet associant ces indices aux probabilités.confidenceest un chiffre de 0 à 1 indiquant dans quelle mesure l’État soutient l’évaluation. Lesprobabilitiesvaleurs totalisent 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 cas de succès, metadata.version identifie la version de fonction utilisée et error_message est null.
Sur l’échec, response est null et error_message décrit l’échec. Des types d’arguments invalides ou des définitions de questions non constantes peuvent également provoquer des erreurs de requête.
Exemples
L’exemple suivant montre comment évaluer plusieurs questions en un seul appel. Les réponses générées peuvent varier d’un appel à l’autre.
Évaluez plusieurs types de questions
Cet exemple évalue une liste de produits selon sa catégorie, l’utilisation de matériaux recyclés et l’adéquation de la randonnée par temps pluvieux :
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;
Exemple de réponse :
{
"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
}