MLSolution - グローバル

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:14分
  • MLSolution API は、予測インテリジェンス予測を処理し、すべての機能 (類似性、分類、クラスタリング) のソリューションオブジェクトを取得するためのメソッドを提供します。

    この API は、すべてのソリューション機能の中で一般的に使用されるメソッドと、分類およびクラスタリングソリューションに固有のメソッドを提供します。
    • すべてのソリューションオブジェクトに使用される一般的なメソッド:
      • getCapability()
      • getVersion()
      • isActive()
      • 予測()
    • 分類および回帰ソリューションにのみ使用される方法:
      • applyPrediction()
    • ソリューションのクラスタリングにのみ使用される方法:
      • getClusterAssignments()
      • getClusterForRecord()
      • getClusterInfo()

    MLSolution API には 予測インテリジェンス プラグイン (com.glide.platform_ml) が必要で、 sn_ml 名前空間内で提供されます。

    このオブジェクトのメソッドは、 MLSolutionFactory を使用してインスタンス化されます。

    MLSolution - applyPrediction(GlideRecord now_GR)

    分類ソリューションの予測結果を取得し、信頼性値がしきい値よりも高い場合は入力 GlideRecord に適用します。

    表 : 1. パラメーター
    名前 タイプ 説明
    now_GR GlideRecord 予測を実行し、結果を適用する値を含む GlideRecord オブジェクト。
    表 : 2. 戻り値
    タイプ 説明
    ブール

    予測が適用されたかどうかを示すフラグ:

    • true:予測が適用されました
    • false:予測は却下されました
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("ml_incident_categorization");
    
    var inputGR = new GlideRecord("incident");
    inputGR.get("0ef47232db801300864adfea5e961912");
    
    mlSolution.applyPrediction(inputGR);

    MLSolution:getCapability()

    トレーニング済みソリューションの機能情報を取得します。

    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 戻り値
    タイプ 説明
    文字列 トレーニング済みソリューションのタイプ。
    可能な値:
    • 類似性
    • 分類
    • クラスタリング
    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 (オブジェクトオプション)

    クラスタリングソリューションのアサインを取得します。

    表 : 5. パラメーター
    名前 タイプ 説明
    オプション オブジェクト オプション。クラスタリングソリューション内でグループおよびレベル別に返される結果を絞り込むために使用する値。

    デフォルト:すべてのクラスターのクラスターメンバーシップを返します。

    options.group_by 文字列 オプション。クラスターメンバーシップを取得するセグメンテーションフィールド (assignment_group など) を識別します。

    このフィールドは、クラスターリング定義フォームの [グループを使用 (Use Group By)] チェックボックスで提供されるオプションと同じグループ化を提供します。提供される情報は、[ テーブル] フィールドで選択したテーブルによって異なります。詳細については、「 クラスタリングソリューションの作成とトレーニング 」を参照してください。

    options.cluster_id 文字列 オプション。クラスターサマリー [ml_cluster_summary] テーブル内のトレーニング済みソリューションのクラスター ID。
    options.top_n_per_cluster 番号 各クラスターについて受信する上位結果の数。
    表 : 6. 戻り値
    タイプ 説明
    オブジェクト cluster_id別の昇順のクラスター情報を含む JSON アレイ:
    • cluster_id:文字列。クラスターのソリューション内の一意のクラスター番号。
    • rec_display_id:文字列。レコードのタイプと番号。
    • rec_sys_id:文字列。レコードsys_id。
    • group_by: グループ化されている場合、このクラスターに関連付けられているセグメンテーションフィールドの名前。
    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);
    
    

    出力:

    [{"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)

    クラスタリングソリューションのクラスター情報を取得します。

    表 : 7. パラメーター
    名前 タイプ 説明
    now_GR GlideRecord 入力 GlideRecord の名前。
    表 : 8. 戻り値
    タイプ 説明
    文字列 レコードがクラスターに属している場合のクラスターサマリー [ml_cluster_summary] テーブルからのcluster_id。レコードがクラスターに属していない場合は空の文字列が返されます。
    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 (オブジェクトオプション)

    指定されたクラスタリングソリューションの情報を取得しますに展開したカスタムモバイルアプリケーションを使用して管理しました。

    表 : 9. パラメーター
    名前 タイプ 説明
    オプション オブジェクト オプション。クラスタリングソリューション内のグループとレベル別に返される結果を絞り込みます。

    デフォルト:すべてのクラスターのクラスターメンバーシップを返します。

    options.group_by 文字列 オプション。クラスターメンバーシップを取得するセグメンテーションフィールド (assignment_group など) を識別します。

    このフィールドは、クラスターリング定義フォームの [グループを使用 (Use Group By)] チェックボックスで提供されるオプションと同じグループ化を提供します。提供される情報は、[ テーブル] フィールドで選択したテーブルによって異なります。詳細については、「 クラスタリングソリューションの作成とトレーニング 」を参照してください。

    options.cluster_id 文字列 オプション。クラスターサマリー [ml_cluster_summary] テーブル内のトレーニング済みソリューションのクラスター ID。
    表 : 10. 戻り値
    タイプ 説明
    オブジェクト cluster_id別の昇順のクラスター情報を含む JSON アレイ:
    • cluster_id:文字列。クラスターのソリューション内の一意のクラスター番号。
    • cluster_quality:文字列。0 〜 100 の数値。数値が大きいほど、クラスター密度が高いことを示します。
    • cluster_size:文字列。クラスター内のレコードの数。
    • group_by: グループ化されている場合、このクラスターに関連付けられているセグメンテーションフィールドの名前。
    • cluster_concept:文字列。クラスターを頻度の降順で説明する単語のセット。
    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);

    出力:

    [ {"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()

    アクティブなソリューションのバージョンを取得します。

    表 : 11. パラメーター
    名前 タイプ 説明
    なし
    表 : 12. 戻り値
    タイプ 説明
    文字列 アクティブなソリューションのバージョン。
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("solution_name");
    
    var solutionVersion = mlSolution.getVersion();

    MLSolution - isActive()

    ソリューションがアクティブかどうかを判別します。

    表 : 13. パラメーター
    名前 タイプ 説明
    なし
    表 : 14. 戻り値
    タイプ 説明
    ブール ソリューションがアクティブかどうかを示すフラグ。
    • true:ソリューションがアクティブ
    • false:ソリューションが非アクティブ
    var mlSolution = sn_ml.MLSolutionFactory.getSolution("solution_name");
    
    var isActive = mlSolution.isActive();

    MLSolution - predict(オブジェクト入力, オブジェクトオプション)

    GlideRecord またはキーと値のペアのアレイを指定して、予測サーバーから予測結果を取得します。

    GlideRecord は反復子であるため、このメソッドを使用して複数の入力レコードで予測を呼び出すことができます。

    表 : 15. パラメーター
    名前 タイプ 説明
    入力 オブジェクト GlideRecord または、フィールド名と値をキーと値のペアとして含む JSON オブジェクトのアレイ。
    オプション オブジェクト オプション。次のプロパティを持つ JSON キーと値のペア:
    • top_n:番号。指定した場合、指定された数の予測まで、上位の結果を返します。
    • apply_threshold:ブーリアン。ソリューションのしきい値をチェックし、結果セットに適用します。しきい値は、類似性のソリューションしきい値または分類のクラスレベルしきい値です。デフォルト値は true です。
    • custom_results_filter:文字列。類似性ソリューションのみ。エンコードされたクエリを使用して結果が返される許容セットを指定します。
    表 : 16. 戻り値
    タイプ 説明
    オブジェクト sys_idまたはrecord_numberでソートされた予測結果を含む JSON オブジェクト。
    • predictedValue:文字列。予測結果を表す値。
    • predictedSysId:文字列。予測値のsys_id。結果は、情報が予測されている任意のテーブルから取得できます。
    • 信頼性:数値。予測に関連付けられた信頼度の値。例:53.84。
    • しきい値:数値。予測に関連付けられた設定済みしきい値の値。
    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));

    出力:

    {
        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));