インシデントハンドリング研修でGPT-4を活用する

MIXI DevRel Team
MIXI DEVELOPERS
Published in
Jun 13, 2023

--

セキュリティ室の軽部です。

今回は話題のChatGPTでも利用されているGPT-4を、私が担当している新卒社員向けのインシデントハンドリング研修で活用してみましたのでそちらについてご紹介できればと思います。

私はAI活用のためのAzure OpenAI Serviceの検証などの業務も併行して進めており、その一環として今回はAzure OpenAI Serviceを使ってみました。

インシデントハンドリング研修とは?

研修としては珍しいものだと思いますので、まずはインシデントハンドリング研修について簡単にご紹介したいと思います。

この研修は全職種向けの研修となってまして、

  • MIXI GROUPでセキュリティインシデントが起きた時のフローを知ってもらう
  • インシデントが起きた際の対応力を身につけてもらう

という目的で行なっています。

午前中はMIXIのCSIRTであるmixirtが行っている対応を例に約1時間の講義を行います。
午後からは、実際にセキュリティインシデントの対応を体験するグループワーク形式のハンズオンを行い、理解を深めてもらいます。

(講義資料の一部抜粋)

ハンズオンについて

講義でセキュリティインシデント対応の説明をした後、ハンズオンでは実際にインシデント対応の体験をしてもらいます。

このハンズオンでは、MIXI GROUPの仮想サービスでセキュリティインシデントが発生したという想定の下、進行します。
4~5人のグループに分かれ、サービスに新たにJoinしたインシデントハンドリング担当者として、インシデント解決に向けたアクションを起こしてもらいます。
(実際にはサービスの有識者が担当することが多いため、珍しいケースですが)

このハンズオンではリアルの時間と連動しており、時間が進むにつれユーザーからのお問い合わせが増えたり、ハンドリング担当者の判断や他の担当者とのやり取りによって状況が変化していきます。

例えばあるチームは、被害拡大防止のためサービスを停止したり、また別のあるチームはサービスを停止せずに個別のユーザー対応で進めたりと、チームによって状況が様々になります。

そのため、講師側にも予想外の展開をアドリブで対応する、というかなり歯応えのあるものとなっております。

ハンズオンの各担当者

ハンズオンでは、仮想サービスの各種メンバー(CSやエンジニア、企画など)や、mixirt(CSIRT)、法務などの担当者が存在しますのでここで紹介しておきます。

これらの担当者とSlack上でやりとりしてもらって情報を集め、最終的にインシデントを解決に導いていきます。

そしてここからが本題になりますが、去年まではこの役割は全て講師陣がやっていたところ、一部をGPT-4にお願いすることにしました。
これにより講師側の負担を軽減して、シナリオの進行や対応のアドバイスなどにより注力し、受講者の体験をより良いものにするという目的があります。

GPT-4を使ったSlackbot

先ほどの担当者の一部についてAzure OpenAI SercieのAPIを利用したSlackbotに置き換えています。
このBotはいくつか機能を持っていますが、今回はその中でハンズオンで特に重要だった以下の機能についてご紹介したいと思います。

  • 担当に応じた知識を持っている
  • 時間とともに回答が変化する
  • ご機嫌ゲージがある

担当に応じた知識を持っている

単純にGPT-4のAPIを叩くだけではなく、それぞれ担当ごとのBotを作成し役割ごとに知識やデータを持たせてやり取りができるようになっています。

例えばCSのBotはユーザーのお問い合わせ情報を持っていたり、ユーザー対応についての知識を持っているのでそれらの回答ができます。

一方企画のBotだとイベント情報やサービス全体の仕様について詳しく、より詳細な情報を回答できます。

※ この公式サイトは実際に作成しており、うまく聞き出して発見できればインシデント解決のヒントがあるようになっています!

役割から外れた質問をすると、このように断られてしまいます。

時間とともに回答が変化する

このハンズオンでは時間とともにユーザーからのお問い合わせなどの情報が増えていきBotにもお問い合わせを認識させる必要があります。
そのデータについては管理画面からBotにデータを追加することで実現しています。

先ほどのCSとのやりとりから元々のお問い合わせデータは2件でしたが、
管理画面から新規のお問い合わせデータを追加してみます。

↓↓↓↓

そうすると、以下のようにCSのBotが追加のお問い合わせを回答をしてくれるようになります。

CS以外にもエンジニアや企画用のデータも存在し、時間経過や各種やりとりを見ながらデータを追加して回答をリアルタイムで変更するようにしています。

ご機嫌ゲージがある

それぞれの担当者にはご機嫌ゲージ(0~100)という機能も実装しており、
質問攻めにしたりすると段々不機嫌になっていき

  • 口調に不機嫌さが現れる
  • 回答が遅くなる
  • 時間経過で回復する

といった隠し機能があったりします。
これは実際に人間相手にやりとりをするときにもありコミュニケーションを取る上で割と重要なので採用してみました。
以下は企画に対しての不機嫌さが現れた例です。(企画のご機嫌ゲージが9なのでだいぶ不機嫌)

※ このキャプチャはテスト用なのですぐ回答がきていますが、機嫌が悪いと数分待たされたりします

管理画面

さきほどデータを追加する説明で管理画面の話が出てきたので軽く紹介しておきます。

この管理画面はハンズオンを円滑に進めるために講師陣向けに用意したものとなっています。
Slackbotにデータを追加する以外にも、ハンズオンスケジュールの管理機能や、Slackのログからチームごとの進捗具合をGPT-4にサマリしてもらったり、次に何をすべきかを提案する機能なども実装しています。

管理画面からチームごと(Slackチャンネルごと)のやり取りを見ることもできます。

アーキテクチャ

簡単ですが使用した技術スタックについても紹介いたします。
今回は検証〜実装の時間が少なかったこともあり、単にGCEでサーバー/フロント/SlackbotをDocker Composeから起動するというシンプルな構成となっています。

インフラ: Compute Engine / Identity-Aware Proxy / Azure OpenAI Service
Slackbot: Go
管理画面(サーバー): Go / Echo
管理画面(フロント): Next.js / TypeScript
公式サイト(サーバー/フロント): Ruby on Rails

さいごに

昨年までは講師陣がCSやエンジニアを含めて全ての役を担当していてかなり大変でしたが、今年はGPT-4に一部の役割をお願いすることで、進行の様子を把握がしやすくなったり、講師陣に余裕が出来るようになったため、適切なタイミングで進行のアドバイスの介入が出来たりとハンズオン全体で大幅な改善ができたと感じています。

また、今回は時間がなくてあまり機能を実装できませんでしたが、今後は能動的にBotからも会話出来るようにするなどよりリアルなやり取りを演出させたりなども検討していきたいと思います!

それでは!

--

--