コンポーネントとウォーターフォールのダイアログについてAbout component and waterfall dialogs

適用対象: SDK v4APPLIES TO: SDK v4

ダイアログには、いくつかの種類があります。Dialogs come in a few different types. この記事では、コンポーネント、ウォーターフォール、およびプロンプトダイアログについて説明します。This article describes component, waterfall, and prompt dialogs. 一般的なダイアログの詳細については、「 ダイアログライブラリ 」の記事を参照してください。For information about dialogs in general, see the dialogs library article. アダプティブダイアログの詳細については、「 アダプティブダイアログの概要」を参照してください。For information about adaptive dialogs, see the introduction to adaptive dialogs.

ウォーターフォールダイアログ(ウォーターフォール) は一連の手順を定義します。これにより、ユーザーに対して線形のプロセスを導くことができます。A waterfall dialog (or waterfall) defines a sequence of steps, allowing your bot to guide a user through a linear process. これらは通常、 コンポーネントダイアログ のコンテキスト内で動作するように設計されています。These are typically designed to work within the context of a component dialog.

コンポーネントダイアログとは、セット内のダイアログで、ウォーターフォールダイアログ呼び出しプロンプトダイアログやその他のウォーターフォールダイアログなど、セット内の他のダイアログを呼び出すことができるようにするコンテナーダイアログの一種です。A component dialog is a type of container dialog that allows dialogs in the set to call other dialogs in the set, such as a waterfall dialog calling prompt dialogs or another waterfall dialog. コンポーネントダイアログでは、ウォーターフォールダイアログやプロンプトなどの一連の ダイアログを管理します。Component dialogs manage a set of child dialogs, such as waterfall dialogs, prompts, and so on. 特定のタスクを処理し、同じ bot で、または複数のボットにわたって再利用するコンポーネントダイアログをデザインできます。You can design a component dialog to handle specific tasks and reuse it, in the same bot or across multiple bots.

プロンプトダイアログ (プロンプト) は、数値、日付、名前など、特定の種類の情報をユーザーに要求するように設計されたダイアログです。Prompt dialogs (prompts) are dialogs designed to ask the user for specific types of information, such as a number, a date, or a name, and so on. プロンプトは、コンポーネントダイアログでウォーターフォールダイアログを使用するように設計されています。Prompts are designed to work with waterfall dialogs in a component dialog.

コンポーネント ダイアログComponent dialogs

郵便番号、市区町村、および番地の値を指定するようユーザーに要求する住所用のダイアログなど、さまざまなシナリオで使用する再利用可能なダイアログの作成が必要になる場合があります。Sometimes you want to write a reusable dialog that you want to use in different scenarios, such as an address dialog that asks the user to provide values for street, city and zip code.

"コンポーネント ダイアログ" は、特定のシナリオを処理するために、大規模なダイアログ セットをより管理しやすい要素に分割した、独立したダイアログを作成するための戦略を提供します。The component dialog provides a strategy for creating independent dialogs to handle specific scenarios, breaking a large dialog set into more manageable pieces. 各要素には独自のダイアログ セットがあり、その要素を含むダイアログ セットとの名前の競合を回避しています。Each of these pieces has its own dialog set, and avoids any name collisions with the dialog set that contains it. これらの詳細については、コンポーネント ダイアログの使用方法に関するページを参照してください。See the component dialog how to for more on these.

ウォーターフォール ダイアログWaterfall dialogs

ウォーターフォール ダイアログはダイアログ特有の実装であり、一般的にユーザーから情報を収集したり、一連のタスクをユーザーに案内したりするときに使用されます。A waterfall dialog is a specific implementation of a dialog that is commonly used to collect information from the user or guide the user through a series of tasks. 会話の各ステップは、"ウォーターフォール ステップ コンテキスト" (step) パラメーターを取得する非同期関数として実装されます。Each step of the conversation is implemented as an asynchronous function that takes a waterfall step context (step) parameter. 各ステップで、ボットは、ユーザーに入力を要求するプロンプトを表示し (または、子ダイアログを開始できるが、プロンプトであることが多い)、応答を待ち、結果を次のステップに渡します。At each step, the bot prompts the user for input (or can begin a child dialog, but that it is often a prompt), waits for a response, and then passes the result to the next step. 最初の関数の結果は次の関数の引数として渡され、その次の関数でも同様です。The result of the first function is passed as an argument into the next function, and so on.

