사용자가 작업을 실행하는 동안 기본 설정을 변경하는 상황이 반복적으로 발생합니다. 예를 들어, 항공편을 예약하는 동안 사용자는 여행 날짜를 변경할 수 있으며 경우에 따라 목적지도 변경할 수 있습니다. 엔티티 수정은 이러한 시나리오를 위한 기능입니다. 이 기능을 사용하면 사용자가 엔티티 값을 수정하고 수정 후 대화의 동작을 제어할 수 있습니다. 엔티티 수정 프로세스는 다음 세 단계로 구성됩니다.

  • 수정 식별: 최종 사용자가 수정하기를 원하는지 식별하는 것은 봇에 내장된 NLP 기능에 의해 결정됩니다.
  • 엔티티 수정: 수정하려는 의도를 식별하면 현재 작업이 보류되고 수정 흐름이 트리거 됩니다. 사용자 발화에 따라 세 가지 유형의 수정 흐름이 있을 수 있습니다.
    • 사용자가 엔티티 이름(또는 엔티티 동의어)을 참조하면 엔티티 값을 입력하라는 메시지가 표시됩니다. 예: 사용자 발화 목적지를 변경하고 싶습니다는 목적지 엔티티의 프롬프트를 트리거 합니다. 대화에 동일한 엔티티 노드가 여러 번 표시되는 경우 사용자가 이미 입력한 최신 엔티티 노드가 수정됩니다.
    • 사용자가 엔티티 값을 제공하면 엔티티가 그에 따라 업데이트됩니다. 예: 사용자 발화 비행기로 JFK에 가고 싶습니다는 목적지 엔티티 값을 변경합니다. 값이 대화에서 둘 이상의 엔티티와 호환되면 수정할 엔티티를 선택하라는 메시지가 표시됩니다.
    • 사용자가 엔티티 및 해당 값을 참조하면 엔티티가 그에 따라 업데이트됩니다. 예: 사용자 발화 목적지를 JFK로 변경하고 싶습니다는 목적지 엔티티 값을 변경합니다.
  • 수정 후 동작: 엔티티가 성공적으로 수정한 후 봇을 설정할 수 있는 대화 실행 흐름은 다음 세 가지입니다.
    • 엔티티의 연결을 평가하여 수정된 노드에서 대화를 다시 실행합니다.
    • 수정이 식별되거나 생성된 노드에서 대화를 다시 시작할 수 있습니다.
    • 대화에 있는 특정 노드에서 대화를 다시 시작할 수 있습니다.

참고 사항: 이 기능은 일부 언어에서는 지원되지 않습니다. 자세한 내용은 여기를 클릭하세요.

구현

Kore.ai 플랫폼에서 엔티티 수정 동작은 다음 두 가지 수준에서 정의됩니다.

  • 봇 수준
  • 작업 수준

봇 수준

봇 수준 엔티티 수정 동작을 설정하려면 다음 단계를 따르십시오.

  1. 상단 메뉴에서 빌드 탭을 선택합니다
  2. 왼쪽 메뉴에서 인텔리전스 -> 엔티티 수정을 클릭합니다. 
  3. 기본적으로 엔티티 수정은 비활성화되어 있습니다.
  4. 엔티티 수정을 허용하면 다양한 대화 재개 옵션을 사용할 수 있습니다.
    • 수정된 엔티티에서 대화 다시 실행 – 수정된 엔티티의 연결을 평가하여 대화를 다시 시작하려면 이 옵션을 사용합니다. 추가로 선택할 수 있는 사항은 다음과 같습니다.
      • 다운 스트림 엔티티에 대해 캡처된 엔티티 값 지우기. – 식별된 엔티티와 수정 사이에 캡처된 모든 엔티티를 지웁니다
      • 이전에 표시된 메시지 표시 건너뛰기 – 메시지 노드의 메시지 전용.
    • 수정 식별 노드에서 대화 재개– 이 옵션을 사용하여 수정이 식별된 노드에서 대화를 재개합니다.

  5. 수정 프로세스는 숨겨진 엔티티 수정 옵션을 사용하여 숨김으로 표시된 엔티티로 확장할 수 있습니다.

작업 수준

