MLPredictor - Global (obsolète)

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 10 minutes de lecture
  • L’API MLPredictor fournit des méthodes utilitaires pour Intelligence prédictive les prédictions.

    Remarque :
    Cette API a été dépréciée et devrait être supprimée dans une version ultérieure. Reportez-vous à la section Utilisation des API ML pour connaître les directives les plus récentes.

    L’API MLPredictor nécessite le module d’extension Intelligence prédictive (com.glide.platform_ml) et est fournie dans l’espace de noms sn_ml .

    Cette classe contient toutes les méthodes nécessaires pour obtenir des résultats de prédiction à partir des données d’entrée.

    MLPredictor : MLPredictor()

    Instancie un nouvel objet MLPredictor.

    Tableau 1. Paramètres
    Nom Type Description
    Aucun

    L’exemple suivant montre comment utiliser un objet MLPredictor dans une règle métier pour enregistrer les valeurs finales après une prédiction.

    function executeRule(current, previous /*null when async*/) {
    	var predictor = new MLPredictor();
    	predictor.recordFinalValuesInPredictionResults(current, "On close");
    
    }(current, previous);

    MLPredictor : applyPrediction(GlideRecord now_GR, solutions de tableau)

    Définit les valeurs prévues à partir d’un tableau de solutions spécifiées à un enregistrement spécifié.

    Tableau 2. Paramètres
    Nom Type Description
    now_GR GlideRecord Enregistrement auquel appliquer le tableau des solutions prévues.
    solutions Tableau Objets de solution spécifiés associés au GlideRecord.
    Tableau 3. Renvoie
    Type Description
    nul

    L’exemple suivant illustre l’utilisation de la méthode applyPrediction() dans une règle métier.

    (function executeRule(current, previous /*null when async*/) {
        var mlPredictor = new MLPredictor();
        //Get the list of active solutions for the glide record table
        var solutions = mlPredictor.findActiveSolutionsForRecord(current);
        //Run prediction and apply predicted value to the record
        mlPredictor.applyPrediction(current, solution);
    
    })(current, previous);

    MLPredictor : applyPredictionForSolution(GlideRecord now_GR, solution d’objet)

    Applique une valeur prévue d’une solution de classification spécifiée au GlideRecord spécifié.

    Pour chaque solution dans GlideRecord, appelez cette méthode pour prédire les résultats et définissez la valeur de champ sur l’incident sur ces résultats.

    Tableau 4. Paramètres
    Nom Type Description
    now_GR GlideRecord Objet GlideRecord contenant des valeurs sur lesquelles exécuter une prédiction et appliquer les résultats.
    solution Objet Objet de solution de classification à exécuter.
    Tableau 5. Renvoie
    Type Description
    Booléen Vrai en cas de réussite de la prédiction, erreur dans le cas contraire.

    Pour utiliser ce modèle, copiez la règle métier Prédiction basée sur les incidents (modèle), activez le nouvel enregistrement et suivez les instructions commentées pour initialiser la variable solutionNames.

    (function executeRule(current, previous /*null when async*/) {
    	var solutionNames = ["solution1", "solution2", ...];
    
    	/* For domain separation (MSP) use case */
    //	var solutionNames;
    //	if (current.sys_domain == "A")
    //		solutionNames = ["solution_A1", "solution_A2", ...];
    //	else if (current.sys_domain == "B")
    //		solutionNames = ["solution_B1", "solution_B2", ...];
    //	else
    //		...
    
    	var predictor = new MLPredictor();
    	var info = "";
    	solutionNames.forEach(function(solutionName) {
    		var solution = predictor.findActiveSolution(solutionName);
    		if (!solution)
    			return;
    
    		/* The next line of code does the prediction and updates the current record. */
    		predictor.applyPredictionForSolution(current, solution);
    
    		/* If no prediction is done, do not build the prediction info message. */
    		if (!predictor.applyPredictionForSolution(current, solution))
    			return;
    
    		/* If user doesn't have 'itil' role, we don't build prediction info message. */
    		if (!gs.hasRole('itil'))
    			return;
    
    		/* Building prediction info message */
    		var fieldName = solution.getPredictedField();
    		var fieldLabel = current.getElement(fieldName).getED().getLabel();
    		var predictedDisplayValue = current.getDisplayValue(fieldName);
    		var msg = gs.getMessage("Predicted {0} for {1}.", [predictedDisplayValue, fieldLabel]);
    		if (info.length > 0)
    			info += " ";
    		info += msg;
    	});
    	/* Print out prediction info message on screen. */
    	if (info.length > 0) {
    		var incidentUrl = "<a href='"+current.getLink()+"'>"+current.number+":</a>";
    		gs.addInfoMessage(incidentUrl + " " + info);
    	}
    })(current, previous);

    MLPredictor : findActiveSolution(String solutionName)

    Obtient l’objet de solution.

    Cette méthode renvoie uniquement les solutions si la définition et la solution ml_solution sont actives.

    Tableau 6. Paramètres
    Nom Type Description
    solutionName Chaîne Nom de l’enregistrement ml_solution.
    Tableau 7. Renvoie
    Type Description
    Objet Objet de solution pour le solutionName spécifié si la définition et la solution ml_solution sont actives, null dans les autres cas.

    Cet exemple prend une valeur codée en dur et la transmet à un modèle d’apprentissage automatique spécifié. Vous pouvez utiliser les variables de résultat et de confiance pour définir des valeurs ou d’autres logiques métier.

    var solutionName = 'ml_incident_assignment';
      var shortDescriptionValue = "Unable to connect!"
      var input = {
      short_description : shortDescriptionValue
      };
      var MLP = new MLPredictor();
      var solution = MLP.findActiveSolution(solutionName);
      var predictedOutcome = solution.predictText(input);
      var outcome = predictedOutcome.predictedValue();
      var confidence = predictedOutcome.confidence();
      gs.info("Predicted value: " + outcome)
      gs.info("Confidence: " + confidence)
            

    Sortie :

    DxC_ML:
            ******* Finished Prediction********* *** Script: Predicted value: Software *** Script:
            Confidence: 80.78079080096245

    MLPredictor : findActiveSolutionsForRecord(GlideRecord now_GR)

    Obtient les solutions actives pour une table dans un GlideRecord spécifié.

    Tableau 8. Paramètres
    Nom Type Description
    now_GR GlideRecord GlideRecord à partir duquel collecter des objets de solution actifs.
    Tableau 9. Renvoie
    Type Description
    Tableau Tableau d’objets de solution actifs associés à la table à laquelle l’enregistrement spécifié est destiné.

    Ce script transmet un GlideRecord (tel qu’un incident) et traite toutes les solutions pour le GlideRecord, en renvoyant les valeurs pour chacune.

    /* This is only to get a hard-coded GR */
         var current = new GlideRecord('incident');
         current.get('965c9e5347c12200e0ef563dbb9a7156');
         var predictor = new MLPredictor();
         var solutions = predictor.findActiveSolutionsForRecord(current);
         solutions.forEach(function(solution) {
             var outcome = solution.predict(current);
             /* Use this to set the field to the predicted value in the GlideRecord */
             var fieldName = solution.getPredictedField();
             current[fieldName] = outcome.predictedValue();
             current.update();
    
             gs.info("Predicted value: " + outcome.predictedValue())
             gs.info("Confidence: " + outcome.confidence())
    });

    Sortie (prédiction de groupe d’affectation) :

    DxC_ML: ******* Finished Prediction*********
            *** Script: Predicted value: Software *** Script: Confidence:
            99.74530683715315

    Sortie (prédiction de catégorie) :

    DxC_ML:
            ******* Finished Prediction********* *** Script: Predicted value: Software *** Script:
            Confidence: 98.7172805135524

    MLPredictor : getPredictedValue(Object solution, Object outcome)

    Obtient la valeur prévue pour une solution spécifiée en fonction du résultat de prédiction spécifié.

    Tableau 10. Paramètres
    Nom Type Description
    solution Objet Solution à partir de laquelle obtenir la valeur prévue.
    résultat Objet Résultats de prédiction pour la solution spécifiée (var outcome = solution.predict(now_GR)).
    Tableau 11. Renvoie
    Type Description
    Chaîne Valeur prévue pour la solution spécifiée en fonction du résultat spécifié de la prédiction.
    Zéro Renvoie null si la confiance de prédiction ne satisfait pas aux seuils.

    MLPredictor : getPredictions(GlideRecord now_GR, solution objet, options d’objet)

    Obtient des prédictions pour une solution spécifiée.

    Tableau 12. Paramètres
    Nom Type Description
    now_GR GlideRecord GlideRecord à prédire.
    solution Objet Objet de solution à exécuter.
    options Objet Paire de valeurs clés d’objet JSON facultative avec les propriétés suivantes :
    • options.top_n : si fournie, renvoie les résultats jusqu’au nombre attendu de prédictions, sinon la valeur par défaut est lue à partir de la propriété système glide.platform_ml.max_num_predictions .
    • options.apply_threshold : vérifie la valeur de seuil (seuil de la solution pour la similarité, seuil de niveau de classe pour la classification) de la solution et l’applique à l’ensemble de résultats. La valeur par défaut est vrai.
    Tableau 13. Renvoie
    Type Description
    Tableau Tableau des objets de résultats prévus

    L’exemple suivant appelle une solution spécifiée et exécute des prédictions sur celle-ci.

    function printOutcomeArr(outcomeArr) {
    gs.print('################## Results ##################');
    for (var i=0; i<outcomeArr.length; i++) {
        var outcome = outcomeArr[i];
        gs.print((i+1) + ' : ' + outcome.predictedValue() + ', ' + outcome.predictedValueSysId() + ', ' + outcome.confidence());
    }
    }
    
    var solutionName = 'ml_x_snc_global_prop_flip_test';
    var predictor = new MLPredictor();
    var solution = predictor.findActiveSolution(solutionName);
    
    var now_GR = new GlideRecord('incident');
    now_GR.get('1c741bd70b2322007518478d83673af3');
    
    var options = {};
    options.top_n = '10';            // top_n is an integer between 1 and 1000
    options.apply_threshold = false; // Value can be set to true or false
    
    printOutcomeArr(predictor.getPredictions(now_GR, solution, options));

    MLPredictor : isClassificationSolution(Object solution)

    Identifie si un objet de solution est un type de classification.

    Tableau 14. Paramètres
    Nom Type Description
    solution Objet Nom de la solution ML.
    Tableau 15. Renvoie
    Type Description
    Booléen Renvoie la valeur Vrai si la solution d’entrée est un type de classification et Faux dans les autres cas.
    var isClassificationSolution = this.isClassificationSolution(solution);
     
    	//classification solution each class has different threshold
    	//therefore needs to get all the results from ml engine
    	if (applyThreshold && isClassificationSolution) {
    		var maxClassificationTopN = 50;
    		outcomeArr = solution.predictTopN(now_GR, maxClassificationTopN);
    	}
    	else  {
    	outcomeArr = solution.predictTopN(now_GR, topN);
    	}
     
    	if (outcomeArr === null) {
    		//instead of returning null returning empty array
    		return [];
    	}

    MLPredictor : isSimilaritySolution(Object solution)

    Identifie si un objet de solution est d’un type de similarité.

    Tableau 16. Paramètres
    Nom Type Description
    solution Objet Nom de la solution ML ; Par exemple, ml_incident_categorization.
    Tableau 17. Renvoie
    Type Description
    Booléen Renvoie la valeur true si la solution d’entrée est un type de similarité et false dans les autres cas.

    MLPredictor : outcome.confidence()

    Obtient le score de confiance de la valeur prévue.

    Tableau 18. Paramètres
    Nom Type Description
    Aucun
    Tableau 19. Renvoie
    Type Description
    Chaîne Précision estimée de la prédiction, en pourcentage. Par exemple, 53.84615375762915.
    var MLP = new MLPredictor();
      var solution = MLP.findActiveSolution(solutionName);
      var predictedOutcome = solution.predictText(input);
      var outcome = predictedOutcome.predictedValue();
      var confidence = predictedOutcome.confidence();
      gs.info("Predicted value: " + outcome)
      gs.info("Confidence: " + confidence)

    MLPredictor : outcome.predictedValue()

    Obtient la valeur prévue à partir de l’objet de résultat MLPdictor.

    Tableau 20. Paramètres
    Nom Type Description
    Aucun
    Tableau 21. Renvoie
    Type Description
    Chaîne Valeur prévue à partir de l’objet Résultat.
    var MLP = new MLPredictor();
      var solution = MLP.findActiveSolution(solutionName);
      var predictedOutcome = solution.predictText(input);
      var outcome = predictedOutcome.predictedValue();
      var confidence = predictedOutcome.confidence();
      gs.info("Predicted value: " + outcome)
      gs.info("Confidence: " + confidence)

    MLPredictor : outcome.predictedValueSysId()

    Obtient le sys_id de la valeur prévue.

    Tableau 22. Paramètres
    Nom Type Description
    Aucun
    Tableau 23. Renvoie
    Type Description
    Chaîne La valeur prévue sys_id.
    function printOutcomeArr(outcomeArr) {
    gs.print('################## Results ##################');
    for (var i=0; i<outcomeArr.length; i++) {
        var outcome = outcomeArr[i];
        gs.print((i+1) + ' : ' + outcome.predictedValue() + ', ' + outcome.predictedValueSysId() + ', ' + outcome.confidence());
    }

    MLPredictor : recordFinalValuesInPredictionResults(GlideRecord now_GR, motif de chaîne)

    Définit les valeurs de résultat de prédiction finale sur un GlideRecord spécifié avec un motif spécifié facultatif.

    Tableau 24. Paramètres
    Nom Type Description
    now_GR GlideRecord GlideRecord sur lequel définir les valeurs de résultat de prédiction finale.
    motif Chaîne Facultatif. Motif de l’application des résultats.
    Tableau 25. Renvoie
    Type Description
    nul

    Dans l’exemple suivant, la méthode recordFinalValuesInPredictionResults() est appelée lorsque l’incident est fermé.

    (function executeRule(current, previous /*null when async*/) {
    	var predictor = new MLPredictor();
    	predictor.recordFinalValuesInPredictionResults(current, "On close");
    
    })(current, previous);

    MLPredictor : solution.getCapability()

    Obtient les informations d’aptitude d’une solution formée.

    Tableau 26. Paramètres
    Nom Type Description
    Aucun
    Tableau 27. Renvoie
    Type Description
    Chaîne ID de définition et version de la solution formée, message d’erreur dans le cas contraire

    MLPredictor : solution.getName()

    Obtient le nom de la solution utilisée pour la prédiction.

    Tableau 28. Paramètres
    Nom Type Description
    Aucun
    Tableau 29. Renvoie
    Type Description
    Chaîne Le nom de la solution à utiliser pour les prédictions ; Par exemple, ml_incident_categorization

    MLPredictor : solution.getPredictedField()

    Obtient la valeur prévue d’une solution.

    Tableau 30. Paramètres
    Nom Type Description
    Aucun
    Tableau 31. Renvoie
    Type Description
    Chaîne Valeur du champ de sortie prévue d’une solution
    /* Get a hard-coded GR */
         var current = new GlideRecord('incident');
         current.get('965c9e5347c12200e0ef563dbb9a7156');
         var predictor = new MLPredictor();
         var solutions = predictor.findActiveSolutionsForRecord(current);
         solutions.forEach(function(solution) {
             var outcome = solution.predict(current);
             /* Use this to set the field to the predicted value in the GlideRecord */
    
             var fieldName = solution.getPredictedField();
             current[fieldName] = outcome.predictedValue();
             current.update();
             gs.info("Predicted value: " + outcome.predictedValue())
             gs.info("Confidence: " + outcome.confidence())
    });

    MLPredictor : solution.getThreshold(String className)

    Obtient le seuil de la solution.

    Le seuil représente un pourcentage reflétant la précision de prédiction minimale.

    Tableau 32. Paramètres
    Nom Type Description
    Nom de classe Chaîne Une valeur catégorielle spécifiée du champ de sortie de la solution
    Tableau 33. Renvoie
    Type Description
    Numéro Valeur du seuil représenté en pourcentage compris entre 0 et 100.

    MLPredictor : solution.getVersion()

    Obtient la version de la solution active.

    Tableau 34. Paramètres
    Nom Type Description
    Aucun
    Tableau 35. Renvoie
    Type Description
    Chaîne Version de la solution active

    MLPredictor : solution.isActive()

    Détermine si la solution spécifiée est active.

    Tableau 36. Paramètres
    Nom Type Description
    Aucun
    Tableau 37. Renvoie
    Type Description
    Booléen Vrai si la solution est active, faux dans les autres cas

    MLPredictor : solution.predict(GlideRecord now_GR, seuil d’objet)

    Obtient les résultats de prédiction de solution en tant qu’objet de résultat.

    Tableau 38. Paramètres
    Nom Type Description
    now_GR GlideRecord GlideRecord de la table d’entrée de la solution
    seuil Objet Valeur de seuil (seuil de similarité au niveau de la solution, seuil de niveau classe pour la classification)
    Tableau 39. Renvoie
    Type Description
    Objet Résultat de prédiction de la solution spécifiée (var outcome = solution.predict(now_GR))
    solutions.forEach(function(solution) {
             var outcome = solution.predict(current);
             /* Use this to set the field to the predicted value in the GlideRecord
             var fieldName = solution.getPredictedField();
             current[fieldName] = outcome.predictedValue();
             current.update();
             */
             gs.info("Predicted value: " + outcome.predictedValue())
             gs.info("Confidence: " + outcome.confidence())
    });

    MLPredictor : solution.predictTopN(GlideRecord now_GR, objet topN)

    Renvoie une liste d’objets de résultat jusqu’au nombre attendu de prédictions. Nombre maximum de 1000 prédictions.

    Tableau 40. Paramètres
    Nom Type Description
    now_GR GlideRecord GlideRecord de la solution
    topN Objet Nombre attendu de prédictions, tout nombre supérieur à 1 000 renvoie 1 000 résultats
    Tableau 41. Renvoie
    Type Description
    Tableau Liste des objets de résultat dans un tableau incluant GlideRecord, le seuil, l’ID système et le nombre attendu de prédictions (objet Top N)
    var isClassificationSolution = this.isClassificationSolution(solution);
     
    	//classification solution each class has different threshold
    	//therefore needs to get all the results from ml engine
    	if (applyThreshold && isClassificationSolution) {
    		var maxClassificationTopN = 50;
    		outcomeArr = solution.predictTopN(now_GR, maxClassificationTopN);
    	}
    	else  {
    		outcomeArr = solution.predictTopN(now_GR, topN);
    	}
     
    	if (outcomeArr === null) {
    		//instead of returning null returning empty array
    		return [];
    	}