ダイナミック選択肢ユーザー入力コントロール
仮想エージェントトピックのダイナミック選択肢ユーザー入力コントロールを使用して、ユーザーが利用できる選択肢のリストを動的に作成します。これらの選択肢を作成するには、テーブルをクエリするか、動的に作成するスクリプトを使用します。
選択リストの表示
ダイナミック選択肢リストには、ページあたり最大 10 個のアイテムが含まれます。NLU 会話に 10 個を超えるアイテムが存在する場合は、追加のアイテムを表示し、検索結果をフィルタリングすることもできます。選択リストのプロンプトには、検索アイコン ユーザーが選択して結果をフィルタリングできます。LLM 会話に 10 を超えるアイテムが存在する場合、スクロールバーが表示されます。LLM 会話に 16 を超えるアイテムが存在する場合、検索バーが表示されます。
複数の選択肢の選択がオンになっている場合は、[ 検索オプション ] フィールド内で検索して、検索結果をフィルタリングできます。該当するすべての選択肢を選択または入力し、[送信] アイコン [LLM トピックを介して選択肢を送信すると、LLM は選択肢が検証基準を満たしているかどうかを応答します。
チャットウィンドウに発言を入力して、LLM 会話のリストから選択肢を選択することもできます。入力に一致するものがない場合、 仮想エージェント はそれが有効な選択肢ではないことを通知し、別の入力を試すように求めます。
-
ヘッダーカードには、大小の画像または YouTube ビデオカードを、説明テキストとともに含めることができます。選択リストにはデフォルトで最大 5 つのアイテムが含まれますが、検索機能は非表示になります。アイテムが 5 つ以上ある場合、ユーザーは追加のアイテムを表示することを選択できます。
-
ヘッダーカードの下に表示されるアイテムの数を制御するには、 com.glide.cs.web_header_picker_page_limit システムプロパティを追加します。[ 値 ] を使用して、選択リスト内のアイテム数を指定します。システムプロパティの作成の詳細については、「 システムプロパティの追加」を参照してください。
動的選択リストノードに選択肢を 1 つだけ入力すると、ノードをテストまたは使用しているときに、「 [ノード名] として [選択肢] があります。これは正しいですか?」というメッセージが表示されます。このメッセージを受信しないようにするには、[動的選択リスト] ノードで複数の選択肢を使用します。
次の場所に移動してメッセージ内容を変更することもできます システムプロパティ glide.cs.retry_question_message 編集します。このメッセージ値はデフォルトでは文字列です {1}として{0}しましたが、これは正しいですか? 動的選択リスト外の複数のケースでスロットに入力するために使用されます。加えた変更は、このプロパティを使用するたびに反映されます。
LLM トピックディスカバリー用のダイナミック選択肢ユーザー入力コントロールのプロパティ
| プロパティ | 説明 |
|---|---|
| ノード名 |
トピックフローでノードを識別する名前です。 |
| 変数名 |
このプロンプトに対するユーザー応答を格納する変数の名前です。変数名は、ノード名プロパティから自動的に作成されます。 |
| プロンプト |
ユーザーへのプロンプトまたは質問。プロンプトは、テキスト文字列またはテキストを返すスクリプトのいずれかです。この値は、デフォルト値が指定されていない場合にのみ使用されます。例:[名前は何ですか (What's your name?)] リッチテキストを作成して、プロンプトのスタイルを変更できます。
|
| NLU エンティティ |
NLU エンティティをノードに関連付けるオプション。NLU エンティティがこのノードの入力変数に関連付けられている場合、仮想エージェント はユーザーの発言に基づいて指定された値をスロットに入力できます。トピックインテントに関連付けられているエンティティのリストからエンティティを選択します。 ノードのエンティティを指定すると、[認識されたエンティティの確認をユーザーに要求しない] トグルスイッチが表示されます。有効にすると、ユーザーは抽出されたエンティティの確認を求められません。 このフィールドは、インスタンスで NLU ディスカバリーが有効になっている場合にのみ使用できます。 |
| 選択肢 | |
| 選択肢の入力方法 |
使用するダイナミック変数のタイプ。次のオプションのいずれかを選択します。
|
| テーブル |
検索するテーブル。ただし [レコード] を選択肢の入力方法として選択した場合にのみ使用可能です。 |
| フィルターの選択肢 |
仮想エージェントデザイナー 条件ビルダーを使用するか、スクリプトを提供するオプション。次のいずれかを選択します。
|
| ユーザーが複数の選択肢を選択できるようにします |
選択リストから複数の選択肢を選択できるオプション。 |
| レコード応答メッセージなし |
テーブル検索でレコードが返されなかった場合に表示されるメッセージ。メッセージは、テキスト文字列またはテキストを返すスクリプトのいずれかです。 |
| 詳細 | |
| ヘッダーカード |
切り替えて、画像または YouTube 動画を含む可能性があるカードを追加するためのフィールドを開きます。詳細については、「静的選択肢またはダイナミック選択肢コントロールにヘッダーカードを挿入する」を参照してください。 |
| デフォルト値 | |
| デフォルト値 |
質問またはプロンプトに対するユーザー応答の事前定義済みの値です。[デフォルト値の確認] フィールドで定義された応答では、ユーザーにデフォルト値の確認を求めます。ユーザーが「 no」で応答した場合、値は null になります。デフォルト値は、テキスト文字列またはテキストを返すスクリプトのいずれかです。たとえば、ドット連結を使用している場合、デフォルト値は Script Variables > Last username になります。または、スクリプトを使用している場合、デフォルト値は {{vaScripts.lastUsername}} になります。 |
| 確認メッセージ | |
| 入力完了確認 |
ノードのインタラクションが完了したときにユーザーに表示されるボット応答。メッセージは、テキスト文字列またはテキストを返すスクリプトのいずれかです。たとえば、ドット連結を使用している場合は、次のようになります。Thanks, (Input Variables > Username)! または、スクリプトを使用している場合、確認応答は次のようになります。Thanks, {{vaInputs.username}}! |
| デフォルト値の確認 |
[デフォルト値 (Default value)]フィールドの値が正しいことを検証するようにユーザーに求めるメッセージ。このメッセージは、 [プロンプト (Prompt)] フィールドの値の代わりに使用されます。テキスト文字列またはテキストを返すスクリプトのいずれかが含まれる可能性があります。たとえば、ドット連結を使用している場合は、次のようになります。Are you (Input Variables > Username)? またはスクリプトを使用している場合、確認メッセージは次のようになり ます。Are you {{vaScripts.lastUsername}}? |
| 会話の切り替え | |
| このセクションは、インスタンスで NLU ディスカバリーが有効な場合にのみ使用できます。 | |
| ユーザーが件名を変更できるようにするにはオンにします |
このノードの NLU 予測を有効にするオプション。有効にすると、使用している入力コントロールのタイプに関係なく、ユーザーはテキストを入力して質問に回答できます。仮想エージェント はこの発言を使用して別の既存のインテントを照合し、ユーザーがトピックを切り替えられるようにします。 |
| このノードを非表示またはスキップ | |
| 次の場合、このノードを条件付きで表示します: |
会話でこのノードを表示するための条件を指定するノーコード条件ステートメントまたはローコードスクリプト。条件は true と評価される必要があります。 |
| 次の場合、ユーザーにこのノードのスキップを許可 |
会話でユーザーにこのノードをスキップさせるための条件を指定するノーコード条件ステートメントまたはローコードスクリプト。条件は true と評価される必要があります。このフィールドは、条件ビルダーまたはスクリプトのいずれかを使用して設定できます。 |
| 次の場合、再プロンプトをスキップします | 会話でユーザーが再プロンプトをスキップできるようにするための条件を指定するノーコード条件ステートメントまたはローコードスクリプト。トピックループバックまたはダイアログアクションで先行するノードに再度アクセスすると、仮想エージェントはこのノードをバイパスし、元の値を自動的に保持します。 |
LLM トピックディスカバリー用のダイナミック選択肢ユーザー入力コントロールの例
| 入力プロパティ | ユーザープロンプトをリスト |
|---|---|
|
|
|
NLU トピックディスカバリー用のダイナミック選択肢ユーザー入力コントロールのプロパティ
| プロパティ | 説明 |
|---|---|
| ノード名 |
トピックフローでノードを識別する名前です。 |
| 変数名 |
このプロンプトに対するユーザー応答を格納する変数の名前です。変数名は、ノード名プロパティから自動的に作成されます。 |
| プロンプト |
ユーザーへのプロンプトまたは質問。プロンプトは、テキスト文字列またはテキストを返すスクリプトのいずれかです。この値は、デフォルト値が指定されていない場合にのみ使用されます。例:[名前は何ですか (What's your name?)] リッチテキストを作成して、プロンプトのスタイルを変更できます。
|
| NLU エンティティ |
NLU エンティティをノードに関連付けるオプション。NLU エンティティがこのノードの入力変数に関連付けられている場合、仮想エージェント はユーザーの発言に基づいて指定された値をスロットに入力できます。トピックインテントに関連付けられているエンティティのリストからエンティティを選択します。 ノードのエンティティを指定すると、[認識されたエンティティの確認をユーザーに要求しない] トグルスイッチが表示されます。有効にすると、ユーザーは抽出されたエンティティの確認を求められません。 このフィールドは、インスタンスで NLU ディスカバリーが有効になっている場合にのみ使用できます。 |
| 選択肢 | |
| 選択肢の入力方法 |
使用するダイナミック変数のタイプ。次のオプションのいずれかを選択します。
|
| テーブル |
検索するテーブル。ただし [レコード] を選択肢の入力方法として選択した場合にのみ使用可能です。 |
| フィルターの選択肢 |
仮想エージェントデザイナー 条件ビルダーを使用するか、スクリプトを提供するオプション。次のいずれかを選択します。
|
| ユーザーが複数の選択肢を選択できるようにします |
選択リストから複数の選択肢を選択できるオプション。 |
| レコード応答メッセージなし |
テーブル検索でレコードが返されなかった場合に表示されるメッセージ。メッセージは、テキスト文字列またはテキストを返すスクリプトのいずれかです。 |
| 詳細 | |
| ヘッダーカード |
切り替えて、画像または YouTube 動画を含む可能性があるカードを追加するためのフィールドを開きます。詳細については、「静的選択肢またはダイナミック選択肢コントロールにヘッダーカードを挿入する」を参照してください。 |
| デフォルト値 | |
| デフォルト値 |
質問またはプロンプトに対するユーザー応答の事前定義済みの値です。[デフォルト値の確認] フィールドで定義された応答では、ユーザーにデフォルト値の確認を求めます。ユーザーが「 no」で応答した場合、値は null になります。デフォルト値は、テキスト文字列またはテキストを返すスクリプトのいずれかです。たとえば、ドット連結を使用している場合、デフォルト値は Script Variables > Last username になります。または、スクリプトを使用している場合、デフォルト値は {{vaScripts.lastUsername}} になります。 |
| 確認メッセージ | |
| 入力完了確認 |
ノードのインタラクションが完了したときにユーザーに表示されるボット応答。メッセージは、テキスト文字列またはテキストを返すスクリプトのいずれかです。たとえば、ドット連結を使用している場合は、次のようになります。Thanks, (Input Variables > Username)! または、スクリプトを使用している場合、確認応答は次のようになります。Thanks, {{vaInputs.username}}! |
| デフォルト値の確認 |
[デフォルト値 (Default value)]フィールドの値が正しいことを検証するようにユーザーに求めるメッセージ。このメッセージは、 [プロンプト (Prompt)] フィールドの値の代わりに使用されます。テキスト文字列またはテキストを返すスクリプトのいずれかが含まれる可能性があります。たとえば、ドット連結を使用している場合は、次のようになります。Are you (Input Variables > Username)? またはスクリプトを使用している場合、確認メッセージは次のようになり ます。Are you {{vaScripts.lastUsername}}? |
| 会話の切り替え | |
| このセクションは、インスタンスで NLU ディスカバリーが有効な場合にのみ使用できます。 | |
| ユーザーが件名を変更できるようにするにはオンにします |
このノードの NLU 予測を有効にするオプション。有効にすると、使用している入力コントロールのタイプに関係なく、ユーザーはテキストを入力して質問に回答できます。仮想エージェント はこの発言を使用して別の既存のインテントを照合し、ユーザーがトピックを切り替えられるようにします。 |
| このノードを非表示またはスキップ | |
| 次の場合、このノードを条件付きで表示します: |
会話でこのノードを表示するための条件を指定するノーコード条件ステートメントまたはローコードスクリプト。条件は true と評価される必要があります。 |
| 次の場合、ユーザーにこのノードのスキップを許可 |
会話でユーザーにこのノードをスキップさせるための条件を指定するノーコード条件ステートメントまたはローコードスクリプト。条件は true と評価される必要があります。このフィールドは、条件ビルダーまたはスクリプトのいずれかを使用して設定できます。 |
| 次の場合、再プロンプトをスキップします | 会話でユーザーが再プロンプトをスキップできるようにするための条件を指定するノーコード条件ステートメントまたはローコードスクリプト。トピックループバックまたはダイアログアクションで先行するノードに再度アクセスすると、仮想エージェントはこのノードをバイパスし、元の値を自動的に保持します。 |
NLU トピックディスカバリー用のダイナミック選択肢ユーザー入力コントロールの例
- リストの最後に、さらに多くの結果を表示するためのリンクがあります。
- 検索結果をフィルタリングするための検索アイコン (
がプロンプトに表示されます。ユーザーはこのアイコンを選択して検索ボックスを開き、フィルターを入力します。
- 複数の選択肢を選択する場合は、[ 検索オプション ] フィールド内で検索して、検索結果をフィルタリングできます。このトピックにあるセカンダリフィールドを有効にするスクリプトを入力すると、検索フィルターの結果はセカンダリフィールドにも適用されます。該当するすべての選択肢を選択または入力し、[送信] アイコン
を選択します。
ダイナミック選択肢スクリプトの例
(function execute() {
var pagingUtil = new global.VirtualAgentChoicePagingUtil(null, "sys_user", 10, "user_name,name",
"active=true", null, vaVars);
var selectedOptions = pagingUtil.getSavedSelectedOptions("user", vaSystem);
if (!selectedOptions || selectedOptions.length == 0) {
// Secondary labels can be passed to selected options
selectedOptions.push({ "value": "abel.tuter", "label": "Abel Tuter"
,"secondary_label": ["abel.tuter@example.com", "male"]
});
selectedOptions.push({ "value": "Beth.anglin", "label": "Beth Anglin"
,"secondary_label": ["beth.anglin@example.com", "female"]
});
}
vaSystem.setSelectedOptions(selectedOptions, "user", false);
// Topic authors have the ability to define which values should go in the
// secondary labels by adding secondary label functions
pagingUtil.addSecondaryLabelFunction(function (gr) {
return gr.getValue("email");
});
pagingUtil.addSecondaryLabelFunction(function (gr) {
return gr.getValue("gender");
});
var gr = pagingUtil.getPagingGlideRecordSecure("name", false);
var options = pagingUtil.getSecureOptions(gr, null,'user_name', ['user_name']);
return options;
})()ダイナミック選択肢リスト値式の例
(function execute(table) {
var options = [];
var gr = new GlideRecordSecure(table);
gr.addEncodedQuery('active=true');
gr.setLimit(5);
gr.query();
while(gr.next()) {
options.push({ 'value': gr.getUniqueValue(), 'label': gr.getValue('short_description') });
}
return options;
})(table)
[選択肢値の式] プロパティのスクリプトは、選択肢のアレイを定義して返します。この例では、スクリプトは options という配列を作成し、GlideRecord クエリで見つかった各レコードをこの配列に追加します。アレイ内の各要素には、その GlideRecord のデータを使用して値キーとラベルキーに値が与えられます。コントロールの Table プロパティは、スクリプトで使用されるテーブルを定義します。このスクリプト例では、 gr.setLimit(5) を使用して、返されるレコードの数を 5 に制限しています。このメソッドを使用すると、返されたレコードで過度に大きな選択リストが作成されるのを防ぐことができます。
| キー | 説明 |
|---|---|
| 値 | 選択肢の値。ユーザーがコントロールから選択肢を選択すると、この値は [変数名 ] プロパティで名前付けされた変数に格納されます。 |
| ラベル | 選択リスト内のこの選択肢に表示されるラベル。 |
チャネルサポート
| チャネル | LLM サポート | NLU/キーワードのサポート | 制約 |
|---|---|---|---|
| Web UI | サポート対象外 | サポート対象 | なし |
| Mobile UI | サポート対象外 | サポート対象 | なし |
| Now Assist パネル | サポート対象外 | サポート対象 | なし |
| Microsoft Teams | サポート対象 | サポート対象 | なし |
| Slack | サポート対象外 | サポート対象 | ヘッダーカードはサポートされていません。 |
| Workplace | サポート対象外 | サポート対象 | ヘッダーカードはサポートされていません。 |
| Facebook Messenger | サポート対象外 | サポート対象外 | 該当なし |
| SMS Twilio | サポート対象外 | サポート対象 | ヘッダーカードはサポートされていません。 |
| LINE | サポート対象外 | サポート対象外 | 該当なし |
| サポート対象 | サポート対象 | なし | |
| Apple Messages for Business | サポート対象外 | サポート対象 | なし |
| Alexa (音声アシスト機能) | サポート対象外 | サポート対象 | 画面デバイスの場合は、タッチスクロールを使用します。リンクのクリックはサポートされていません。画面以外のデバイスの場合は、音声ページネーションを使用します。 |