Question

v4.66でアップデート

説明

Question Nodeは、ユーザーに特定の情報を尋ねる質問をするために使用されます。

質問がなされ、ユーザーが回答すると、そのタイプに従って回答が検証されます。パスすると、回答は有効で保存され、トークは続行されます。

アタッチFlow

ユーザー入力が受信されると、その入力はNLUによってスコアリングされます。アタッチFlowにIntentがあり、そのIntentが現在のFlowのIntentよりもスコアが高い場合、アタッチFlowが実行されます。これは、 Question Nodeの検証が完了する前に実行されます。詳細は、[Attached Flow(アタッチFlow)]を参ご覧ください。

Cognigy/Transformers

Reference to Cognigy repository on GitHub

Question タイプ

Question Nodeには、トークを続ける前に使用される検証を決定するタイプの選択があります。

タイプ質問に答えるために予想されるユーザーの入力
Textテキスト入力
Yes / No肯定的または否定的な応答
Intentユーザーの応答から識別される学習済みIntentの1つ。
Slotユーザーの応答から検出されるシステムSlotまたはLexicon Slot。Slotは名前によって定義されます。
Date日付(システム定義)
Number数字(システム定義)
Temperature温度(システム定義)
Age年齢(システム定義)
Duration期間(システム定義)
Emailメールアドレス(システム定義)
Money金額(システム定義)
URLインターネット上のリソースへの参照/アドレス(例:http://example.com)
Percentageパーセンテージ(システム定義)
Regexユーザーの応答で検出される正規表現で定義されたカスタムデータ形式
Dataデータ(input.data)入力
xAppxApp入力
Custom入力
Pattern: License Plate (DE)ドイツの自動車登録プレートのパターン。このナンバープレートは、車両に表示される固有の英数字の識別タグである。アルファベット、数字、時には特殊文字、例えばöäüなどで表記されます。ナンバープレートは車両を識別・登録する手段として機能し、車両の所有者、登録内容、法的要件の遵守などの重要な情報を提供します。M-345, x1Y2Z3, D 12345C
Pattern: IBAN国際銀行口座番号(IBAN)のパターンDE12345678901234567890
Pattern: Bank Identifier Code (BIC)銀行識別コード(BIC)のパターンDEUTDEFF500
Pattern: Social Security Number (US)米国の社会保障番号のパターン123-45-6789
Pattern: IP Address (IPv4)IPv4アドレスのパターン192.168.1.1
Pattern: Phone Number電話番号のパターン+49 0000000000, 49 0000000000, +490000000000, (555) 000-000
Pattern: Credit Card銀行カードのパターン4111111111111110

正規表現

正規表現が / で始まり /g で終わることをご確認ください。

例 :/^1d{7}$/g

システム定義スロットに対応するデータ形式

Cognigy NLUがシステムスロットマッピングでサポートするすべてのデータ形式は、[Slot Mapping]ページに一覧表示されています。

チャネルと出力タイプ

Question Nodeの出力タイプはSay Nodeと同じ機能を持ちます。

DateのQuestions

QuestionタイプでDateが選択された場合、チャネルが許可していれば、Question Nodeは自動的にDatepickerをレンダリングします。詳細は[Datepicker]をご参照ください。

リプロンプトオプション

リプロンプトメッセージは、期待された入力タイプがなかったり、検証でtrueが返されなかったりするなど、質問に正しく答えられなかった場合に自動的にトリガーされます。

再プロンプトメソッド

以下のリプロンプトメソッドのうち1つを選択することができます:

Simple Text(シンプルテキスト)

シンプルなテキストメッセージをユーザーに出力します。

パラメータタイプ説明
Reprompt MessageCognigyScript入力された答えが無効な場合に出力するメッセージ。例:Not sure I understood this correctly

Channel Message(チャネルメッセージ)

包括的なチャンネル固有のメッセージをユーザーに出力します。このメッセージには、画像やオーディオなどのリッチメディアが含まれます。Webchat, Voice Gateway, WhatsAppなど、チャネルごとに異なるメッセージを定義できます。

パラメータタイプ説明
Reprompt Messageチャネルrepromtメッセージを設定したいチャネル。複数のチャネルを選択できます。
Output Type選択選択したチャネルで配信されるコンテンツの形式。選択したチャネルに応じて、そのチャネルに適した出力タイプのリストが表示されます。すべてのチャネルでTextタイプがサポートされていますが、他のタイプのサポートは異なる場合があります。

LLM Prompt(LLM プロンプト)

LLMプロンプトを実行し、結果をテキストメッセージの形式でユーザーに出力します。このNodeを使用する前に、LLM設定でモデルを設定してください。

パラメータタイプ説明
Large Language Model選択repromtメッセージを設定したいチャネル。複数のチャネルを選択できます。
LLM InstructionsCognigyScript出力を生成するために言語モデルに与えられる、プロンプトやシステムメッセージなどの入力やコマンド。
Transcript Turnsスライダー選択したチャネルで配信されるコンテンツの形式。選択したチャネルに応じて、そのチャネルに適した出力タイプのリストが表示されます。すべてのチャネルでTextタイプがサポートされていますが、他のタイプのサポートは異なる場合があります。

Execute Flow and return(Flowを実行して戻る)

特定のFlowを実行し、その後質問に戻ります。

パラメータタイプ説明
Select Flow選択リプロンプトメッセージとして実行されるFlow。
Select Node選択Flowをリプロンプトメッセージとして実行するNode。
Parse Intentsトグルこの設定は、実行FlowでシステムがIntentを個別に解析するかどうかを決定します。デフォルトでは、この設定は有効です。
Parse Slotsトグルこの設定は、実行FlowでシステムがSlotを個別に解析するかどうかを決定します。デフォルトでは、この設定は有効です。
Absorb Contextトグルこの設定は、実行Flowのコンテキストを現在のコンテキストに吸収するかどうかを決定します。デフォルトでは、この設定は無効です。

質問を繰り返す

ユーザーが無効な回答をした場合、質問を繰り返します。デフォルトでは、この設定は有効です。

リプロンプト条件

オプションで、リプロンプトメッセージを表示するかどうかを決定する CognigyScript 条件を追加できます。

Intentでスキップ

入力にIntentが見つかった場合、リプロンプトをスキップします。

結果の保存

質問結果は常にinput.resultに保存されます。

[Store Result in Context(結果をコンテキストに保存)]が有効な場合、質問結果がContextオブジェクトにも保存されます。

[Store Result to Contact Profilet(結果をコンタクトプロファイルに保存)]が有効な場合、質問結果はProfileオブジェクトにも保存されます。

エスカレーション – Intents

指定されたIntentが見つかった場合、 Question Nodeからトークを中断できるようにします。

アクション説明
Output Messageメッセージを出力する(Say Nodeに相当)
Skip Question質問をスキップし、特定の値をinput.resultオブジェクトに入力します。
Go To Node特定のFlow Nodeに移動し、そこから継続します(Go To Nodeに相当)
Execute Flow and Return特定のFlow Nodeに移動し、その後質問に戻る(Execute Flow Nodeに相当)
Handover to Human Agentトークはエージェントに引き継がれ、エージェントは質問ステップを終えてトークを返す手助けをしてくれます。

[Valid Intents(有効なインテント)]フィールドにインテント名を入力し、キーボードのENTERを押して、[escalate on intent(インテントでエスカレーション)] 機能をトリガーできるIntentを追加します。専用のIntentスコアしきい値スライダーを好みの設定に調整し、リストされたIntentの1つがそのスコアに達した場合にのみエスカレーションが発生するようにします。

誤答でのエスカレーション

多くの誤答があった場合、 Question Nodeからトークを中断できるようにします。

アクション説明
Output Messageメッセージを出力する(Say Nodeに相当)
Skip Question質問をスキップし、特定の値をinput.resultオブジェクトに入力します。
Go To Node特定のFlow Nodeに移動し、そこから継続します(Go To Nodeに相当)
Execute Flow and Return特定のFlow Nodeに移動し、その後質問に戻る(Execute Flow Nodeに相当)
Handover to Human Agentトークはエージェントに引き継がれ、エージェントは質問ステップを終えてトークを返す手助けをしてくれます。

エスカレーションが起こっているときに、リプロンプトを防ぐことができます。

[only escalate once(一度だけエスカレーションする)]オプションは、エスカレーションがしきい値に対して一度だけ起こるか、しきい値から始まるすべての入力に対して起こるかを決定します。

ヒューマンエージェントへのハンドオーバー

リリースv4.4.0では、[Handover to Human Agent(ヒューマンエージェントへのハンドオーバー)]オプションが追加されました。Nodeエディタを開くと、このオプションがIntentsとWrong_Answersのエスカレーションアクションとして表示されます。 このエスカレーションがヒットすると、トークはエージェントに引き継がれ、エージェントは質問ステップを終え返す手助けをしてくれます。

再確認の設定

続行する前に回答を再確認できるようにします。これは音声ボットを使用し、ボットが理解したことを再確認するときに特に有用です(例えば、Numberの質問で、ユーザーが「私の番号は355999568です」と言った場合)。再確認の質問に対する回答は、Yes/No形式の回答でなければならず、Yes/No Questionと同じルールに従います。

再確認の質問は特定のトークンANSWERを含むことができます。ANSWERは入力された答えの省略形(例えば、Moneyの質問では 「3 EUR」)に置き換えられます。省略形の答えはinput.activeQuestion.tentativeShortFormAnswerから取り出されます;

再確認の質問には、特定のリプロンプトを設定することができます。これは質問に対する答えがYes/Noスタイルでない場合に、質問の前に出力されます。

応用編

Question Nodeには2つの詳細設定があります。

Store detailed Results(詳細結果を保存する)

この設定を有効にすると、入力のresultプロパティの下に、より詳細なJSONオブジェクトが保存されます。これは、より詳細な情報が必要な場合に便利です。

入力に答えがある場合はスキップする

この設定を有効にすると、入力テキストにすでに答えが入力されている場合、質問はスキップされます。

追加検証

CognigyScriptの条件で、回答が有効とみなされるにはtrueを返す必要があります。例えば、cognigy.comのメールアドレスのみが検証を通過することを保証することができるinput.slot.EMAIL[0].endsWith("cognigy.com")という Email Questionの追加検証があります。

結果の場所

回答の場所は、デフォルトでは質問のタイプによって決定されます (たとえば、Email Questionsの場合はinput.slots.EMAIL[0])。これはこの設定を使用して上書きすることができます (例えば、input.slots.EMAILは見つかったすべてのメールスロットを保存します)。結果の場所が値を返さない場合 (=falsy(偽))、答えは無効とみなされます。

Forget Question Threshold(質問を忘れるしきい値)

この設定は、最初に質問が行われた後、ユーザーがNodeから「away(離席中)」でいられる時間を決定します。デフォルト設定の1では、次のユーザー入力で質問に答えなければなりません。ユーザー入力が後の段階で質問に戻ってきた場合、質問が初めてヒットされたものとして扱われ、質問が行われます。

Question Nodes と Intent Execution

Question Nodes(デフォルト)は、有効な回答が得られるまで何度もトリガーされます。これを避けるには、Optional Questionを選択するか、Intent Executionの設定を変更してください。

スロットフィラー

質問はスロットフィラーと組み合わせて、いわゆる「ミッシングパターン」を作成することができます。このメカニズムでは、すべての質問に答え終わるまで、非常に自然な方法で足りない情報をユーザーに尋ね続けます。

入力の質問情報

Optional Questionが “active”、つまり回答待ちの状態になると、入力オブジェクトにOptional Questionに関する情報が追加されます。

"activeQuestion": {
    "nodeId": "18b158bf-71a3-4d4f-a31f-812b1810f8af",
    "type": "yesNo",
    "lastExecutedAt": 2,
    "forgetQuestionThreshold": 1,
    "repromptCount": 1,
    "escalationCount": 0
}

この情報は、エスカレーション時に特定のアクションをトリガーしたり、エスカレーション後に Question Nodeに戻ったりするために使用することができます。

AI活用出力

AIを活用したボットの出力言い換えを利用するには、[Generative AI(生成AI)]の記事をご覧ください。

回答の事前処理

Text Cleanerクラスのさまざまな関数を使用して、質問に対する回答が評価される前に事前処理を行うことができます。これは、たとえば、Textタイプの質問を使用して名前を尋ねるときや、Slotの質問を使用して部品番号を尋ねるときに役立ちます。

Text Cleaner関数に加えて、ユーザーはクリーニングプロセス後にNLUを再実行するオプションもあります。この方法によって、Slotの再検出や、残っているSlotを適切に埋めるなどの処理が可能になります。