LoginSignup
4
4

直感的に操作できる Actions で対話フローを作成してみる

Last updated at Posted at 2022-12-03

image.png
image.png

New Watson Assistant を使ってバーチャル・エージェントを開発してみましょう!

今回の記事から、New Watson Assistant を使って、バーチャル・アシスタントを開発する手順を具体的に解説していきます。
New Watson Assistant について初めてという方は、第一回目と第二回目の記事を参照されることを推奨いたします。
この記事を参照しながら、実際に手を動かして自身の環境でバーチャル・アシスタントを開発したい方は、特に第二回目の記事を参照して、New Watson Assistant インスタンスの作成を実施してください。
それでは早速始めます。

第一回目 New Watson Assistantがやってきた!
第二回目 Watson Assistantのインスタンスを立てる

アーキテクチャー

オンライン・マニュアルに New Watson Assistant のアーキテクチャーが掲載されています。
概念的に 3 つの層で構成されます。
image.png
(補足)

機能 構成要素
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」をクリックします。
image.png

[Watson Assistant の起動] をクリック

image.png

日本語が選択されていることを確認して、[Next] をクリック
image.png

赤枠は任意です。選択したら、[Next] をクリック
image.png

この段階では、特に変更せず、[Next] をクリック
image.png

この段階では、特に変更せず、[Create] をクリック
image.png

New Watson Assistant でバーチャル・アシスタントを開発する HOME 画面が表示されました。
image.png

対話フローの作成

チャットボットの基本中の基本である対話フローを作成してみましょう。
ユーザーとの対話内容を対話フローとして定義することで、ユーザーとの対話を自動化するチャットボットを構成することが可能です。

New Watson Assistant では、この対話フローを作成するためのツールとして Actions が提供されています。

Actions を使用した対話フロー作成のイメージ

ユーザーの発話内容に応じてアクションがトリガーされ、そのアクションに定義されているステップに従って、ユーザーとの対話が行われます
(アクションは、「話題」もしくは「トピック」と呼ばれる場合があります)
image.png

アクションとステップ

  • アクション
    • 対話シナリオで扱う話題(トピック)をアクションという単位で定義します
    • アクションをトリガーするユーザの発話例を複数登録します
    • 最初の発話例がアクション名として自動的にセットされます
      image.png
  • ステップ
    • ユーザーとの対話内容を定義します
    • 1 つのアクションに対して、複数のステップを定義できます
    • ステップが複数ある場合は上から下へ順番に実行されます
    • ステップは以下の 5 つで構成されています
      • ステップを実行するための条件
      • 変数 (セッション変数、インテグレーション変数)に値をセット
      • ユーザーの発話に対する返信メッセージ
      • ユーザーからの応答を受け取る方法
      • このステップの次の処理
        image.png

ピザの注文に関する対話シナリオ

アクションとステップを使った対話の具体的なイメージを理解するために、対話シナリオを作成してみます。
対話シナリオとして、「ピザの注文」を取り上げてみます。
「ピザの注文」シナリオを考えた場合、対話の中でやり取りされる話題がいくつか思いつくと思いますが、今回は、

  • ピザの注文
  • 割引条件
  • 注文のキャンセル

の 3 つの話題を取り上げます。

アクションの説明のところで、『対話シナリオで扱う話題アクションという単位で定義します』とお話ししました。
そうです、まさにこの 3 つの話題アクションとして定義することになります。

各アクションとその処理内容

作成するアクションとその処理内容のイメージ図です。
image.png

今回は、ピザの注文アクションに関する対話フローを作成してみます。

対話フローの作成

HOME 画面に戻り、Actions をクリックします。
image.png

アクション: ピザの注文

ピザの注文・アクションを作成します。
image.png
image.png

ピザの注文・アクションが作成されたので、ステップを追加して対話フローを構成していきます。
image.png

ステップ 1: ピザの種類

ピザの種類を聞き返し、ピザの種類を選択肢として提示します。
image.png

image.png

