kun432's blog

Alexaなどスマートスピーカーの話題中心に、Voiceflowの日本語情報を発信してます。たまにAWSやkubernetesなど。

〜スマートスピーカーやVoiceflowの記事は右メニューのカテゴリからどうぞ。〜

Voiceflowのユーザーペルソナを試してみる

ひさびさのVoiceflowの新機能のご紹介です。

会話フローのテストを行う場合、ユーザの状態にあわせてテストを行いたいことがあります。

  • 初めての利用なのか?何度も利用しているユーザなのか?
  • スキルがユーザの名前を知っているのか?知らないのか?

このように何らかの「パーソナライズ」を組み込んでいる場合はその条件に合わせてテストを行いたいですよね。そこで新しく追加されたのが「ユーザーペルソナ」です。

目次

サンプルスキル

以下のようなサンプルを用意しました。プロジェクトは「Chat Assitant」タイプです。

https://raw.githubusercontent.com/kun432/voiceflow-samples/main/user-persona/sample-user-persona.vf

※右クリックでダウンロードしてインポートしてください。

以前お伝えしたとおり、Voiceflowのテストツールは、残念ながらAlexa・Google向けプロジェクトでは使用できませんのでご注意ください。

実際には全く使えないというわけではないですが、Alexa開発者コンソールやActions on Google上のテストツールを完全にシミュレートしているわけではないので、きちんとしたテストを行うにはそれぞれのプラットフォーム上のテストツールを使う方が良いということです。)

フローはこんな感じ。

ユーザから都道府県を聞いて天気を答えるというものです。実際には天気APIなどを使って天気予報の結果を取得することになりますが、今回はサンプルなのでランダムに回答するようにしています。ポイントは、

  • 初回利用と2回目以降で、チャットボットの応答が変わる。
    • 1回目は、名前と住んでいる都道府県を聞いて、永続的に記憶した上で、天気を答える。
    • 2回目以降は、永続的に記憶された名前と都道府県を使って、そのまま天気を答える。

というところで、少しパーソナライズ的な要素を入れています。1回目の会話フローはこんな感じです。

普通にテストを行うと、変数は何もない状態、つまり1回目の利用ということになるわけです。

ユーザーペルソナを使う

で、次は当然2回目以降のパターンを試してみたいですよね。テスト画面の左側を見てください。

ここにプロジェクトで使用している変数がすべて表示されています。

これを少しいじってみましょう。

sessionsがVoiceflowが予め持っているユーザの利用回数です。nameregionが今回のプロジェクトで作っているユーザの名前と住んでいる都道府県ですね。1回目の利用時に必要な情報はユーザからすでに取得済み、という想定ですね。

これで再度テストを実行してみるとこうなります。

1回目のテストとは異なり、すでにユーザからは必要な情報を取得済みですので、名前や都道府県を取得するためのやりとりが発生せずに応答を返していることがわかりますね。このようにしていろいろ想定される条件にあわせて変数を書き換えればよいわけですが、毎回毎回変更するのは面倒です。

これを一つのセットとして記憶しておけるのが「ユーザペルソナ」機能です。早速使ってみましょう。

変数が表示されている箇所の上にある「All project variables」をクリックします。

"Add new"をクリックします。

ユーザーペルソナを設定する画面が出てきましたので、設定していきましょう。まずは「初回ユーザ」から。

"Name"にユーザペルソナ名を入力します。"Starting Block"は、会話フローのどこからスタートするか、を選択することができます。通常は"Start"にしておいて最初から行えばよいでしょう。

次に「初回ユーザ」の場合の変数を設定します。今回のフローでは、sessions / name / region が永続的に保持され、初回 or 2回目以降で異なる箇所になりますので、これらにチェックを入れます。

それぞれの変数の入力欄が追加されますので、それぞれ値を入れます。Voiceflowでは自分で作成した変数の初期値は0になりますので、nameregionを0にセットします。予め用意されているsessionについては1が初期値になりますので、1をセットします。最後にSave Stateをクリックして保存します。

これで「初回ユーザ」のユーザーペルソナが作成されました。

同様にして、2回目以降のユーザーペルソナとして「継続ユーザ」を作成しましょう。こんな感じです。

これで2つのユーザーペルソナが作成されました。

以後は、ここでユーザーペルソナを切り替えてテストを行えば、それぞれの条件がセットされたテストが行えるというわけです。また、右側のテスト開始ボタンのところからも切り替えることができます。

プロトタイプ共有でユーザーペルソナを使う

さらに、作成したユーザーペルソナをプロトタイプ共有で使うこともできます。

"Share Prototype"をクリックして、"Variable State"でユーザーペルソナを選択して"Copy Link"をクリックします。

発行されたURLにアクセスすると、ユーザーペルソナに応じた変数が設定された状態で、対話フローが動作します。

まとめ

音声アプリを長く利用してもらうためにはパーソナライズはほぼ必須といってよいと思いますが、実際にやろうと思うと実は結構面倒です。今回のユーザーペルソナ機能を使って予めパターンを用意しておけば、いつでもかんたんに切り替えてテストができるのでとても便利ですね。ぜひご活用ください。

個人的な要望としては、Alexa向けプロジェクトでもこれができるとよいなぁと思ったりしてます・・・