ユースケース: チャットボットによるディスク問題の改善
この使用ケースでは、NexthinkのAPI機能とチャットボットソリューションを統合して、ディスク関連の問題を修正するための手順を詳述します。
このドキュメントには、問題の解決に不可欠な一般的なチャットボットタスクのためのNQL例を示しています。
従業員にデバイスの問題に関する基本的なトラブルシューティングを提供する。
従業員デバイスに関するNexthinkデータを活用して基本的なデバイス情報を取得する。
ディスクの問題を解決するための修正を開始する。
ステップ1 - API技術を使用してディスク問題の解決のためのユーザーとチャットボットの対話を設計する
従業員とチャットボットのインタラクションにおける標準化された手順を設計し、各ステップで使用するAPI技術を定義してください。
チャットボットのフローを理解するためにNexthink REST APIを使用したチャットボットの統合ドキュメントを参照してください。
次の表は、この使用ケースのために設計された対話のステップを示しています。
通信の認証
API資格情報を設定し、APIを通じてトークンを収集します。
デバイスの識別
チャットボットがユーザー名に基づいてデバイスを識別できるようにNQL APIを使用します。 または、データエクスポーターを使用します。
ユーザーデバイスの診断
デバイスのパフォーマンスデータとGet Startup ImpactおよびGet Battery Statusリモートアクションの出力を取得するためにNQL API(またはデータエクスポーター)を使用します。
問題の修正
リモートアクションAPIを使用して、ユーザーのデバイスでDisk Cleanupリモートアクションをトリガーします。
修正のフォローアップ
NQL APIを使用して修正のステータスと詳細を取得し、修正結果をユーザーに通知します。
技術の選択は、現在のNexthink機能の使用方法やライセンスで利用可能な制限によって決まります。 Nexthink Infinityの制限と限界の概要のドキュメントページを参照して、さらに詳しい情報を含むAPIの制限について確認してください。
ステップ2 - APIを介したチャットボット統合をサポートするためにNexthinkコンテンツを設定する
NexthinkウェブインターフェイスでAPI機能を設定します。 Nexthinkは、各機能が依存関係があるため、リストされた順序に従うことを推奨しています。 それでも、あなたの好みに応じてさまざまなソリューション間をナビゲートする柔軟性があります。
データ収集リモートアクションの設定
Nexthinkライブラリから次のリモートアクションをインストールします。
スタートアップのインパクトを取得
Get Battery Statusです。
実行を毎日行うようにスケジュールします。 詳細については、リモートアクションの管理を参照してください。
このステップを完了すると、次のステップで使用するためのリモートアクションのNQL IDを保存します。
NQL ID:
get_startup_impact_windowsget_battery_status
修正リモートアクションの設定
NexthinkライブラリからDisk Cleanupリモートアクションをインストールします。 すでにインストール済みの場合は、それをコピーして以下のように設定します。
リモートアクショントリガーとしてAPIを選択します。
チャットボットの要件に応じたデフォルトの入力パラメータの値を設定します。 Disk Cleanupリモートアクションの入力パラメータの表を参照してください。
Disk Cleanupリモートアクションの入力パラメータ
DiskCleanupCampaignId
キャンペーンを表示する場合は、ライブラリキャンペーンのdisk_cleanup_invokeを使用します。
キャンペーン確認ポップアップを表示しない場合は、値を00000000-0000-0000-0000-000000000000に設定します。
CleanupCompletedCampaignId
キャンペーンを表示する場合は、ライブラリキャンペーンのdisk_cleanup_completedを使用します。
キャンペーン通知ポップアップを表示しない場合は、値を00000000-0000-0000-0000-000000000000に設定します。
RemoveFilesNotModifiedInDays
ライブラリデフォルト値 (7)
MaximumDelayInSeconds
ライブラリデフォルト値 (30)
CleanupLevel
クリーンアップレベル、LightまたはDeepを選択します。
このフィールドは、キャンペーンを使用しないことを選択し、従業員がクリーンアップレベルを選択する場合にのみ機能します。 それ以外の場合は、従業員の選択が優先されます。
このステップを完了すると、次のステップで使用するためのリモートアクションのNQL IDを保存します。
NQL ID: disk_cleanup
NQL APIクエリの作成
設計されたシナリオに従って、3つのNQL APIクエリを作成する必要があります。
ユーザーの
usernameに基づいてユーザーデバイスを取得する(ステージ1:デバイスの識別)。現在のトピックのために診断を行うためのデバイスデータを取得する(ステージ2:デバイスの診断)。
リモートアクションのステータスと結果を取得する(ステージ4:修正後のフォローアップ)。
各NQL APIクエリの詳細を参照してください。
ユーザー名に基づいてユーザーデバイスを取得する
クエリID: #get_device_basic_infos
NQLクエリ:
フィールド
collector.uidはシステムが後の対話でリモートアクションをトリガーするために使用するキーです。usernameに基づいて一致します。 代替アプローチも利用可能です。詳細はPre-builtを参照してください。
現在のトピックのために診断を行うためのデバイスデータを取得する
クエリID: #diagnose_device_bad_health
NQLクエリ:
このクエリには、チャットボットが前段の対話ステップで取得するdevice_nameパラメータが含まれています。
この例では、次の3つのデータポイントを収集します。
free_spaceはデフォルトの指標です。高いスタートアップインパクト (
HighImpactCount) を持つアプリケーションの確認には、Nexthinkライブラリからのリモートアクションスタートアップのインパクトを取得が必要です。バッテリーの健康状態 (
BatteryHealth) を確認するには、Nexthinkライブラリからのリモートアクションバッテリーステータスを取得が必要です。
詳細は、データ収集リモートアクションの設定セクションを参照してください。
リモートアクションがスケジュールされていない、またはデバイスでまだ実行されていない場合、対応する列は空になります。
リモートアクションのステータスと結果を取得する
クエリID: #get_remote_action_result
NQLクエリ:
このクエリには、チャットボットがリモートアクションAPI呼び出しの前段の対話ステップで取得するrequest_idパラメータが含まれています。
同一の汎用クエリを設定済みのどのリモートアクションにも使用できます。
Nexthinkは、APIでリモートアクションをトリガーしてから1分以降にリモートアクションの結果を取得する呼び出しを行うことをお勧めします。
このステップを完了すると、次のステップで使用するためのすべてのNQL APIクエリのNQL IDを保存します。
NQL ID:
#get_device_basic_infos
#diagnose_device_bad_health
#get_remote_action_result
API資格情報を設定する
NexthinkのウェブインターフェイスでAPI資格情報を作成して、Nexthinkとチャットボット間の安全な通信を確立します。 Permissionsセクションから、Remote Actions APIとNQL APIを選択してください。 詳細については、API認証情報を参照してください。
このステップを完了したら、Nexthinkウェブインターフェイスの資格情報作成中に取得したクライアントIDおよびクライアントシークレットを保存します。
ステップ3 - チャットボットのサービス層内でAPI呼び出しを実装する
ユースケース: チャットボットによるディスク問題の改善のドキュメントを参照して、利用可能なプレ構築コンテンツを適応し、チャットボット統合ロジックの設定を加速します。
Nexthink内で必要なAPI機能をすべて構成したら、次にチャットボットのサービス層内でNexthink REST APIコールを実装してください。
次のステージは、ユーザーとチャットボットの対話設計を反映しています。
チャットボットの第一ステージ:通信の認証
以下のAPI呼び出しを実行する前に、有効な認証トークンを取得する必要があります。 Nexthink開発者のドキュメントを参照し、生成したAPI資格情報を使用して有効なOAuthトークンを取得する方法を確認してください。
チャットボットの第2ステージ:デバイスの識別
従業員(ユーザー) 私はデバイスに問題があります
デバイスを識別するために、前に作成した#get_device_basic_infos NQL APIクエリを使用します(参照:ユーザー名に基づいてユーザーデバイスを取得する)。
チャットボットプラットフォームはAPI呼び出し間でセッションコンテキストを維持できる必要があります。 たとえば、このステップで取得したデバイス識別子は、後のステージである診断、修正、修正確認で保存して再利用する必要があります。
例としてのAPI応答
ステータス200
注意:
ステータスコードが200以外の場合、リクエストが失敗したか、制限に達した可能性があります。 詳細については、Nexthink開発者のドキュメントを参照してください。
返されたリストが空の場合、ユーザーは指定された期間(この例では
過去7日間)内にデバイスをアクティブに使用していないことを意味します。 従業員がデバイスを使い始めた時間とそのデータがNexthinkデータプラットフォームで利用可能になる時間には、小さな遅延があります。
チャットボットの第三ステージ:デバイスの診断
(チャットボット) あなたのデバイスの中から次のものを見つけましたが、どれに問題がありますか?
(1)ノートパソコン XN1231242-2142 (Lenovo)
(2)ノートパソコン XCX124231-1231 (Apple)
従業員(ユーザー) 1
デバイス情報を取得するためには、前に作成した#diagnose_device_bad_health NQL APIクエリを使用します(参照:現在のトピックのために診断を行うためのデバイスデータを取得する)。
前のステップからの入力
第二ステージ:デバイスの識別でデバイス名を取得しました。
例としてのAPI応答
ステータス200
collector.uidのフィールドはシステムがリモートアクションをトリガーするために後続のやり取りで使用するキーであることに注意してください。チャットボットは、会話の意思決定枝として三つの列を使用します。
もし
free_space_GB <= 6ならば ライブラリリモートアクションをトリガーして対策 ディスククリーンアップを実行します。もし
remote_action.get_startup_impact_windows.execution.outputs.HighImpactCount > 0ならば ライブラリリモートアクションを使用してスタートアップメニューからのアプリケーション無効化を実行し、remote_action.get_startup_impact_windows.execution.outputs.HighImpactApplicationsの値を用いて高影響のアプリケーションを無効化します。もし
remote_action.get_battery_status.execution.outputs.BatteryHealth <= 0.85ならば バッテリー交換が必要です: チャットボットによってITSMチケットを作成し、フォローアップを行います。
注意:
ステータスコードが200以外の場合、リクエストが失敗したか、またはレート制限に達しています。 詳しくは、 Nexthink 開発者プラットフォーム のドキュメントを参照してください。
システムによって返されるリストが空の場合、デバイスは見つかりませんでした。
診断フィールドのいずれかがnullまたは空の場合、情報は利用できません。 空の値の主な理由は次の通りです:
データプラットフォームフィールドにおいて、そのフィールドがプラットフォームでサポートされていません。 詳細については、NQLデータモデルドキュメントを参照してください。
リモートアクションフィールドにおいて、システムはまだリモートアクションを正常に実行していません。 リモートアクションのスケジュールと対象のNQLクエリ、そしてリモートアクションダッシュボードをチェックし、実行エラーの可能性を見つけましょう。
チャットボット 第四段階: 問題の是正
(チャットボット) ありがとうございます。あなたのデバイスには約2GBの空きディスクスペースしかないようです。
遅延を防ぐために不要なファイルをクリーンアップできます。
続行しますか?
従業員(ユーザー) はい
前のステップで設定したリモートアクションAPIを使用して、 ディスククリーンアップリモートアクションを実行し、問題を解決します(参照:修正リモートアクションの設定)。
リモートアクションAPIの応答には、実行ステータス(成功/失敗)と定義された出力が含まれます。 チャットボットはこの情報を使用して、修正が正しく適用されたのか、必要に応じてトラブルシューティングを続行するかを確認することができます。
前のステップからの入力
第3ステージ:デバイスの診断では、#diagnose_device_bad_health NQL API (またはデータエクスポート) を介して collector.uid を取得しました。
API応答の例
ステータス 200
成功したAPI呼び出しは、リモートアクションがエンドポイントが準備でき次第、実行されるようにスケジュールされたことを示しています。
返されたリクエストIDを使用して実行ステータスをフォローアップすることができます。
この呼び出しは非同期であるため、成功したAPI呼び出しがリモートアクションの実行開始や完了を示すわけではありません。
注意:
ステータスコードが200以外の場合、リクエストが失敗したか、またはレート制限に達しています。 詳しくは、Nexthink 開発者ポータル のドキュメントを参照してください。
チャットボット 第五段階: 修正のフォローアップ
(チャットボット) 修正を開始しました。 すぐに終了します。_
以前に作成した #get_remote_action_result NQL API クエリを使用してリモートアクションのステータスと結果を取得します。
(参照:リモートアクションのステータスと結果を取得する)。
NexthinkはAPIによってリモートアクションをトリガーした後、1分以内にリモートアクション結果を取得するための呼び出しを行うことを推奨しています。
前のステップからの入力
第四段階: 問題の是正 にて リモートアクションAPI 呼び出しを通じて request_id を取得しました。
API応答の例
ステータス 200
remote_action.execution.statusは現在の実行ステータスを示します。 主なステータスは次のとおりです:リモートアクションが正常に実行された際の
success。システムがまだ実行を完了していない場合の
in_progress。 様々なリモートアクションのステータスについて詳しくは、リモートアクション のドキュメントを参照してください。
remote_action.execution.status_detailsはトラブルシューティングに役立つリモートアクション実行の詳細を含みます。 設計上、従業員に直接見せることはありません。remote_action.execution.outputsは、リモートアクションの出力値を含むJSONマップです。 ディスククリーンアップリモートアクションでは、返される値は解放されたスペースの量(バイト単位)です。
注意:
ステータスコードが200以外の場合、リクエストが失敗したか、またはレート制限に達しています。 詳しくは、Nexthink 開発者ポータル のドキュメントを参照してください。
システムが空のリストを返した場合、システムはまだリモートアクションの実行を作成していません。 これは、APIをトリガーした時間の直後にAPIを呼び出した場合や、実行が24時間以上前である場合に発生します(クエリで指定された時間枠)。
会話の終了
このステップで取得したリモートアクションのステータスと出力を表示します。
(チャットボット) 完了しました - 1.3GBを解放しました。 他にご助力できることはありますか?_
関連トピック
Last updated
Was this helpful?