選択肢の候補を入力します。ステップ作成の練習なので、選択肢は 3 つに留めました。
image.png

ステップ 2: サイズ

ピザのサイズを聞き返します。
image.png
image.png
image.png
選択肢の候補を入力します。ステップ作成の練習なので、選択肢は 3 つに留めました。
image.png

ステップ 3: 配達時間

配達時刻を聞き返します。
image.png
image.png
選択肢を候補と提示するのではなく、ユーザーに直接入力してもらいたい場合は、このように設定します。(この例は時刻を入力する例となっています)
image.png
時刻の入力が期待されている旨が表示されています。
image.png

ステップ 4: 注文内容の確認

注文内容を確認し、注文するか、修正するか、を聞き返します。
image.png
image.png
選択したピザの種類を挿入します。
image.png

image.png
このように表示されていれば OK です。
image.png

選択したピザのサイズを挿入します。
image.png
image.png
このように表示されていれば OK です。
image.png

入力した配達時刻を挿入します。
image.png
image.png
このように表示されていれば OK です。
image.png
注文内容が正しい (OK) か、修正する、かの選択肢を表示します。
image.png
image.png
このように表示されれば OK です。
image.png

ステップ 5: 注文の完了

注文内容が正しい (OK) 場合の処理を追加します。
image.png
ステップの実行条件を設定します。
image.png
image.png
正しい (OK) 場合は、このステップで終了なので、And thenEnd the action を設定する。
image.png
このように表示されていれば OK です。
image.png

Action complete と表示されていることを必ず確認してください。

ステップ 6: 注文内容の修正

注文内容を修正したい場合の処理を追加します。
image.png
image.png
image.png
image.png
image.png
このように表示されていれば OK です。
image.png

ピザ注文・アクションは以上となります。

作成した対話フローのテスト

作成したアクションとステップの動作が期待通りに動作するかを確認したい場合は、Prevew ウィンドウを使用します。
チャット風の画面が表示され、発話内容を入力すると、作成したアクションステップの内容に応じた返信が返ってきます。
対話フローの開発者は、期待した通りの動作であるかを確認することが可能です。

また、このPrevew ウィンドウは、期待した動作となっているかを確認するための補助機能を提供します。
3つの補助機能が提供されていて、テストしたい内容により使い分けてください。
image.png

補助機能

  • デバッグ・モード
  • 変数値確認モード
  • エクステンション・インスペクター

詳細な使い方については、2022年12月中旬ごろの記事で紹介します。
待ちきれない方は、オンライン・マニュアルのReviewing and debugging your actionsをご参照ください。

テスト 1: 注文の完了

注文内容が正しい (OK) 場合の動作をテストします。
image.png

image.png

無事、ピザの注文ができました :relaxed:
image.png

テスト 2: 注文内容の修正

注文内容を修正したい場合の動作をテストします。
途中までは、テスト 1 と同じですが、ステップ 4: 注文内容の確認で、「OK」ではなく、「修正」を選択してみます。

少しだけ、補助機能の変数値確認モードを使用してみます。
ユーザーが選択した値が変数として保存されていることが確認できます。(左側)
修正を選ぶと、ステップ 6 で設定した通りに、ステップ 1 に戻りますが、その際、ユーザーの選択を保持していた変数の内容がクリアされていることに注意してください。(右側)
image.png
理由は、『Re-ask previous step(s)』の設定で、クリアする変数にチェックを入れているからです。
(再掲)
image.png

いかがでしたでしょうか

アクションを使用しての対話フロー作成はいかがでしたでしょうか?
「意外と簡単に作れるね!」、「痒いところにも手が届いているね」等の感想を持っていただけたら幸いです。

「割引条件アクション」と「注文のキャンセル・アクション」は次の『注文のキャンセル処理を追加する 〜セッション変数の使い方〜』で解説しております。

参考情報

公式オンラインマニュアル: Overview: Editing actions

公式オンラインマニュアル: Reviewing and debugging your actions

IBM Developer チュートリアル: Get started with Watson Assistant

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4