작업 수준 엔티티 수정 동작을 설정하려면 다음 단계를 따르십시오. 엔티티 수정 동작도 작업 수준에서 설정됩니다. 작업 수준에서 정의된 설정은 봇 수준 설정을 재정의합니다.

  1. 대화 작업 페이지에서 생략 아이콘을 클릭하고 수정 동작 관리를 선택합니다.
  2. 수정 동작 관리 대화 상자는 기본적으로 봇 수준 설정 사용 옵션이 선택되어 있고 봇 수준 설정을 표시합니다.
  3. 봇 수준 설정을 재정의하려면 이 작업의 사용자 정의를 선택합니다.
    • 엔티티 수정을 허용하지 않음 – 사용자가 이 작업에 대한 엔티티 값을 수정할 수 없습니다.
    • 엔티티 수정 허용 – 세 개의 대화 재개 옵션이 추가로 제공됩니다.
      • 수정된 엔티티에서 대화 다시 실행 – 엔티티 수정 동작도 작업 수준에서 설정합니다. 작업 수준에서 정의된 설정은 봇 수준 설정을 재정의합니다.
        • 다운 스트림 엔티티에 대해 캡처된 엔티티 값 지우기. – 식별된 엔티티와 수정 사이에 캡처된 모든 엔티티를 지웁니다
        • 이전에 표시된 메시지 표시 건너뛰기 – 메시지 노드의 메시지 전용.
      • 수정 식별 노드에서 대화 재개– 이 옵션을 사용하여 수정이 식별된 노드에서 대화를 재개합니다.
        • 대화에서 특정 노드로 이동 – 이 옵션을 사용하여 현재 대화에서 작업 흐름을 건너뛰어야 하는 노드를 선택합니다. 이 옵션을 사용하여 대화를 다시 시작하기 전에 사용자 정의 동작을 추가할 수 있습니다. 컨텍스트 개체는 이전 및 현재 값과 함께 수정된 엔티티의 세부 정보를 포함합니다. 이 정보를 사용하여 대화를 사용자 정의할 수 있습니다.
      • 수정 프로세스는 숨겨진 엔티티 수정 옵션을 사용하여 숨겨진 엔티티로 확장할 수 있습니다.

트리거

다음은 엔티티 수정 동작을 지원하는 패턴입니다. 이러한 패턴에 대한 사용자 발화는 엔티티 수정을 트리거합니다.

  • ~amend_synonyms <entity_name> from <old_value> to <new_value> 예: "출발 날짜를 오늘에서 내일로 변경합니다".
  • ~amend_synonyms <entity_name> [to as from with] <new_value> [instead_of rather_than not] <old_value> 예: "출발 날짜를 오늘 대신 내일로 수정합니다".
  • ~amend_synonyms <entity_name><old_value> [to as with] <new_value> 예: "출발 날짜를 오늘에서 내일로 바꿉니다".
  • ~amend_synonyms <entity_name> from <old_value> 예: "출발 날짜를 오늘에서 변경합니다".
  • ~amend_synonyms <entity_name> [to as from with] <new_value> 예: "출발 날짜를 오늘에서 내일로 수정합니다".
  • ~amend_synonyms {from} <old_value> [to as with] <new_value> 예: "오늘에서 내일로 변경합니다".
  • ~amend_synonyms [to as from] <new_value> [instead_of rather_than not] <old_value> 예: "오늘 대신 내일로 변경합니다".
  • ~amend_synonyms [to as from] <new_value> instead 예: "대신 내일로 변경합니다".
  • ~amend_synonyms [([it that this] {to}) it that this to] <new_value> 예: "오늘을 내일로 변경합니다".
  • ~amend_synonyms <entity_name> 예: "출발 날짜를 수정합니다".
  • ~amend_synonyms <old_value> 예: "오늘 날짜 변경"
  • [to as from] <new_value> [instead_of rather_than not] <old_value> 예: "오늘 대신 내일로"
  • [to as from] <new_value> instead 예: "내일로"

위에서 언급한 패턴에서 ~amend_synonyms 개념은 "amend", "change","modify","alter","update", "replace", "make", "move", "upgrade", "want"를 포함합니다. 참고 사항: 사용자는 이 패턴을 사용하여 여러 엔티티 값을 변경할 수 있습니다. 예를 들어, 출발 날짜를 오늘에서 내일로 변경하고 출발 도시를 시카고로 변경합니다에서는 출발 날짜와 도시가 모두 변경됩니다.

추가 참고 사항

  • 범용 봇의 기본 언어에는 수정 기능이 적용되지 않습니다. 그러나 연결된 봇이 진행 중일 때는 연결된 봇의 설정을 수정하면 적용됩니다.
  • 플랫폼에 내장된 학습 데이터는 수정 요청을 식별하는 데 사용되며 현재 영어로 진행되는 대화 작업의 대화에서만 지원됩니다.
  • 이 기능의 범위에는 현재 이전에 채워진 엔티티의 교체만 포함됩니다. 부분 수정, 삭제, 항목 값 추가 등의 다른 시나리오는 포함되지 않습니다.

