봇은 사용자 의도 충족을 위해 사용자 발화에서 관련 정보를 추출해야 합니다. 이 샘플 발화를 살펴봅시다. 일요일에 LA에서 뉴욕으로 가는 항공편을 예약해 주세요. 항공편을 예약하는 이 사용자 의도를 수행하려면 봇은 출발 도시(LA), 목적지 도시(NYC) 및 출발일(일요일) 등 엔티티를 추출해야 합니다. 따라서 대화 작업에서는 사용자 발화로부터 얻으려는 모든 중요 데이터에 대해 해당 엔티티 노드를 생성해야 합니다. 사용자가 필요한 노드를 입력하도록 이러한 노드에 프롬프트 메시지를 추가할 수 있습니다. Kore.ai는 주소, 공항, 수량 등과 같은 30개 이상의 엔티티 유형을 지원합니다. 목록, 자유형 항목, 사용자의 파일 또는 이미지 첨부 파일에서 선택하거나 정규식으로 엔티티를 정의할 수도 있습니다.

참고: 거래를 완료하기 위해 사용자 이름, 위치, 금액, 만료일과 같은 일련의 사용자 입력을 수집하는 여러 다른 엔티티 노드가 있는 하나의 엔티티 노드를 먼저 수행하고 이어서 API 요청을 처리하는 Webhook 노드를 수행하여 온라인 거래를 완료합니다.

설정

대화 작업에서 엔티티 노드를 설정하려면 다음 단계를 수행합니다.

노드 추가

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

노드 설정

구성 요소 속성

엔티티 창을 사용하면 일반 설정, 사용자 프롬프트 및 오류 프롬프트를 설정할 수 있습니다.

참고: 이 섹션에서 설정하거나 수정한 설정은 이 노드를 사용하는 다른 모든 대화 작업에 반영됩니다.
  1. 구성 요소 속성 탭의 일반 설정 섹션에서 엔티티 노드의 이름표시 이름 이름을 입력합니다. 엔티티 이름에는 공백을 사용할 수 없습니다.
  2. 유형 드롭다운 목록에서 예상되는 사용자 입력에 따른 엔티티 유형을 선택합니다. 예를 들어, 사용자가 출발일을 입력하도록 하려면 드롭다운에서 날짜를 선택합니다. 플랫폼은 선택한 유형에 따라 기본 유효성 검사를 수행합니다. 엔티티 유형은 인식 및 시스템 성능을 향상하기 위해 사용자 발화에서 예상되는 데이터 유형을 NLP 인터프리터에 제공합니다. 자세한 내용은 엔티티 유형을 참조하세요.
  3. 선택한 유형에 따라 엔티티를 다중 항목으로 선택하면 사용자가 여러 항목을 선택하도록 할 수 있습니다.
  4. 사용자 프롬프트 섹션에서 이 엔티티에 대해 사용자에게 표시하려는 프롬프트 메시지를 입력합니다. 예: 출발일을 입력하세요.
    1. 메시지 링크를 사용하여 사용자 프롬프트에 대한 채널별 메시지를 입력할 수 있습니다. 자세한 내용은 프롬프트 편집기 사용을 참조하세요.
    2. 이 특정 인스턴스에 대한 사용자 프롬프트를 재정의할 수 있습니다. 재정의 방법:
      • 오른쪽 상단의 설정 아이콘을 클릭합니다.
      • 이 인스턴스에 대해 재정의 토글을 사용하도록 설정합니다. 이 옵션을 사용함으로 설정하면 특정 인스턴스에 대한 사용자 프롬프트를 입력할 수 있습니다. 이 옵션을 사용하지 않음으로 설정하면 인스턴스별 프롬프트가 삭제되고 구성 요소 속성으로 되돌립니다.
  5. 오류 프롬프트 섹션에서 기본 오류 메시지를 검토하고 필요한 경우 오류 메시지를 수정할 수 있습니다.
    1. 오류 메시지를 관리하려면 링크 관리를 클릭합니다. 자세한 내용은 프롬프트 편집기 사용을 참조하세요.
    2. 이 특정 인스턴스에 대한 사용자 프롬프트를 재정의할 수 있습니다. 재정의 방법:
      • 오른쪽 상단의 설정 아이콘을 클릭합니다.
      • 이 인스턴스에 대해 재정의 토글을 사용하도록 설정합니다. 이 옵션을 사용함으로 설정하면 특정 인스턴스에 대한 사용자 프롬프트를 입력할 수 있습니다. 이 옵션을 사용하지 않음으로 설정하면 인스턴스별 프롬프트가 삭제되고 구성 요소 속성으로 되돌립니다.
    3. 오류 메시지 순서를 변경할 수도 있습니다. 순서 변경 방법:
      • 오른쪽 상단의 설정 아이콘을 클릭합니다.
      • 재시도 순서로 프롬프트를 나타냅니다 토글을 사용함으로 설정합니다. 이 옵션을 사용함으로 설정하면 각 오류 프롬프트 메시지 앞에 핸들바 아이콘이 표시됩니다. 이 아이콘을 사용하여 해당 순서대로 표시되도록 메시지 순서를 변경할 수 있습니다.

        이 이미지는 새 대화 빌더에 해당하며, 이 기능은 엔티티 노드 -> 구성 요소 속성 위치에 있는 이전 빌더에서 찾을 수 있습니다.
  6. 변수 네임스페이스 섹션에서 이 노드와 전환을 실행할 변수 네임스페이스를 연결합니다. 이 옵션은 봇에 변수 네임스페이스를 사용하도록 설정한 경우에만 표시됩니다. 작업 수준 설정을 사용하거나 이 노드에 사용자 정의할 수 있습니다. 자세한 내용은 네임스페이스 관리를 참조하세요.

