
Watsonは、IBMクラウドに登録するだけで誰でも使うことができるAI(人工知能)です。無料でも利用することが可能です。
今回はWatsonを使って、自動でユーザーと対話を行うチャットボットの作り方をご紹介します。
[PR]20日間無料で利用可能な「FirstContact」についても紹介しておりますので、併せて読んでいただけると嬉しいです!
FirstContactのWebサイトでは実際にチャットボットを設置していますので、良かったら試してみてください。
AIでできること
AI(人工知能)を用いることでチャットボットでの対話もより自然な対話に近づけることができます。まずはAIチャットボットでどんなことが実現できるのかを簡単に説明します。
会話を組み立てる

会話をツリー状に組み立てて、直前の会話と関連のある出力できます。
返答内容によって振り分けをしていくことができるため、アンケートや診断での活用も可能です。
会話から情報を取り出す

ユーザーの入力から特定の情報を取り出すことができます。右記のように会話の中で名前を尋ねて、呼びかけを行うなど、ユーザーに親近感を抱かせる工夫も可能です。
その他にも日付などを取り出す機能も用意されています。
情報を再利用する

取り出したユーザー情報は保存され、次回訪問時にも使うことができます。
以前の情報を想起させることでユーザー満足度も高くなり、コンバージョンに繋げる手段にもなり得ます。
このように、AIの特性を活用していくことで、単なる自動応答をするチャットボットではなく、顧客満足度の向上や、売上のアップに寄与できるようなチャットボットに創り上げていくことが可能です。
それでは早速、WatsonAssistantを使って簡単にチャットボットのシナリオを作成してみましょう!(画面キャプチャは現在のUIと異なる場合があります。)
IBM Cloudにログインする

まずはIBMクラウドのアカウントを作成する必要があります。
こちらのページへアクセスし、必要事項を入力してアカウントを作成してください。
Watson Assistant(旧Conversation)を使ったシナリオの設定方法
アカウント作成したら、さっそくチャットボットを作成していきます。
サービスを作成する
IBMクラウドには様々なサービスがあります。ログイン後ダッシュボードの右上の「リソースの作成」をクリックし、サービス検索から「Watson Assistant」を選択します。


下記の画面でロケーション(東京)とプラン(今回は無料の「ライト」を選択します)を選択後、スクロールをします。

ページ下部でサービス名を記載し、そのまま「作成」を押します。

作成後、再びダッシュボードに戻り、「リソースの要約」欄の「サービスおよびソフトウェア」を選択します。

リソース・リストの中から「サービスおよびソフトウェア」のタブを開き、先ほど作成したサービスを選択します。

「WatsonAssistantの起動」をクリックしたらいよいよシナリオの作成開始です!

Watson Assistantの画面が起動しました。ここからは英語になります。
開いた画面左側のタブで上から2つ目を選択すると以下のような画面が表示されます。
チャットボットの単位である「ワークスペース」の一覧が表示され最初はサンプルが1つ用意されています。
ここで「Create skill」を選択し、新しくワークスペースを作成します。

上から2つ目の「Dialog skill」を選択し、「Next」を押して次に進みます。

Nameには適当な名前を入れてください。
Languageで「Japanese」を選択したら「Create skill」を押します。

完了すると、自動的に構築画面に遷移します。
ここから、シナリオの内容を登録していくことになります。
左側にあるIntents、Entities、Dialogの3つが主に使っていくメニューになりますが、まずは簡単に用語の意味を解説します。
• Intentとは
ユーザーからの呼びかけに含まれる目的を指します。言葉のゆらぎをAIが判断するため、WatsonAssistantの特徴の一つ「自然言語処理」のミソとなる部分です。
• Entityとは
ユーザーからの呼びかけに含まれるキーワード(をグループ分けしたもの)です。完全一致の言葉のみ判断するため、言葉の揺らぎを吸収してほしくない語彙(商品名や地名などの固有名詞、分類化させたい類義語)の登録を行うイメージです。
• Dialogとは
ユーザーからの呼びかけに対し、AIがどう答えるかを定めたものです。「これがきたらこう返す」というシナリオをツリー状に作成していきます。
IntentとEntityはよく混同されがちですが使い分けることでより高度なシナリオ設計が可能です。