ユーザーがタスクの実行中に設定を変更する状況が何度も見られます。

例えば、ユーザーはフライトの予約中に旅行の日程を変更したり、目的地を変更したりする場合があります。

エンティティの変更は、このようなシナリオのための機能です。この機能を使用することで、お客様はユーザーによるエンティティ値の変更や変更後のダイアログの動作制御を可能にします。

エンティティの変更プロセスは、3つの段階に分けることができます。

  • 変更の識別:エンドユーザーが変更を望んでいることの識別は、Botの組み込みNLP機能によって行われます。
  • エンティティの変更:変更の意図を識別すると、現在のタスクは一時停止され、変更フローがトリガーされます。ユーザーの発話に基づいて、次の3種類の変更フローが考えられます。
    • ユーザーがエンティティ名(またはエンティティの同義語)を参照した場合、エンティティ値の入力を求められます。例えば、「I want to change the destination」というユーザーの発話により、目的地エンティティのプロンプトがトリガーされます。同じエンティティノードがダイアログ内に複数回存在する場合、ユーザーが既に入力した最新のエンティティノードが変更されます。
    • ユーザーがエンティティ値を指定すると、それに応じてエンティティが更新されます。例えば、「I want to fly to JFK」というユーザーの発話により、目的地のエンティティ値が変更されます。値がダイアログ内の2つ以上のエンティティと互換性がある場合、ユーザーは変更するエンティティの選択を促されます。
    • ユーザーがエンティティとその値の両方を参照した場合、エンティティが更新されます。例えば、「change my destination to JFK」というユーザーの発話により、目的地のエンティティ値が変更されます。
  • 変更後の動作:エンティティが正常に変更された後、Botが設定できる3つのダイアログ実行フローがあります。
    • ダイアログは、エンティティの接続を評価することで、変更されたノードから再実行することができます。
    • ダイアログは、変更が識別または作成されたノードから再開することができます。
    • ダイアログは、ダイアログ内に存在する指定されたノードから再開することができます。

注:

  • この機能はバージョン6.4のリリースで導入されました。
  • この機能はすべての言語でサポートされているわけではありません。詳細はこちらを参照してください。

Implementation

Kore.aiプラットフォームでは、次の2つのレベルでエンティティの変更の動作を定義することができます。

  • Botレベル
  • タスクレベル

Botレベル

Botレベルのエンティティの変更の動作を設定する

  1. 自然言語 > インテリジェンスオプションからエンティティの変更を選択します。エンティティの変更はデフォルトでは無効になっています。
  2. エンティティの変更を許可を選択すると、様々なダイアログの再開オプションが利用可能になります。
    • 変更済みのエンティティからダイアログを再実行 – 変更済みエンティティの接続を評価してダイアログを再開するには、このオプションを使用します。さらに以下を選択することができます。
      • 下流で取得されたエンティティの値を削除 – 識別されたエンティティと変更の間に取得されたすべてのエンティティを削除します。
      • 以前に表示されたメッセージの表示のスキップ – メッセージノードからのメッセージのみ。
    • 変更識別ノードからダイアログを再開 – 変更が識別されたノードからダイアログを再開するには、このオプションを使用します。

  3. プラットフォームのリリース8.0以降は、「ユーザーに入力を求めない」として設定されたエンティティの変更オプションを使用して、ユーザーに入力を求めないとマークされたエンティティに変更プロセスを拡張することができます。

タスクレベル

タスクレベルのエンティティの変更の動作を設定する

