MLSolution - Global

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 18분
  • The MLSolution API provides methods for handling Predictive Intelligence predictions and retrieving solution objects for all capabilities: similarity, classification, and clustering).

    This API provides methods commonly used among all solution capabilities and methods unique to classification and clustering solutions.
    • Common methods used for all solution objects:
      • getCapability()
      • getVersion()
      • isActive()
      • predict()
    • Methods only used for classification and regression solutions:
      • applyPrediction()
    • Methods only used for clustering solutions:
      • getClusterAssignments()
      • getClusterForRecord()
      • getClusterInfo()

    The MLSolution API requires the Predictive Intelligence plugin (com.glide.platform_ml) and is provided within the sn_ml namespace.

    The methods in this object are instantiated using MLSolutionFactory.

    MLSolution - applyPrediction(GlideRecord now_GR)

    Gets the prediction result for a classification solution and applies it to the input GlideRecord if the confidence value is higher than the threshold.

    표 1. Parameters
    Name Type Description
    now_GR GlideRecord GlideRecord object containing values on which to run a prediction and apply the results.
    표 2. Returns
    Type Description
    Boolean

    Flag that indicates whether the prediction was applied:

    • true: Prediction applied
    • false: Prediction rejected
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_incident_categorization");
    
    var inputGR = new GlideRecord("incident");
    inputGR.get("0ef47232db801300864adfea5e961912");
    
    mlSolution.applyPrediction(inputGR);

    MLSolution - getCapability()

    Gets the capability information of a trained solution.

    표 3. Parameters
    Name Type Description
    None
    표 4. Returns
    Type Description
    String Type of trained solution.
    Possible values:
    • Similarity
    • Classification
    • Clustering
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_x_global_clustering");
    
    // configure optional parameters
    var options = {};
    options.group_by = 'network';
    options.cluster_id = 1;
    options.top_n_per_cluster = 3;
    
    if (mlSolution.getCapability() == 'clustering') {
    	var results = mlSolution.getClusterAssignments(options);
    	// pretty print JSON results
    	gs.print(JSON.stringify(JSON.parse(results), null, 2));
    }

    MLSolution - getClusterAssignments(Object options)

    Gets assignments for a clustering solution.

    표 5. Parameters
    Name Type Description
    options Object Optional. Values to use to narrow down the returned results by group and level within a clustering solution.

    Default: Return cluster memberships for all clusters.

    options.group_by String Optional. Identifies the segmentation field for which to retrieve cluster memberships, for example, assignment_group.

    This field provides the same grouping as options provided in the Use Group By check box in the Clustering Definition form. The information provided varies based on the table selected in the Table field. For more information, see Create and train a clustering solution .

    options.cluster_id String Optional. Cluster ID of a trained solution in the Cluster Summary [ml_cluster_summary] table.
    options.top_n_per_cluster Number Number of top results to receive for each cluster.
    표 6. Returns
    Type Description
    Object JSON array containing cluster information in increasing order by cluster_id:
    • cluster_id: String. Unique cluster number within a solution of clusters.
    • rec_display_id: String. Record type and number.
    • rec_sys_id: String. Record sys_id.
    • group_by: If grouped, name of the segmentation field associated with this cluster.
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_x_global_clustering");
    
    // configure optional parameters
    var options = {};
    options.group_by = 'network';
    options.cluster_id = '1';
    // returns top 3 results per cluster
    options.top_n_per_cluster = 3;
    
    var results = mlSolution.getClusterAssignments(options);
    
    

    Output:

    [{"cluster_id":"1","rec_display_id":"Incident: INC0014483","rec_sys_id":"04e33e7adb401300864adfea5e961900","group_by":"network"},
     {"cluster_id":"1","rec_display_id":"Incident: INC0011133","rec_sys_id":"5bd23af2db401300864adfea5e96194d","group_by":"network"}]

    MLSolution - getClusterForRecord(GlideRecord now_GR)

    Gets the cluster information for a clustering solution.

    표 7. Parameters
    Name Type Description
    now_GR GlideRecord Name of the input GlideRecord.
    표 8. Returns
    Type Description
    String The cluster_id from the Cluster Summary [ml_cluster_summary] table if the record belongs to a cluster. Empty string returns if the record does not belong to a cluster.
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("solution_name");
    var now_GR = new GlideRecord('incident');
    if (mlSolution.getCapability() == 'clustering') {
    var clusterId = mlSolution.getClusterForRecord(now_GR);
    }

    MLSolution - getClusterInfo(Object options)

    Gets information for a specified clustering solution.

    표 9. Parameters
    Name Type Description
    options Object Optional. Narrows down the returned results by group and level within a clustering solution.

    Default: Return cluster memberships for all clusters.

    options.group_by String Optional. Identifies the segmentation field for which to retrieve cluster memberships, for example, assignment_group.

    This field provides the same grouping as options provided in the Use Group By check box in the Clustering Definition form. The information provided varies based on the table selected in the Table field. For more information, see Create and train a clustering solution .

    options.cluster_id String Optional. Cluster ID of a trained solution in the Cluster Summary [ml_cluster_summary] table.
    표 10. Returns
    Type Description
    Object JSON array containing cluster information in increasing order by cluster_id:
    • cluster_id: String. Unique cluster number within a solution of clusters.
    • cluster_quality: String. Number from 0 to 100. Higher numbers indicate higher cluster density.
    • cluster_size: String. Number of records in a cluster.
    • group_by: If grouped, name of the segmentation field associated with this cluster.
    • cluster_concept: String. Set of words that describe the cluster in descending order of frequency.
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_x_global_clustering");
    
    // configure optional parameters
    var options = {};
    options.group_by = 'network';
    options.cluster_id = 1;
    
    var results = mlSolution.getClusterInfo(options);

    Output:

    [ {"cluster_id":"1","cluster_quality":"56.6","cluster_size":"46","group_by":"SLA","cluster_concept":"issue occur capacity ..."},
      {"cluster_id":"2","cluster_quality":"55.47","cluster_size":"75","group_by":"SLA","cluster_concept":"clone instance request ..."},
    ... ]

    MLSolution - getVersion()

    Gets the version of the active solution.

    표 11. Parameters
    Name Type Description
    None
    표 12. Returns
    Type Description
    String Version of the active solution.
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("solution_name");
    
    var solutionVersion = mlSolution.getVersion();

    MLSolution - isActive()

    Determines if a solution is active.

    표 13. Parameters
    Name Type Description
    None
    표 14. Returns
    Type Description
    Boolean Flag that indicates whether the solution is active.
    • true: Solution active
    • false: Solution inactive
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("solution_name");
    
    var isActive = mlSolution.isActive();

    MLSolution - predict(Object input, Object options)

    Gets the prediction results from the prediction server given a GlideRecord or an array of key-value pairs.

    You can use this method to call prediction with multiple input records because GlideRecord is an iterator.

    표 15. Parameters
    Name Type Description
    input Object GlideRecord or array of JSON objects containing field names and values as key-value pairs.
    options Object Optional. JSON key-value pair with the following properties:
    • top_n: Number. If provided, returns the top results, up to the specified number of predictions.
    • apply_threshold: Boolean. Checks the threshold value for the solution and applies it to the result set. The threshold value is solution threshold for similarity or class-level threshold for classification. Default value is true.
    • custom_results_filter: String. Similarity solutions only. Specifies the allowed set from which results are returned using an encoded query.
    표 16. Returns
    Type Description
    Object JSON object containing the prediction results sorted by sys_id or record_number.
    • predictedValue: String. Value representing the prediction result.
    • predictedSysId: String. The sys_id of the predicted value. Results can be from any table on which information is being predicted.
    • confidence: Number. Value of the confidence associated with the prediction. For example, 53.84.
    • threshold: Number. Value of the configured threshold associated with the prediction.
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_incident_categorization");
    
    // single GlideRecord input
    var input = new GlideRecord("incident");
    input.get("0ef47232db801300864adfea5e961912");
    
    // configure optional parameters
    var options = {};
    options.top_n = 3;
    options.apply_threshold = false;
    
    var results = mlSolution.predict(input, options);
    // pretty print JSON results
    gs.print(JSON.stringify(JSON.parse(results), null, 2));
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_incident_categorization");
    
    // multiple GlideRecord input
    var input = new GlideRecord("incident");
    input.addQuery("sys_created_onONLast week@javascript:gs.beginningOfLastWeek()@javascript:gs.endOfLastWeek()");
    input.query();
    
    // configure optional parameters
    var options = {};
    options.top_n = 3;
    options.apply_threshold = false;
    
    var results = mlSolution.predict(input, options);
    // pretty print JSON results
    gs.print(JSON.stringify(JSON.parse(results), null, 2));

    Output:

    {
        input_gr_sys_id1: [
                    {
                        predictedValue : xxx,
                        predictedSysId : xx0,
                        confidence : xxx,
                        threshold : xxx
    
                    }, 
                    {
                        predictedValue : yyy,
                        predictedSysId : xx1,
                        confidence : xxx,
                        threshold : xxx
                    }
            ],
        input_gr_sys_id2 : [
                    {
                        predictedValue : xxx,
                        predictedSysId : xx0,
                        confidence : xxx,
                        threshold : xxx
    
                    }, 
                ...
            ]
    }
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_incident_categorization");
    
    // key-value pairs input
    var input = [{"short_description":"my email is not working"}, 
    			{short_description:"need help with password"}];
    
    // configure optional parameters
    var options = {};
    options.top_n = 3;
    options.apply_threshold = false;
    
    var results = mlSolution.predict(input, options);
    // pretty print JSON results
    gs.print(JSON.stringify(JSON.parse(results), null, 2));