봇 개발자는 일반적으로 하나의 기본 사용자 의도를 해결하는 작업을 생성합니다. 그러나 주요 의도의 일부로 사용자 대화를 관련 의도(후속 조치 또는 하위 의도)로 나눌 수 있습니다. 항공편 예약 봇에 대한 샘플 대화를 살펴봅시다.

봇: 안녕하세요. 무엇을 도와드릴까요? 
사용자: LA에서 뉴욕으로 가는 비행기편은 뭐가 있습니까? 
봇: 네. 여행 날짜를 알려주세요. 
사용자: 잠깐만요. 이번 주 일요일에 거기 비가 옵니까?

이 대화의 주된 의도는 비행기 표를 예약하는 것입니다. 그러나 사용자는 예약을 완료하기 전 일기 예보를 알고 싶어하는데 이것은 유효한 사용 사례입니다. 사용자 의도 노드를 사용하여 루트 의도 또는 후속 조치(또는 하위 의도)를 대화 작업에 추가할 수 있습니다. 후속 조치 의도의 흐름은 전환을 사용하여 동일 대화 작업에서 구축되며 외부 작업에 연결할 수 없습니다. 후속 의도 실행이 완료되면 추가한 전환에 따라 동일한 대화 작업에서 대화 흐름이 계속됩니다.

참고: 기존 작업에서 새 대화 작업을 시작하려면 대화 작업 노드를 사용할 수 있습니다.

설정

대화 작업에서 사용자 의도 노드를 설정하려면 다음 단계를 수행합니다.

노드 추가

  1. 사용자 의도 노드를 추가하려는 대화 작업을 엽니다.
  2. 지정된 위치에 사용자 의도 노드를 추가합니다. 노드를 추가하는 단계의 경우, 여기를 참조하세요.
  3. 사용자 의도 창은 기본적으로 구성 요소 속성 탭이 선택되어 표시됩니다.

노드 설정

구성 요소 속성

구성 요소 속성 탭에서 설정하거나 편집한 설정은 이 노드를 사용하는 모든 대화 작업에 반영됩니다. 이러한 설정은 의도 및 하위 의도 노드에서 동일합니다.
  1. 구성 요소 속성 탭의 일반 설정에서
    • 이름
    • 설명을 수정할 수 있습니다.

NLP 속성

  1. NLP 속성 탭에서 아래 나열된 섹션에서 조치를 수행할 수 있습니다.
    • 기계 학습 설정은 의도에 대한 감지를 개선하기 위해 사용자 발화를 제공합니다.
    • 사용자 의도에 대한 봇 동의어 또는 관련 문구.
    • 패턴 및 규칙은 사용자의 발화에 이러한 특정 패턴이 포함된 경우 이 사용자 의도를 캡처합니다.
    • 컨텍스트 관리는 대화의 흐름을 제어합니다.

연결 속성

  1. 연결 탭을 클릭하고 전환 속성을 설정하여 대화 작업에서 다음에 실행할 노드를 결정합니다. 대화 작업에서 엔티티 또는 컨텍스트 개체의 값을 기반으로 조건문을 작성하거나 전환을 위해 의도를 사용할 수 있습니다.
    • 연결 규칙 섹션에서 IF 추가를 클릭합니다.
    • 다음 조건 중 하나를 기준으로 조건식을 설정합니다.
      • 엔티티: 대화의 엔티티 노드를 특정 값과 비교합니다.
        • 엔티티를 입력합니다.
        • 드롭다운 목록에서 연산자를 선택합니다. Exists, equals to, greater than equals to, less than equals to, not equal to, greater than, less than.
        • 필드에 숫자를 입력합니다. 예: PassengerCount (엔티티) greater than (연산자) 5 (지정된 값)
      • 컨텍스트: 다음 연산자 중 하나를 사용하여 대화의 컨텍스트 개체와 지정된 값을 비교합니다. Exists, equals to, greater than equals to, less than equals to, not equal to, greater than, less than. 예: Context.entity.PassengerCount (컨텍스트 개체) greater than (연산자) 5 (지정된 값)
      • 의도: 다음 사용자 발화와 일치하는 의도를 선택합니다.
    • Then go to 드롭다운 목록에서 조건식이 성공할 경우 대화 흐름에서 실행할 다음 노드를 선택합니다. 예: PassengerCount (엔티티) greater than (연산자) 5 (지정된 값), Then go to Offers (하위 대화)
    • Else 드롭다운 목록 조건이 실패할 경우 실행할 노드를 선택합니다.
      참고: 여러 If 조건을 작성하려면 마지막 If 조건식 아래에 있는 + Else If 추가를 클릭합니다.

     

