New Watson Assistant を使ってバーチャル・エージェントを開発してみましょう!
今回の記事から、New Watson Assistant を使って、バーチャル・アシスタントを開発する手順を具体的に解説していきます。
New Watson Assistant について初めてという方は、第一回目と第二回目の記事を参照されることを推奨いたします。
この記事を参照しながら、実際に手を動かして自身の環境でバーチャル・アシスタントを開発したい方は、特に第二回目の記事を参照して、New Watson Assistant インスタンスの作成を実施してください。
それでは早速始めます。
第一回目 New Watson Assistantがやってきた!
第二回目 Watson Assistantのインスタンスを立てる
アーキテクチャー
オンライン・マニュアルに New Watson Assistant のアーキテクチャーが掲載されています。
概念的に 3 つの層で構成されます。
(補足)
層 | 機能 | 構成要素 |
---|---|---|
Channel (チャネル) |
ユーザーが利用するインターフェースとの接続 | Web Chat Slack Facebook Messenger 電話、等 |
Routing (ルーティング) |
チャネル層とレゾリューション層のルーティング | ルーティング・エンジン 機能拡張インターフェース ログ出力インターフェース |
Resolution (レゾリューション) |
ユーザーからの発話を自然言語処理, 転送 | Actions / Dialog Search Hand Off |
2016年7月11日に正式リリースされた 旧 Watson Conversation (現 Watson Assistant) では、Resolution層のTask Completion に位置付けられるワークスペースのみの提供だったことを思うと隔世の感があります。
当時は、チャットボットを構築するアプリケーション・アーキテクトがワークスペースを 1 つのコンポーネントとしアーキテクチャーを開発する必要がありましたが、現在では、New Watson Assistant のアーキテクチャーをベースに要件に応じたカスタマイズを加えることでチャットボットやバーチャル・アシスタントを構築することが可能です。
早速起動してみましょう
ダッシュボードから、「WatsonAssistant-lite」をクリックします。
[Watson Assistant の起動] をクリック
日本語が選択されていることを確認して、[Next] をクリック
New Watson Assistant でバーチャル・アシスタントを開発する HOME 画面が表示されました。
対話フローの作成
チャットボットの基本中の基本である対話フローを作成してみましょう。
ユーザーとの対話内容を対話フローとして定義することで、ユーザーとの対話を自動化するチャットボットを構成することが可能です。
New Watson Assistant では、この対話フローを作成するためのツールとして Actions が提供されています。
Actions を使用した対話フロー作成のイメージ
ユーザーの発話内容に応じてアクションがトリガーされ、そのアクションに定義されているステップに従って、ユーザーとの対話が行われます
(アクションは、「話題」もしくは「トピック」と呼ばれる場合があります)
アクションとステップ
- アクション
- ステップ
ピザの注文に関する対話シナリオ
アクションとステップを使った対話の具体的なイメージを理解するために、対話シナリオを作成してみます。
対話シナリオとして、「ピザの注文」を取り上げてみます。
「ピザの注文」シナリオを考えた場合、対話の中でやり取りされる話題がいくつか思いつくと思いますが、今回は、
- ピザの注文
- 割引条件
- 注文のキャンセル
の 3 つの話題を取り上げます。
アクションの説明のところで、『対話シナリオで扱う話題をアクションという単位で定義します』とお話ししました。
そうです、まさにこの 3 つの話題をアクションとして定義することになります。
各アクションとその処理内容
今回は、ピザの注文アクションに関する対話フローを作成してみます。
対話フローの作成
アクション: ピザの注文
ピザの注文・アクションが作成されたので、ステップを追加して対話フローを構成していきます。
ステップ 1: ピザの種類
選択肢の候補を入力します。ステップ作成の練習なので、選択肢は 3 つに留めました。
ステップ 2: サイズ
ピザのサイズを聞き返します。
選択肢の候補を入力します。ステップ作成の練習なので、選択肢は 3 つに留めました。
ステップ 3: 配達時間
配達時刻を聞き返します。
選択肢を候補と提示するのではなく、ユーザーに直接入力してもらいたい場合は、このように設定します。(この例は時刻を入力する例となっています)
時刻の入力が期待されている旨が表示されています。
ステップ 4: 注文内容の確認
注文内容を確認し、注文するか、修正するか、を聞き返します。
選択したピザの種類を挿入します。
選択したピザのサイズを挿入します。
このように表示されていれば OK です。
入力した配達時刻を挿入します。
このように表示されていれば OK です。
注文内容が正しい (OK) か、修正する、かの選択肢を表示します。
このように表示されれば OK です。
ステップ 5: 注文の完了
注文内容が正しい (OK) 場合の処理を追加します。
ステップの実行条件を設定します。
正しい (OK) 場合は、このステップで終了なので、And then に End the action を設定する。
このように表示されていれば OK です。
Action complete と表示されていることを必ず確認してください。
ステップ 6: 注文内容の修正
注文内容を修正したい場合の処理を追加します。
このように表示されていれば OK です。
ピザ注文・アクションは以上となります。
作成した対話フローのテスト
作成したアクションとステップの動作が期待通りに動作するかを確認したい場合は、Prevew ウィンドウを使用します。
チャット風の画面が表示され、発話内容を入力すると、作成したアクションとステップの内容に応じた返信が返ってきます。
対話フローの開発者は、期待した通りの動作であるかを確認することが可能です。
また、このPrevew ウィンドウは、期待した動作となっているかを確認するための補助機能を提供します。
3つの補助機能が提供されていて、テストしたい内容により使い分けてください。
補助機能
- デバッグ・モード
- 変数値確認モード
- エクステンション・インスペクター
詳細な使い方については、2022年12月中旬ごろの記事で紹介します。
待ちきれない方は、オンライン・マニュアルのReviewing and debugging your actionsをご参照ください。
テスト 1: 注文の完了
テスト 2: 注文内容の修正
注文内容を修正したい場合の動作をテストします。
途中までは、テスト 1 と同じですが、ステップ 4: 注文内容の確認で、「OK」ではなく、「修正」を選択してみます。
少しだけ、補助機能の変数値確認モードを使用してみます。
ユーザーが選択した値が変数として保存されていることが確認できます。(左側)
修正を選ぶと、ステップ 6 で設定した通りに、ステップ 1 に戻りますが、その際、ユーザーの選択を保持していた変数の内容がクリアされていることに注意してください。(右側)
理由は、『Re-ask previous step(s)』の設定で、クリアする変数にチェックを入れているからです。
(再掲)
いかがでしたでしょうか
アクションを使用しての対話フロー作成はいかがでしたでしょうか?
「意外と簡単に作れるね!」、「痒いところにも手が届いているね」等の感想を持っていただけたら幸いです。
「割引条件アクション」と「注文のキャンセル・アクション」は次の『注文のキャンセル処理を追加する 〜セッション変数の使い方〜』で解説しております。
参考情報
公式オンラインマニュアル: Overview: Editing actions
公式オンラインマニュアル: Reviewing and debugging your actions
IBM Developer チュートリアル: Get started with Watson Assistant