인스턴스 속성

인스턴스 속성을 사용하여 엔티티 값을 필수로 설정할지 여부와 엔티티를 캡처하는 데 이전 사용자 발화의 값을 고려할지 여부를 결정합니다.

참고: 인스턴스 속성 탭의 설정은 현재 대화 작업에만 해당되며 이 엔티티 노드를 사용하는 다른 대화 작업에는 반영되지 않습니다.
  1. 엔티티 창에서 인스턴스 속성 탭을 클릭합니다.
  2. 사용자 입력 섹션에서 옵션(엔티티 흐름을 관리하는 방법을 알아보려면 아래 섹션을 참조하세요)을 선택합니다.
    • 필수: 이 엔티티는 필수이며 사용자는 대화 흐름을 계속하려면 유효한 항목을 입력해야 합니다. 사용자 발화에서 엔티티에 대한 모호한 값이 감지되는 경우 사용자가 해결할 수 있는 프롬프트가 표시됩니다. 허용된 재시도 횟수를 1에서 5사이의 값(기본값 5)으로 설정하여 사용자에게 엔티티 요청하는 횟수를 설정할 수 있습니다. 또한 재시도 횟수 초과 시 동작을 정의할 수 있으며, 대화 종료 또는 노드로 전환을 실행하도록 설정할 수 있습니다. 이를 통해 재시도 초과 시 동작이라는 연결 규칙이 생성됩니다. 사용자에게 표시되는 재시도 초과에 관한 메시지는 표준 응답에서 사용자 정의할 수 있습니다. 여기 를 참조하세요.
    • 옵션: 이 엔티티의 경우 사용자에게 한 번만 프롬프트 되고 시스템은 사용자가 입력한 모든 입력으로 진행합니다. 사용자 발화에서 이러한 선택적 엔티티의 모호한 값이 감지되는 경우 사용자가 올바른 값을 선택할 수 있는 해결 프롬프트가 표시됩니다. 기본값 필드에서 값을 설정할 수 있습니다. 작업 실행이 엔티티에 도달하고 프롬프트 시 사용자가 어떤 값을 입력하지 않고 그리고 이전 발화에서 사용 가능한 값이 없는 경우에 이 값이 엔티티에 할당됩니다.
    • 숨김: 사용함으로 설정되면 봇은 엔티티 값을 요청하지 않습니다. 이 값은 사용자가 이전 발화에서 명시적으로 입력한 경우 고려됩니다. 기본값 필드에서 값을 설정할 수 있습니다. 이 값은 작업 실행이 엔티티에 도달할 때 그리고 이전 발화에서 사용 가능한 값이 없을 때 엔티티에 할당됩니다.
  3. 사용자 입력 수정 섹션(v7.3)은 사용자 입력을 자동 수정할지 여부를 정의합니다. 이 옵션은 문자열 유형 엔티티에서만 사용 가능합니다. 두 가지 옵션이 아래에 나열되어 있습니다.
    • 사용자 입력 자동 수정은 기본 설정입니다. 플랫폼은 표준 사전 이외에 각 봇이 모든 동의어, 작업 이름, 패턴 단어, 스몰 토크 발화를 포함하도록 사용자 정의 사전을 만듭니다. 이 기능은 일부 언어에서는 지원되지 않습니다. 자세한 내용은 여기를 클릭하세요.
    • 사용자 입력을 자동으로 수정하지 않음 이전 버전과 호환되도록 보장하기 위해 기존 봇에 다음 설정이 적용됩니다(v7.3 이전 버전의 봇을 v7.3으로 마이그레이션).
      이전 상태(엔티티 추출) 새 상태(사용자 입력 수정)
      이전 발화에서 사용하지 않은 텍스트 평가. 사용자 입력 자동 수정 안 함.
      사용되지 않은 텍스트와 이전 발화에서 엔티티를 추출하는 데 사용된 텍스트 평가. 사용자 입력 자동 수정 안 함.
      이전 발화를 평가하지 않고 명시적으로 사용자에게 메시지 표시 – 자동 수정 안 함[사용 함]. 사용자 입력 자동 수정 안 함.
      이전 발화를 평가하지 않고 명시적으로 사용자에게 메시지 표시- 자동 수정 안 함[사용 안 함]. 사용자 입력 자동 수정.
  4. 엔티티 추출 섹션에서 다음 옵션 중 하나를 선택합니다.
    • 이전 발화에서 사용되지 않은 텍스트 평가: 이 옵션을 선택하면 엔티티는 지금까지 대화에서 다른 엔티티에서 사용하지 않은 텍스트를 사용합니다. 이 옵션은 기본 옵션입니다.
    • 사용되지 않은 텍스트와 이전 발화에서 엔티티를 추출하는 데 사용된 텍스트 평가: 대화에서 다른 엔티티 노드가 추출한 엔티티 값을 재사용하려면 이 옵션을 선택합니다.
    • 이전 발화를 평가하지 않고 명시적으로 사용자에게 메시지 표시: 봇이 이전 사용자 발화를 무시하고 사용자에게 엔티티에 대한 값을 입력하도록 명시적으로 요청하려면 이 옵션을 선택합니다.
      • 또한 재사용 안 함 옵션을 선택하여 이 엔티티가 다른 엔티티를 추출하기 위해 제공된 입력을 플랫폼이 재사용하지 않도록 제한할 수 있습니다.
  5. 엔티티 규칙 섹션에서 사용자 입력을 검증하는 규칙을 설정할 수 있습니다.
  6. 고급 컨트롤을 클릭하여 다음 옵션을 설정합니다.
    • 의도 감지(문자열 및 설명 엔티티에만 적용): 이 옵션 중 하나를 선택하여 봇이 문자열 또는 설명 엔티티에 대한 사용자 항목의 일부로 엔티티를 만날 경우 조치 과정을 결정합니다.
      • 입력을 엔티티 값으로 허용하고 감지된 의도 폐기: 봇은 사용자 항목을 문자열 또는 설명으로 캡처하고 의도를 무시합니다.
      • 사용자 입력을 의도로 선호하고 보류 및 계속 설정으로 진행: 사용자 입력은 의도 감지에 고려되며 보류 및 재개 설정에 따라 진행합니다.
      • 사용자에게 진행 방법 질문: 사용자에게 의도 또는 엔티티를 의미하는지 지정하도록 합니다.
    • 중단 동작: 이 노드에서 중단 처리를 정의하려면. 다음 옵션 중 선택할 수 있습니다.
      • 작업 수준 '중단 동작' 설정 사용: 봇은 대화 작업 수준에서 설정된 중단 동작 설정을 참조합니다.
      • 이 노드 옵션을 위한 사용자 정의: 이 옵션을 선택하고 동일하게 설정하여 이 노드에 대한 중단 동작을 사용자 정의할 수 있습니다. 자세한 내용은 중단 처리 및 컨텍스트 전환 문서를 참조하세요.
    • 우선순위 (문자열 및 설명 노드를 제외한 모든 엔티티 유형에 적용): 엔티티에 대한 사용자 입력이 엔티티 및 다른 의도에 대한 유효한 값으로 구성될 때 엔티티보다 의도 중에서 또는 의도보다 엔티티 옵션 중에서 선택하여 경험을 통제할 수 있습니다. 예를 들어, 항공편 예약 봇이 목적지를 묻는 메시지를 표시하고 사용자가 Bangalore의 날씨는 어떻습니까?라고 입력하는 경우에 봇이 대응하는 방법을 정의할 수 있습니다. 엔티티를 선택하고 후속 조치 의도 스택에 의도를 추가하거나 중단 동작 설정에 따라 의도를 먼저 진행합니다.
    • 맞춤형 태그: 봇 대화의 사용자 정의 프로필 구축을 위한 태그를 정의합니다. 자세히 확인하려면 여기를 클릭하세요.