ボット開発者は、通常、ユーザーのプライマリインテントを解決するためにタスクを作成します。しかし、ユーザーの会話は、プライマリインテントの一部として、関連するインテント(フォローアップまたはサブインテント)に分岐することができます。ここでは、航空券を予約するボットのサンプル会話を見てみましょう。

ボット:こんにちは、今日はどのようなご用件でしょうか?
ユーザー: ロサンゼルスからニューヨーク行きのフライトには、どのようなオプションがありますか?
ボット:かしこまりました。旅行の日程を教えてください。
ユーザー: ちょっと待って、今度の日曜日は雨が降りますか?

この会話のプライマリインテントは、航空券の予約です。しかし、ユーザーは予約を完了する前に天気予報を知りたいと思っており、これは有効なユースケースです。ユーザーインテントノードは、ダイアログタスクにルートインテントやフォローアップ(またはサブインテント)を追加するのに役立ちます。フォローアップインテントのフローは、遷移を使用して同じダイアログタスク内に構築され、外部のタスクにリンクさせることはできません。フォローアップインテントの実行が完了すると、追加した遷移に基づいて、同じダイアログタスク内で会話フローが続行します。

メモ:既存のダイアログタスクから新しいダイアログタスクを開始するには、ダイアログタスクノードを使用します。

セットアップ

ダイアログタスクでのユーザーインテントノードの設定は、以下の手順で行います。

ノードの追加

  1. ダイアログタスクを開き、ユーザーインテントノードを追加します。
  2. ユーザーインテントノードを指定された場所に追加します。ノードの追加手順についてはこちらをご参照ください
  3. ユーザーインテントウィンドウは、デフォルトではコンポーネントプロパティタブが選択された状態で表示されます。

ノードの設定

コンポーネントプロパティ

コンポーネントプロパティタブでセットアップまたは編集する設定は、このノードを使用するすべてのダイアログタスクに反映されます。これらの設定は、インテントノードおよびサブインテントノードで同じです。
  1. コンポーネントプロパティタブの一般設定では、以下の変更が可能です。
    • 名前
    • 説明

NLPプロパティ

  1. NLPプロパティタブから、下記リストのセッションからアクションを実行できます。
    • 機械学習設定、ここではこのインテントの検出を改善するためのユーザー発話を提供します。
    • ボットの同義語、 またはこのユーザーインテントの関連フレーズ。
    • パターンとルール、ここではユーザーの発話にこれらの特定パターンが含まれる場合に、このインテントをキャプチャします。
    • コンテキストの管理、ここでは会話フローを制御します。

