【チャットボットで業務効率化】申請テンプレートを提示するボットを30分でつくる
はじめに
この記事を読むことで、
★申請メールのテンプレート作成を効率化することができます。
★IBM Watson Assistant を使って簡単なチャットボット構築をすることができます。
★チャットボットを使った業務効率化の一例を学ぶことができます。
「会社の申請って、フォーマットの種類が多い…」「いちいち調べたり聞いたりして申請メールを書くのめんどくさい」
「メールテンプレをいちいち引っ張り出すのもめんどくさい」そう感じることはありませんか?
”定型文を書く” のような、典型的なルーティンワークに毎回時間を費やすのはとてももったいないです。
とはいえ、こういった課題を解決するためにシステムを導入するにも費用がかかります。
こんな時に、「コスト低く導入できる方法はないかな」なんて考える訳です。
今回は、数ある方法の中でも比較的お手軽に導入することのできる「チャットボット」を使って、
申請テンプレートを一瞬で提示してくれる仕組みをつくってみたいと思います。
この記事はアイソルートAdventCalender2019最終日の記事です。
今回はIBM Watson Assistantにノウハウのあるsugita.mと、
Dialogflowを使ったチャットボット構築に知見のあるkikuchi.sが、
IBM Watson Assistantを使って
“有給休暇申請メール” を一瞬で作成してくれるチャットボットを
構築していこうと思います。
以前、kikuchi.sはDialogflowを使ってシステム構築する記事を上げています。
ご興味のある方はぜひそちらも見てみてください。
チャットボットとは
チャットボットは「対話(chat)」する「ロボット(bot)」という2つの言葉を組み合わせたもので、ユーザーと企業をつなぐコミュニケーションツールとして、注目を浴びています。
導入事例として、
・カスタマーサポート業務効率化
・顧客接点の増加
・検索コストの抑制
などが挙げられます。
チャットボットは、ルーティンで人が対応している仕事を引き受けることができます。
一方、人はより頭をつかって判断すべき仕事に集中することができます。
AIと人がそれぞれの得意分野を分け合うことで、より生産的な仕事をすることができるようになります。
Watsonとは
Watsonについて3行でさくっとまとめると、こんな感じです。
- IBMが開発したAIのこと。
- IBM Cloud上で使えるサービスの一つ。
- 自然言語を理解・学習し人間の意思決定を支援するコグニティブ・コンピューティング・システム。
Watsonは「人工知能」(Artificial Intelligence)と紹介されることもありますが、
IBMは「拡張知能」(Augmented Intelligence)と定義をしています。
※「拡張知能」についての説明はここでは割愛させていただきます。ご興味のある方は検索してみて下さい。
今回はWatsonのサービスの一つ、
チャットボットを作成することに特化した「Watson Assistant」を使ってチャットボットを作っていきます。
準備
- IBM Cloudにアカウントを作成
Watsonが使えるIBM Cloudでは、無料で使える「ライトプラン」があります。
ライトアカウントの作成については、こちらをご参考ください。
- Watson Assistantサービスを作成
今回つくるチャットボットの概要
今回は主に以下の3つの流れで会話を進めていきたいと思います。
チャットボットは以下の3ステップで構築していきます。
実践
1.Intentsの作成
今回は「有給を申請したい」という意図の文章をWatsonに学習させていきます。
- 作成したSkillをクリックして、新しくIntentsを作成します。skillとは、チャットボットを作成する作業場のイメージです。
- Intentsに名前をつけて、「有給申請したい」という意図の様々な例文を登録していきます。
このような例文とIntents名を学習させることで、
ユーザーから似たようなINPUTがあった場合、Watsonは「有給申請したいんだな」と判断できるようになります。
この例文がいわゆる「学習データ」と呼ばれるもので、賢いチャットボットを作る際に一番重要なポイントとなってきます。
2.Entitiesの作成
続いて文章内の「キーワード」にあたるEntitiesを学習させましょう。
今回、学習させるキーワードは以下の3つです。
①所属部署
②社員名
③日付
【①所属部署】
まずは「所属部署」のEntitiesの学習からです。
- ひとつ前の画面に戻り、画面の左タブから「Entities」をクリックします。
- 「Create entity」をクリックします。
- 以下のようにentitiesを登録し、「Add value」をクリックします。
【②社員名】
同じように社員名も追加してみました。
【③日付】
日付はWatsonに備わっているSystem Entitiesの中の「sys-date」を使いましょう。
- ひとつ前の画面に戻り、画面の左タブから「Entities」をクリックし、「sys-date」をOnにします。
3.Dialogの作成
最後はDialogの作成です。
【①申請したい内容を聞く】
- ひとつ前の画面に戻り、画面の左タブから「Dialog」をクリックします。
- デフォルトで用意されている「ようこそ」のノード(四角いボックスのような塊)の右上にある3つの点をクリックします。
- 「Add node below」をクリックします。
- 「ようこそ」のノードの下にできた新しいノードをクリックし、ノードに入る条件として「有給申請」のIntentsを設定します。
こうすることで、「有給申請がしたい」という意図を含んだ内容がユーザーから打たれたとき
このノードに遷移するようになります。
【②申請に必要な情報を聞く】
今回はSlotsという機能を使っていきましょう。
Slotsを使うと、必要な情報を得るまで聞き返してくれるようになります。
様々な情報をいっぺんに言われた場合、必要だけど足りない情報のみ聞き返してくれます。
- ノードの右上の「Customize」をクリックします。
- Slotsを設定します。
- CHECK FOR
作成しておいたEntitiesの名前を入力します。
Entitiesが正しく作成されていればサジェストで選択入力できるはずです。
Entitiesは必要な情報ごとに作成するのがコツです。前述のとおり、今回は「①所属部署」「②社員名」「③日付」の3つのEntitiesを作成しておきます。
- SAVE IT AS
申請テンプレートに埋め込む変数の名前を設定します。
Entitiesの名前と意味が一致するように名前を決めます。
- IF NOT PRESENT,ASK
質問文を設定します。
必要な情報のみを入力してもらえるよう、シンプルな文体を心がけます。
- ユーザーが必要な情報を含めずに話しかけた場合に返答する文を設定します。
後術の実行結果と照らし合わせながら設定するとユーザー体験をイメージしやすいです。
【③申請フォーマットを表示する】
作成する申請メールのテンプレートを登録します。
また、SAVE IT ASで設定した変数を埋め込みます。この設定をすることで、ユーザーから入力された値を申請メールに含めることができます。
実行結果
- 欲しい情報(今回の場合:①所属部署、②社員名、③日付の3つ)を含めないで話しかけた場合
- 欲しい情報を含んで話しかけた場合
「有給申請がしたい」と話しかけた場合と違い、「どこの」「誰が」「いつ」の情報を含めて話しかけた場合、不足している情報のみ聞き返してくれます。
いくつか会話を往復した後、欲しい情報が全て入力された時点で申請メールを作成して提示してくれます。
例えば、「CSGの菊地が明日の有給休暇の申請をしたい」と、欲しい情報すべてを含めて話しかけた場合は、聞き返すことをせずに申請メールを作成して提示してくれます。
感想
kikuchi.sは、今回初めてのIBM Watson Assistantを使いつつ、チャットボットを作成しました。
Dialogflowでチャットボットを作成した時よりも、Dialogで会話フローをイメージしやすかったです。
また、簡単な設定内容なのに、柔軟に判断して会話の流れをつくって、目的の返答にたどり着かせてくれるところは、「とても賢い」と感じました。
Dialogflowは直観的なGUIで扱いやすかったですが、柔軟なチャットボットをつくるには工夫が必要でした。
IBM Watson Assistantは、柔軟なチャットボットをつくるための機構が整備されていると感じました。
まとめ
本記事を読むことで、
★申請メールのテンプレート作成を効率化することができました。
★IBM Watson Assistant を使って簡単なチャットボット構築をすることができました。
★チャットボットを使った業務効率化の一例を学ぶことができました。
また、IBM Watson AssistantはSlackやMessangerなどのSNSやSMSとの連携がノンコーディングでできます(参照)
前提知識をほとんど必要としないため、エンジニアだけでなく、業種問わず扱いやすいのも魅力的です。興味のある方は触ってみて、普段使っているSNSなどと連携させてみてはいかがでしょうか。
おわりに
現在社会では、少子高齢化が進み、人手不足が問題となっています。
そのような世の中ですが、例えば「決まり切った作業はAI」、「クリエイティブな作業は人間」、
というようにAIと仕事をシェアをすることで
人間が過ごしやすい環境を作れるのではないかと思います。
働き方改革や業務効率化を実現するための手段の一つとして
チャットボットもあるんだなあと、感じていただけたら幸いです。