사용자 입력 흐름 사용자에게 입력을 요청하면 플랫폼이 수행하는 과정은 다음과 같습니다.

  • 사용자가 유효한 값으로 응답하면 엔티티가 해당 값으로 채워지며 대화 흐름은 계속됩니다.
  • 사용자 응답에서 모호한 값이 식별되면 모호성 해결 프롬프트가 표시됩니다.
  • 사용자가 유효하지 않은 발화(즉, 모호성 해결을 위한 유효한 입력을 포함하지 않은 발화)로 응답하면:
    • 주어진 값이 엔티티에 대해 유효하면(엔티티에 대해 가능한 모든 값) 엔티티를 위해 사용되며 대화는 계속됩니다.
    • 주어진 값이 엔티티에 대해 유효하지 않고 값이 작업 의도, faq, 또는 스몰 토크를 실행하는 경우:
      • 의도는 보류 및 재개 설정에 따라 실행되며 엔티티를 포함한 대화가 재개될 때(그리고 재개되면) 사용자에게 엔티티 값을 요청하는 메시지가 표시됩니다.
      • 값이 작업 의도, faq, 또는 스몰 토크를 실행하지 않으면 엔티티는 공백으로 남겨지고 엔티티 전환에서 대화가 계속됩니다.
  • 사용자가 재시도 제한을 초과하면 재시도 초과에 대해 정의된 동작이 실행됩니다. 이 작업이 하위 작업이며 동작이 대화를 종료하도록 설정된 경우 상위 작업도 종료된다는 것을 알아두세요.

NLP 속성

  1. NLP 속성 탭의 < 엔티티 이름 >을 위한 제안된 동의어 섹션에서 엔티티에 대한 동의어를 입력합니다.
  2. 각 항목을 입력하고 Enter를 클릭하여 저장합니다. 자세한 내용은 동의어 관리를 참조하세요.
  3. <엔티티 이름 >을 위한 제안된 패턴 섹션에서 + 패턴 추가를 클릭하여 엔티티에 대한 새 패턴을 추가합니다. 패턴 필드가 표시됩니다. 자세한 내용은 패턴 관리를 참조하세요.
  4. 컨텍스트 관리 섹션의 컨텍스트 출력 필드에서 엔티티가 채워질 때 컨텍스트에서 설정될 컨텍스트 태그를 정의합니다.
  5. 컨텍스트 개체의 일부로 캡처된 엔티티 값 자동 방출 옵션을 선택할 수 있습니다.

(컨텍스트 관리를 보려면 여기를 클릭하세요)

IVR 속성

이 탭을 사용하여 입력 모드, 문법, 프롬프트 및 IVR 채널에서 이 노드가 사용할 호출 동작 매개 변수를 정의할 수 있습니다. 이 값은 노드 수준에서 설정할 수 있습니다. 자세한 내용을 확인하려면 여기를 클릭하세요.

연결 속성

