変数を使用して会話情報を管理
顧客がアシスタントに応答するときには、顧客自身に関する情報や顧客が望んでいることに関する情報が伝えられます。 アシスタントは、この情報と、会話に関する他の情報を 変数 として記憶します。 アシスタントは変数を使用して、よりパーソナライズされてカスタマイズされたエクスペリエンスを提供し、ユーザーが必要とするソリューションにユーザーが素早く到達するようにできます。
変数は、より優れたアシスタントを構築するために使用できる強力なツールです。 変数は以下のすべての利点を可能にします。
-
パーソナライズ。 最適な仮想アシスタント・エクスペリエンスは、顧客ごとに目標設定されてパーソナライズされます。 アシスタントは、「やぁ、フランク。おかえり」と言って顧客に挨拶するときに、 アシスタントがフランクの名前を覚えていること、およびアシスタントが以前にフランクと話したことがあることをフランクに知らせます。 この種の情報を変数に保管し、その変数をアシスタントの出力で参照することにより、会話をパーソナライズして、アシスタントがより人間的に見えるようにすることができます。
-
加速。 会話の過程で、顧客は質問に答え、選択を行います。 このような顧客応答は変数として保管され、アシスタントはそれを使用して会話を導きます。 顧客の時間を無駄にせずに適切な手順を選択することによって、顧客をできるだけ迅速に適切なソリューションに導くことができます。
-
モジュール性。 情報によっては、多種多様な目的 (顧客の現在の口座残高や連絡先情報など) に役立つものもあります。 この情報を複数の場所で取得したり再計算したりするのではなく、変数を使用して結果を保存し、必要な場所でその変数にアクセスすることで、一度で済ませることができます。
-
プライバシー。 お客様情報のプライバシーは、すべての企業にとって重要です。 アシスタントでは、共有情報のプライバシーを保護するために変数をマスクできます。 変数をマスクして非公開にすると、アシスタントはユーザー入力の機密情報を非表示にするか、会話ログにアスタリスクを付けてアシスタントの応答を非表示にします。
機密顧客情報をマスキングする機能は、アシスタントのアクションでのみ使用できます。 ダイアログからアクションを呼び出す場合、アクション・ステップでプライバシー設定を使用できますが、顧客情報はマスクされません。
Web チャット統合での会話中にユーザーのセッションが期限切れになると、アシスタントはマスクされたプライベート変数を失います。 これは、Web チャットが変数を新規セッションにコピーできないためです。 詳しくは、 セッション状態のコピー を参照してください。
変数は情報の名前付きコンテナーにすぎません。このコンテナーを名前で参照することにより、アシスタントは実行時に情報を保管したり取得したりできます。 例えば、 account_balanceという変数には、顧客の現在の口座残高が格納されているかもしれません。これは、アシスタントが必要に応じて更新または取得できる値です。
変数によって保管されるデータは、テキスト、数値、日付、または複数の値のリストなど、変数に含まれるデータのタイプによって特徴付けられます。 変数を使用して実行できる操作は、そのデータ・タイプによって異なります。
アクション変数とセッション変数
IBM® watsonx™ Assistantは 2つのカテゴリーの変数をサポートしています
-
アクション変数: ステップが顧客から情報を収集すると、顧客応答が自動的にアクション変数に保管されます。 アクション変数は、短期記憶のようなものと考えてください。アクション変数は、現在のアクションの間だけ持続します。
アクション変数の名前は常に、顧客応答を定義するステップの名前です。 (アクション変数の名前は変更できません。) 例えば、「生年月日は?」と尋ねて日付値を応答として受け入れるステップを定義するとします。 顧客応答は、アクション変数
When were you born?
として自動的に保管されます。この変数には、同じアクションにおける任意の後続ステップからアクセスできます。顧客応答設定で 「このステップで収集されたデータを保護する」 チェック・ボックスを選択することで、アクション変数をプライベートにすることができます。
-
セッション変数: 特定のアクションに必ずしも関連付けられているわけではない値は、セッション変数 として保管できます。 セッション変数は長期メモリーです。セッション変数はユーザーとアシスタントの対話全体にわたって存続し、アシスタントは任意のアクションからセッション変数を参照できます。
アクション変数の値は、他のアクションで値を使用できるように保持したければ、セッション変数を作成して保管します。 また、別のセッション変数に基づいて、または式で定義された値を使用して、セッション変数を定義することもできます。 作成する変数に加えて、watsonx Assistant には、現在日時のようなグローバル値向けに組み込みセッション変数セットが用意されています。
会話ログ内の機密顧客情報を非表示にするには、セッション変数を作成または編集するときに、 「この変数に保管されているデータを保護する」 チェック・ボックスを選択します。
セッション変数を使用すると、複数の場所で必要となる情報を収集する単一のアクションを記述できるため、アシスタントのモジュール化に役立ちます。 例えば、顧客に関する基本情報を収集して応答をセッション変数に保管する挨拶アクションが考えられます。このセッション変数には、いずれのアクションもアクセスできます。
作成したセッション変数は、単一セッションの間のみ保持されます。 セッションの終了時に、変数の値はクリアされます。 セッションの存続期間は、顧客がアシスタントにアクセスする方法、およびアシスタントが構成されている仕組みによって異なります。
セッション変数の作成
任意のアクションでアクセスできるセッション変数を追加するには、以下のようにします。
-
「アクション」 ページで、 「変数」>「作成者」 をクリックします。 このリストには、アシスタント用に作成したすべてのセッション変数が表示されます。
-
「新しい変数」をクリックします。
ステップ・エディターからも新規セッション変数を作成できます。 詳しくは、セッション変数に値を保管を参照してください。
-
**「名前 (Name)」**フィールドにセッション変数の名前を入力します。
名前を追加すると、ID が自動的に生成されます。 名前に含まれているスペースは、ID では下線 (_) に置き換えられます。
-
オプション: 変数の応答タイプを設定するためのタイプを追加します。 (応答タイプについて詳しくは、 応答タイプの選択 を参照してください。)
このフィールドでは、作成したいずれの保存済み応答も選択できます。 保存された応答について詳しくは、 顧客応答の保存と再利用 を参照してください。
リストされているタイプに加えて、変数を配列として作成することもできます。 配列変数を作成するには、タイプとして 「任意」 を選択し、次のステップで、式
[]
を使用して空の配列を表す初期値を定義します。 -
オプション: 各ユーザー・セッションの開始時に変数の開始値を設定するための初期値を追加します。 例えば、顧客はアシスタントを使用して購入を行うことができます。 Payment due 変数を開始値 0 で初期化してから、顧客オーダー・アイテムとしてその値に追加することができます。
複合オブジェクトまたは配列を初期値として指定したり、他の変数に基づいて初期値を計算したりするには、式を作成します。 式の作成について詳しくは、式の作成を参照してください。
-
オプション: 説明を追加します。
-
オプション: セッション変数に機密情報が含まれている場合は、 「プライバシー」 セクションの 「この変数に保管されているデータの保護」 チェック・ボックスを選択します。
-
**「適用」**をクリックします。
組み込み変数
作成する変数に加えて、watsonx Assistant には、任意のアクションからアクセスできる一連の組み込み変数が用意されています。 このような変数には、実行時に、適切な値が自動的に設定されます。 例えば、現在時刻セッション変数は常に、顧客との対話時にユーザーのタイム・ゾーンの現在時刻を提供します。
これらの変数を表示するには、 「アクション」 ページで 「変数」 をクリックします。
-
**「アシスタントにより設定」**ページには、アシスタントごとに自動的に提供される組み込みセッション変数が表示されます。
-
**「統合により設定」**ページには、顧客がアシスタントにつなぐために使用している統合によって自動的に提供される変数が表示されます。 (このような変数は、統合が接続されていない場合は設定されません。)
アシスタントにより設定:
変数名 | 変数 ID | 説明 | 例 |
---|---|---|---|
脱線元 | digressed_from |
脱線した顧客の前の最後のアクション (脱線していない場合は NULL) | 請求書の支払い |
現在 | now |
ユーザーのタイム・ゾーンでの現在日時。 | 2021-08-11T11:28:02 |
現在の行 | current_time |
ユーザーのタイム・ゾーンでの現在時刻。 | 11:28:02 |
現在の日付 | current_date |
ユーザーのタイム・ゾーンでの現在日付。 | 2021-08-11 |
フォールバック理由 | fallback_reason |
ユーザーがフォールバック・アクションに経路指定される理由 | ステップ検証に失敗しました-エージェントが要求されました-一致するアクションがありません |
一致なし | no_action_matches_count |
顧客の連続した認識されない入力試行回数を表します | 3 |
セッション履歴 IBM Cloud | セッション履歴 | 顧客の会話からの 24 個の最新メッセージ。 詳しくは、 セッション履歴 を参照してください。 | [{u : 'book a flight', n : true}, {a : 'sure! from where?'}] |
統合により設定:
変数名 | 変数 ID | 説明 | 例 |
---|---|---|---|
タイム・ゾーン | timezone |
統合または API クライアントによって指定されるユーザーのタイム・ゾーン。 デフォルトのタイムゾーン(統合で指定されていない場合)は協定世界時です。 | America/New_York |
ロケール | locale |
統合または API クライアントによって設定されるユーザーのロケール。 ロケールは、日付、時刻、数値の理解やフォーマットに影響を与えることがあります。 | en-gb |
チャネル名 | channel_name |
ユーザーが相互作用しているチャネルの名前。 | Web chat |
セッション変数に値を保管
どのようなアクションでもセッション変数に値を保存できるので、他のアクションでも利用できます。 セッション変数に値を保管するには、以下のようにします。
-
ステップ内から、 「変数値の設定」 をクリックします。
-
**「新規値の設定 (Set new value)」**をクリックします。
-
「設定」 ドロップダウン・リストで、選択項目は以下のとおりです。
Set variable values (変数値の設定) 選択 説明 セッション変数 値の保管先となるセッション変数。 新しい値によって、保管されている以前の値が置き換えられます。 統合変数 値の保管先となるセッション変数。 新しい値によって、保管されている以前の値が置き換えられます。 expression 最初に変数を選択せずに、式を直接記述します。 詳しくは、式の作成を参照してください。 + 新しいセッション変数 新規セッション変数を作成できます。これは、アシスタントのセッション変数のリストに追加されます。 詳しくは、セッション変数の作成を参照してください。 -
「宛先」 ドロップダウン・リストの選択項目は、設定する変数のタイプによって異なります。 以下の選択肢があります。
Set variable values (変数値の設定) 選択 説明 タイプ別のスカラー値 変数タイプごとに特定の値を設定します。 この選択は、変数の型によって異なります。 例えば、日付変数の場合、選択項目は 「日付を入力してください」 であり、日付ピッカーを使用して日付を設定できます。 その他の選択項目は、ブール値、確認、通貨、日付、フリー・テキスト、数値、パーセンテージ、および時間に対して表示されます。 式 セッション変数の値を定義する式を記述します。 式について詳しくは、式の作成を参照してください。 アクション変数 別のステップで顧客の回答の値を使用するアクション変数を選択します。 リストされる選択項目は、設定する変数のタイプと一致します。 セッション変数 当該値を使用する別のセッション変数を選択します。 リストされる選択項目は、設定する変数のタイプと一致します。 アシスタント変数 値を使用する組み込みシステム変数を選択します。 リストされる選択項目は、設定する変数のタイプと一致します。 統合変数 統合変数を設定する場合は、値として他の統合変数を選択できます。 -
同じステップでさらに変数値を設定するには、 「新規値の設定」 をクリックします。
変数を使用して会話フローを管理
変数を使用できる方法の 1 つは、実行時に使用できる顧客応答や他の値に基づいて、会話を通る正しいパスを選択することです。 これを行うには、ステップ条件を定義します。ステップ条件は、アクションにおける特定ステップが実行時条件に基づいて実行されるかどうかを判別するものです。
アクション変数に基づいて条件を定義することにより、ステップを以前のステップに対する顧客の応答に基づいて実行するかどうかを制御できます。 また、セッション変数に基づいてステップ条件を作成することもできます。セッション変数には、他のアクションからの情報を保管できます。
ステップ条件について詳しくは、ステップ条件を参照してください。
変数を使用して会話をカスタマイズ
会話中に収集された情報を動的に参照して、アシスタントが伝える内容に変数を使用することもできます。 これは、顧客が提供した情報 (You want to transfer $153.14 to your checking account. Is that correct?
など) を確認する場合や、会話をより人間的なものにするために単に会話をパーソナライズする場合 (Hi, John. How can I help you today?
)
に役立ちます。
アシスタントが伝える内容における変数を参照するには、以下のようにします。
-
**「アシスタントが伝える内容 (Assistant says)」**フィールドで応答のテキストの入力を開始します。
-
変数への参照を挿入するポイントに到達したら、ドル記号 (
$
) を入力するか、または*「変数の挿入」*アイコン () をクリックします。 選択できる変数を示すリストが表示されます。
-
変数をクリックすると、その変数への参照がテキストに追加されます。
変数を参照すると、その変数は、アシスタントの応答でデフォルト・フォーマットを使用して表示されます。 変数のフォーマットは、値の保存方法と異なる場合があります。例えば、 2021-08-11
の日付値は、デフォルトでは August 11, 2021
というフォーマットになります。
デフォルトの形式は次のとおりです。
タイプ | フォーマット | 例 |
---|---|---|
オプション | ユーザーが選択したとおり | Yes No |
数値 | 数字のみ | 1000 |
日付 | Mmm DD, YYYY | Jun 30, 2021 |
時刻 | H:MM:SS AM | 5:15:00 PM |
通貨 | 数字のみ、通貨記号なし | 20 |
パーセント | 数字のみ、パーセント記号なし | 20 |
フリー・テキスト | ユーザーが入力したとおり | Please check that the apples aren't bruised |
変数を含むアシスタント応答を作成する場合は、複数のパーツ (テキスト・ストリングと変数) を連結します。 1 つの応答を構成するために連結できるパーツは 30 個までです (例えば、15 個の変数と 15 個のテキスト・ストリング)。
参照式
式を使用して計算された動的値を参照する必要がある場合は、まずこの値をセッション変数に割り当てる必要があります。 (これを行う方法について詳しくは、 セッション変数への値の保管 を参照してください。) その後、 Assistant の「 」フィールドでセッション変数を参照できます。
アシスタント出力で式を参照するための <?...?>
構文は、アクションではサポートされないことに注意してください。