Intents(インテント)にユーザーからの質問を登録する
Intents(インテント)には、ユーザーからの入力データを登録していきます。
「Create intent」を押して新規インテントを作成しましょう。

では、試しに商品の注文を行うインテントを作成していきましょう。
Intent nameを「注文」として登録します。
User examplesに、代表的な入力テキスト(ユーザーからの質問の例)を登録していきます。
今回は「購入」「注文したい」「届けてください」などを代表的なテキストとして登録しました。

代表的なテキストに似通った質問が入力がなされると、同じ「注文」のインテントとして分類されます。
Entities(エンティティー)に辞書データを登録する
続いて、左側のメニューから「Entities」を選択してください。
Entities(エンティティー)は、商品名などの固有語・専門用語を登録する辞書データです。
「My Entities」のタブを選択し、「Create entity」を押してエンティティーを作成します。

今回は、商品名を扱うエンティティーを作成していきましょう。
Entity nameを「商品名」として登録し、Value nameに商品名を入れていきます。
右側(Synonyms)には、類語、同じ意味として扱いたい言葉を入れていきます。

Dialog(ダイアログ)で会話を組み立てる
最後に、左側のメニューから「Dialog」を選択します。 Dialog(ダイアログ)では、実際の会話の流れを組み立てていきます。

「Dialog」を選択すると上記のような画面が表示されます。
このそれぞれの四角は「Node(ノード)」といい、これを並べたり連結することで視覚的に会話フローを構築することができます。
最初に追加されたノードは次の2つです。
ようこそ(welcome)
ユーザーがチャットを開いた時に最初に表示されるノードです。
その他(anything_else)予想外の問い合わせなど、表示すべき内容がない場合に表示するノードです。
「Add node」を押して新しいノードを追加しましょう。

ユーザーが商品の注文を行った場合のノード(メッセージ)を作成していきましょう。
一番上にノードの名前を入力します。「商品の注文」とします。

名前の下(If assistant recognizes:呼び出し条件)には先程作成したインテント、エンティティーを指定します。
入力欄をクリックするとこのような表示になりますので、一番上の「# intents」を選択し、「#注文」を選択します。
を押して、さらに入力欄を追加。
二番目の「@entities」を選択し、「@商品名」を選択します。
「#注文 and @商品名」という条件でメッセージの呼び出しを設定しました。

最後にTextにAIからのメッセージを入力します。
テストする
画面右上の を押すとテストツール(デモ画面)が起動します。
「フランスパンを注文します」と入力してみましょう。

「ご注文承りました。」と想定通り回答が返ってくれば成功です!
今回はエンティティーを使用しましたが、挨拶などの固有語を持たない質問であれば、インテントとノードだけ追加すればOKです。
インテント、ダイアログ、必要に応じてエンティティーをどんどん追加し、会話のパターンを増やしましょう。
また、ここまでの流れは以下の公式動画にもまとまっています。ただし見た目が現在とは大きく異なるので注意が必要です。
Watsonでチャットボット構築チュートリアル(公式)
アプリ(API)と連携する
これでチャットボットの中身の部分ができましたので、実際にアプリで使用する方法について説明します。
開発が可能な場合にはBotkitなどのミドルウェアを使用することができますが、ここではコードを書かずに連携する方法を紹介します。※現在とはUIが異なります。
Facebook Messenger
メッセージングAPI(SNS)の代表としてFacebook Messengerとの連携方法を簡単にご紹介します。
Facebook MessengerとWatsonの連携にはIBMが用意した「Conversation Connector Toolchain」という連携ツールが利用できます。
このツールを使うには次のサービスのアカウントが必要ですのであらかじめご用意ください(いずれも登録無料です)。
- Githubアカウント
- チャットボットと連携したいFacebookページ
- Facebookページと連携済みのFacebookアプリ(アプリを作成したらプロダクトからMessengerを選択してFacebookページと連携させてください。)
用意ができましたら、こちらをクリックしてツールを起動してください(IBMクラウド、Githubにログインしている必要があります)。