노드의 연결 탭에서 대화 작업에서 어떤 노드를 다음에 실행할지 결정할 수 있습니다. 대화 작업에서 엔티티 또는 컨텍스트 개체의 값을 기반으로 조건문을 작성하거나 전환을 위해 의도를 사용할 수 있습니다. 구성 요소 전환을 설정하려면 다음 단계를 수행하세요.

  1. 연결 규칙 섹션의 기본값 드롭다운 목록에서 노드를 선택할 수 있습니다.
  2. 조건부 흐름을 설정하려면 IF 추가를 클릭합니다.
  3. 인스턴스 속성에서 엔티티 재시도 초과 시 동작을 사용하도록 설정한 경우 엔티티 재시도 초과시 동작 연결 규칙을 확인할 수 있습니다.
  4. 다음 조건 중 하나를 기준으로 조건식을 설정합니다.
    1. 엔티티: 다음 연산자 중 하나를 사용하여 대화의 엔티티 노드와 지정된 값을 비교합니다. Exists, Does not Exist, equals to, greater than equals to, less than equals to, not equal to, greater than, less than. 엔티티, 각 드롭다운 목록을 사용한 연산자를 선택하고 상자에 숫자를 입력합니다. 예: PassengerCount (엔티티) greater than (연산자) 5 (지정된 값):
    2. 컨텍스트: 다음 연산자 중 하나를 사용하여 대화의 컨텍스트 개체와 지정된 값을 비교합니다. Exists, Does not Exist, equals to, greater than equals to, less than equals to, not equal to, greater than, less than. 예: Context.entity.PassengerCount (컨텍스트 개체) greater than (연산자) 5 (지정된 값).
    3. 의도: 다음 사용자 발화와 일치하는 의도를 선택합니다.
  5. Then go to 드롭다운 목록에서 조건식이 성공할 경우 대화 흐름에서 실행할 다음 노드를 선택합니다. 예: PassengerCount (엔티티) greater than (연산자) 5 (지정된 값), Then go to Offers (하위 대화).
  6. Else 드롭다운 목록 조건이 실패할 경우 실행할 노드를 선택합니다.
참고: 여러 If 조건을 작성하려면 마지막 If 조건식 아래에 있는 Else If 추가를 클릭합니다.

ボットは、ユーザーインテントを満たすために、ユーザーの発話から関連する情報を抽出する必要があります。このサンプル発話を見てみましょう。“日曜日のLAからNYCへのフライトを予約したいのですが”。航空券を予約するというユーザーインテントに応えるために、ボットは“出発地”(LA)、“目的地”(NYC)、“出発日”(日曜日)などのエンティティを抽出する必要があります。そのため、ダイアログタスクでは、ユーザーの発話から手に入れたい重要なデータごとに、対応するエンティティノードを作成する必要があります。これらのノードには、ユーザーが必要な値を入力するためのプロンプトメッセージを追加することができます。Kore.aiは、住所、空港、数量など30種類以上のエンティティタイプをサポートしています。また、エンティティを、リストからの選択、自由形式の入力、ユーザーからのファイルや画像の添付、あるいは正規表現として定義することもできます。

メモ:ユーザー名、位置、金額、期日など、トランザクションを完了させるための一連のユーザー入力を収集するために、1つのエンティティノードを他の複数のエンティティノードでフォローし、さらに、オンライントランザクションを完了させるためのAPIへのリクエストを処理するためにWebhookノードをフォローする必要があります。

セットアップ

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

ノードの追加

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

ノードの設定

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

「エンティティ」ウィンドウでは、一般設定、ユーザー、エラープロンプトを設定できます。

メモ:このセクションで設定または変更した構成は、このノードを使用する他のすべてのダイアログタスクに反映されます。
  1. コンポーネントプロパティタブの一般設定セクションにおいて、エンティティノードの名前および表示名 を入力します。エンティティ名にスペースを含めることはできません。
  2. タイプドロップダウンリストから、想定されるユーザー入力に応じてエンティティタイプを選択します。例として、ユーザーが出発日を入力する場合は、ドロップダウンから 日付 を選択します。プラットフォームは、選択されたタイプに基づいて基本的な検証を行います。エンティティタイプは、ユーザーの発話から想定されるデータのタイプをNLPインタプリターに提供し、認識およびシステムパフォーマンスを向上させます。詳細情報については、エンティティタイプをご参照ください。
  3. 選択したタイプに基づいて、エンティティを複数アイテムに設定して、ユーザーに複数選択権を与えるオプションがあります。
  4. ユーザープロンプトセクションでは、このエンティティに関してユーザーに見てもらいたいプロンプトメッセージを入力します。例として、“出発日を入力します”。
    1. 管理リンクを使用して、ユーザープロンプトのチャネル固有のメッセージを入力できます。詳細情報については、プロンプトエディターの使用をご参照ください。
    2. この特定のインスタンスは、ユーザープロンプトを上書きできます。上書きするには、
      • 右側の設定アイコンをクリックします。
      • このインスタンスを上書きする のトグルを有効にします。このオプションを有効にすると、この特定のインスタンスのユーザープロンプトを入力できるようになります。このオプションを無効にした場合、インスタンス固有のプロンプトは削除され、さらにコンポーネントのプロパティに戻されます。
  5. エラープロンプトセクションでは、デフォルトのエラーメッセージを見直し、必要に応じてエラーメッセージを修正することができます。
    1. エラーメッセージを管理するには、管理リンクをクリックします。詳細情報については、プロンプトエディターの使用をご参照ください。
    2. この特定のインスタンスは、ユーザープロンプトを上書きできます。上書きするには、
      • 右側の設定アイコンをクリックします。
      • このインスタンスを上書きする のトグルを有効にします。このオプションを有効にすると、この特定のインスタンスのユーザープロンプトを入力できるようになります。このオプションを無効にした場合、インスタンス固有のプロンプトは削除され、さらにコンポーネントのプロパティに戻されます。
    3. また、エラーメッセージを順序付けることもできます。順序付けるには、
      • 右側の設定アイコンをクリックします。
      • 再試行の順序にプロンプトを表示のトグルを有効にします。このオプションを有効にすると、各エラープロンプトメッセージの前にハンドルバーのアイコンが表示されます。これを使用すると、メッセージの順序を変更し、新しい順序で表示できるようになります。

        この画像は新しいダイアログビルダーに対応していますが、従来のビルダーでも同じ位置(つまり、エンティティノード->コンポーネントのプロパティ)でこの特徴を見つけることができます。
  6. 可変ネームスペースセクションでは、[可変ネームスペース]を関連付けてこのノードとその遷移を実行します。このオプションは、可変ネームスペースがボットに対して有効になっている場合にのみ表示されます。タスクレベルの設定を使用するか、またはこのノード用にカスタマイズできます。詳細情報は、ネームスペースの管理をご参照ください。