接続プロパティ

  1. 接続タブをクリックして、遷移プロパティを設定し、次に実行するダイアログタスクのノードを決定します。条件文は、ダイアログタスク内の任意のエンティティやコンテキストオブジェクトの値に基づいて記述することも、遷移にインテントを使用することもできます。
    • 接続ルールセクションにおいて、条件を追加をクリックします。
    • 以下のいずれかの基準に基づいて、条件式を設定します。
      • エンティティ:ダイアログ内のエンティティノードを特定の値と比較します。
        • エンティティを選択します。
        • ドロップダウンリストから演算子を選択します。存在する、等しい、等しいより大きい、等しいより小さい、等しくない、より大きい、より小さい。
        • フィールドに数字を入力します。例:PassengerCount (エンティティ) は5 (指定値)より大きい(演算子)
      • コンテキスト:これらの演算子のいずれかを使用して、ダイアログ内のコンテキストオブジェクトを特定の値と比較します。存在する、等しい、等しいより大きい、等しいより小さい、等しくない、より大きい、より小さい。例: Context.entity.PassengerCount (コンテキストオブジェクト)が(演算子)5(指定値)より大きい。
      • インテント:次のユーザーの発話に一致するインテントを選択します。
    • 次へ進むドロップダウンリストで、条件式が成功した場合にダイアログフローで実行する次のノードを選択します。例として、PassengerCount (エンティティ) が(演算子) 5 (指定値)より大きい場合、次へ進むオファー(サブダイアログ)になります。
    • その他ドロップダウンリストで、条件が失敗した場合に実行するノードを選択します。
      メモ: 複数のIf条件を書きたい場合は、最後のIf条件式の下の +その他の条件を追加をクリックします。

     

As a bot developer, you typically create a task to resolve one primary user intent. Yet, user conversations can branch into related intents (follow-up or sub-intents) as a part of the primary intent.

Let us take a look into this sample conversation for a Book Flights bot:

Bot: Hi, how may I help you today?
User: Hey, what flight options have I got from LA to NYC?
Bot: Sure, let me know the travel date.
User: Wait a minute, will it rain there this Sunday?

The primary intent of this conversation is to book flight tickets. But the user wants to know the weather forecast before completing the booking, which is a valid use case.

User Intent Nodes help you add root intent or follow-up (or sub-intents) to your dialog tasks. The flow for a follow-up intent is built within the same dialog task using transitions, and cannot be linked to external tasks. When the execution of a follow-up intent is completed, the conversation flow continues within the same dialog tasks based on the transitions you add.

Note: To start a new Dialog Task from an existing one, you can use the Dialog Task nodes.

Set-Up

Setting up an user intent node in a dialog task involves the following steps:

Add Node

  1. Open the dialog task to add the user intent node.
  2. Add user intent node in the designated place. For steps in adding nodes, refer here.
  3. The user intent window is displayed with the Component Properties tab selected by default.

Configure Node

Component Properties

The configurations you set up or edit in the Component Properties tab reflects in all the dialog tasks that use this node. These settings are the same for Intent and Sub-intent nodes.
  1. On the Component Properties tab, under the General Settings, you can modify
    • the Name and
    • Description.

NLP Properties

  1. From the NLP Properties tab, you can perform actions from the below-listed sections:
    • Machine Learning settings to provide user utterances to improve the detection for this intent.
    • Bot Synonyms or related phrases for this user intent.
    • Patterns & Rules to capture this intent if the user’s utterance contains these specific patterns.
    • Manage Context to control the flow of conversation.

Connections Properties

  1. Click the Connections tab and set the transition properties to determine the node in the dialog task to execute next. You can write the conditional statements based on the values of any Entity or Context Objects in the dialog task, or you can use intents for transitions.
    • Under the Connection Rules section, click Add IF.
    • Configure the conditional expression based on one of the following criteria:
      • Entity: Compare an Entity node in the dialog with a specific value:
        • Select the Entity.
        • Select an operator from the drop-down list: Exists, equals to, greater than equals to, less than equals to, not equal to, greater than, and less than.
        • Type the number in the Value field. For example, PassengerCount (entity) greater than (operator) 5 (specified value).
      • Context: Compare a context object in the dialog with a specific value using one of these operators: Exists, equals to, greater than equals to, less than equals to, not equal to, greater than, and less than. For example, Context.entity.PassengerCount (Context object) greater than (operator) 5 (specified value).
      • Intent: Select an intent that matches the next user utterance.
    • In the Then go to drop-down list, select the next node to execute in the dialog flow if the conditional expression succeeds. For example, if the PassengerCount (entity) greater than (operator) 5 (specified value), Then go to Offers (sub-dialog).
    • In the Else drop-down list, select the node to execute if the condition fails.
      Note: If you want to write multiple If conditions, click + Add Else If below the last If conditional expression.