エンティティの変更の動作は、タスクレベルでも設定することができます。Botレベルの設定はタスクレベルで定義された設定に上書きされます。

  1. タスクダイアログのページから、省略記号アイコンをクリックし、変更の動作の管理を選択します。
  2. これにより変更の動作の管理ダイアログが開かれます。
  3. デフォルトでは、Botレベルの設定を使用が選択されており、Botレベルの設定が表示されます。
  4. このタスクのカスタマイズを選択して、Botレベルの設定を上書きします。
      • エンティティの変更を許可しないを選択した場合、ユーザーがこのタスクのエンティティ値を修正することを許可しません。
      • エンティティの変更を許可を選択した場合、さらに3つのダイアログ再開オプションが与えられます。
          • 変更済みのエンティティからダイアログを再実行 – エンティティの変更の動作は、タスクレベルでも設定することができます。Botレベルの設定はタスクレベルで定義された設定に上書きされます。
            • 下流で取得されたエンティティの値を削除 – 識別されたエンティティと変更の間に取得されたすべてのエンティティを削除します。
            • 以前に表示されたメッセージの表示のスキップ – メッセージノードからのメッセージのみ。
          • 変更識別ノードからダイアログを再開 – 変更が識別されたノードからダイアログを再開するには、このオプションを使用します。
          • ダイアログ内の特定のノードにジャンプ – このオプションを使用して、タスクフローをジャンプさせる必要のある現在のダイアログからノードを選択します。このオプションを使用すると、ダイアログで再開する前にカスタム動作を追加することができます。コンテキストオブジェクトには、以前の値と現在の値とともに、修正されたエンティティの詳細が含まれます。この情報を使ってダイアログをカスタマイズすることができます。
      • プラットフォームのリリース8.0以降は、「ユーザーに入力を求めない」として設定されたエンティティの変更オプションを使用して、ユーザーに入力を求めないとマークされたエンティティに変更プロセスを拡張することができます。

トリガー

以下は、エンティティの変更の動作をサポートするパターンです。これらのパターンを中心としたユーザの発話が、エンティティの変更のトリガーとなります。

  • ~amend_synonyms from to
    例:「change the departure date from today to tomorrow
  • ~amend_synonyms [to as from with] [instead_of rather_than not]
    例:「modify departure date to tomorrow instead of today
  • ~amend_synonyms [to as with]
    例:「replace departure date with tomorrow
  • ~amend_synonyms from
    例:「alter departure date from today
  • ~amend_synonyms [to as from with]
    例:「modify departure date to tomorrow
  • ~amend_synonyms {from} [to as with]
    例:「change from today to tomorrow
  • ~amend_synonyms [to as from] [instead_of rather_than not]
    例:「change to tomorrow instead of today
  • ~amend_synonyms [to as from] instead
    例:「change to tomorrow instead
  • ~amend_synonyms [([it that this] {to}) it that this to]
    例:「change it from today to tomorrow
  • ~amend_synonyms
    例:「amend departure date
  • ~amend_synonyms
    例:「change today
  • [to as from] [instead_of rather_than not]
    例:「to tomorrow instead of today
  • [to as from] instead
    例:「to tomorrow instead

上記のパターンでは、~amend_synonymsの概念には"amend", "change","modify","alter","update", "replace", "make", "move", "upgrade", "want"が含まれます。

ユーザーはこれらのパターンを使用して、複数のエンティティ値を変更することができることにご注意ください。例えば、「Change the departure date from today to tomorrow and departure city to Chicago」の場合、出発日と出発都市の両方が変更されます。

その他の注意事項

  • ユニバーサルBotのデフォルト言語には、変更機能は適用されません。ただし、リンク先のBotが進行中の場合は、リンク先のBotの変更設定が反映されます。
  • 変更リクエストの識別は、プラットフォームに組み込まれているトレーニングデータに基づいて行われ、現在、英語のダイアログタスク会話でのみサポートされています。
  • この機能の範囲には、現在、以前に入力されたエンティティの置換のみが含まれています。部分的な変更、削除、エンティティ値への追加など他のシナリオは含まれません。

Time and again, we come across situations wherein the users change their preferences during task execution.

For example, while booking a flight, the user might change the date of travel and at times even the destination.

Amend Entity is a feature for such scenarios. Using this feature, you can allow the users to amend entity values and also control the post-amendment dialog behavior.

The entity amendment process is divided into three stages:

  • Amend Identification: Identifying that the end-user wants to amend is driven by the bot’s built-in NLP capabilities.
  • Amending Entities: On identifying the intention to amend, the current task is put on hold and the amend flow is triggered. Three kinds of amend flows are possible based upon the user utterance:
    • When the user refers to the entity name (or entity synonyms), then they are prompted for the entity value. For example, the user utterance I want to change the destination triggers the prompt for the destination entity. If the same entity node is present multiple times in the dialog, then the latest entity node for which the user has already provided input will be amended.
    • When the user gives the entity value then the entity is updated accordingly. For example, the user utterance I want to fly to JFK changes the destination entity value. If the value is compatible with two or more entities in the dialog, then the user is prompted to select an entity to amend.
    • When the user refers to both the entity and its value, then the entity is updated. For example, the user utterance change my destination to JFK will change the destination entity value.
  • Post Amendment Behavior: After an entity is successfully amended, there are three possible dialog execution flows that your bot can be configured for:
    • The dialog can be re-executed from the node that is amended by evaluating that entity’s connections.
    • The dialog can resume from the node where amend was identified or made.
    • The dialog can be resumed from a specified node present in the dialog.