インスタンスプロパティ

インスタンスのプロパティを使用して、エンティティの値を必須にするかどうか、またエンティティをキャプチャするために以前のユーザーの発話からの値を考慮するかどうかを決定します。

メモ:インスタンスプロパティタブの設定は、現在のダイアログタスクに固有のものなので、このエンティティノードを使用している他のダイアログタスクに反映されることはありません。
  1. 「エンティティ」ウィンドウで、インスタンスプロパティタブをクリックします。
  2. ユーザー入力セクションにおいてオプションを選択します(エンティティフローの管理方法については、以下のセクションをご参照ください):
    • 必須:このエンティティは必要であり、ユーザーはダイアログフローを続行する前に有効なエントリを提供する必要があります。ユーザーの発話でエンティティに曖昧な値が検出された場合は、ユーザーが解決しなければならないプロンプトが表示されます。許可された再試行回数を1~5の間の任意の値(デフォルトは5)に設定することで、ユーザーが指示されてこのエンティティ値を入力する回数を設定することができます。さらに、ボットの再試行回数超過時の動作を定義することができます。これは、“ダイアログの終了”または“ノードへの遷移”をトリガーするように設定することができます。これにより、“再試行回数超過時の動作という接続ルールが作成されます。”再試行回数が超過したときにユーザーに表示されるメッセージは、標準レスポンスからカスタマイズすることができます(こちらをご参照ください)。
    • オプション:ユーザーはこのエンティティ入力を1回だけ指示されるだけで、システムはユーザーから提供されたすべての入力を続行します。これらのオプションのエンティティに対する曖昧な値がユーザーの発話で検出された場合、ユーザーが正しい値を選択できるように解決プロンプトが表示されます。デフォルト値フィールドに値を設定できます。この値は、タスクの実行がこのエンティティに到達し、ユーザーが指示されてもも値を入力せず、かつ以前の発話から値が得られない場合に、このエンティティに割り当てられます。
    • 非表示:有効にすると、ボットはエンティティ値の入力を指示されません。この値は、以前の発話でユーザーが明示的に提供した場合に考慮されます。デフォルト値フィールドに値を設定できます。この値は、タスクがこのエンティティで実行され、以前の発話から得られる値がなくなった場合に、このエンティティに割り当てられます。
  3. ユーザー入力修正セクション(v7.3)において、ユーザー入力を自動修正すべきであるかを定義します。このオプションは、文字列タイプのエンティティでのみ使用できます。以下の2つのオプションがあります。
    • ユーザー入力を自動修正するがデフォルト設定です。プラットフォームは、すべての同義語、タスク名、パターン語、およびスモールトークの発話語を標準辞書の上に含めるために、各ボットのカスタム辞書を構築します。この機能はあらゆる言語においてサポートされているわけではありません。詳細はこちらをクリックしてください
    • ユーザー入力を自動修正しない下位互換性を確保する目的で、以下の設定が既存のボットに適用されることになります(v7.3以前のボットからv7.3に移行):
      古い状態(エンティティ抽出) 新しい状態(ユーザー入力修正)
      以前の発話から未使用のテキストを評価します。 ユーザー入力を自動修正しない。
      以前の発話からエンティティを抽出するために未使用のテキストと使用済みテキストを評価します。 ユーザー入力を自動修正しない。
      以前の発話を評価せず、ユーザーに明示的に指示します – 自動修正しない[有効]。 ユーザー入力を自動修正しない。
      以前の発話を評価せず、ユーザーに明示的に指示します – 自動修正しない[無効]。 ユーザー入力を自動修正する。
  4. エンティティ抽出セクションで、以下のいずれかのオプションを選択します。
    • 以前の発話で未使用のテキストを評価する。:このオプションを選択した場合、エンティティは、これまでのダイアログにおいて他のエンティティが使用していなかったテキストを使用します。これはデフォルトのオプションです。
    • 以前の発話からエンティティを抽出するために、未使用のテキストと使用済みテキストを評価します: ダイアログの中の他のエンティティノードによって抽出されたエンティティ値をもう一度使用したい場合は、このオプションを選択します。
    • 以前の発話を評価せず、ユーザーに明示的に指示します:ボットが以前のユーザーの発話を無視して、ユーザーにエンティティ値を入力するように明示的に指示する場合は、このオプションを選択します。
      • さらに、再使用しないオプションを選択することで、このエンティティが他のエンティティを抽出するために提供された入力を再使用することをプラットフォームに制限させることができます。
  5. エンティティルールセクションでは、ユーザー入力を検証するルールを設定できます。
  6. 高度な管理をクリックして、これらのオプションをセットアップします。
    • インテント検出(文字列および説明エンティティにのみ適用):これらのオプションのいずれかを選択して、ボットが文字列または説明エンティティのユーザーエントリーの一部としてエンティティに出会った場合のアクションコースを決定します。
      • 入力をエンティティ値として受け入れ、検出されたインテントを破棄します:ボットは、ユーザー入力を文字列や説明としてキャプチャし、インテントを無視します。
      • ユーザー入力をインテントとして優先し、保留と再開の設定を続行します:ユーザー入力はインテント検出の対象とみなされ、一時停止・再開の設定に従って続行します。
      • ユーザーに続行の方法を尋ねます:ユーザーがインテントまたはエンティティのどちらを意味するかを指定できるようにします。
    • 割り込み動作:このノードでの割り込み処理を定義すること。以下のオプションから選択できます。
      • タスクレベルの「割り込み動作」設定を使用します:ボットは、ダイアログタスクレベルで設定された割り込み動作の設定を参照します。
      • このノードオプションのカスタマイズ:このオプションを選択してその設定を行うことで、このノードの割り込み動作の設定をカスタマイズできます。詳細情報については、割り込み処理とコンテキストの切り替えの記事をお読みください。
    • 優先順位 (“文字列および説明ノードを除いたあらゆるエンティティタイプに適用されます”):エンティティに対するユーザー入力が、エンティティの有効値と別のインテントで構成されている場合、エンティティに対するインテントまたはインテントに対するエンティティのオプションを選択して、体験を制御できます。例として、フライト予約ボットが目的地の入力を指示し、ユーザーが「バンガロール、天気はどうですか」と入力した場合、ボットがこのような場合にどのように応答するかを定義することができます。エンティティを選択してインテントをフォローアップインテントスタックに追加するか、割り込み動作設定に基づいて最初にインテントを実行します。
    • カスタムタグ:タグを追加して、ボット会話のカスタムプロファイルを構築します。詳しくはこちらをクリックしてください

