MLPredictor : global (déconseillé)

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 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éconseillée et est destinée à être supprimée dans une version ultérieure. Consultez 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
    Néant

    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 dans 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 objet)

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

    Pour chaque solution du GlideRecord, appelez cette méthode pour prédire les résultats et définissez la valeur de champ sur l’incident en fonction de 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 ne renvoie les solutions que si la définition de ml_solution et la 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 de ml_solution sont actives, null dans le cas contraire.

    Cet exemple utilise une valeur codée en dur et la transmet à un modèle d’apprentissage machine 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

    MLPredicteur : 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 les 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 (comme 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 du 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 (solution d’objet, résultat de l’objet)

    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 du résultat de prédiction pour la solution spécifiée (résultat var = 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 les seuils.

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

    Obtient les 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 d’objet JSON facultative avec les propriétés suivantes :
    • options.top_n : si elle est fournie, renvoie les résultats jusqu’au nombre de prédictions attendu. 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 similarité de la solution, seuil du 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 d’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(solution objet)

    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(solution d’objet)

    Identifie si un objet de solution est 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 Vrai si la solution d’entrée est un type de similarité et Faux dans les autres cas.

    MLPredictor : outcome.confidence()

    Obtient la 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édite à partir de l’objet de résultat MLPredictor.

    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 la sys_id de la valeur prédite.

    Tableau 22. Paramètres
    Nom Type Description
    Aucun
    Tableau 23. Renvoie
    Type Description
    Chaîne 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 finales sur un GlideRecord spécifié avec un motif spécifié en option.

    Tableau 24. Paramètres
    Nom Type Description
    now_GR GlideRecord GlideRecord sur lequel définir les valeurs des résultats de prédiction finaux.
    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 sur l’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, sinon message d’erreur

    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évu 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 Valeur catégorielle spécifiée du champ de sortie de la solution
    Tableau 33. Renvoie
    Type Description
    Numéro La valeur du seuil représentée sous forme de 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 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 du niveau de la solution pour la similarité, seuil du niveau de la classe pour la classification)
    Tableau 39. Renvoie
    Type Description
    Objet Résultat de prédiction résultat de la solution spécifiée (résultat var = 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ésultats jusqu’au nombre attendu de prédictions. Nombre maximum de 1 000 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ésultats dans un tableau comprenant GlideRecord, le seuil, l’ID système et le nombre attendu de prédictions (objet topN)
    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 [];
    	}