Note: This feature is not supported in all languages, Click here for details.

Implementation

On the Kore.ai platform, Amend Entity behavior is defined at two levels:

  • Bot level
  • Task level

Bot Level

To Set Bot Level Amend Entity Behavior, follow the below steps:

  1. Select the Build tab from the top menu
  2. From the left menu, click Intelligence -> Amend Entity. 
  3. By default amend entities is disabled.
  4. Once you Allow amend entities, various Dialog Resumption options are available:
    • Re-execute dialog from amended entity – use this option to resume the dialog by evaluating the amended entity’s connections. You can further choose to:
      • Clear entity values captured downstream – to clear all entities captured between the identified entity and the amend
      • Skip display of previously displayed messages – messages from Message nodes alone.
    • Resume dialog from amend identification node – use this option to resume the dialog from the node where the amend was identified.

  5. The amend process can be extended to entities marked as Hidden using the Amend Hidden Entities option.

Task Level

To set Task Level Amend Entity Behavior, follow the below steps:

Amend entity behavior is set at the Task level also. The configurations defined at the task level will override the bot-level configurations.

  1. On the Dialog Task page, click the Ellipses  icon and select the Manage Amend Behaviour.
  2. On the Manage Amend Behaviour dialog box, by default, the Use bot level settings option is selected and the bot level setting is displayed.
  3. Select Customize for this task to override the bot level settings:
    • Do not allow amend entities – It will not allow the user to amend entity values for this task.
    • Allow amend entities – It will further give you three Dialog Resumption options:
      • Re-execute dialog from amended entity – Amend entity behavior is set at the task level also. The configurations defined at the task level will override the bot-level configurations.
        • Clear entity values captured downstream – to clear all entities captured between the identified entity and the amend
        • Skip display of previously displayed messages – messages from Message nodes alone.
      • Resume dialog from amend identification node – use this option to resume the dialog from the node where the amend was identified.
        • Jump to a specific node in the dialog – use this option to select a node from the current dialog where the task flow needs to jump. You can use this option to add custom behavior before resuming with the dialog. Context object will contain the details of the entities amended, along with the previous and current values. You may use this information to customize the dialog.
      • The amend process can be extended to hidden entities using the Amend Hidden Entities option.

Triggers

The following are patterns supporting the Amend Entity behavior. User utterance around these patterns triggers Amend Entity.

  • ~amend_synonyms <entity_name> from <old_value> to <new_value>
    For example, “change the departure date from today to tomorrow“.
  • ~amend_synonyms <entity_name> [to as from with] <new_value> [instead_of rather_than not] <old_value>
    For example, “modify departure date to tomorrow instead of today“.
  • ~amend_synonyms <entity_name> <old_value> [to as with] <new_value>
    For example, “replace departure date with tomorrow“.
  • ~amend_synonyms <entity_name> from <old_value>
    For example “alter departure date from today“.
  • ~amend_synonyms <entity_name> [to as from with] <new_value>
    For example, “modify departure date to tomorrow“.
  • ~amend_synonyms {from} <old_value> [to as with] <new_value>
    For example, “change from today to tomorrow“.
  • ~amend_synonyms [to as from] <new_value> [instead_of rather_than not] <old_value>
    For example, “change to tomorrow instead of today“.
  • ~amend_synonyms [to as from] <new_value> instead
    For example, “change to tomorrow instead“.
  • ~amend_synonyms [([it that this] {to}) it that this to] <new_value>
    For example, “change it from today to tomorrow“.
  • ~amend_synonyms <entity_name>
    For example, “amend departure date“.
  • ~amend_synonyms <old_value>
    For example, “change today
  • [to as from] <new_value> [instead_of rather_than not] <old_value>
    For example, “to tomorrow instead of today
  • [to as from] <new_value> instead
    For example, “to tomorrow instead

In the above-mentioned patterns the concept ~amend_synonyms includes "amend", "change","modify","alter","update", "replace", "make", "move", "upgrade", "want".

Note: The user can use these patterns to change multiple entity values. For example, Change the departure date from today to tomorrow and departure city to Chicago results in the changes to both departure date and city.

Additional Notes

  • Amend functionality is not applicable for the universal bot’s default language. However, when a linked bot is in progress, amend the settings of the linked bot is honored.
  • The platform’s in-built training data drives the identification of the amend requests, and it is currently supported only for the dialog task conversations in English.
  • The scope of this feature currently includes only the replacement of previously populated entities. It does not include other scenarios like partial modifications, deletions, additions to entity values.