ユーザー入力フローユーザーが入力を指示されたとき、プラットフォームが実行するプロセスは以下のとおりです。

  • ユーザーが有効値で応答した場合、その値がエンティティに入力され、ダイアログフローは続行します。
  • ユーザーの応答に曖昧な値が識別された場合、曖昧さ解決プロンプトが表示されます。
  • ユーザーが無効な発話、つまり、曖昧さ解決のための有効な入力を含まない発話で応答した場合は:
    • 指定された値がエンティティに対して有効(エンティティに対して可能な任意の値)である場合、その値はエンティティに対して使用され、会話が継続されます。
    • 指定された値がエンティティに対して有効ではなく、その値がタスクインテント、FAQ、スモールトークなどのトリガーになっている場合は:
      • インテントは一時停止と再開の設定に従って実行され、(エンティティを含む)ダイアログが再開されたとき(およびその場合)、ユーザーはエンティティ値の入力を指示されます。
      • 値がどのタスクインテント、FAQ、またはスモールトークをトリガーしない場合は、エンティティは空白のままであり、会話はエンティティの遷移から継続します。
  • ユーザーが再試行回数制限を超えた場合、再試行回数超過に対して定義された動作がトリガーされます。これが子タスクであって、動作がダイアログを終了させるように設定されているならば、親タスクも終了してしまうことに留意してください。

NLPプロパティ

  1. NLPプロパティタブの同義語候補の対象<エンティティ名>セクションで、エンティティの同義語を入力します。
  2. 各エントリ後に入力をクリックすると、各エントリが保存されます。詳細情報については、同義語の管理をご参照ください。
  3. 推奨パターン 対象の <ンティティ名 >セクションで、 +パターンの追加 をクリックして、エンティティに新しいパターンを追加します。パターン フィールドが表示されます。詳細情報については、パターンの管理をご参照ください。
  4. 管理コンテキストセクションでは、コンテキスト出力フィールドで、このエンティティがよく使われる際にコンテキストに設定するコンテキストタグを定義します。
  5. キャプチャされたエンティティ値を自動発出する オプションは、コンテキストオブジェクトの一部として選択できます。

コンテキスト管理関連はこちらをクリックしてください

IVRプロパティ

このタブを使用して、このノードがIVRチャネルで使用する入力モード、文法、プロンプト、および呼び出し動作パラメータを定義できます。これはノードレベルで定義できます。詳細はこちらをクリックしてください

接続プロパティ

ノードの接続タブから、次に実行するダイアログタスクのノードはどれにするかを決定できます。条件文は、ダイアログタスク内の任意のエンティティやコンテキストオブジェクトの値に基づいて記述することも、遷移にインテントを使用することもできます。「コンポーネント遷移」のセットアップは、以下の手順に従います。

  1. 接続ルールセクションにおいて、デフォルトドロップダウンリストから、ノードを選択することができます。
  2. 条件付きのフローを設定するには、IFの追加をクリックします。
  3. インテントプロパティでエンティティ再試行回数超過時の動作を有効にしている場合は、ここに再試行回数超過時の動作の接続ルールが表示されます。
  4. 以下のいずれかの基準に基づいて、条件式を設定します。
    1. エンティティ:これらの演算子のいずれかを使用して、ダイアログ内のエンティティノードを特定の値と比較します。「存在する」「存在しない」「等しい」「等しいより大きい」「等しいより小さい」「等しくない」「より大きい」「より小さい」。それぞれのドロップダウンリストを使用して、エンティティ、演算子を選択し、ボックスに数値を入力します。例:“PassengerCount(エンティティ)は5(指定値)より大きい(演算子)”
    2. コンテキスト:これらの演算子のいずれかを使用して、ダイアログ内のコンテキストオブジェクトを特定の値と比較します。存在する、存在しない、等しい、等しいより大きい、等しいより小さい、等しくない、より大きい、より小さい。例: Context.entity.PassengerCount “(コンテキストオブジェクト)が(演算子)5(指定値)より大きい。”
    3. インテント:次のユーザーの発話に一致するインテントを選択します。
  5. 次へ進むドロップダウンリストから、条件式が成功した場合にダイアログフローで実行する次のノードを選択します。例として、“PassengerCount(エンティティ)が5(指定値)より大きい(演算子) ”場合、次へ進む“オファー(サブダイアログ)”になります。
  6. その他ドロップダウンリストで、条件が失敗した場合に実行するノードを選択します。