次の図は、ウォーターフォール ステップの順序と、実行されるスタック操作を示したものです。The following diagram shows a sequence of waterfall steps and the stack operations that take place. ダイアログ スタックの使用方法の詳細は、下の「ダイアログの使用」セクションに記載されています。Details on the use of the dialog stack are below in the using dialogs section.

ダイアログの概念

ウォーターフォール ステップ内で、ウォーターフォール ダイアログのコンテキストは、"ウォーターフォール ステップ コンテキスト" に格納されます。Within waterfall steps, the context of the waterfall dialog is stored in its waterfall step context. これによって、現在のターン コンテキストと状態にアクセスできるため、このコンテキストはダイアログ コンテキストに似ています。This is similar to the dialog context as it provides access to the current turn context and state. ウォーターフォール ステップ コンテキスト オブジェクトを使用して、ウォーターフォール ステップ内からダイアログ セットと対話します。Use the waterfall step context object to interact with a dialog set from within a waterfall step.

通常、ボットのターン ロジックからのダイアログ ターンの結果の状態のみを確認する必要がある場合であっても、ダイアログのウォーターフォール ステップ内からの戻り値や、ボットのオン ターン ハンドラーのダイアログからの戻り値を処理することができます。You can handle a return value from a dialog either within a waterfall step in a dialog or from your bot's on turn handler, although you generally only need to check the status of the dialog turn result from your bot's turn logic. ウォーターフォール ステップ内では、ウォーターフォール ステップ コンテキストの result プロパティに戻り値が返されます。Within a waterfall step, the dialog provides the return value in the waterfall step context's result property.

ウォーターフォール ステップ コンテキスト プロパティWaterfall step context properties

ウォーターフォール ステップ コンテキストには、次の要素が含まれます。The waterfall step context contains the following:

  • オプション: ダイアログの入力情報が格納されます。Options: contains input information for the dialog.
  • : コンテキストに追加できる情報が格納され、以降の手順に繰り越されます。Values: contains information you can add to the context, and is carried forward into subsequent steps.
  • 結果: 前の手順の結果が格納されます。Result: contains the result from the previous step.

