인간 대화는 의도와 엔티티 간에 전환하는 경향이 있으므로 동적이며 종종 여러 항목을 하나로 결합합니다. Kore.ai 봇 플랫폼은 작업 수준에서 정의된 하위 의도를 제공하며 컨텍스트를 수동으로 관리할 필요 없이 대화를 구성하는 가장 쉬운 방법입니다. 이 플랫폼을 통해 대화는 주요 의도의 일부로 관련 의도를 원활하게 나누고 해당 컨텍스트 내에서만 작업할 수 있습니다. 출력 컨텍스트가 부모 의도에 추가되고 같은 이름의 입력 컨텍스트가 새로 생성된 하위 의도에 추가됩니다. 따라서 대화의 이전 부분에서 상위 의도가 일치되는 경우에만 하위 의도를 일치시킬 수 있습니다. 후속 의도는 대화가 진행되는 중에 유용하며, 사용자의 발화나 의도를 즉시 확인할 수 없습니다. 다른 작업을 실행하는 중에 표시되지만 실행되지 않는 이러한 의도에 액세스할 수 있습니다. 이러한 파일은 FollowupIntents 배열에 저장됩니다. 그런 다음 대화 흐름의 끝에서 사용자에게 식별된 후속 의도 목록에서 작업을 선택하고 수행하도록 요청할 수 있습니다. 이 목록에 액세스하여 대화 흐름을 자세히 학습하고 구체화할 수도 있습니다.
하위 의도
There are three ways to define Sub Intents:
- Add an Intent Node within the Dialog Task – This intent is not available for any other dialog and since it is within the dialog, it is within its context. (more…)
- Use an existing Dialog Task – This intent can be used over multiple dialogs. You can define the dialog as Sub Intent-only dialog and it can not be invoked by user utterance nor will it appear in the list of available tasks when the user says help. (more…)
- As linked Tasks – The above two options are used when the sub intent is part of the dialog flow. For cases where the sub intent can be invoked by the user anywhere within the dialog, use the Manage Sub Intents and Exceptions option.
연결된 작업 예외
To facilitate exceptions in switching between specific tasks, you can utilize the Linked Tasks Exceptions in dialog tasks. When you link a dialog task to another, you can define customized Hold and Resume properties to transition to that particular task. Additionally, you can write one or more conditional expressions using any entity values or context to ensure the Hold and Resume rules come in effect only if those conditions are met.
As a part of defining the exceptions, you can also define entity pre-assignments and post-assignments.
- Using pre-assignments, you can map the parameters in the current context that need to be pre-populated in the next intent. You can pass the current context values to the entities present in the linked task or define custom variables to pass the current context values.
- Using post-assignments, you can map the context values in the linked task back to the main task from where the linked task was invoked. You can pass the linked task context values to the entities present in the main task or define custom variables to pass the linked task context values.
Note: Post-assignment is applicable only when the main task is resumed.
Adding Exceptions
To add exceptions to transition to a specific task, follow the steps:
- Open the dialog task whose settings you want to customize.
- On the top-right of the Dialog Builder, click the more options icon and select Manage Interruption Behavior.
- On the Manage Interruption Behavior page, click Add from the Manage Sub-intents and Exceptions section.
- On the Add sub-intents or exceptions page, from the Tasks drop-down list, select a task to link. You can select multiple tasks.
- Define the interruption behavior from the list of options below and click Save.
- The Manage Interruption Behavior page opens with the selected tasks listed under Exceptions.
You can optionally add conditional expressions within which the transition should take place and map parameters for the selected task.
Adding Conditional Expressions
To add conditional expressions, follow the below steps:
- Click the name of the task under Exceptions.
- Under Interruption Precondition, click Add If Condition.
- Select the Entity or Context option based on which you want to define the condition.
- Select an Entity or enter a Context as per your selection.
- Select a connector from the list of options: Exists, equals to, greater than equals to, less than equals to, not equal to, greater than, or less than.
- Under the value column, enter a comparative value.
- To add more conditions, click Add If, and repeat steps 1-6. You can add any number of conditions. When you write multiple conditions, all the specified conditions must be met for the Hold and Resume settings to take effect.
Important Notes:
- Using exceptions, you can link the same target task to a source task multiple times by defining different pre-conditions. When you do so, the platform executes the exceptions in the order they are defined.
- When none of the pre-conditions meet an exception, the platform adds the intent to the Follow-up Intents array.
- The platform evaluates the pre-conditions only when it encounters a user intent and tries to determine whether to execute it or not. It does not evaluate the pre-conditions when developers initiate the linked task through transitions or when the end-user chooses to run the task at the end of the dialog.
Parameter Mapping
To add entity pre-assignments, follow these steps after you enter conditional expressions for an exception:
- On the Exception Task window, under the Parameter Mapping section, Entity pre-assignment lists the entities needed for the on-hold task.
- Enter a direct value or a context reference next to an entity for which you want to pass a value.
- To pass values through a variable, click Add Key/Value and enter a variable name and a value.
To add entity post-assignments, follow these steps after you enter conditional expressions for an exception:
- On the Exception Task window, under the Entity post-assignment section, you can see the list of entities in the current task.
- Enter a direct value or a context reference next to an entity for which you want to pass a value.
- To pass values to a variable, click Add Key/Value and enter a variable name and a value.
Note: Post-assignment is applicable only when the main task is resumed.
If you want to reset the values, you need to use the keyword “null”, spaces would be ignored by the platform.
후속 의도
Follow-up intents refer to intents that came up in user conversations during the execution of another task, but the bot has not attended to. As a part of dialog task execution, the bot captures all unattended interruptions and makes them accessible to the bot in the FollowupIntents array.
However, the bot does not capture Follow-up Intent if you select the Do not Hold and Resume option at the node, task, or bot level, whichever is applicable to the task flow.
You can enable the dialog task to present all the Follow-up tasks to the user at the end of the dialog so they can choose to execute any of them. To do so, follow these steps:
- Open the dialog task whose settings you want to customize.
- On the top-right of the Dialog Builder, click the more options icon and then click Dialog Settings.
- The Follow-up Task sections shows the following options:
- Yes, at the end of this dialog ask the user to select and perform a task from the Follow-up task list: Select this option to show all the unattended intents to the user at the end of the dialog. To customize the message sent to the user, click Manager Response next to the option.
- No, the Follow-up task list is handled as part of the node connections: This is the default option. If this option is active, the bot does not present the Follow-up intents to the users at the end of the dialog. However, a developer can access this using the FollowupIntents array.
人間の会話は、インテントとエンティティの間を行き来する傾向があり、多くの場合、複数のものを1つにまとめるという点で動的です。Kore.aiボットプラットフォームは、タスクレベルで定義されたサブインテントを提供し、コンテキストを手動で管理する必要なくダイアログを形成する最も簡単な方法です。これにより、会話をプライマリーインテントの一部として関連するインテントにシームレスに分岐し、このコンテキスト内でのみ機能することができます。アウトプットコンテキストが親インテントに追加され、同じ名前のインプットコンテキストが新しく作成された子インテントに追加されます。従って、子インテントは、会話の前の部分で親インテントが一致した場合にのみ一致させることができます。フォローアップインテントは、ダイアログの過程でユーザーの発話やインテントにすぐに対応することが出来ない場合に役立ちます。別のタスクの実行中に発生するそのようなインテントにアクセスはできますが、それは実行されませんでした。これらは“フォローアップインテント”配列に格納されます。次に、ダイアログフローの最後で、識別されたフォローアップインテントのリストからタスクを選択して実行するようにユーザーに依頼することもできます。このリストにアクセスして、ダイアログフローをさらにトレーニングおよび改良することもできます。
サブインテント
サブインテントを定義するには、次の3つの方法があります:
- ダイアログタスク内にインテントノードを追加-このインテントは他のダイアログでは使用できず、そのダイアログ内にあるため、そのコンテキストに限られます。(詳細…)
- 既存のダイアログタスクを使用-このインテントは、複数のダイアログで使用可能です。ダイアログをサブインテントのみのダイアログとして定義するため、ユーザーの発話によって呼び出すことも、ユーザーがヘルプを言ったときに使用可能なタスクのリストに表示されることもありません。(詳細…)
- リンクされたタスクとして-サブインテントがダイアログフローの一部である場合、上記の2つのオプションが使用されます。ユーザーがダイアログ内の任意の場所でサブインテントを呼び出すことができる場合は、サブインテントの管理と例外オプションを使用します。
リンクされたタスクの例外
特定のタスクを切り替える際の例外をやり易くするために、ダイアログタスク内のリンクされたタスクの例外を利用できます。ダイアログタスクを別のタスクにリンクする場合、その特定のタスクに移行するためにカスタマイズされた一時停止および再開プロパティを定義できます。さらに、任意のエンティティ値またはコンテキストを使用していくつかの条件式を記述し、それらの条件が満たされた場合にのみ一時停止および再開ルールが有効になるようにすることができます。例外の定義の一部として、エンティティの事前割り当てと事後割り当てを定義することも可能です。
- 事前割り当てを使用すると、次のインテントで事前入力する必要があるパラメータを、現在のコンテキストにマップできます。リンクされたタスクに存在するエンティティに現在のコンテキスト値を渡すか、現在のコンテキスト値を渡すためにカスタム変数を定義するlこともできます。
- 事後割り当てを使用すると、リンクされたタスクのコンテキスト値を、メインタスクのリンクされたタスクが呼び出された場所にマップして戻すことができます。リンクされたタスクのコンテキスト値をメインタスクに存在するエンティティに渡すか、リンクされたタスクのコンテキスト値を渡すためにカスタム変数を定義することもできます。
メモ:事後割り当ては、メインタスクが再開された場合にのみ適用されます。
例外の追加
特定のタスクに移行するための例外を追加するには、次のステップに従います:
- 設定をカスタマイズしたいダイアログタスクを開きます。
- ダイアログビルダーの右上にあるその他のオプションアイコンをクリックし、割り込み動作の管理を選択します。
- 割り込み動作の管理ページで、サブインテントと例外の管理セクションから「追加」をクリックします。
- サブインテント又は例外の追加ページのタスクドロップダウンリストから、リンクすべきタスクを選択します。複数のタスクが選択可能です。
- 以下のオプションリストから割り込み動作を定義し、保存をクリックします。
- 割り込み動作の管理ページが開き、選択されたタスクが「例外」の下にリスト表示されます。
オプションで、遷移が発生する条件式を追加し、選択されたタスクのパラメータをマップできます。
条件式の追加
条件式を追加するには、以下のステップに従います:
- 例外の下のタスク名をクリックします。
- 「割り込みの前提条件」で、条件の追加をクリックします。
- 条件を定義したいエンティティ又はコンテキストオプションを選択します。
- エンティティを選択するか、自身の選択に応じてコンテキストを入力します。
- オプションリストからコネクタを選択します。“存在する”、“等しい”、“より大きい”、“より小さい”、“等しくない”、“以上”、または“以下”。
- 値の列で、比較値を入力します。
- さらに条件を追加するには、条件を追加をクリックして、ステップ1〜6を繰り返します。条件はいくつでも追加可能です。複数の条件を設定する場合、一時停止と再開の設定を有効にするには、指定されたすべての条件を満足する必要があります。
重要な注意事項:
- 例外を使用して、異なる前提条件を定義することにより、同じターゲットタスクをソースタスクに複数回リンクできます。これを行うと、プラットフォームは定義された順番に例外を実行します。
- いずれの前提条件も例外を満たさない場合、プラットフォームはインテントをフォローアップインテント配列に追加します。
- プラットフォームは、ユーザーのインテントに遭遇した場合にのみ前提条件を考慮し、それを実行するかどうかを決定しようとします。開発者が遷移を介してリンクされたタスクを開始するとき、又はエンドユーザーがダイアログの最後でタスクを実行することを選択したときの前提条件は考慮されません。
パラメータマッピング
エンティティの事前割り当てを追加するには、例外の条件式を入力した後、次のステップに従います:
- パラメータマッピングセクションの例外タスクウィンドウで、エンティティの事前割り当てに保留中のタスクに必要なエンティティが一覧表示されます。
- 値を渡したいエンティティの横に直接値を入力するか、又はコンテキスト参照を入力します。
- 変数を介して値を渡すには、キー/値の追加をクリックして、変数名と値を入力します。
エンティティの事後割り当てを追加するには、例外の条件式を入力した後、次のステップに従います:
- エンティティの事後割り当てセクションの例外タスクウィンドウで、現在のタスクのエンティティリストを確認できます。
- 値を渡したいエンティティの横に直接値を入力するか、又はコンテキスト参照を入力します。
- 変数に値を渡すには、キー/値の追加をクリックして、変数名と値を入力します。
メモ:事後割り当ては、メインタスクが再開された場合にのみ適用されます。
値をリセットする場合は、キーワード「null」を使用する必要がありますが、プラットフォームではスペースは無視されます。
フォローアップインテント
フォローアップインテントとは、別のタスクの実行中にユーザーの会話で発生したインテントを指しますが、ボットはそれを処理しません。ダイアログタスクの実行の一部として、ボットはすべての未処理割り込みを取り込み、フォローアップインテント配列でボットがそれらにアクセスできるようにします。ただし、ノード、タスク、又はボットレベルのいずれか該当するタスクフローで一時停止せずに再開オプションを選択した場合、ボットはフォローアップインテントを取り込みません。ダイアログタスクを有効にして、ダイアログの最後にすべてのフォローアップタスクをユーザーに提示し、ユーザーが実行したいものを選択できるようにすることができます。これを行うには、次のステップに従います:
- 設定をカスタマイズしたいダイアログタスクを開きます。
- ダイアログビルダーの右上にあるその他のオプションアイコンをクリックしてから、ダイアログ設定をクリックします。
- フォローアップタスクセクションには、次のオプションが表示されます。
- はい、このダイアログの最後に、ユーザーに“フォローアップタスク”リストからタスクを選択して実行するように依頼します。ダイアログの最後にすべての未処理インテントをユーザーに表示するには、このオプションを選択します。ユーザーに送信されるメッセージをカスタマイズするには、オプションの横にある「レスポンスの管理」をクリックします。
- いいえ、フォローアップタスクリストはノード接続の一部として処理されます。これはデフォルトのオプションです。このオプションがアクティブな場合、ボットはダイアログの最後にユーザーにフォローアップインテントを提示しません。ただし、開発者はフォローアップインテント配列を使用してこれにアクセスできます。
Leave a Reply
Human conversations are dynamic in that they tend to switch between intents and entities, often combining multiple things into one.
Kore.ai bots platform offers Sub Intents that are defined at the task level, and are the easiest way to shape dialog without having to manage context manually. This enable conversations to seamlessly branch into related intents as part of the primary intent, and work only within this context. An output context is added to the parent intent and an input context of the same name is added to the newly created child intent. Thus, the child intent can only be matched when the parent intent was matched during a previous portion of the conversation.
Follow-up Intents come in handy during the course of a dialog, a user utterance or intent cannot be attended to immediately. You can access such intents that come up during the execution of a different task, but that was never acted upon. These are stored in the FollowupIntents array. You can then opt to ask users at the end of the dialog flow to select and perform tasks from a list of identified follow-up intents. You can also access this list to further train and refine their dialog flows.
Sub Intents
There are three ways to define Sub Intents:
- Add an Intent Node within the Dialog Task – This intent is not available for any other dialog and since it is within the dialog, it is within its context. (more…)
- Use an existing Dialog Task – This intent can be used over multiple dialogs. You can define the dialog as Sub Intent-only dialog and it can not be invoked by user utterance nor will it appear in the list of available tasks when the user says help. (more…)
- As linked Tasks – The above two options are used when the sub intent is part of the dialog flow. For cases where the sub intent can be invoked by the user anywhere within the dialog, use the Manage Sub Intents and Exceptions option.
Linked Task Exceptions
To facilitate exceptions in switching between specific tasks, you can utilize the Linked Tasks Exceptions in dialog tasks. When you link a dialog task to another, you can define customized Hold and Resume properties to transition to that particular task. Additionally, you can write one or more conditional expressions using any entity values or context to ensure the Hold and Resume rules come in effect only if those conditions are met.
As a part of defining the exceptions, you can also define entity pre-assignments and post-assignments.
- Using pre-assignments, you can map the parameters in the current context that need to be pre-populated in the next intent. You can pass the current context values to the entities present in the linked task or define custom variables to pass the current context values.
- Using post-assignments, you can map the context values in the linked task back to the main task from where the linked task was invoked. You can pass the linked task context values to the entities present in the main task or define custom variables to pass the linked task context values.
Note: Post-assignment is applicable only when the main task is resumed.
Adding Exceptions
To add exceptions to transition to a specific task, follow the steps:
- Open the dialog task whose settings you want to customize.
- On the top-right of the Dialog Builder, click the more options icon and select Manage Interruption Behavior.
- On the Manage Interruption Behavior page, click Add from the Manage Sub-intents and Exceptions section.
- On the Add sub-intents or exceptions page, from the Tasks drop-down list, select a task to link. You can select multiple tasks.
- Define the interruption behavior from the list of options below and click Save.
- The Manage Interruption Behavior page opens with the selected tasks listed under Exceptions.
You can optionally add conditional expressions within which the transition should take place and map parameters for the selected task.
Adding Conditional Expressions
To add conditional expressions, follow the below steps:
- Click the name of the task under Exceptions.
- Under Interruption Precondition, click Add If Condition.
- Select the Entity or Context option based on which you want to define the condition.
- Select an Entity or enter a Context as per your selection.
- Select a connector from the list of options: Exists, equals to, greater than equals to, less than equals to, not equal to, greater than, or less than.
- Under the value column, enter a comparative value.
- To add more conditions, click Add If, and repeat steps 1-6. You can add any number of conditions. When you write multiple conditions, all the specified conditions must be met for the Hold and Resume settings to take effect.
Important Notes:
- Using exceptions, you can link the same target task to a source task multiple times by defining different pre-conditions. When you do so, the platform executes the exceptions in the order they are defined.
- When none of the pre-conditions meet an exception, the platform adds the intent to the Follow-up Intents array.
- The platform evaluates the pre-conditions only when it encounters a user intent and tries to determine whether to execute it or not. It does not evaluate the pre-conditions when developers initiate the linked task through transitions or when the end-user chooses to run the task at the end of the dialog.
Parameter Mapping
To add entity pre-assignments, follow these steps after you enter conditional expressions for an exception:
- On the Exception Task window, under the Parameter Mapping section, Entity pre-assignment lists the entities needed for the on-hold task.
- Enter a direct value or a context reference next to an entity for which you want to pass a value.
- To pass values through a variable, click Add Key/Value and enter a variable name and a value.
To add entity post-assignments, follow these steps after you enter conditional expressions for an exception:
- On the Exception Task window, under the Entity post-assignment section, you can see the list of entities in the current task.
- Enter a direct value or a context reference next to an entity for which you want to pass a value.
- To pass values to a variable, click Add Key/Value and enter a variable name and a value.
Note: Post-assignment is applicable only when the main task is resumed.
If you want to reset the values, you need to use the keyword “null”, spaces would be ignored by the platform.
Follow-up Intents
Follow-up intents refer to intents that came up in user conversations during the execution of another task, but the bot has not attended to. As a part of dialog task execution, the bot captures all unattended interruptions and makes them accessible to the bot in the FollowupIntents array.
However, the bot does not capture Follow-up Intent if you select the Do not Hold and Resume option at the node, task, or bot level, whichever is applicable to the task flow.
You can enable the dialog task to present all the Follow-up tasks to the user at the end of the dialog so they can choose to execute any of them. To do so, follow these steps:
- Open the dialog task whose settings you want to customize.
- On the top-right of the Dialog Builder, click the more options icon and then click Dialog Settings.
- The Follow-up Task sections shows the following options:
- Yes, at the end of this dialog ask the user to select and perform a task from the Follow-up task list: Select this option to show all the unattended intents to the user at the end of the dialog. To customize the message sent to the user, click Manager Response next to the option.
- No, the Follow-up task list is handled as part of the node connections: This is the default option. If this option is active, the bot does not present the Follow-up intents to the users at the end of the dialog. However, a developer can access this using the FollowupIntents array.