メモ:複数のIf条件を書きたい場合は、最後のIf条件式の下のその他の条件を追加をクリックします。

Bots need to extract relevant information from the user utterance to fulfill the user intent.

Take a look at this sample utterance: Book me a flight from LA to NYC on Sunday.  To act on this user intent, which is to book a flight ticket, the bot should extract the entities such as the source city (LA), destination city (NYC), and the departure date (Sunday).

So, in a Dialog Task, for every critical data you want to get from a user utterance, you should create a corresponding entity node. You can add prompt messages to these nodes for users to input the required values.
Kore.ai supports more than 30 entity types such as Address, Airport, Quantity, and so on. You can also define the entities as a selection from a list, free-form entry, file or image attachment from a user, or as regex expressions.

Note: You need to follow one entity node with several other entity nodes to collect series of user inputs to complete a transaction, such as a username, location, amount, and due date, followed by a Webhook node to process a request to an API to complete an online transaction.

Set-Up

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

Add Node

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

Configure Node

Component Properties

The Entity window allows you to configure the General Settings, User, and Error Prompts.

Note: The configurations you set up or modify in this section are reflected in all other dialog tasks that use this node.
  1. On the Component Properties tab, under the General Settings section, enter a Name and Display Name for the entity node. Entity names cannot have spaces.
  2. From the Type drop-down list, select an entity type depending on the expected user input. For example, if you want the user to type the departure date, select Date from the drop-down. The platform does the basic validation based upon the Type selected.
    The Entity Type provides the NLP Interpreter with the expected type of data from a user utterance to enhance recognition and system performance. For more information, refer to Entity Types
  3. Based on the Type selected, you have an option to set the Entity as Multi-item thereby allowing the user multiple selections.
  4. Under the User Prompt section, enter the prompt message that you want the user to see for this entity. For example, Enter the Departure Date.
    1. You can enter channel-specific messages for user prompts using the Manage link. For more information, refer to Using the Prompt Editor.
    2. You can override the user prompt for this particular instance.
      To override,

      • Click the Settings icon on the right.
      • Enable the Override for this instance toggle. Once you enable this option, you can enter the user prompt for this particular instance. Disabling this option would delete the instance-specific prompt and revert it to the component property.
  5. Under the Error Prompts section, review the default error message, and if required, you can modify the error messages.
    1. To manage the error messages, click Manage link. For more information, refer to Using the Prompt Editor.
    2. You can override the user prompt for this particular instance.
      To override,

      • Click the Settings icon on the right.
      • Enable the Override for this instance toggle. Once you enable this option, you can enter the user prompt for this particular instance. Disabling this option would delete the instance-specific prompt and revert it to the component property.
    3. You can also reorder the error messages. To reorder,
      • Click the Settings icon on the right.
      • Enable the Present Prompts in the Order of Retries toggle. Once you enable this option, the handlebar icon would be visible before each error prompt message. You can use this to re-order the messages so that they will be displayed in that sequence.

        This image corresponds to the new dialog builder, you will find this feature in legacy builder at the same location i.e. Entity node -> Component Properties.
  6. In the Variable Namespaces section, associate the Variable Namespaces to execute this node and its transitions. This option is visible only when the Variable Namespace is enabled for the bot. You can go with the task level settings or customize it for this node. For more information, refer to Managing Namespace.
  7. In the Redaction of PII Data section, you can select the following options:
    • De-identify PII data while presenting bot responses – When this option is selected, it shows only the redacted value of the entity whenever it is used in prompts or messages.
    • Use the original value of the PII data while presenting bot responses  – When this option is selected, the redacted value of the entity is used in prompts or messages.Note: The PII data settings are applied for messages or user prompts that are added in Plain Text (Simple mode) as well as JavaScript code (Advanced mode).
      Important Notes:
    • The PII information is always redacted/masked in the Chat History, messages, prompts and all other components irrespective of the option selected.
    • By default, the PII Redaction option is turned-off for all entities. To learn how to enable the PII redaction option. Learn more.

     

Instance Properties

Use the Instance Properties to determine whether to make the entity value mandatory as well as to choose if you want to consider values from previous user utterances to capture entities.