「Delivery Pipeline 必須」と書かれたパネルをクリックし、必要事項を入力していきます。
まずはFacebook側の設定キーです。
Facebook App Secret
Facebookアプリの 設定>ベーシック から確認できます
Facebook Page Access Token
Facebookアプリの プロダクト>Messenger>設定 から確認できます
Facebook Verification Token
任意の文字列を登録します。このキーはあとで使うので控えておいてください

Conversation Service Username
Conversation Service Password
Conversation Workspace ID
別窓でWatson Assistantの構築画面を開き、左のメニューからを選択後、Credentialsタブを開いてください。ここからそれぞれ確認できます。

すべて入力できたら「作成」を押します。

「Delivery Pipeline」のパネルをクリックし、全てのプロセスが「成功」するまで待ちましょう。完了したら「Deploy Stage」の「ログおよび履歴の表示」をクリックし、ログ中からYour Request URL is: と書かれている部分を探します(多くの場合一番下にあります。)。
そのURLをクリップボードにコピーしておいてください。

最後にFacebookアプリのページに戻り、プロダクトの設定からWebhookの設定を行いましょう。
コールバック
URLクリップボードのurlを貼り付けます。
トークン確認
先ほど控えたFacebook Verification Tokenを貼り付けます。
サブスクリプションフィールド
messagesとmessaging_postbacksを選択してください。
これで完了です。
Facebookアプリを公開して、さっそくFacebook Messenger上で会話してみましょう。
Slack
業務効率化が期待できる「Slackボット」も開発なしで作成できるようです。手順はWatson Assistantの構築画面>左メニューの>Slackから見ることができます(英語)。
Webサイトへの設置
その他、自分のWebサイト上でチャットボット利用したい人向けにチャットのインターフェースを提供し、簡単な設定でチャットボットを使うことができるアプリケーションも多数あります。
Watson Assistantの機能
以上がWatson Assistantの基本的な使い方になります。Watsonには、さらにチャットを楽しいものにするための機能があります(一部のアプリでは対応していない場合があります)。
画像の送信

最近のアップデートでWatsonからのレスポンス(返答)の種類を選ぶことができるようになりました。
そのうちひとつは文章ではなく画像によるユーザーへの応答です。
チャット上に商品の使い方などの画像を表示してユーザーへわかりやすく案内したり、LINEの「スタンプ」のような使い方で豊かな感情表現ができます。
複数の選択肢ボタンの表示

ユーザーが、テキストの入力ではなくクリックやタップで、アクションを行うことができます。
ユーザー情報を記憶する
「コンテキスト変数(Context=文脈)」と呼ばれる機能を使うことで、ユーザーのさまざまな情報を記憶することができます。
- ユーザーのニックネームを覚えて呼びかける
- ユーザーとの親密度(話した回数)に応じてメッセージを変える
- サーバー側からWatsonにデータベースなどの値を渡す
などの使い方ができます。
チャットボットの構築はアイディア次第。過去の事例を参考にしつつ、ユーザーのことを想像しながら楽しい会話を創造してみてください。
[PR]Watson Assistant対応のチャットサービスなら「FirstContact」

FirstContactの特色
チャットボットをWeb上で実用化するなら弊社「FirstContact」がおすすめです。
- WatsonAssistantの各機能に対応
- Webチャット、Facebook、LINEに対応
- インターフェースが用意されているからすぐに使える
- 月額15,000円(※有人対応のみなら2,980円)~
今なら20日間の無料トライアル!
実際にWebサイトに設置して無料でお試しいただけます。