30分でボットが動く!? Einstein ボット入門

SalesforceのEinstein ボットのはじめの一歩を解説します。

はじめに

AIやチャットボットというワードを目にするようになって久しくなりました。
私も以前からよく目にしていたのですが、時間をかけて学習させないと使い物にならなさそうだし、実装も大変そうだなぁという漠然とした印象を持っていました。

ところが、SalesforceのEinstein ボット(アインシュタインボット)を構築する機会があり、実際に手を動かしてみるとその先入観は打ち砕かれました。
そこで、チャットボットに興味がある方、今後使いたいと思っている方の始めの一歩という位置づけでご紹介させていただきます。

これを読んでいただければ、きっと簡単に試せることを実感いただけるはずです!

チャットボットのメリットとデメリット

ところで、チャットボットを使用する目的は何でしょうか。

チャットボットは特にカスタマーサポートの場面で効果を発揮します。
よくある質問や簡単な問い合わせはボットだけで対応可能とすることで、担当者が空くまでお客様に待っていただく必要もありません。
そして人的資源をより重要な問題へ振り向けることで、CX(カスタマーエクスペリエンス)の向上も期待できます。

また、苦手なことももちろんあります。
状況に応じた柔軟な対応を求められる場合、やはり人間の手が必要になります。
自然言語処理をトレーニングすることで、ある程度は近付けることができるかもしれませんが、それでも難しい場面は少なくないと思います。

そのようなメリット・デメリットを意識して使用場面を考える必要があります。

それでは始めましょう!

Salesforceのデベロッパー環境を用意する

まずは環境を用意します。
下記ページの右上「サインアップ」から必要事項を入力し、無料でSalesforceの各機能を使用可能な開発環境である、「Developer Edition」を発行します。

Einstein ボットの作成

開発環境へ無事にログインできたら、Einstein ボットを利用できるように設定を行います。
ログインすると「Einstein ボットの使用開始」という項目が出るので、「使用を開始する」を押します。
(見当たらない場合はページ左右の「<」「>」ボタンで探してみてください)

「Einstein ボット」をオフからオンにします。(同意事項が表示された場合は、内容を確認して同意します)
ページを下へスクロールすると「新規ボットを作成」ボタンが出ますので、クリックします。

表示されたポップアップ画面で「スクラッチから開始」を選択し、ボットに好きな名前をつけ、言語を日本語に設定、あとはデフォルトのまま次へを選択していき、最後に完了を押します。

Einstein ボットビルダーが立ち上がりますので「有効化」、「プレビュー」ボタンの順に押します。
するとチャットコンポーネントが不足しているというコメントが表示されます。
これはチャットの開始リクエストを溜めるキューや、チャットを埋め込むためのコードスニペットの生成等が未完了となっているためです。
右側の「チャットを設定」ボタンを押すと、ウィザード形式でそれらを素早く設定できます。
キュー名に適当な名称をつけ、ユーザを最低1人追加します。(自分のユーザで問題ありません)

作業項目サイズやエージェント業務量はデフォルトのままとし、次へ進みます。
するとWeb サイト URLや、Salesforceサイトドメインを記載する箇所がありますが、こちらは現在使用している「Developer Edition」のURLとドメインを記載します。
利用規約に同意し、次へ進みます。

種別は取引先責任者のみとして次へ進み、オフラインサポートもオフのまま次へ進むと、組み込みサービスリリースという設定とコードスニペットが自動生成されます。
このコードスニペットを実際のWebサイトでチャット機能を埋め込みたいページに記述することで、そのページにチャット開始ボタンが表示されるようになり、これだけで簡単に既存のWebサイトへチャットボット機能を追加することができます。
また、コードスニペットにはいくつかパラメータも設定可能となっており、ボットのアバター画像やチャット開始ボタンの文字列、色、サイズ等を変更することができます。

今回は特に使用しないためそのまま次へ進み、完了まで進みます。

Einstein ボットのカスタマイズ

準備が完了しました!!
もうチャットボットが動作するようになっています。
プレビューに表示されている「Chat with an Expert」ボタンを押して、名前を入力するとボットが応答を始めます。

しかし、このままですと生まれたての赤ちゃんボットですので、挨拶をしても残念ながら理解ができません。

まずははじめの言葉として挨拶を教えてみましょう。
ボットは無効化状態でないと修正ができないため、右上の「無効化」ボタンを押します。
ボットを無効化したら、左上の「+」プルダウンから「新規ダイアログ」を押し、「あいさつダイアログ」を作成します。
ちなみにダイアログとは、ボットに実行させる処理をまとめた塊のようなものです。ユーザの発言からどのダイアログを実行すれば良いのかボットが判断します。

あいさつダイアログを作成したら、中央付近の「+」ボタンを押し、「メッセージ」を選択します。
メッセージ欄にはボットから返してほしい挨拶を「こんにちは!今日は良いお天気ですね。」のように入力しておきます。

次に、ユーザ側で発言されるであろう挨拶の文字列をボットにインプットします。
たとえば、「こんにちは!」という言葉は挨拶である、とする場合は「こんにちは!」という文字列は挨拶だよとボット内にインプットしてあげる必要があります。

右上の「ダイアログインテントを有効化」を押します。

インテントとは、ボットに自然言語処理をトレーニングするための素になるデータのことです。
インテントデータを20個以上入れるとトレーニングを開始できますが、今回は数個だけ入れるので自然言語処理はされず、ユーザの発言内容とボット内のインテントデータが完全一致した場合に、ボットは挨拶をされていると判断します。

下のように挨拶をいくつかインプットしました。

「有効化」、「プレビュー」の順に押してチャットを開始します。

インテントデータに完全一致する文字を入れてみると、今度はしっかり挨拶を返してくれました!

終わりに

このようにノーコードでボットを作成することができました。

さらに多くの言葉をインプットして自然言語処理のトレーニングをさせることで、インテントデータに完全一致しなくともより柔軟にユーザの発言に対応できるようにもなりますので、次のステップとしてトレーニングに挑戦するのも楽しいかもしれません。

また、プロコードの手段を用いることで、たとえば外部APIを呼び出して天気や位置情報を取得し、挨拶時に正確な天気を話すようにする等、より複雑な処理を行わせることもできます。

ぜひ試してみてください。