さらに、次***の (C# では、* JS と Python では の) メソッドは、同じターンでウォーターフォールダイアログの次のステップに進み、必要に応じて bot が特定の手順をスキップできるようにします。Additionally, the next method (NextAsync in C#, next in JS and Python) continues to the next step of the waterfall dialog within the same turn, enabling your bot to skip a certain step if needed.

プロンプトPrompts

プロンプトは、ユーザーに情報を要求して応答を評価するための簡単な方法をダイアログ ライブラリ内で提供します。Prompts, within the dialogs library, provide an easy way to ask the user for information and evaluate their response. たとえば、"数値プロンプト" では、質問や要求している情報を指定すると、プロンプトが有効な数値の応答を受信したかどうかが自動的に確認されます。For example for a number prompt, you specify the question or information you are asking for, and the prompt automatically checks to see if it received a valid number response. 適切な応答が得られた場合は、会話を継続できます。それ以外の場合は、有効な答えをユーザーに再度要求します。If it did, the conversation can continue; if it didn't, it will re-prompt the user for a valid answer.

バックグラウンドでは、プロンプトは 2 つのステップから成るダイアログです。Behind the scenes, prompts are a two-step dialog. プロンプトでは、最初のステップで入力を要求し、2 番目のステップで有効な値を返すか、最初からやり直して再度入力を要求します。First, the prompt asks for input; second, it returns the valid value, or starts from the top with a reprompt.

プロンプトには、プロンプトの呼び出し時に指定される "プロンプト オプション" があり、プロンプトで使用するテキスト、検証に失敗した場合の再試行プロンプト、およびプロンプトに対する回答の選択肢を指定できます。Prompts have prompt options given when the prompt is called, which is where you can specify the text to prompt with, the retry prompt if validation fails, and choices to answer the prompt. 一般に、prompt プロパティと retry prompt プロパティはアクティビティですが、さまざまなプログラミング言語でこれを処理する方法にいくつかのバリエーションがあります。In general, the prompt and retry prompt properties are activities, though there is some variation on how this is handled in different programming languages.

さらに、プロンプトの作成時に、プロンプト用にいくつかのカスタム検証を追加することができます。Additionally, you can choose to add some custom validation for your prompt when you create it. たとえば、数値プロンプトを使用して会合の規模を把握するとします。ただし、その会合の規模は 3 人以上、12 人未満である必要があります。For example, say we wanted to get a party size using the number prompt, but that party size has to be more than 2 and less than 12. このプロンプトは、まず、有効な数値を受け取ったかどうかを確認し、カスタム検証が指定されている場合はその後にカスタム検証を実行します。The prompt first checks to see if it received a valid number, then runs the custom validation if it is provided. カスタム検証に失敗した場合、ユーザーは再度上記の内容を要求されます。If the custom validation fails, it will re-prompt the user as above.

プロンプトが完了したら、要求された結果の値が明示的に返されます。When a prompt completes, it explicitly returns the resulting value that was asked for. 値が返されると、組み込みのプロンプトの検証と、入力された可能性のあるあらゆる追加のカスタム検証の両方を通過したことが保証されます。When that value is returned, we can be sure it has passed both the built in prompt validation and any additional custom validation that may have been provided.

さまざまなプロンプトを使用するときの例については、ユーザー入力を収集するダイアログ ライブラリの使用方法を参照してください。For examples on using various prompts, take a look at how to use the dialogs library to gather user input.

プロンプトの種類Prompt types

バックグラウンドでは、プロンプトは 2 つのステップから成るダイアログです。Behind the scenes, prompts are a two-step dialog. プロンプトでは、最初のステップで入力を要求し、2 番目のステップで有効な値を返すか、最初からやり直して再度入力を要求します。First, the prompt asks for input; second, it returns the valid value, or restarts from the top with a re-prompt. ダイアログ ライブラリには、多数の基本的なプロンプトが用意されており、それぞれ異なる種類の応答の収集に使用されます。The dialogs library offers a number of basic prompts, each used for collecting a different type of response. 基本的なプロンプトでは、数を表す "ten" や "a dozen"、日時を表す "tomorrow" や "Friday at 10am" など、自然言語の入力を解釈できます。The basic prompts can interpret natural language input, such as "ten" or "a dozen" for a number, or "tomorrow" or "Friday at 10am" for a date-time.

PromptPrompt 説明Description 戻り値Returns
添付ファイル プロンプトAttachment prompt ドキュメントや画像など、1 つ以上の添付ファイルを要求します。Asks for one or more attachments, such as a document or image. "添付ファイル" オブジェクトのコレクション。A collection of attachment objects.
選択プロンプトChoice prompt 一連のオプションから選択するよう求めます。Asks for a choice from a set of options. "見つかった選択肢" オブジェクト。A found choice object.
確認プロンプトConfirm prompt 確認を求めます。Asks for a confirmation. ブール値です。A Boolean value.
日時プロンプトDate-time prompt 日時の入力を求めます。Asks for a date-time. "日時解決" オブジェクトのコレクション。A collection of date-time resolution objects.
数値プロンプトNumber prompt 数値の入力を求めます。Asks for a number. 数値。A numeric value.
テキスト プロンプトText prompt 一般的なテキスト入力を求めます。Asks for general text input. 文字列。A string.

ユーザーに入力を求めるには、組み込みクラスのいずれかを使用してプロンプト ( "テキスト プロンプト" など) を定義し、ダイアログ セットに追加します。To prompt a user for input, define a prompt using one of the built-in classes, such as the text prompt, and add it to your dialog set. プロンプトには固定 ID があります。この ID は、ダイアログ セット内で一意である必要があります。Prompts have fixed IDs that must be unique within a dialog set. プロンプトごとにカスタム検証コントロールを含めることができます。一部のプロンプトについては、"既定のロケール" を指定できます。You can have a custom validator for each prompt, and for some prompts, you can specify a default locale.

プロンプトのロケールPrompt locale

ロケールは、選択確認日時数値 の各プロンプトの言語固有の動作を決定するために使用されます。The locale is used to determine language-specific behavior of the choice, confirm, date-time, and number prompts. ユーザーからの任意の入力に対して、チャネルがユーザーのメッセージで locale プロパティを提供した場合は、このロケールが使用されます。For any given input from the user, if the channel provided a locale property in user's message, then that is used. それ以外の場合、プロンプトのコンストラクターの呼び出し時に指定するか、後で設定することによって、プロンプトの "既定のロケール" が設定されていれば、それが使用されます。Otherwise, if the prompt's default locale is set, by providing it when calling the prompt's constructor or by setting it later, then that is used. どちらも指定されていない場合は、ロケールとして英語 ("en-us") が使用されます。If neither of those are provided, English ("en-us") is used as the locale. 注:ロケールは、言語または言語ファミリを表す 2、3、または 4 文字の ISO 639 コードです。Note: The locale is a 2, 3, or 4 character ISO 639 code that represents a language or language family.

プロンプト オプションPrompt options

ステップ コンテキストの prompt メソッドの 2 番目のパラメーターは、prompt options オブジェクトを受け取ります。このオブジェクトには、次のプロパティがあります。The second parameter of the step context's prompt method takes a prompt options object, which has the following properties.

プロパティProperty 説明Description
PromptPrompt 入力を求めるためにユーザーに送信する最初のアクティビティ。The initial activity to send the user, to ask for their input.
Retry promptRetry prompt 最初の入力が有効ではなかった場合にユーザーに送信するアクティビティ。The activity to send the user if their first input did not validate.
ChoicesChoices ユーザーが選択できる選択肢のリスト。選択プロンプトで使用されます。A list of choices for the user to choose from, for use with a choice prompt.
ValidationsValidations カスタム検証コントロールで使用する追加のパラメーターです。Additional parameters to use with a custom validator.
StyleStyle 選択プロンプトまたは確認プロンプトの選択項目をユーザーに提示する方法を定義します。Defines how the choices for a choice prompt or confirm prompt will be presented to a user.

ユーザーに送信する初期プロンプト アクティビティと、ユーザーの入力が検証されない場合のインスタンスに対する再試行プロンプトを常に指定する必要があります。You should always specify the initial prompt activity to send the user, as well as a retry prompt for instances when the user's input doesn't validate.

ユーザーの入力が有効でない場合、再試行プロンプトがユーザーに送信されます。再試行が指定されていない場合は、初期プロンプトが再送信されます。If the user's input isn't valid, the retry prompt is sent to the user; if there was no retry specified, then the initial prompt is re-sent. ただし、検証コントロール内からアクティビティがユーザーに返送された場合、再試行プロンプトは送信されません。However, if an activity is sent back to the user from within the validator, no retry prompt is sent.

プロンプトの検証Prompt validation

ウォーターフォールの次のステップに値を返す前にプロンプトの応答を検証できます。You can validate a prompt response before returning the value to the next step of the waterfall. 検証関数は、prompt validator context パラメーターを持ち、入力が検証に合格したかどうかを示すブール値を返します。A validator function has a prompt validator context parameter and returns a Boolean, indicating whether the input passes validation. prompt validator context には、次のプロパティが含まれます。The prompt validator context includes the following properties:

プロパティProperty 説明Description
コンテキストContext ボットの現在のターン コンテキスト。The current turn context for the bot.
RecognizedRecognized プロンプト認識エンジンの結果。認識エンジンによって処理された、ユーザー入力に関する情報が含まれます。A prompt recognizer result that contains information about the user input, as processed by the recognizer.
[オプション]Options プロンプトを開始する呼び出しで提供された prompt options が含まれます。Contains the prompt options that were provided in the call to start the prompt.

プロンプト認識エンジンの結果には、次のプロパティがあります。The prompt recognizer result has the following properties:

プロパティProperty 説明Description
SucceededSucceeded 認識エンジンが入力を解析できたかどうかを示します。Indicates whether the recognizer was able to parse the input.
ValueValue 認識エンジンからの戻り値。The return value from the recognizer. 必要に応じて、検証コードでこの値を変更できます。If necessary, the validation code can modify this value.

ダイアログの使用Using dialogs

ダイアログは、"ダイアログ スタック" と呼ばれるプログラム スタックとして考えることができます。ターン ハンドラーは、ダイアログを振り向け、スタックが空の場合はフォールバックとして機能します。Dialogs can be thought of as a programmatic stack, which we call the dialog stack, with the turn handler as the one directing it and serving as the fallback if the stack is empty. このスタックの一番上の項目が アクティブなダイアログ と見なされ、ダイアログコンテキストによってすべての入力がアクティブなダイアログに送られます。The top-most item on that stack is considered the active dialog, and the dialog context directs all input to the active dialog.

ダイアログは、開始されると、スタックにプッシュされて、アクティブなダイアログになります。When a dialog begins, it is pushed onto the stack, and is now the active dialog. 終了するか、replace dialog メソッドによって削除されるまではアクティブなダイアログのままであり、別のダイアログが (ターン ハンドラーかアクティブなダイアログ自体のいずれかによって) スタックにプッシュされると、この別のダイアログがアクティブなダイアログになります。It remains the active dialog until it either ends, it is removed by the replace dialog method, or another dialog is pushed onto the stack (by either the turn handler or active dialog itself) and becomes the active dialog. この新しいダイアログが終了すると、スタックから取り除かれます。この場合も、下にある次のダイアログがアクティブなダイアログになります。When that new dialog ends, it is popped off the stack and the next dialog down becomes the active dialog again. これにより、以下で説明するダイアログの繰り返しまたは会話の分岐が可能になります。This allows for repeating a dialog or branching a conversation, discussed below.

ルートダイアログを開始または続行するには、[ 実行 ] ダイアログ拡張メソッドを使用します。You can begin or continue a root dialog using the run dialog extension method. Bot コードから、dialog run 拡張メソッドを呼び出すと、既存のダイアログが続行されるか、スタックが現在空の場合はダイアログの新しいインスタンスが開始されます。From the bot code, calling the dialog run extension method either continues the existing dialog, or starts a new instance of the dialog if the stack is currently empty. コントロールとユーザー入力は、スタックのアクティブなダイアログに移動します。Control and user input goes to the active dialog on the stack.

Run メソッドでは、ダイアログの状態にアクセスするために state プロパティアクセサー が必要です。The run method requires a state property accessor to access the dialog state. このアクセサーは、その他の状態のアクセサーと同じ方法で作成および使用されますが、会話の状態に基づいて独自のプロパティとして作成されます。The accessor is created and used the same way as other state accessors, but is created as it's own property based off of the conversation state. 状態の管理方法の詳細については、状態の管理に関するトピックに記載され、ダイアログの状態の使用状況については、連続して行われる会話フローの仕組みに関するページに記載されています。Details on managing state can be found in the managing state topic, and usage of dialog state is shown in the sequential conversation flow how-to.

ダイアログ内では、ダイアログコンテキストにアクセスでき、それを使用して他のダイアログを開始したり、現在のダイアログを終了したり、その他の操作を実行したりすることができます。From within a dialog, you have access to the dialog context and can use it to start other dialogs, end the current dialog, and perform other operations.

ダイアログを開始するにはTo start a dialog

ウォーターフォールダイアログ内から、開始する ダイアログ ID をダイアログコンテキストの [ 開始] ダイアログ、[ プロンプト]、または [ 置換] ダイアログ メソッドに渡します。From within a waterfall dialog, pass the dialog ID you want to start into the dialog context's begin dialog, prompt, or replace dialog method.

  • Prompt メソッドと begin dialog メソッドは、参照されるダイアログの新しいインスタンスをスタックの一番上にプッシュします。The prompt and begin dialog methods will push a new instance of the referenced dialog onto the top of the stack.
  • replace dialog メソッドは、現在のダイアログをスタックから取り除き、それに置き換わるダイアログをスタックにプッシュします。The replace dialog method will pop the current dialog off the stack and push the replacing dialog onto the stack. 置き換えられたダイアログは取り消され、そのインスタンスに含まれているすべての情報が破棄されます。The replaced dialog is canceled and any information that instance contained is disposed of.

options パラメーターを使用して、ダイアログの新しいインスタンスに情報を渡します。Use the options parameter to pass information to the new instance of the dialog. 新しいダイアログに渡されたオプションには、ダイアログの任意のステップで、ステップ コンテキストの options プロパティを通じてアクセスできます。The options passed into the new dialog can be accessed via the step context's options property in any step of the dialog. コード例の使用方法については、「ブランチとループを使用して高度な会話フローを作成する」を参照してください。See the Create advanced conversation flow using branches and loops how-to for example code.

ダイアログを続行するにはTo continue a dialog

ウォーターフォールダイアログ内で、ステップコンテキストの [ ] プロパティを使用して、ターン間で状態を保持します。Within a waterfall dialog, use the step context's values property to persist state between turns. 先行ターンでこのコレクションに追加された値はすべて、後続のターンで利用できます。Any value added to this collection in a previous turn is available in subsequent turns. コード例の使用方法については、「ブランチとループを使用して高度な会話フローを作成する」を参照してください。See the Create advanced conversation flow using branches and loops how-to for example code.

ダイアログを終了するにはTo end a dialog

ウォーターフォールダイアログで、 終了ダイアログ メソッドを使用してダイアログを終了します。ダイアログを終了するには、スタックからポップします。Within a waterfall dialog, use the end dialog method to end a dialog by popping it off the stack. 終了ダイアログ メソッドは、親コンテキスト (呼び出されたダイアログ、bot のターンハンドラーなど) にオプションの結果を返すことができます。The end dialog method can return an optional result to the parent context (such as the dialog that called it, or the bot's turn handler). ほとんどの場合は、ダイアログ自体の現在のインスタンスを終了するために、ダイアログ内から呼び出します。This is most often called from within the dialog to end the current instance of itself.

end dialog メソッドは、ダイアログ コンテキストのある任意の場所から呼び出すことができますが、ボットには、現在のアクティブなダイアログから呼び出されたように見えます。You can call the end dialog method from anywhere you have a dialog context, but it will appear to the bot that it was called from the current active dialog.

ヒント

end dialog メソッドはダイアログの最後に明示的に呼び出すことをお勧めします。It is best practice to explicitly call the end dialog method at the end of the dialog.

すべてのダイアログをクリアするにはTo clear all dialogs

スタックからすべてのダイアログを取り出す場合は、ダイアログ コンテキストの cancel all dialogs メソッドを呼び出すことで、ダイアログ スタックをクリアできます。If you want to pop all dialogs off the stack, you can clear the dialog stack by calling the dialog context's cancel all dialogs method.

ダイアログの繰り返しRepeating a dialog

replace dialog メソッドを使用して、ダイアログをそれ自体と置き換えることで、ループを作成できます。You can replace a dialog with itself, creating a loop, by using the replace dialog method. これは、 複雑な相互作用 と、メニューを管理するための1つの手法を処理するための優れた方法です。This is a great way to handle complex interactions and one technique for managing menus.

注意

現在のダイアログ ボックスの内部状態を維持する必要がある場合は、replace dialog メソッドへの呼び出しで、ダイアログの新しいインスタンスに情報を渡した後、ダイアログを適切に初期化する必要があります。If you need to persist the internal state for the current dialog, you will need to pass information to the new instance of the dialog in the call to the replace dialog method, and then initialize the dialog appropriately.

会話の分岐Branch a conversation

ダイアログ コンテキストではダイアログ スタックが保持され、スタックのダイアログごとに、次のステップが追跡されます。The dialog context maintains the dialog stack and for each dialog on the stack, tracks which step is next. begin dialog メソッドは、子ダイアログを作成してスタックの一番上にプッシュし、end dialog メソッドは一番上のダイアログをスタックから取り除きます。Its begin dialog method creates a child and pushes that dialog onto the top of the stack, and its end dialog method pops the top dialog off the stack. end dialog は、通常、終了するダイアログ内から呼び出されます。End dialog is usually called from within the dialog that's ending.

ダイアログでは、ダイアログ コンテキストの begin dialog メソッドを呼び出し、新しいダイアログの ID を指定することで、同じダイアログ セット内で新しいダイアログを開始できます。これにより、新しいダイアログがアクティブ ダイアログになります。A dialog can start a new dialog within the same dialog set by calling the dialog context's begin dialog method and providing the ID of the new dialog, which then makes the new dialog the currently active dialog. 元のダイアログは引き続きスタック上に残りますが、ダイアログ コンテキストの continue dialog メソッドへの呼び出しは、スタックの一番上のダイアログ ("アクティブ ダイアログ") にのみ送信されます。The original dialog is still on the stack, but calls to the dialog context's continue dialog method are only sent to the dialog that is on top of the stack, the active dialog. ダイアログがスタックから取り除かれると、ダイアログ コンテキストは、スタックのウォーターフォールの次のステップに移り、元のダイアログが中断されたところから再開されます。When a dialog is popped off the stack, the dialog context will resume with the next step of the waterfall on the stack where it left off of the original dialog.

つまり、会話フロー内に分岐を作成するには、ダイアログにステップを追加して、利用可能な一連のダイアログの中から、開始するダイアログを条件に応じて選択できるようにします。Therefore, you can create a branch within your conversation flow by including a step in one dialog that can conditionally choose a dialog to start out of a set of available dialogs.

関連情報Additional information