Note: The settings in the Instance Properties tab are specific to the current dialog task and do not reflect in the other dialog tasks that use this entity node.
  1. On the Entity window, click the Instance Properties tab.
  2. Under the User Input section, select an option (Refer to the below section for how the entity flow is managed):
    • Mandatory: This entity is required, and users must provide a valid entry before proceeding with the dialog flow. A prompt is displayed for the user to resolve in case ambiguous values for the entity are detected in the user utterance.
      You can configure the number of times the user would be prompted for this entity value by setting the number of Allowed Retries to any value between 1 and 5, the default being 5.
      Further, you can define the bot Behavior on Exceeding Retries, this can be set to trigger End of Dialog or Transition to a Node. This would result in the creation of a Connection Rule called Behavior on Exceeding Retries. The message displayed to the user on exceeding retries can be customized from the Standard Responses, refer here.
    • Optional: The user is prompted only once for this entity and the system proceeds with any input provided by the user. In case ambiguous values for these optional entities are detected in the User Utterance, then a resolution prompt is displayed allowing the user to pick the correct value.
      You can set a value under the Default Value field. This value would be assigned to this entity when the task execution reaches this entity and the user does not provide any value when prompted and if no value is available from previous utterances.
    • Hidden: If enabled, the bot will not prompt for the entity value. The value would be considered if explicitly provided by the user in previous utterances.
      You can set a value under the Default Value field. This value would be assigned to this entity when the task execution reaches this entity and no value is available from previous utterances.
  3. User Input Correction section (v7.3) to define whether the user input needs to be auto-corrected. This option is available only for string type entities. The two options are listed below:
    • Auto-correct user input is the default setting. The platform builds a custom dictionary for each bot to include all synonyms, task names, pattern words, and small talk utterance words on top of a standard dictionary. This feature is not supported in all languages, Click here for details.
    • Do not auto-correct user input
      To ensure backward compatibility, the following settings are applied to existing bots (migrating bots older than v7.3 to v7.3):

      Old State (Entity Extraction) New State (User Input Correction)
      Evaluate unused text from previous utterances. Do not auto-correct user input.
      Evaluate unused text and text used for extracting entities from previous utterances. Do not auto-correct user input.
      Do not evaluate previous utterances and explicitly prompt the user – Do not auto-correct [Enabled]. Do not auto-correct user input.
      Do not evaluate previous utterances and explicitly prompt the user – Do not auto-correct [Disabled]. Auto-correct user input.
  4. Under the Entity Extraction section, select one of these options:
    • Evaluate the un-used text from the previous utterance: When this option is selected, the entity uses the text that was not used by any other entity in the dialog so far. This is the default option.
    • Evaluate un-used text and text used for extracting entities from previous utterances: Select this option if you want to reuse an entity value extracted by another entity node in the dialog.
    • Do not evaluate previous utterances and explicitly prompt the user: Select this option if you want the bot to ignore the previous user utterances and explicitly prompt the user to provide value for the entity.
      • Further, you can restrict the platform from reusing the input provided for this entity to extract any other entities by selecting the Do not reuse option.
  5. Under the Entity Rules section, you can configure rules to validate the user input.
  6. Click the Advanced Controls to set up these options:
    • Intent Detection (Applies only to String and Description entities): Select one of these options to determine the course of action if the bot encounters an entity as a part of the user entry for the String or Description entities:
      • Accept input as entity value and discard intent detected: The bot captures the user entry as a string or description and ignores the intent.
      • Prefer user input as intent and proceed with Hold & Resume settings: The user input is considered for intent detection and proceed according to the Hold & Resume settings.
      • Ask the user how to proceed: Allow the user to specify if they meant intent or entity.
    • Interruptions Behavior: To define the interruption handling at this node. You can select from the below options:
      • Use the task level ‘Interruptions Behavior’ setting: The bot refers to the Interruptions Behavior settings set at the dialog task level.
      • Customize for this node option: You can customize the Interruptions Behavior settings for this node by selecting this option and configuring the same.  Read the Interruption Handling and Context Switching article for more information.
    • Precedence (Applies to all Entity types except String and Description nodes): When the user’s input for an entity consists of a valid value for the entity and another intent, you can control the experience by choosing between Intent over Entity or Entity over Intent options. For example, if a Flight Booking bot prompts for the destination and the user enters, Bangalore, how’s the weather there? you get to define how the bot responds in such cases; pick the entity and add the intent to the Follow-up Intents stack or go ahead with the intent first based upon the Interruptions Behavior settings.
    • Custom Tags: It defines tags to build custom profiles of your bot conversations. Click here for more.

User Input Flow

When a user is prompted for input, the following is the process performed by the platform:

  • If the user responds with a valid value, then the entity populates with that value and the dialog flow continues.
  • If ambiguous values are identified in the user response, then an ambiguity resolution prompt is displayed.
  • If the user responds with an invalid utterance i.e. an utterance that does not contain a valid input for the ambiguity resolution, then:
    • If the given value is valid for the entity (any possible value for the entity), it is used for the entity and the conversation is continued.
    • If the given value is not valid for the entity and if the value triggers any task intent, faq, or small talk, then:
      • The intent is executed as per hold and resume settings and when (and if) the dialog (containing the entity) is resumed, the user is prompted for the entity value.
      • If the value does not trigger any task intent, faq, or small talk, the entity is left blank and the conversation is continued from the entity’s transitions.
  • If the user exceeds the retry limit, the behavior defined for exceeding retries would be triggered. Note that if this is a child task and the behavior is set to end the dialog then the parent task would also be terminated.

NLP Properties

  1. On the NLP Properties tab, under the Suggested Synonyms for the < entity name > section, enter synonyms for your entity.
  2. Click Enter after each entry to save it. For more information, refer to Managing Synonyms.
  3. Under the Suggested Patterns for < entity name > section, click + Add Pattern to add new patterns for your entity. The Patterns field is displayed. For more information, refer to Managing Patterns.
  4. Under the Manage Context section, in the Context Output field, define the context tags to be set in the context when this entity populates.
  5. You can select Auto emits the entity values captured option as part of the Context Object.

(Click here for Context Management)

IVR Properties

You can use this tab to define the input mode, grammar, prompts, and call behavior parameters for this node to use in IVR Channel. You can define this at the node level. Click here for details.

Connections Properties

From the node’s Connections tab, you can determine which 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.
To setup Component Transitions, follow the below steps:

  1. Under the Connection Rules section, from the Default drop-down list, you can select a node.
  2. To configure a conditional flow, click Add IF.
  3. In case you have enabled the Behavior on Exceeding Entity Retries in the Instance Properties, you would see the Behavior on Exceeding Entity Retries connection rule here.
  4. Configure the conditional expression based on one of the following criteria:
    1. Entity: Compare an Entity node in the dialog with a specific value using one of these operators: Exists, Does not Exist, equals to, greater than equals to, less than equals to, not equal to, greater than, and less than. Select the entity, operator using the respective drop-down lists, and type the number in the Value box. For example, PassengerCount (entity) greater than (operator) 5 (specified value).
    2. Context: Compare a context object in the dialog with a specific value using one of these operators: Exists, Does not Exist, 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).
    3. Intent: Select an intent that matches the next user utterance.
  5. From the Then go to the 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).
  6. 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.