인간 대화는 의도와 엔티티 간에 전환하는 경향이 있으므로 동적이며 종종 여러 항목을 하나로 결합합니다. Kore.ai 봇 플랫폼은 작업 수준에서 정의된 하위 의도를 제공하며 컨텍스트를 수동으로 관리할 필요 없이 대화를 구성하는 가장 쉬운 방법입니다. 이 플랫폼을 통해 대화는 주요 의도의 일부로 관련 의도를 원활하게 나누고 해당 컨텍스트 내에서만 작업할 수 있습니다. 출력 컨텍스트가 부모 의도에 추가되고 같은 이름의 입력 컨텍스트가 새로 생성된 하위 의도에 추가됩니다. 따라서 대화의 이전 부분에서 상위 의도가 일치되는 경우에만 하위 의도를 일치시킬 수 있습니다. 후속 의도는 대화가 진행되는 중에 유용하며, 사용자의 발화나 의도를 즉시 확인할 수 없습니다. 다른 작업을 실행하는 중에 표시되지만 실행되지 않는 이러한 의도에 액세스할 수 있습니다. 이러한 파일은 FollowupIntents 배열에 저장됩니다. 그런 다음 대화 흐름의 끝에서 사용자에게 식별된 후속 의도 목록에서 작업을 선택하고 수행하도록 요청할 수 있습니다. 이 목록에 액세스하여 대화 흐름을 자세히 학습하고 구체화할 수도 있습니다.
하위 의도
하위 의도를 정의하는 방법에는 세 가지가 있습니다.
- 대화 작업에 의도 노드 추가 – 이 의도는 다른 대화에서 사용할 수 없으며 대화 내에 있으므로 해당 컨텍스트 내에 존재합니다. (더 보기)
- 기존 대화 작업 사용 – 이 의도는 여러 대화에서 사용할 수 있습니다. 이 대화를 하위 의도 전용 대화로 정의할 수 있으며, 사용자가 도움을 요청할 때 대화를 사용자 발화로 호출하거나 사용 가능한 작업 목록에 표시할 수 없습니다. (더 보기)
- 연결된 작업으로 -하위 의도가 대화 흐름의 일부인 경우 위의 두 옵션이 사용됩니다. 사용자가 대화 내 어디에서나 하위 의도를 호출할 수 있는 경우 하위 의도 관리 및 예외 관리 옵션을 사용합니다.
연결된 작업 예외
특정 작업 간에 전환하는 경우 예외를 쉽게 하기 위해 대화 작업에서 연결된 작업 예외를 사용할 수 있습니다. 대화 작업을 다른 작업과 연결할 때 사용자 정의 보류 및 재개 속성을 정의하여 해당 특정 작업으로 전환할 수 있습니다. 또한 엔티티 값이나 컨텍스트를 사용하여 하나 이상의 조건식을 작성해 보류 및 재개 규칙이 해당 조건이 충족되는 경우에만 적용되도록 할 수 있습니다. 예외를 정의하는 과정에서 엔티티 사전 할당 및 사후 할당을 정의할 수도 있습니다.
- 사전 할당을 사용하여 다음 의도에 미리 채워야 하는 현재 컨텍스트의 매개 변수를 매핑할 수 있습니다. 연결된 작업에 있는 엔티티에 현재 컨텍스트 값을 전달하거나 사용자 정의 변수를 정의하여 현재 컨텍스트 값을 전달할 수 있습니다.
- 사후 할당을 사용하면 연결된 작업의 컨텍스트 값이 연결된 작업이 호출된 기본 작업으로 다시 매핑할 수 있습니다. 주 작업에 있는 엔티티에 현재 컨텍스트 값을 전달하거나 사용자 정의 변수를 정의하여 연결된 작업 컨텍스트 값을 전달할 수 있습니다.
참고 사항: 사후 할당은 주 작업이 재개된 경우에만 적용됩니다.
예외 추가
특정 작업으로 전환하는 데 예외를 추가하려면 다음 단계를 따르십시오.
- 설정을 사용자 정의하려는 대화 작업을 엽니다.
- 대화 빌더의 오른쪽 상단에서 추가 옵션 아이콘을 클릭한 다음 중단 동작 관리를 클릭합니다.
- 중단 동작 관리 페이지의 하위 의도 및 예외 관리 섹션에서 추가를 클릭합니다.
- 하위 의도 또는 예외 추가 페이지의 작업 드롭다운 목록에서 연결할 작업을 선택합니다. 여러 작업을 선택할 수 있습니다.
- 아래 옵션 목록에서 중단 동작을 정의하고 저장을 클릭합니다.
- 예외에 선택한 작업이 나열되고 중단 동작 관리 페이지가 열립니다.
선택적으로 전환을 수행해야 하는 조건식을 추가하고 선택한 작업의 매개 변수를 매핑할 수 있습니다.
조건식 추가
대화식을 추가하려면 다음 단계를 수행하세요.
- 예외에서 작업 이름을 클릭합니다.
- 중단 전제 조건에서 조건 추가를 클릭합니다.
- 조건을 정의할 엔티티 또는 컨텍스트 옵션을 선택합니다.
- 엔티티를 선택하거나 선택에 따라 컨텍스트를 입력합니다.
- 옵션 목록에서 커넥터를 선택합니다. Exists, equals to, greater than equals to, less than equals to, not equal to, greater than, or less than.
- 값 열에 비교 값을 입력합니다.
- 조건을 더 추가하려면 If 추가를 클릭하고 1-6단계를 반복합니다. 조건을 원하는 수만큼 추가할 수 있습니다. 여러 조건을 작성하는 경우 보류 및 재개 설정을 적용하려면 지정된 모든 조건이 충족되어야 합니다.
중요 사항:
- 예외를 사용하면 다른 전제 조건을 정의하여 동일한 대상 작업을 여러 차례 소스 작업에 연결할 수 있습니다. 이렇게 하면 플랫폼이 정의된 순서대로 예외를 실행합니다.
- 모든 전제 조건이 예외를 충족시키지 못하는 경우 플랫폼은 후속 작업 의도 배열에 의도를 추가합니다.
- 이 플랫폼은 사용자의 의도에 따라 전제 조건을 평가하고 실행 여부를 결정합니다. 개발자가 전환을 통해 연결된 작업을 시작하거나 최종 사용자가 대화 끝에서 작업을 실행하도록 선택한 경우에는 전제 조건을 평가하지 않습니다.
매개 변수 매핑
엔티티 사전 할당을 추가하려면 예외에 대한 조건식을 입력한 후 다음 단계를 따릅니다.
- 예외 작업 창의 매개 변수 매핑 섹션에 있는 엔티티 사전 할당에 보류 중인 작업에 필요한 엔티티가 나열됩니다.
- 값을 전달하려는 엔티티 옆에 직접 값 또는 컨텍스트 참조를 입력합니다.
- 변수를 통해 값을 전달하려면 키/값 추가를 클릭하고 변수 이름과 값을 입력합니다.
엔티티 사후 할당을 추가하려면 예외에 대한 조건식을 입력한 후 다음 단계를 따릅니다.
- 예외 작업 창의 엔티티 사후 할당 섹션에서 현재 작업의 엔티티 목록을 볼 수 있습니다.
- 값을 전달하려는 엔티티 옆에 직접 값 또는 컨텍스트 참조를 입력합니다.
- 변수로 값을 전달하려면 키/값 추가를 클릭하고 변수 이름과 값을 입력합니다.
참고 사항: 사후 할당은 주 작업이 재개된 경우에만 적용됩니다.
값을 재설정하려면 “null” 키워드를 사용해야 하며 공백은 플랫폼에서 무시됩니다.
후속 의도
후속 의도는 다른 작업을 실행하는 동안 사용자 대화에서 표시되지만 봇이 적용하지 않은 의도를 의미합니다. 대화 작업 실행의 일환으로 봇은 모든 비적용 중단을 캡처하여 FollowupIntents 배열의 봇에 액세스할 수 있도록 합니다. 그러나 노드, 작업 또는 봇 수준에서 보류 및 재개하지 않음 옵션을 선택한 경우(둘 중 작업 흐름에 해당하는 것) 봇은 후속 의도를 캡처하지 않습니다. 대화 끝에서 사용자에게 모든 후속 작업을 표시하도록 대화 작업을 활성화하여 사용자가 원하는 어떤 작업이든 실행할 수 있도록 할 수 있습니다. 이렇게 하려면 다음 단계를 따르십시오.
- 설정을 사용자 정의하려는 대화 작업을 엽니다.
- 대화 빌더의 오른쪽 상단에서 추가 옵션 아이콘을 클릭한 다음 대화 설정을 클릭합니다.
- 후속 작업 섹션에는 다음 옵션이 표시됩니다.
- 네, 대화 상자의 끝에서 사용자에게 후속 작업 목록에서 작업을 선택하고 수행하도록 요청합니다. 대화 끝에 사용자에게 비적용 의도를 모두 표시하려면 이 옵션을 선택합니다. 사용자에게 보낸 확인 메시지를 사용자 정의하려면 옵션 옆에 있는 응답 관리를 클릭합니다.
- 아니요, 후속 작업 목록은 노드 연결의 일부로 처리됩니다. 이 옵션은 기본 옵션입니다. 이 옵션이 활성화되면 봇은 대화 끝에 사용자에게 후속 의도를 표시하지 않습니다. 그러나 개발자는 FollowupIntents 배열을 사용하여 후속 의도에 액세스할 수 있습니다.
人間の会話は、インテントとエンティティを切り替えたり、頻繁に複数のものを組合わせたりといったような、動的なものです。
Kore.ai ボット プラットフォームは、タスク レベルで定義できるサブ インテントを提供します。コンテキストを手動で管理することなく、ダイアログを最も簡単に形成できる方法です。これにより、会話をプライマリ インテントの一部として関連するインテントにシームレスに分けて、そのコンテキスト内に限定して動作させることができます。出力コンテキストが親インテントに追加され、同名の入力コンテキストが新たに生成された子インテントに追加されます。そのため、子インテントは会話の以前の部分で親インテントが一致している場合にのみ一致します。
フォローアップ インテントは、会話中のユーザーの発話やインテントにすぐに対応できない場合に便利なものです。様々なタスクの実行中に発生するものの今まで対応されることのなかった、このようなインテントにアクセスすることができます。これらは FollowupIntents 配列に格納されます。そしてダイアログ フローの最後で、特定されたフォローアップ インテントのリストから選択してタスクを実行するよう、ユーザーに求めるかどうかを選択できます。このリストにアクセスしてダイアログ フローをさらにトレーニングし、改良することもできます。
サブ インテント
サブ インテントの定義には 3 通りの方法があります。
- インテント ノードをダイアログ タスク内に追加 – このインテントはダイアログ内にあり、さらにコンテキスト内にあるため他のダイアログでは利用できません。(詳細…)
- 既存のダイアログ タスクを使用 – このインテントは、複数のダイアログで使用することができます。ダイアログをサブ インテントに限定したダイアログとして定義することができます。ユーザーの発話では呼び出されず、ユーザーがヘルプを呼び出す際に表示されるタスクのリストにも表示されません。(詳細…)
- リンクされたタスクとして – 上記の 2 つのオプションは、サブ インテントがダイアログ フローの一部である場合に使用することができます。サブ インテントをユーザーがダイアログ内のどこからでも呼び出せる場合は、サブ インテント管理および例外オプションを使用します。
リンクされたタスクの例外
特定タスク間の切り替えを行う際に例外が容易になるよう、ダイアログ タスクでリンクしたタスクの例外を使用することができます。あるダイアログ タスクを別のものとリンクさせる場合、カスタマイズされた [一時停止と再開] プロパティを定義してその特定タスクに遷移することができます。さらに、一時停止と再開の規則が一定の条件を満たした場合にのみ有効になるよう、1 つ以上の条件式をエンティティ値またはコンテキストを使って書くこともできます。
例外定義の一環として、エンティティのプリアサイメントおよびポストアサインメントを定義することもできます。
- プリアサイメントを使用して、次のインテントに事前入力しておく必要がある現在のコンテキストのパラメータをマッピングすることができます。現在のコンテキスト値をリンクされたタスクに存在するエンティティに渡したり、カスタム値を現在のコンテキスト値に定義したりできます。
- ポストアサイメントを使用して、リンクされたタスクのコンテキスト値をリンクされたタスクが呼び出されたメイン タスクにマッピングすることができます。リンクされたコンテキスト値をメイン タスクに存在するエンティティに渡したり、リンクされたタスク コンテキスト値に渡すカスタム変数を定義したりできます。
注意: ポストアサイメントはメイン タスクが再開される場合にのみ適用できます。
例外の追加
特定タスクに例外を遷移させるには、次のステップを実行します。
- カスタマイズするダイアログ タスクを開きます。
- ダイアログ ビルダーの右側上端部にある [詳細オプション] アイコンをクリックして、[割り込み動作の管理] を選択します。
- 割り込み動作管理ページの [サブインテントまたは例外を追加] リンクをクリックします。
- サブインテントまたは例外を追加ページの [タスク] ドロップダウン リストからリンクするタスクを選択します。複数のタスクを選択することができます。
- 次のオプション リストで一時停止と再開設定を定義し、[保存] をクリックします。
- 選択されたタスクが例外リストに掲載された状態で、割り込み動作管理ページが表示されます。
オプションとして、遷移が実施されるべき条件式の追加や選択されたタスクのパラメータをマッピングすることもできます。
条件式の追加
条件式を追加するには、次のステップを実行します。
- 例外に記載されているタスク名をクリックします。
- 割り込み前提条件で、[If 条件を追加] をクリックします。
- 条件を定義する [エンティティ] または [コンテキスト] オプションを選択します。
- 選択に応じてエンティティを選択するか、コンテキストを入力します。
- オプションのリストから [コネクタ] を選択します: 存在する、等しい、以上、以下、等しくない、より大きい、またはより小さい。
- [値] 列で、比較値を入力します。
- さらに条件を追加する場合は、[If 条件を追加] をクリックして、ステップ 1 から 6 を繰り返します。条件はいくつでも追加することができます。複数の条件が書き込まれている場合、全ての特定条件が満たされなければ一時停止と再開設定は有効になりません。
重要:
- 例外を使用する場合、異なる前提条件を定義することで同じ対象となるタスクにソース タスクを複数リンク付けることができます。その場合にはプラットフォームが例外を定義された順序で実行します。
- 前提条件がどれも例外と一致しない場合、プラットフォームはフォローアップ インテント配列にインテントを追加します。
- プラットフォームはユーザー インテントに遭遇した場合にのみ前提条件を評価し、それを実行するかどうかを判断します。開発者がリンクされたタスクを遷移により開始した場合、またはエンド ユーザーがタスクをダイアログの終わりに実行することを選択した場合には、プラットフォームは評価しません。
パラメータのマッピング
エンティティ プリアサイメントを追加するには、例外の条件式を入力した後に次のステップを実行します。
- 例外タスク ウィンドウの [パラメータ マッピング] セクションの[エンティティ プリアサイメント] リストには、一時停止タスクで必要となるエンティティが一覧表示されています。
- 直接値またはコンテキスト リファレンスを、値を渡すエンティティの横に入力します。
- 変数により値を渡す場合、[キー/値を追加] をクリックして変数名に値を入力します。
エンティティ ポストアサイメントを追加するには、例外の条件式を入力した後に以下のステップを実行します。
- 例外タスク ウィンドウの [エンティティ ポストアサイメント] セクションには、現在のタスクにあるエンティティのリストが一覧表示されています。
- 直接値またはコンテキスト リファレンスを、値を渡すエンティティの横に入力します。
- 変数により値を渡すには、[キー/値を追加] をクリックして変数名に値を入力します。
注意: ポストアサイメントはメイン タスクが再開される場合に限り適用できます。
フォローアップ インテント
フォローアップ インテントは別のタスクの実行中にユーザーの会話で発生するインテントで、ボットが対応していないものを指します。ダイアログ タスク実行の一環として、ボットは全ての対応されていない割り込みをキャプチャして、それらを FollowupIntents 配列でボットがアクセスできるようにします。
しかし、タスク フローに適用するノード、タスクまたはボット レベルのいずれかで [一時停止と再開しない] オプションが選択されている場合、ボットはフォローアップ インテントをキャプチャしません。
ダイアログの終わりにフォローアップ タスクを全て提示することで、実行する項目をユーザーが選択できるようにダイアログ タスクを有効化することができます。そのためには次のステップを実行します。
- 設定をカスタマイズするダイアログ タスクを開きます。
- ダイアログ ビルダーの右側上端部にある [詳細オプション] アイコンをクリックして、[ダイアログ設定] をクリックします。
- [フォローアップ タスク] セクションに次のオプションが表示されます。
- はい、ユーザーにはこのダイアログの終わりに「フォローアップ タスク」リストのタスクを一つ選択して実行するかを確認します: ダイアログの終わりにユーザーに対応していないインテントを全て表示するには、このオプションを選択します。ユーザーに送信するメッセージをカスタマイズして送信するには、オプションの横にある [マネージャー応答] をクリックします。
- いいえ、「フォローアップ タスク」リストはノード接続の一部として扱います: これがデフォルトのオプションです。このオプションが有効になっている場合、ボットはダイアログの終わりにユーザーにフォローアップ インテントを表示しません。しかし、開発者は FollowupIntents 配列よりアクセスすることができます。
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.