MLPredictor - Global (descontinuado)

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 10 min. de leitura
  • A API MLPredictor fornece métodos de utilitário para Inteligência preditiva previsões.

    Nota:
    Esta API foi descontinuada e deve ser removida em uma versão futura. Consulte Como usar APIs de ML para obter as diretrizes mais recentes.

    A API MLPredictor requer o plug-in Inteligência preditiva (com.glide.platform_ml) e é fornecida no namespace sn_ml.

    Esta classe contém todos os métodos necessários para obter resultados de previsão dos dados de entrada.

    MLPredictor - MLPredictor()

    Instancia um novo objeto MLPredictor.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum(a)

    O exemplo a seguir mostra como usar um objeto MLPredictor em uma regra de negócio para registrar valores finais após uma previsão.

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

    MLPredictor - applyPrediction(GlideRecord now_GR, soluções de matriz)

    Define valores previstos de uma matriz de soluções especificadas para um registro especificado.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    now_GR GlideRecord O registro no qual a matriz de soluções previstas será aplicada.
    soluções Matriz Objetos de solução especificados associados ao GlideRecord.
    Tabela 3. Retorna
    Tipo Descrição
    vazio

    O exemplo a seguir demonstra o uso do método applyPrediction() em uma regra de negócio.

    (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, Solução de objeto)

    Aplica um valor previsto de uma solução de classificação especificada ao GlideRecord especificado.

    Para cada solução no GlideRecord, chame este método para prever os resultados e defina o valor do campo no incidente para esses resultados.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    now_GR GlideRecord Objeto GlideRecord que contém valores nos quais uma previsão é executada e os resultados são aplicados.
    solução Objeto Objeto de solução de classificação a ser executado.
    Tabela 5. Retorna
    Tipo Descrição
    Booliano Verdadeiro após o sucesso da previsão, caso contrário, erro.

    Para usar este modelo, copie a regra de negócio Previsão baseada em incidentes (modelo), torne o novo registro Ativo e siga as instruções comentadas para inicializar a variável 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(cadeia de caracteres solutionName)

    Obtém o objeto de solução.

    Este método retorna as soluções somente se a definição e a solução ml_solution estiverem ativas.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    solutionName Cadeia de caracteres Nome do registro ml_solution.
    Tabela 7. Retorna
    Tipo Descrição
    Objeto Objeto de solução para o solutionName especificado se a definição e a solução ml_solution estiverem ativas; caso contrário, será nulo.

    Este exemplo usa um valor codificado e o passa para um modelo de aprendizado de máquina especificado. Você pode usar as variáveis de resultado e confiança para definir valores ou outra lógica de negócios.

    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)
            

    Saída:

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

    MLPredictor – findActiveSolutionsForRecord(GlideRecord now_GR)

    Obtém soluções ativas para uma tabela em um GlideRecord especificado.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    now_GR GlideRecord GlideRecord do qual objetos de solução ativos serão coletados.
    Tabela 9. Retorna
    Tipo Descrição
    Matriz Matriz de objetos de solução ativos associados à tabela para a qual o registro especificado se destina.

    Este script passa um GlideRecord (como um incidente) e processa todas as soluções para o GlideRecord, retornando os valores de cada uma.

    /* 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())
    });

    Saída (previsão de grupo de atribuição):

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

    Saída (previsão de categoria):

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

    MLPredictor - getPredictedValue(solução de objeto, resultado de objeto)

    Obtém o valor previsto para uma solução especificada com base no resultado da previsão especificado.

    Tabela 10. Parâmetros
    Nome Tipo Descrição
    solução Objeto Solução da qual obter o valor previsto.
    resultado Objeto Resultados da previsão para a solução especificada (var result = solution.predict(now_GR)).
    Tabela 11. Retorna
    Tipo Descrição
    Cadeia de caracteres Valor previsto para a solução especificada com base no resultado especificado da previsão.
    Nulo Retorna nulo se a confiança de previsão não atender aos limites.

    MLPredictor - getPredictions(GlideRecord now_GR, Solução de objeto, Opções de objeto)

    Obtém previsões para uma solução especificada.

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    now_GR GlideRecord GlideRecord a ser previsto.
    solução Objeto Objeto de solução a ser executado.
    opções Objeto Par de valores de chave de objeto JSON opcional com as seguintes propriedades:
    • opções.top_n: se fornecido, retorna resultados até o número esperado de previsões, caso contrário, o padrão é lido na propriedade do sistema glide.platform_ml.max_num_predictions.
    • opções.apply_threshold: verifica o valor do limite (limite de solução para semelhança, limite de nível de classe para classificação) para a solução e o aplica ao conjunto de resultados. O valor padrão é verdadeiro.
    Tabela 13. Retorna
    Tipo Descrição
    Matriz Matriz de objetos de resultado previsto

    O exemplo a seguir chama uma solução especificada e executa previsões sobre ela.

    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(solução de objeto)

    Identifica se um objeto de solução é um tipo de classificação.

    Tabela 14. Parâmetros
    Nome Tipo Descrição
    solução Objeto Nome da solução de ML.
    Tabela 15. Retorna
    Tipo Descrição
    Booliano Retorna verdadeiro se a solução de entrada for um tipo de classificação; caso contrário, retorna falso.
    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(solução de objeto)

    Identifica se um objeto de solução é um tipo de semelhança.

    Tabela 16. Parâmetros
    Nome Tipo Descrição
    solução Objeto Nome da solução de ML; por exemplo, ml_incident_categorization.
    Tabela 17. Retorna
    Tipo Descrição
    Booliano Retorna verdadeiro se a solução de entrada for um tipo de semelhança; caso contrário, retorna falso.

    MLPredictor - resultado.confiança()

    Obtém a confiança do valor previsto.

    Tabela 18. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 19. Retorna
    Tipo Descrição
    Cadeia de caracteres A precisão estimada da previsão como uma porcentagem. Por exemplo, 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 - result.predictedValue()

    Obtém o valor previsto do objeto de resultado MLPredictor.

    Tabela 20. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 21. Retorna
    Tipo Descrição
    Cadeia de caracteres Valor previsto do objeto de resultado.
    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 - result.predictedValueSysId()

    Obtém o sys_id do valor previsto.

    Tabela 22. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 23. Retorna
    Tipo Descrição
    Cadeia de caracteres sys_id do valor previsto.
    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, motivo da cadeia de caracteres)

    Define valores de resultado de previsão final para um GlideRecord especificado com um motivo opcionalmente especificado.

    Tabela 24. Parâmetros
    Nome Tipo Descrição
    now_GR GlideRecord GlideRecord no qual os valores do resultado da previsão final serão definidos.
    motivo Cadeia de caracteres Opcional. Motivo para aplicar resultados.
    Tabela 25. Retorna
    Tipo Descrição
    vazio

    No exemplo a seguir, o método recordFinalValuesInPredictionResults() é chamado quando o incidente é encerrado.

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

    MLPredictor - solution.getCapability()

    Obtém as informações de capacidade de uma solução treinada.

    Tabela 26. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 27. Retorna
    Tipo Descrição
    Cadeia de caracteres ID de definição e versão da solução treinada, mensagem de erro caso contrário

    MLPredictor - solution.getName()

    Obtém o nome da solução usada para previsão.

    Tabela 28. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 29. Retorna
    Tipo Descrição
    Cadeia de caracteres O nome da solução a ser usada para previsões; por exemplo, ml_incident_categorization

    MLPredictor - solution.getPredictedField()

    Obtém o valor previsto de uma solução.

    Tabela 30. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 31. Retorna
    Tipo Descrição
    Cadeia de caracteres Valor do campo de saída previsto de uma solução
    /* 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(cadeia de caracteres className)

    Obtém o limite da solução.

    O limite representa uma porcentagem que reflete a precisão mínima da previsão.

    Tabela 32. Parâmetros
    Nome Tipo Descrição
    className Cadeia de caracteres Um valor categórico especificado do campo de saída da solução
    Tabela 33. Retorna
    Tipo Descrição
    Número Valor do limite representado como uma porcentagem entre 0 e 100.

    MLPredictor - solution.getVersion()

    Obtém a versão da solução ativa.

    Tabela 34. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 35. Retorna
    Tipo Descrição
    Cadeia de caracteres Versão da solução ativa

    MLPredictor – solution.isActive()

    Determina se a solução especificada está ativa.

    Tabela 36. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 37. Retorna
    Tipo Descrição
    Booliano Verdadeiro se a solução estiver ativa, caso contrário, falso

    MLPredictor - solution.predict(GlideRecord now_GR, Limite de objeto)

    Obtém resultados de previsão de solução como um objeto de saída.

    Tabela 38. Parâmetros
    Nome Tipo Descrição
    now_GR GlideRecord GlideRecord da tabela de entrada da solução
    limite Objeto Valor limite (limite de nível de solução para semelhança, limite de nível de classe para classificação)
    Tabela 39. Retorna
    Tipo Descrição
    Objeto Resultado da previsão da solução especificada (var result = 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, Objeto topN)

    Retorna uma lista de objetos de resultado até o número esperado de previsões. Número máximo de 1000 previsões.

    Tabela 40. Parâmetros
    Nome Tipo Descrição
    now_GR GlideRecord GlideRecord da solução
    topN Objeto Número esperado de previsões, qualquer número acima de 1.000 retorna 1.000 resultados
    Tabela 41. Retorna
    Tipo Descrição
    Matriz Lista de objetos de resultado em uma matriz, incluindo GlideRecord, limite, ID do sistema e número esperado de previsões (objeto 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 [];
    	}