MLPredictor - Global (descontinuado)

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. 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 Uso de 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 - applyPrediction(GlideRecord now_GR, soluções de matriz)

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

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

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

    (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 como esses resultados.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    now_GR GlideRecord Objeto GlideRecord que contém valores nos quais executar uma previsão e aplicar os resultados.
    solução Objeto Objeto de solução de classificação a ser executado.
    Tabela 4. Retorna
    Tipo Descrição
    Booliano Verdadeiro em caso de sucesso na previsão, caso contrário, erro.

    Para usar este modelo, copie a regra de negócios Previsão baseada em incidente (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 5. Parâmetros
    Nome Tipo Descrição
    solutionName Cadeia de caracteres Nome do registro ml_solution.
    Tabela 6. Retorna
    Tipo Descrição
    Objeto Objeto de solução para o solutionName especificado se a definição e a solução de 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 o resultado e as variáveis de 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 7. Parâmetros
    Nome Tipo Descrição
    now_GR GlideRecord GlideRecord do qual os objetos de solução ativos serão coletados.
    Tabela 8. Retorna
    Tipo Descrição
    Matriz Matriz de objetos de solução ativos associados à tabela para a qual se destina o registro especificado.

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

    /* 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 9. Parâmetros
    Nome Tipo Descrição
    solução Objeto Solução da qual obter o valor previsto.
    resultado Objeto Resultados do resultado da previsão para a solução especificada (var result = solution.predict(now_GR)).
    Tabela 10. Retorna
    Tipo Descrição
    Cadeia de caracteres Valor previsto para a solução especificada com base no resultado especificado da previsão.
    Nulo Retornará nulo se a confiança da 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 11. 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 chave-valor 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 será lido da 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 12. Retorna
    Tipo Descrição
    Matriz Matriz de objetos de resultado previstos

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

    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 13. Parâmetros
    Nome Tipo Descrição
    solução Objeto Nome da solução de ML.
    Tabela 14. Retorna
    Tipo Descrição
    Booliano Retorna verdadeiro se a solução de entrada for um tipo de classificação, caso contrário, retornará 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 15. Parâmetros
    Nome Tipo Descrição
    solução Objeto Nome da solução de ML; por exemplo, ml_incident_categorization.
    Tabela 16. Retorna
    Tipo Descrição
    Booliano Retorna verdadeiro se a solução de entrada for um tipo de semelhança, caso contrário, retornará falso.

    MLPredictor - MLPredictor()

    Instancia um novo objeto MLPredictor.

    Tabela 17. Parâmetros
    Nome Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como usar um objeto MLPredictor em uma regra de negócios 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 - 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 os valores de resultado de previsão final para um GlideRecord especificado com um motivo especificado opcionalmente.

    Tabela 24. Parâmetros
    Nome Tipo Descrição
    now_GR GlideRecord GlideRecord no qual definir os valores de resultado da previsão final.
    motivo Cadeia de caracteres Opcional. Motivo para aplicar os 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 recurso 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, caso contrário, mensagem de erro

    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 do objeto)

    Obtém resultados de previsão de solução como um objeto de resultado.

    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, Object topN)

    Retorna uma lista de objetos de resultado até o número esperado de previsões. Número máximo de 1.000 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 1000 retorna 1000 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 [];
    	}