Mistアドベントカレンダー2024 19日目担当のdokaです。
今回はMarvis App for TeamsとOpenAI API使って、普段の業務で利用しているMicrosoft Teams上でネットワークのトラブルシュートをしてみたいと思います。
ネットワークを日々運用管理しているIT部門の皆様の共通の課題として「人手が足りていない」、「問題解決に時間がかかりすぎている」といったテーマがよく挙げられます。
そのような課題に対して、Marvisが目指している最終的なゴールは24時間365日ネットワークを監視しているベテランのNWエンジニアのような存在を提供し、IT部門の皆様のNW運用をサポートすることです。今回は普段利用しているTeams内に頼れる存在がいるようなイメージの運用を目指して取り組んでみました。
今回はMarvis App for Teamsに合わせて、OpenAI APIを使ったカスタムAIボット(Marvis-Assist)を自作することで、Marvisが解析した問題の原因や推奨アクションに関する情報をさらにかみ砕いて、前提知識だったり、経験の浅いチームメンバーや非エンジニアのメンバーでも分かりやすい対応策などを提示してくれるようなものを実装しました。
OpenAIに関しては、2024年12月に問い合わせに対して「より長く考える」Chat GPTの o1モデルがリリースされ、その回答の精度の向上に驚いたので活用してみたいなと思った次第でしたが、残念ながらTeams AI Botではまだo1に対応させることができなかったので、今回は従来のGPT-4oモデルを利用しました。
通常のMarvisチャットボットはMistの管理画面で会話することができますが、今回はTeams上でMarvisと会話する機能を試していきます。
Marvis App for Teamsの詳細やインストール方法については下記リンクをご確認ください。
- Microsoft Teams向けMarvisアプリの概要 |ミスト |ジュニパーネットワークス
- Marvis アプリ in Microsoft Teams - セットアップ編 – ジュニパーネットワークス – 情報プラットフォーム
Marvis App for Teams 操作画面
普段業務で利用しているTeams上にMarvisが常駐するような形にになります。
ここからネットワークのトラブルシュートをすることができます。
トラブルシュート
トラブルシュートの際は管理画面のチャットと行うような形と同様に"troubleshoot"(tshoot), "unhappy users"といったような質問を入力するとトラブルシュート対象の端末の選択肢や、問題が発生していた時間、原因、推奨アクションなどをMarvisが教えてくれます。
また、端末の名前やMACアドレスをそのまま入力するとネットワーク上の端末の情報を検索して見つけることができます。端末の詳細や接続状況、接続イベントなどにいち早くアクセスしたいときに便利です。
不具合問い合わせがあったときなどに利用する"troubleshoot"の例
ここでは端末の名前を適当に入力するとMistで管理されているNWのデバイス(SRX)や接続されている端末(doka-X1-9GEN)の選択肢を提示してくれています。
また、特定の端末の不具合対応でなくとも"unhappy users"という入力をすることで問題のある端末を表示してくれるので、そこから同様にトラブルシュートが可能です。
この場合だと12/10にこの端末に関して受信電波強度が不足していたという問題と推奨の対応が表示されています。
問題の詳細に関するリンクをクリックすることで、Mist管理画面内に遷移することができ、問題の詳細を確認することができます。
Mist SLEのどの項目で問題が起きているか、どのVLAN, AP, SSIDで問題が起きていたのかといった情報を確認し、問題の切り分けすることができます。
OpenAI APIを活用したカスタムAI Bot: Marvis-Assistの作成
Marvisは問題の原因や推奨アクションを提示してくれますが、この情報をさらにかみ砕いて経験の浅いチームメンバーや非エンジニアのメンバーでも分かりやすい対応策などを提示してくれるようなMarvis-Assistボットを自作してローカルで動かしてみました。
Teamsでは会話画面でアプリケーションを利用することができ、開発者がカスタムアプリを作ることができる機能も提供されています。また、基本的なAIチャットボットのテンプレートが用意されているので、自分が欲しい機能を持っているカスタムAIチャットボットを作成することができます。
Teams AI Bot作成手順
- OpenAI APIを利用するための契約とAPI Keyの取得を行う
- Teams管理者画面で開発メンバーのカスタムアプリのアップロード許可設定をする
- 下記リンク先に従ってTeams AI Botのテンプレートを作成する。
- README.mdに従って設定を進める。
- src/skprompt.txtに動作してほしい要件を設定する。今回はこの要件自体もChatGPTに作成してもらいました。
カスタムAI Bot: Marvis-Assist 操作画面
最初に自作したチャットボットの自己紹介を聞いてみたところ、ちゃんとMarvisのアシスタントをするように認識しているようですね。
また、先ほどMarvisで検知された電波強度の問題についてより詳細な分析をしてもらいましょう。
経験の浅いチームメンバーや非エンジニアのメンバー向けに、さらにかみ砕かれた回答を得ることができました。
Wi-Fiの接続品質が信号強度に大きく依存するという前提や、APの数が少ない、配置が悪いといった基本的なポイントのほか、エンジニア向けにMistのSLEを確認したり、ログの確認をするような対応などを提示してくれました。
ローミングについても言及されていたので、私の家にはMist APが一台しか置いておらず、ローミングの問題は発生していないはずだと聞いてみたところ、初歩的な確認としてできるだけ家の中心にAPを配置するようにとの回答を得ることができました。
電波強度に関してサイトサーベイについても聞いてみたところ、詳細な実施方法を教えてくれました。
最後にお礼を言っておきました。
まとめ
Mist Marvisが目指している最終的なゴールである、ベテランのNWエンジニアのような存在というところ体験するために今回はMarvis App for TeamsとOpenAI APIを使った自作カスタムボットを試してみました。
日々のネットワークを管理運用している中で人手が足りていない、問題解決に多くの工数がかかってしまっているといった皆様も是非、Teamsでのトラブルシュート機能を使ってみてください。