見出し画像

ServiceNowチャットボット開発物語

インテージグループではServiceNowを用いてDX推進に取り組んでいます。
今回は先日社内でリリースされた、ServiceNowのチャットボット開発について語っていただきました!

はじめに

みなさん、はじめまして!グループビジネス推進本部システム三部第3グループの山下と申します。今年の4月に新卒として入社し、7月から今の部署に配属されました。先輩方のご指導のもと、日々成長できるよう努力しています。

今回はチャットボットの開発で起こった物語をみなさんにお伝えしたいと思います。ぜひ最後まで読んでみてください!

MyServiceNowのチャットボット

*1:MyServiceNowとは
情シス部門の業務DX化で作成した、問い合わせ・申請・各種アプリケーションの社内ポータルサイト


開発の経緯

始まりは2024年2月

「入社した人が情報を簡単に得られるようにせよ!」
というミッションのもと、私たちの部署内にチャットボットチームが結成され、プロジェクトがスタートしました。
今では、ホテルや通販サイトなど、あらゆるところでチャットボットがユーザーをサポートしています。チャットボットが便利なツールであることは認識していましたが、インテージグループのみなさんにとって本当に使いやすいものにするにはどうすればいいのか、「こんな感じで回答してくれたらいいな」と思いながら、そこからのスタートでした。

チャットボットの構想を練り始めた!

いざチャットボット開発にあたり、構想を考え始めました。プロジェクトメンバー全員そもそもServiceNowでチャットボットを作ったことがなかったので、ServiceNow社に相談しながら、さまざまな調査を進めていました。

あーでもないこうでもないと打合せを進める中、メンバーから1つ案が出ました。
「チャットボットに質問するとAIが回答を返してくれたら…超便利なチャットボットになるんじゃないか…!?」

すでに社内ナレッジをMyServiceNow(自社で使用しているWEBサイト)上に移行し終えていたので、これらのナレッジをAIに読ませて、ユーザーからの質問に回答するという内容でした。

「たしかに、そりゃ便利そうだ!でもできるのかそんなこと!?」

AI×チャットボットは確かに最近さまざまな企業が導入しているホットな内容ですが、ServiceNowのチャットボットでそれをやっている事例は探した限りありません。でもユーザーのためになるなら…と開発に着手しました。

ServiceNowにおけるチャットボット開発

チャットボットの仕組み

簡単にですが、ServiceNowにおけるチャットボット開発について触れておきます。
チャットボットは「トピック」という単位で管理されており、そのトピックの中で決められたフローが動きます。

チャットボットを動かす上で、いくつかのトピックがあり、ユーザーの質問や回答に対して適切なトピックに誘導していくことで、チャットボットが動きます。
トピックへの誘導方法としては、想定されるキーワードと質問をあらかじめ登録しておき、ユーザーからの質問に対してNLU(*2)による質問分類を行っています。

*2:NLUとは自然言語理解のことで、機械が人間の言語を解釈し理解することを可能にします。

NLUモデルのイメージ。質問をNLU君が判断して分類するのだ。かしこい。

チャットボットとChatGPTとの連携

今回の肝となるAI(LLM)との連携部分は、ServiceNowの機能の中にある「Generative AI Controller」を使用しています。
これは外部の生成AIであるChatGPTとServiceNowをつなぐ機能で、この中でChatGPTに対して日本語でプロンプトを渡しています。

実際の命令文の一部。日本語で命令文をそのまま書くのはLLMならでは!


難航したポイントその1-レスポンス

とにかくレスポンスが遅い!初期はGPT4モデルを使っており応答まで60秒以上かかりました。これじゃリリースできないどうしよう…と思っていたところで4oがリリース!これで応答時間が20秒くらいまで短縮。

リージョン間でもレスポンスに違いがあったので時間帯別でレスポンスを計測して最適なリージョンを探したりもしました。
さらにGPTへのプロンプト文や受け渡すナレッジの成型処理を加えることで応答まで約10秒! 大変でした。

難航したポイントその2-ハルシネーション

ナレッジにない回答をする問題、いわゆるハルシネーション(*2)。プロンプトをかなり試行錯誤して解決しました。あとは一般的なオンラインの情報ソースを用いないようにもしています。

*2:ハルシネーションとは、AI(人工知能)が質問に対して事実とは異なる回答をしたり、架空のデータや出来事を作り出したりしてしまう現象のこと

チャットボットの開発は、分かりやすいフロー部分だけでなく、トピックの選定・NLUモデルのための質問内容の洗い出し・回答精度テスト・追加のナレッジの整備などなど…。
完成までに意外と泥臭い作業が必要であり、リリース直前まで納得のいく回答が得られなかったり、回答が遅かったりといった問題の改善作業をチームで行い、少しずつ回答の精度を上げ、回答範囲を広げていきました!

完成したチャットボットの概要

完成したチャットボットはざっくりと下記の流れで動きます。

  1. ユーザーがチャットボットに質問をする

  2. NLUモデルによって質問内容を分類する

  3. 分類された先のナレッジをChatGPTに読み込ませる

  4. 読み込ませた内容でユーザーからの質問にChatGPTが回答する

完成したチャットボットの概要図。ここまで作るのは大変だった…。

他にも、最初の分類分けでヒットしなかった場合のナレッジ検索機能や、チャットボットへの質問から情シス部門への問い合わせチケットを起票して送信する機能も搭載しています。

ChatGPTはユーザーへの回答生成だけでなく、下記にあげるような内部の細かい処理でも活用しています。

  • 最初の質問をNLUモデルが判断しやすいようにChatGPTが体裁を整える

  • ナレッジ検索時のクエリの生成

  • ユーザーが選択したナレッジ内容の要約

  • ユーザーの質問内容を元にした問い合わせチケット起票時のカテゴリ推定

前述した通り、ServiceNowのチャットボットの構築自体が初めてかつ、ChatGPTとの連携もほとんど事例がなかったため、試行錯誤の繰り返しでチャットボットを作成しました。

そしてついに2024年7月にチャットボットをリリースすることができました!

チャットボットの回答例

今後の展望

チャットボットをさらに便利に使っていただけるよう、現在も試行錯誤を重ねています。具体的には以下の取り組みを行っています。

1.回答精度の向上
質問内容や返答、返答が役に立ったかどうかといったデータを収集・分析しています。これにより得意不得意を把握し、得意な分野はパターンを増やすなどでさらに役に立つ回答ができるよう進化させ、不得意な分野はナレッジを充実させることで回答の質を高めることを目指しています。

2.広報活動
サービスポータル記事や社内コンペなどで広報を行っています。多くの方に使っていただくことが、精度向上のためには欠かせないからです。

3.利便性向上のためのアイデア出し
リリース後も、利便性向上のために新しいアイデアを日々検討しています。

ユーザーからの「こうしてほしい!」「これが必要だ!」といったご意見を取り入れながらより使いやすいチャットボットになるようにブラッシュアップしていきます!

おわりに

いかがでしたか?この記事を書きながら、実際の開発について私はテストに尽力したのみだったので、メインの開発を担当された先輩方が本当に大変だったことを知りました。筆者でありながら読者でもあるという不思議な立場でした(笑)

これからもぜひチャットボットをご活用いただき、今後の進化にご期待ください!
最後までお読みいただきありがとうございました。

MyServiceNow開発奮闘記はぜひこちらもご覧ください。


この記事が参加している募集