이러한 값을 처리하기 전에 사용자 입력을 검증하는 것은 봇의 효율성과 사용자 경험을 개선하는 데 있어 장기간의 시간이 필요합니다. 엔티티 유형에 몇몇 기본 제한 사항이 적용되지만 이러한 제한 사항은 항상 충분하지 않으며 특정 비즈니스 요건을 충족하지 않습니다. 엔티티 규칙은 추가 처리 힌트 및 유효성 검사에 사용할 수 있습니다. 엔티티 규칙은 해당 엔티티의 인스턴스 속성 아래 엔티티 규칙 섹션에서 추가할 수 있습니다. 제공된 JSON 에디터에 규칙을 추가하고. 방법은 여기를 참조하세요. 이러한 규칙은 엔티티에 대한 스크립트에서 설정될 수도 있습니다. 이러한 경우 대화 흐름에서 엔티티 프롬프트 전에 규칙이 설정되어야 합니다. 다음 스크립트를 사용하여 대화의 시작 부분이나 관련 엔티티 노드 바로 앞에 스크립트 노드를 추가합니다:

context.entityRules.<entityName> = {
      "ruleName": "value"
   }

하위 엔티티 규칙은 복합 엔티티 규칙의 일부가 될 수 있습니다:

context.entityRules.<compositeEntityName> = {
    <subentityName> : { 
      "ruleName": "value"
     }
   }

다음은 필수 엔티티의 JSON 에디터에 입력되거나 위의 스크립트와 같이 ruleName으로 포함될 수 있는 엔티티 규칙입니다. 이 목록을 지속적으로 개선하고 업데이트하고 있습니다. 커뮤니티 포럼에 피드백 또는 제안 사항을 게시해 주시면 실현 가능할 경우 개발자들이 이를 수용하겠습니다.

일반 규칙

규칙 이름 설명
processLatestSentence true/false 현재 Volley의 문장으로만 검사를 제한합니다.
예시

{
 "processLatestSentence": <true/false>
}
patternsOnly true/false 엔티티 패턴에만 매칭하는 것을 제한합니다. 기본적으로 지정된 엔티티 패턴으로 인해 엔티티 값이 추출되지 않으면 플랫폼은 사용자 발화에서 값을 찾으려고 시도합니다. 이 규칙을 true로 설정하면 해당 기본 처리가 비활성화됩니다.
예시

{
"patternsOnly": <true/false>
}
allowConfirmation true/false 추출된 엔티티 값은 각 입력 후에 사용자에게 표시되며 흐름은 사용자가 확인한 후에만 지속됩니다. 현재 이 규칙은 LoV 열거된 엔티티 유형에만 적용할 수 있습니다.
예시

{
"allowConfirmation": <true/false>
}
confirmYesSynonyms <concept names> 엔티티 값을 확인하는 데 사용되는 추가 단어/구문 위에서 언급한 allowConfirmation 규칙과 함께 사용됩니다.
예시

{
"confirmYesSynonyms": ["~concept1", "~concept2"]
}

concept1: ok라면, concept2: affirmative

confirmNoSynonyms <concept names> 확인 엔티티를 취소하는 데 사용되는 추가 단어/구문입니다. 이 항목을 선택/발화하면 위에서 언급한 allowConfirmation 규칙과 함께 사용되는 엔티티 값이 null로 설정됩니다.
예시

{
"confirmNoSynonyms": ["~concept2", "~concept3"]
}

Concept1:nope이라면, concept2:wrong

문자열 유형 엔티티

설명 엔티티 유형

규칙 이름 설명
stripLeading <concept name> 추출된 문자열의 시작에서 콘셉트에 주어진 단어를 제거합니다. 콘셉트는 단일 콘셉트 이름 또는 공백으로 구분된 콘셉트 목록 또는 콘셉트 이름의 배열일 수 있습니다.
예시
JSON

{ "stripLeading": [ 
      "~stringConcept" 
    ]
}
stringConcept:  도시 엔티티 패턴: I like * 사용자 발화 "I like city New York" 추출된 값 New York
stripTrailing <concept name> 추출된 문자열의 끝에서 콘셉트의 단어를 제거합니다. 값은 단일 콘셉트 이름 또는 공백으로 구분된 콘셉트 목록 또는 콘셉트 이름의 배열일 수 있습니다.
예시
JSON

{ "stripTrailing":
    "~stringConcept ~stringConcept1"
 }
stringConcept:  도시; stringConcept1:  공항 엔티티 패턴: I like * 사용자 발화 "I ike New York city" 또는 "I like New York airport" 추출된 값 New York
avoidSingleWord <concept name> 전체 입력 값이 아니라면 콘셉트 멤버의 값을 무시합니다. 값은 단일 콘셉트 이름 또는 공백으로 구분된 콘셉트 목록 또는 콘셉트 이름의 배열일 수 있습니다.
예시
JSON

{
  "avoidSingleWord": 
      "~stringConcept"
}
stringConcept:  체스, 크리켓 엔티티 패턴: like to watch * tournament 사용자 발화 "I like to watch chess tournament" 추출된 값 엔티티 값에 대한 표시 사용자 발화 "I like to watch golf tournament" 추출된 값 golf 사용자 발화cricket추출된 값 cricket(이것이 전체 입력값이기 때문)
avoidSingleVerb true true로 설정하면 전체 입력값이 아닌 경우 동사만 있는 값은 무시됩니다.
예시
JSON

{
"avoidSingleVerb": true
}
엔티티 패턴: I like * music 사용자 발화 "I like playing music" 추출된 값 엔티티 값에 대한 표시 사용자 발화 "I like rap music" 추출된 값 rap 사용자 발화 "play" 추출된 값 play(이것이 전체 입력값이기 때문)
extractOnlyNumbers true true인 경우 엔티티는 문자열의 숫자만 추출하고 이를 엔티티 값으로 설정합니다
예시
JSON

{
"extractOnlyNumbers": true
}

숫자 유형 엔티티

규칙 이름 설명
asString true 숫자를 문자열로 캡처하려면 맨 앞의 0을 유지합니다
예시
JSON

{
  "asString": true
}
엔티티 패턴 – 기본 숫자 입력값 사용자 발화 "OTP is 009944" 추출된 값 "009944"규칙이 없다면 "9944"가 추출됩니다.

통화 유형 엔티티

규칙 이름 설명
defaultCode <currency code> 또는 <country code> 사용자 입력에 언급된 코드가 없으면 이 값이 코드로 선택됩니다. 값은 3자로 된 통화 코드 또는 2자로 된 국가 알파벳 두 글자 코드여야 합니다.
예시
JSON

{
  "defaultCode": "NZD"
}
엔티티 패턴 pay * 사용자 발화 "Pay 30" 추출된 값 "NZD30" 사용자 발화 "Pay USD30" 추출된 값 "USD30"
maxDigits <number> 금액의 길이를 제한합니다. 금액의 길이가 값을 초과하면 삭제됩니다.
예시
JSON

{
  "maxDigits":[
    "3"
   ]
}
엔티티 패턴 pay * 사용자 발화"Pay USD30" 추출된 값 "USD30" 사용자 발화"Pay USD3000" 추출된 값 값에 대한 표시
currencyCodes [<currency code>,<currency code>] 또는 [<country code>,<country code>] 통화 코드를 제한합니다. 사용자가 입력한 코드가 주어진 목록에 없으면 값이 삭제됩니다.
예시
JSON

{
  "currencyCodes": [
    "USD",
    "INR",
    "NZD"
  ]
}
엔티티 패턴 pay * 사용자 발화"Pay USD30" 추출된 값 "USD30" 사용자 발화"Pay AUD30" 추출된 값 값에 대한 표시

PersonName 유형 엔티티

규칙 이름 설명
disablePatterns 무시할 사람 이름 패턴 배열 – 현재 "소유격"만 지원 특정 시나리오에 해당하지 않는다면 사람 이름을 추출할 때 패턴을 비활성화합니다.
예시
JSON

{
  "disablePatterns": [
    "possessive"
  ]
}
엔티티 패턴 – 기본 대문자 단어 사용자 발화 "schedule Bob's review at 9 am" 추출된 값 "Bob"
ignoreWords <concept name> 콘셉트에서 단어는 대문자로 된 경우에도 이름으로 간주되지 않습니다. 콘셉트 이름은 단일 콘셉트 공백으로 구분된 콘셉트 목록 또는 콘셉트 이름의 배열일 수 있습니다.
예시
JSON

{
  "ignoreWords": [
    "review",
    "~prepositionList"
  ]
}
엔티티 패턴 – 정의에 따라 대문자 단어 사용자 발화 "meeting for Bob Review" 추출된 값 "Bob" 규칙이 없다면 "Bob Review"가 추출됩니다.
negativePatterns 패턴 배열 사람의 이름은 일반적인 대문자 단어이거나, 사람으로 받아들일 수 없는 의미로 사용할 수 있습니다.
예시
JSON

{
  "negativePatterns": [
    "about *"
  ]
}
엔티티 패턴 – 정의에 따라 대문자 단어 사용자 발화 "schedule a meeting about Philip with Fred" 추출된 값 "Fred" 규칙이 없다면 "Philip"이 추출됩니다.

회사 유형 엔티티

규칙 이름 설명
ignoreWords <concept name> 콘셉트에서 단어는 대문자로 된 경우에도 회사로 간주되지 않습니다. 콘셉트 이름은 단일 콘셉트 공백으로 구분된 콘셉트 목록 또는 콘셉트 이름의 배열일 수 있습니다.
예시
JSON

{
  "ignoreWords": [
    "atm"
  ]
}
엔티티 패턴 – 정의에 따라 대문자 단어 사용자 발화 "find ATM" 추출된 값 없음 규칙이 없다면 "ATM" (이탈리아 회사)이 추출됩니다.
negativePatterns 무시할 회사 이름 패턴 배열입니다 특정 시나리오에 해당하지 않는다면 회사 이름을 추출할 때 패턴을 비활성화합니다.

날짜 유형 엔티티

규칙 이름 설명
range { “from” : <from-date>, “to” : <to-date> } 지정된 범위에 있는 날짜만 추출합니다. 엔드포인트 중 하나는 선택 사항입니다. 값은 날짜, YYYY-MM-DD 또는 오늘, 내일, 어제 등의 키워드가 될 수 있습니다. 날짜는 포함되어 있습니다.
예시
JSON

{
"range": {
   "from": "2020-01-01",
   "to": "today"
  }
}
엔티티 패턴 – 기본적으로 날짜 패턴 사용자 발화 "show schedule for 2019-02-03" 추출된 값 값에 대해 표시 사용자 발화 "show schedule for tomorrow" 추출된 값 값에 대해 표시 사용자 발화 "show schedule for 2020-02-03" 추출된 값 "2020-02-03"
referenceDate <date> 참조 날짜를 <date>로 설정하고 해당 날짜에 따라 현재 날짜 엔티티 값이 설정되도록 날짜를 계산합니다. 값은 날짜, YYYY-MM-DD 또는 오늘, 내일, 어제 등의 키워드가 되어야 합니다.
예시
JSON

{
  "referenceDate": "2020-07-09"
}
엔티티 패턴 – 기본적으로 날짜 패턴 사용자 발화 "schedule after two days" 추출된 값 참조 날짜가 없다면 현재 날짜로부터 이틀 후인 "2020-07-11"
preferredDateFormat "yyyy-mm-dd" 날짜가 모호하다면 선호하는 날짜 형식을 사용하여 모호성을 해결합니다. 값은 다음과 같을 수 있습니다:

  • "yyyy-mm-dd"
  • "yyyy-dd-mm"
  • "dd-mm-yyyy"
  • "mm-dd-yyyy"
예시
JSON

{
  "preferredDateFormat": "mm-dd-yyyy"
}
사용자 발화 "03-04-2021" 추출된 값 "2021-03-04" 참고 사항: 이 규칙은 사용자의 발화에서 모호성이 있을 때만 나타납니다. 사용자의 기본 설정이 이전 대화의 일부로 이미 설정되어 있다면 사용자가 선택한 형식이 정의된 규칙보다 우선합니다. 예를 들어, 이전 활용 사례에 따라 사용자가 대화 중 "dd-mm-yyy"를 선호하는 형식으로 선택했다면 날짜는 "2021-04-03"으로 지정됩니다.
returnOnlyMonthYear <true/false> true로 설정하면 플랫폼은 사용자 입력에서 월 및 연도를 캡처하고 그에 따라 컨텍스트 객체를 업데이트합니다. 사용자가 전체 입력(예: 2019년 10월 20일)을 제공하더라도 시스템은 해당 입력에서 2019년 10월만 가져옵니다. 사용자가 날짜를 제공하지 않으면 해당 날짜를 입력하라는 메시지가 표시되지 않습니다
예시
JSON

{
  "returnOnlyMonthYear": true
}
사용자 발화 "03-04-2021" 추출된 값 " 04-2021 "사용자 발화 " Apr 2021" 추출된 값 "04-2021"

날짜 기간 유형 엔티티

규칙 이름 설명
range { “from” : <from-date>, “to” : <to-date> } 지정된 범위에 있는 날짜만 추출합니다. 엔드포인트 중 하나는 선택 사항입니다. 값은 날짜, YYYY-MM-DD 또는 오늘, 내일, 어제 등의 키워드가 될 수 있습니다. 날짜는 포함되어 있습니다.
예시
JSON

{
"range": {
   "from": "2020-01-01",
   "to": "today"
  }
}
엔티티 패턴 – 기본적으로 날짜 패턴 사용자 발화 "show schedule for 2019-02-03" 추출된 값 값에 대해 표시 사용자 발화 "show schedule for tomorrow" 추출된 값 값에 대해 표시 사용자 발화 "show schedule for 2020-02-03" 추출된 값 "2020-02-03"
referenceDate <date> 참조 날짜를 <date>로 설정하고 해당 날짜에 따라 현재 날짜 엔티티 값이 설정되도록 날짜를 계산합니다. 값은 날짜, YYYY-MM-DD 또는 오늘, 내일, 어제 등의 키워드가 되어야 합니다.
예시
JSON

{
  "referenceDate": "2020-07-09"
}
엔티티 패턴 – 기본적으로 날짜 패턴 사용자 발화 "schedule after two days" 추출된 값 "2020-07-11"
tense past/future 사용자의 발화에 연도가 없을 때 시제에 따라 날짜 기간을 조정합니다. 이 규칙이 없으면 월/일이 현재 날짜로부터 90일 이내인 경우 연도가 현재 연도로 설정되고, 그렇지 않으면 이전 연도로 설정됩니다. 이 규칙을 사용하면 연도를 현재 또는 과거 연도에 적용할 수 있습니다.
예시
JSON

{
 "tense": "past"
}
엔티티 패턴 – 기본적으로 날짜 패턴 사용자 발화 "get the statement for Jan" 추출된 값 "2020-01-01" 현재 날짜가 "2020-15-12"라면 규칙이 없는 경우 "2021-01-01"가 추출됩니다.  
preferredDateFormat "yyyy-mm-dd" 날짜가 모호하다면 선호하는 날짜 형식을 사용하여 모호성을 해결합니다. 값은 다음과 같을 수 있습니다:

  • "yyyy-mm-dd"
  • "yyyy-dd-mm"
  • "ddmmyyyy"
  • "mmddyyyy"
예시
JSON

{
  "preferredDateFormat": "mm-dd-yyyy"
}
사용자 발화 "03-04-2021" 추출된 값 "2021-03-04" 참고 사항: 이 규칙은 사용자의 발화에서 모호성이 있을 때만 나타납니다. 사용자의 기본 설정이 이전 대화의 일부로 이미 설정되어 있다면 사용자가 선택한 형식이 정의된 규칙보다 우선합니다. 예를 들어, 이전 활용 사례에 따라 사용자가 대화 중 "dd-mm-yyy"를 선호하는 형식으로 선택했다면 날짜는 "2021-04-03"으로 지정됩니다.

DateTime 유형 엔티티

규칙 이름 설명
range { “from” : <from-datetime>, “to” : <to-datetime> } 지정된 범위에 있는 날짜-시간만 추출합니다. 엔드포인트 중 하나는 선택 사항입니다. 값은 날짜(YYYY-MM-DD) 또는 날짜 시간(YYYY-MM-DDTHH:MM:SS(지정되지 않았다면 사용자의 시간대로 가정됨) 또는 오늘, 내일, 어제, 지금과 같은 키워드일 수 있습니다. 날짜는 포함되어 있습니다.
예시
JSON

{
  "range": {
    "from": "2020-01-01T00:00:00+05:30",
    "to": "2020-10-01T00:00:00+05:30"
  }
}
엔티티 패턴 – 기본적으로 날짜 시간 패턴 사용자 발화 "set alarm for 2019-02-03T10:00:00" 추출된 값 값에 대해 표시 사용자 발화 "show schedule for 2021-12-20T10:00:00" 추출된 값 값에 대해 표시 사용자 발화 "show schedule for 2020-02-03 T10:00:00" 추출된 값 "2020-02-03T10:00:00"
preferredTimes { “from” : <from-time>, “to” : <to-time> } 시간이 모호하다면 시간을 해석하는 데 사용할 수 있는 선호 시간을 설정합니다. 이러한 시간은 주중 모든 요일에 적용됩니다. 예를 들어, preferredTimes가 오전 9시에서 오후 6시인 경우 "3"은 "3 pm"이 됩니다. 시간을 범위 내에 넣을 수 없다면 가장 가까운 오전/오후를 선택합니다. 두 가지 가능성 또는 동일한 거리가 있는 경우 "주간/표준 기상" 시간이 사용됩니다. 시간은 ISO 8601 형식(THH:MM)이어야 합니다
{ “from” : [], “to” : [] } 이 옵션은 주중의 요일별로 선호하는 시간을 다르게 설정하기 위한 것입니다. "From" 및 "to" 키는 일요일부터 토요일까지 각 요일의 시간을 나타내는 7개의 멤버로 구성된 배열일 수 있습니다. 각각의 값은 기본 설정이 없음을 나타내기 위해 Thh:mm 형식이거나 빈 문자열이어야 합니다.
{ “favor” : <keyword> } "favor" 키워드는 "미래", "과거", "오전" 또는 "오후"의 측면에서 기본 설정을 설정하는 데 사용할 수 있습니다.
예시
JSON

 "preferredTimes": {
    "from": "T12:00:00",
    "to": "T18:00:00"
  }
엔티티 패턴 – 기본적으로 날짜 패턴 사용자 발화 "remind me at 3" 추출된 값 "T15:00:00"
JSON

 "preferredTimes": {
    "from": [
      "", "T09:00", 
      "T09:00", "T21:00", 
      "T21:00", "T07:00", ""
    ],
    "to": [
      "", "T18:00",
      "T18:00", "T06:00", 
      "T06:00", "T16:00", ""
    ]
  }
엔티티 패턴 – 기본적으로 날짜 패턴 사용자 발화 "remind me at 3" 추출된 값 , 현재 월요일/화요일/금요일이라면 "T15:00:00", 현재 수요일/목요일이라면 "T03:00:00"입니다.
JSON

 "preferredTimes": {
    "favor": "pm"
  }
엔티티 패턴 – 기본적으로 날짜 패턴 사용자 발화 "remind me at 3" 추출된 값 "T15:00:00"
timeRangePossible true/false true라면 대화는 사용자 입력의 시간 범위를 찾습니다. "10 ~ 4"의 해석에 영향을 줍니다. 기본적으로 이 값은 "3:50"이지만 범위를 지정할 수 있다면 "10:00" 및 "16:00"의 두 배로 디코딩됩니다.
예시
JSON

{
"timeRangePossible": "true"
}
   
preferredDateFormat "yyyy-mm-dd" 날짜가 모호하다면 선호하는 날짜 형식을 사용하여 모호성을 해결합니다. 값은 다음과 같을 수 있습니다:

  • "yyyy-mm-dd"
  • "yyyy-dd-mm"
  • "ddmmyyyy"
  • "mmddyyyy"
예시
JSON

{
  "preferredDateFormat": "mm-dd-yyyy"
}
사용자 발화 "03-04-2021" 추출된 값 "2021-03-04" 참고 사항: 이 규칙은 사용자의 발화에서 모호성이 있을 때만 나타납니다. 사용자의 기본 설정이 이전 대화의 일부로 이미 설정되어 있다면 사용자가 선택한 형식이 정의된 규칙보다 우선합니다. 예를 들어, 이전 활용 사례에 따라 사용자가 대화 중 "dd-mm-yyy"를 선호하는 형식으로 선택했다면 날짜는 "2021-04-03"으로 지정됩니다.

시간 유형 엔티티

규칙 이름 설명
preferredTimes { “from” : <from-time>, “to” : <to-time> } 시간이 모호하다면 시간을 해석하는 데 사용할 수 있는 선호 시간을 설정합니다. 이러한 시간은 주중 모든 요일에 적용됩니다. 예를 들어, preferredTimes가 오전 9시에서 오후 6시인 경우 "3"은 "3 pm"이 됩니다. 시간을 범위 내에 넣을 수 없다면 가장 가까운 오전/오후를 선택합니다. 두 가지 가능성 또는 동일한 거리가 있는 경우 "주간/표준 기상" 시간이 사용됩니다. 시간은 ISO 8601 형식(THH:MM)이어야 합니다
{ “from” : [], “to” : [] } 이 옵션은 주중의 요일별로 선호하는 시간을 다르게 설정하기 위한 것입니다. "From" 및 "to" 키는 일요일부터 토요일까지 각 요일의 시간을 나타내는 7개의 멤버로 구성된 배열일 수 있습니다. 각각의 값은 기본 설정이 없음을 나타내기 위해 Thh:mm 형식이거나 빈 문자열이어야 합니다.
{ “favor” : <keyword> } "favor" 키워드는 "미래", "과거", "오전" 또는 "오후"의 측면에서 기본 설정을 설정하는 데 사용할 수 있습니다.
예시
JSON

 "preferredTimes": {
    "from": "T12:00:00",
    "to": "T18:00:00"
  }
엔티티 패턴 – 기본적으로 날짜 패턴 사용자 발화 "remind me at 3" 추출된 값 "T15:00:00"
JSON

 "preferredTimes": {
    "from": [
      "", "T09:00", 
      "T09:00", "T21:00", 
      "T21:00", "T07:00", ""
    ],
    "to": [
      "", "T18:00",
      "T18:00", "T06:00", 
      "T06:00", "T16:00", ""
    ]
  }
엔티티 패턴 – 기본적으로 날짜 패턴 사용자 발화 "remind me at 3" 추출된 값 , 현재 월요일/화요일/금요일이라면 "T15:00:00", 현재 수요일/목요일이라면 "T03:00:00"입니다.
JSON

 "preferredTimes": {
    "favor": "pm"
  }
엔티티 패턴 – 기본적으로 날짜 패턴 사용자 발화 "remind me at 3" 추출된 값 "T15:00:00"
timeRangePossible true/false true라면 대화는 사용자 입력의 시간 범위를 찾습니다.
예시
JSON

{
"timeRangePossible": "true"
}
"10 ~ 4"와 같은 발화가 해석되는 방식에 영향을 줍니다. 기본적으로 이 값은 "3:50"이지만 범위를 지정할 수 있다면 "10:00" 및 "16:00"의 두 개의 개별 시간 값으로 디코딩됩니다.
range { “from” : now, } 또는 { “to” : now } 지정된 범위에 있는 날짜-시간만 추출합니다. 엔드포인트 중 하나는 선택 사항입니다. 현재 지원은 "현재" 값으로만 확장됩니다
예시
JSON

{
  "range": {
    "from": now
  }
}

주소 유형 엔티티

규칙 이름 설명
geocode true/false 완전한 형식의 주소용입니다. true로 설정하면 주소가 좌표 지정 서비스(예: Google)를 사용하여 개별 부분으로 나뉩니다.
예시
JSON

{
  "geocode" : true
}
추출된 값 JSON 객체

{
  "text" : "",
  "geocode" : []
}

"text" 속성에는 좌표 지정되지 않은 양식이 사용되었다면 주소가 포함됩니다. "geocode" 속성에는 서비스의 수정되지 않은 결과가 포함됩니다(기본적으로 Google). 결과에서 원하는 어떤 요소든 추출하여 필요에 맞출 수 있습니다.

도시 유형 엔티티

규칙 이름 설명
ignoreWords <concept name> 콘셉트 내 단어들은 도시들로 고려되지 않습니다. 콘셉트 이름은 단일 콘셉트 공백으로 구분된 콘셉트 목록 또는 콘셉트 이름의 배열 또는 공백으로 구분된 문자열일 수 있습니다.
예시
JSON

{
  "ignoreWords": "Send"
}
엔티티 패턴 – 기본적으로 대문자 단어 사용자 발화 "Send destination to my email" 추출된 값 엔티티 값에 대한 표시, 규칙이 없다면 이것이 도시 이름이기 때문에 "Send"가 추출됩니다.

우편번호 유형 엔티티

규칙 이름 설명
preferredCountries [<“country1”>,<“country2”>,..] 사용자 위치 국가 및 입력에서 얻은 국가와 함께 주어진 선호 국가의 우편번호를 제한합니다. <“Country1”>,<“country2”> 등 대신 2자로 된 국가 알파벳 두 글자 코드를 추가해야 합니다.
예시
JSON

{
  "preferredCountries": [
    "GB"
  ]
}
엔티티 패턴 – 기본적으로 우편번호 패턴 사용자 발화 "check delivery to PO16 7GZ" 추출된 값 "PO16 7GZ", 이 규칙이 없다면 사용자가 UK 지역에 있지 않은 경우 이것은 무시됩니다.

위치 유형 엔티티

규칙 이름 설명
preferredCountries [<“country1”>,<“country2”>,..] 사용자 위치 국가 및 입력에서 얻은 국가와 함께 주어진 선호 국가의 위치를 제한합니다. <“Country1”>,<“country2”> 등 대신 2자로 된 국가 알파벳 두 글자 코드를 추가해야 합니다.
예시
JSON

{
  "preferredCountries": [
    "GB"
  ]
}

항목 목록(열거) 유형 엔티티

규칙 이름 설명
ownership include/ exclude 잠재적 "소유권" 파싱을 찾습니다.예: "is mine"으로 엔티티 값에서 잠재적 선택이 포함되어야 할지 제외되어야 할지 결정합니다 소유권 구문의 예로는 "is mine", "belongs to me" 등이 있습니다
예시
JSON

{
  "ownership": "include"
}
입력 옵션 – 항목 선택: "pen", "watch", "bottle", "book", "cap" 사용자 발화 "first two are mine" 추출된 값 ["pen", "watch"]
JSON

{
  "ownership": "exclude"
}
입력 옵션 – 항목 선택: "pen", "watch", "bottle", "book", "cap" 사용자 발화 "first two are mine" 추출된 값 규칙이 소유권 규칙에서 제외되었으므로 ["bottle", "book", "cap"]가 추출됩니다.
includeWords <concept name> 또는 단어의 배열 소유권 문구를 보완하는 단어 목록입니다. 값은 문자열 배열이나 콘셉트일 수 있습니다. 함께 사용하려면 소유권: 포함 규칙을 사용합니다.
예시
JSON

{
  "ownership": "include",
  "includeWords": "great"
}
입력 옵션 – 항목 선택: "pen", "watch", "bottle", "book", "cap" 사용자 발화 "first two are mine" 추출된 값 ["pen", "watch"] 사용자 발화 "first two are great" 추출된 값 ["pen", "watch"]
excludeWords <concept name> 또는 단어의 배열 소유권 없는 구문으로 사용할 수 있는 단어 목록입니다. 값은 문자열 배열 또는 콘셉트일 수 있습니다. 소유권: 제외 규칙과 함께 사용됩니다.
예시
JSON

{
  "ownership": "exclude",
   "excludeWords": "~lovConcept"
}
입력 옵션 – 항목 선택: "pen", "watch", "bottle", "book", "cap" lovConcept – 불확실함사용자 발화 "first two are dubious" 추출된 값 ["bottle", "book", "cap"]
noIndexMatch true 알파벳 및 숫자 색인 일치 비활성화는 사용자에게 색인을 사용하여 항목을 선택할 수 없도록 합니다.
예시
JSON

{
  "noIndexMatch": "true"
}
입력 옵션 – 항목 선택: "pen", "watch", "bottle", "book", "cap" 사용자 발화 a 추출된 값 입력값에 대한 표시, 규칙이 없다면 ["pen"]이 추출됩니다.

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

これらの値を処理する前にユーザー入力を検証することは、ボットの効率とユーザー体験の向上に大きく貢献します。エンティティタイプはいくつかの基本的な制約を課しており、これらは必ずしも十分というわけではなく、特定のビジネス要件を満たしません。エンティティルールは、追加的処理のヒントおよび検証に使用可能です。

エンティティルールは、対応するエンティティのインスタンスプロパティにおけるエンティティルールセクションから追加できます。提供されているJSONエディターにおいてルールを追加します。 方法についてはこちらをご覧ください

これらのルールは、エンティティのスクリプトに設定することもできますが、その場合、ルールはダイアログフローのエンティティプロンプトの前に設定しなければなりません。ダイアログの最初または当該エンティティノードの直前に、以下のスクリプトを含むスクリプトノードを追加します。

context.entityRules.<entityName> = {
      "ruleName": "value"
   }

サブエンティティルールは、複合エンティティルールの一部である場合もあります。

context.entityRules.<compositeEntityName> = {
    <subentityName> : { 
      "ruleName": "value"
     }
   }

以下は、必要なエンティティをJSONエディターで入力したり、上記のスクリプトに ruleName として含めることができるエンティティルールです。このリストは継続的に改善、更新しています。ご意見やご要望がございましたら、 コミュニティフォーラム にご投稿ください。できれば、開発者が対応いたします。

一般的なルール

ruleName 説明
processLatestSentence true/false チェック対象を現在のボレーの文のみに限定。

{ "processLatestSentence": <true/false> }
patternsOnly true/false エンティティパターンのみで一致を制限。デフォルトで、指定のエンティティパターンがエンティティ値の抽出の結果に結びつかない場合、プラットフォームはユーザー発話から値を見つけようとします。このルールをtrueに設定すると、そのデフォルトの処理が無効になります。

{ "patternsOnly": <true/false> }
allowConfirmation true/false 抽出されたエンティティ値は、入力のたびにユーザーに提示され、ユーザーが確認した後にフローが続行されます。現在、このルールはLoVの列挙されたエンティティタイプにのみ適用されます。

{ "allowConfirmation": <true/false> }
confirmYesSynonyms <concept names> エンティティ値を確認するために使用される追加の単語/フレーズ。前述のallowConfirmationルールと合わせて使用されます。

{ "confirmYesSynonyms": ["~concept1", "~concept2"] }

where concept1: ok; concept2: affirmative

confirmNoSynonyms <concept names> 確認エンティティをキャンセルする際に使用する追加の単語/フレーズ。前述のallowConfirmationルールと合わせて使用します。

{ "confirmNoSynonyms": ["~concept2", "~concept3"] }

where concept1: nope; concept2: wrong

文字列型のエンティティ

説明エンティティタイプ

ruleName 説明
stripLeading <concept name> 抽出された文字列の先頭から、概念で与えられた単語を削除。概念は、単一の概念名、またはスペースで区切られた概念のリスト、あるいは概念名の配列である場合もあります。
JSON

{ "stripLeading": [ "~stringConcept" ] }
stringConcept:  city エンティティパターン: 私は*が好きですユーザー発話私はニューヨーク市が好きです抽出された値 ニューヨーク
stripTrailing <concept name> 抽出された文字列の最後から、概念に含まれる単語を削除。概念は、単一の概念名、またはスペースで区切られた概念のリスト、あるいは概念名の配列である場合もあります。
JSON

{ "stripTrailing": "~stringConcept ~stringConcept1" }
stringConcept:  city; stringConcept1:  airport エンティティパターン: 私は*が好きですユーザー発話私はニューヨーク市が好きです」または「私はニューヨーク空港が好きです抽出された値ニューヨーク
avoidSingleWord <concept name> 概念のメンバーであるいかなる値も、それが入力全体でない限り無視すること。概念は、単一の概念名、またはスペースで区切られた概念のリスト、あるいは概念名の配列である場合もあります。
JSON

{ "avoidSingleWord": "~stringConcept" }
stringConcept:  チェス、クリケットエンティティパターン: *トーナメントを観るのが好きですユーザー発話私はチェスのトーナメントを観るのが好きです抽出された値 エンティティ値のプロンプトユーザー発話私はゴルフのトーナメントを観るのが好きです抽出された値ゴルフユーザー発話クリケット抽出された値クリケット、入力全体という理由で
avoidSingleVerb true trueに設定すると、入力全体でない限り、動詞だけの値は無視されます。
JSON

{ "avoidSingleVerb": true }
エンティティパターン: 私は*ミュージックが好きですユーザー発話私は演奏ミュージックが好きです抽出された値 エンティティ値のプロンプトユーザー発話私はラップミュージックが好きです抽出された値 ラップユーザー発話演奏抽出された値演奏、入力全体から
extractOnlyNumbers true trueの場合、文字列に含まれる数字のみを抽出し、それをエンティティの値として設定します。
JSON

{ "extractOnlyNumbers": true }

番号型エンティティ

ruleName 説明
asString true 先頭のゼロを残して数字を文字列としてキャプチャ
JSON

{ "asString": true }
エンティティパターン – デフォルトでは数字エントリユーザー発話「OTPは009944抽出された値009944」 ルールがなかったら、「9944」だったでしょう

通貨型エンティティ

ruleName 説明
defaultCode <currency code> or <country code> ユーザー入力にコードが記載されていない場合は、この値がコードとして選択されます。値は、3文字の通貨コードまたは2文字の国別アルファ-2コードである必要があります。
JSON

{ "defaultCode": "NZD" }
エンティティパターン*を払うユーザー発話30を払う抽出された値NZD30ユーザー発話USD30を払う抽出された値USD30
maxDigits <number> 金額の長さを制限金額の長さが値を超えた場合は破棄されます。
JSON

{ "maxDigits":[ "3" ] }
エンティティパターン*を払うユーザー発話 USD30を払う抽出された値USD30ユーザー発話USD3000を払う抽出された値値のプロンプト
currencyCodes [<currency code>,<currency code>] or [<country code>,<country code>] 通貨コードを制限ユーザー入力のコードが所定のリストにない場合、その値は破棄されます。
JSON

{ "currencyCodes": [ "USD", "INR", "NZD" ] }
エンティティパターン*を払うユーザー発話 USD30を払う抽出された値USD30ユーザー発話AUD30を払う抽出された値値のプロンプト

PersonName タイプエンティティ

ruleName 説明
disablePatterns 無視する人名パターンの配列 – 現在は"possessive" のみをサポートしています。 特定のシナリオで適用されない場合に、人名を抽出するパターンを無効化。
JSON

{ "disablePatterns": [ "possessive" ] }
エンティティパターン– デフォルトでは大文字の単語ユーザー発話「Bobのreviewを午前9時に予定」抽出された値Bob
ignoreWords <concept name> 概念に含まれる単語は、大文字であっても名前とはみなされません。概念名には、スペースで区切られた概念のリスト、または概念の配列を指定できます。
JSON

{ "ignoreWords": [ "review", "~prepositionList" ] }
エンティティパターン – 定義では大文字の単語ユーザー発話「BobのReviewのための会議」抽出された値Bob」 ルールがなければ「Bob Review」になっていたでしょう
negativePatterns array of patterns 人名は一般的な大文字の単語であったり、人としての意味を持たない意味での名前が使われたりします。
JSON

{ "negativePatterns": [ "about *" ] }
エンティティパターン – 定義では大文字の単語ユーザー発話「PhilipとFredとの会議を予定」抽出された値Fred」ルールがなければ「Philip」になっていたでしょう

会社タイプのエンティティ

ruleName 説明
ignoreWords <concept name> 概念に含まれる単語は、大文字であっても会社とはみなされません。概念名には、スペースで区切られた概念のリスト、または概念の配列を指定できます。
JSON

{ "ignoreWords": [ "atm" ] }
エンティティパターン – 定義では大文字の単語ユーザー発話「ATMを探す」抽出された値ルールがなかったら、「ATM」(イタリアの会社)ではなかったでしょう。
negativePatterns 除外する会社名パターンの配列 特定のシナリオに適用されない場合に、人名を抽出するパターンを無効化。

日付型エンティティ

ruleName 説明
range { “from” : <from-date>, “to” : <to-date> } 指定した範囲の日付のみを抽出。どちらのエンドポイントもオプションです。値には、YYYY-MM-DDの日付や、今日、明日、昨日といったキーワードを使用できます。日付は包括的なものです。
JSON

{ "range": { "from": "2020-01-01", "to": "today" } }
エンティティパターン– デフォルトでは日付パターンユーザー発話「2019-02-03の予定を表示」 抽出された値値のプロンプトユーザー発話「明日の予定を表示」抽出された値 値のプロンプトユーザー発話「2019-02-03の予定を表示」抽出された値「2020-02-03」
referenceDate <date> 条件日を<date>に設定すると、現在の日付のエンティティ値を設定するための日付計算は、その日付に基づいて行われます。値には、YYYY-MM-DDの日付や、今日、明日、昨日といったキーワードを使用できます。
JSON

{ "referenceDate": "2020-07-09" }
エンティティパターン– デフォルトでは日付パターンユーザー発話「2日後の予定」抽出された値 「2020-07-11」は、基準日がなければ、現在の日付から2日後の日付になっていたでしょう
preferredDateFormat "yyyy-mm-dd" 日付が曖昧な場合は、優先する日付形式を使用して曖昧さを解消します。値は以下が可能:

  • "yyyy-mm-dd"
  • "yyyy-dd-mm"
  • "dd-mm-yyyy"
  • "mm-dd-yyyy"
JSON

{ "preferredDateFormat": "mm-dd-yyyy" }
ユーザー発話「03-04-2021」抽出された値「2021-03-04」 メモ:このルールは、ユーザーの発話に曖昧さがある場合にのみ登場します。ユーザーの好みが以前の会話の一部として既に設定されている場合、ユーザーが選択した形式が定義されたルールよりも優先されます。例として、先のユースケースでは、ユーザーが以前の会話で好みの形式として「dd-mm-yyy」を選択していた場合、日付は「2021-04-03」として扱われます。
returnOnlyMonthYear <true/false> trueに設定した場合、プラットフォームはユーザー入力から月と年だけをキャプチャして、それに合わせてコンテキストオブジェクトを更新します。たとえユーザーがすべて(2019年10月20日など)を入力したとしても、システムはその入力から2019年10月だけを受け取るだけです。記入されていない場合でも、ユーザーは日付の入力を指示されません。
JSON

{ "returnOnlyMonthYear": true }
ユーザー発話「03-04-2021」抽出された値 「04-2021」ユーザー発話「Apr 2021」抽出された値「04-2021」

日付の期間型のエンティティ

ruleName 説明
range { “from” : <from-date>, “to” : <to-date> } 指定した範囲の日付のみを抽出。どちらのエンドポイントもオプションです。値には、YYYY-MM-DDの日付や、今日、明日、昨日といったキーワードを使用できます。日付は包括的なものです。
JSON

{ "range": { "from": "2020-01-01", "to": "today" } }
エンティティパターン– デフォルトでは日付パターンユーザー発話「2019-02-03の予定を表示」抽出された値値のプロンプトユーザー発話「明日の予定を表示」抽出された値値のプロンプトユーザー発話「2020-02-03の予定を表示」抽出された値「2020-02-03」
referenceDate <date> 条件日を<date>に設定すると、現在の日付のエンティティ値を設定するための日付計算は、その日付に基づいて行われます。値には、YYYY-MM-DDの日付や、今日、明日、昨日といったキーワードを使用できます。
JSON

{ "referenceDate": "2020-07-09" }
エンティティパターン– デフォルトでは日付パターンユーザー発話「2日後の予定」抽出された値「2020-07-11」
tense past/future ユーザー発話に年が存在しない場合に、時制に基づいて日付の期間を調整。このルールがない場合、月/日が現在の日付から90日以内に収まる場合、年は現在の年として設定され、そうでない場合は前年に設定されます。このルールでは、年を強制的に現在または過去にすることができます。
JSON

{ "tense": "past" }
エンティティパターン– デフォルトでは日付パターンユーザー発話「1月の明細書を取得」抽出された値「2020-01-01」 現在の日付が 「2020-15-12」の場合、ルールがなければ 「2021-01-01」になっていたでしょう。  
preferredDateFormat "yyyy-mm-dd" 日付が曖昧な場合は、優先する日付形式を使用して曖昧さを解消します。値は以下が可能:

  • "yyyy-mm-dd"
  • "yyyy-dd-mm"
  • "ddmmyyyy"
  • "mmddyyyy"
JSON

{ "preferredDateFormat": "mm-dd-yyyy" }
ユーザー発話「03-04-2021」抽出された値 「2021-03-04」 メモ:このルールは、ユーザーの発話に曖昧さがある場合にのみ登場します。ユーザーの好みが以前の会話の一部として既に設定されている場合、ユーザーが選択した形式が定義されたルールよりも優先されます。例として、先のユースケースでは、ユーザーが以前の会話で好みの形式として「dd-mm-yyy」を選択していた場合、日付は「2021-04-03」として扱われます。

日付時間型のエンティティ

ruleName 説明
range { “from” : <from-datetime>, “to” : <to-datetime> } 指定した範囲の日付時間のみを抽出。どちらのエンドポイントもオプションです。値は、YYYY-MM-DDの日付、またはYYYY-MM-DDTHH:MM:SSの日付時間(指定がない場合はユーザーのタイムゾーンが想定されます)、またはキーワード(今日、明日、昨日、今)のいずれかです。日付は包括的なものです。
JSON

{ "range": { "from": "2020-01-01T00:00:00+05:30", "to": "2020-10-01T00:00:00+05:30" } }
エンティティパターン – デフォルトでは日付時間パターンユーザー発話「2019-02-03T10:00:00にアラームをセット」抽出された値値のプロンプトユーザー発話「2021-12-20T10:00:00の予定を表示」抽出された値値のプロンプトユーザー発話「2020-02-03 T10:00:00の予定を表示」抽出された値 「2020-02-03T10:00:00」
preferredTimes { “from” : <from-time>, “to” : <to-time> } 時間が曖昧な場合に、時間を解釈するのに使用する優先時間を設定。これらの時間は、すべての曜日に適用されます。例として、「3」は、優先時間が午前9時から午後6時の場合、「3pm」になります。時間が範囲内に収まらない場合は、最も近いものに基づいてam/pmを選択します。2つの可能性がある場合、または距離が等しい場合は、「日中/標準的に起きている状態」の時間を使用します。時刻は、ISO 8601形式のTHH:MMを使用してください。
{ “from” : [], “to” : [] } このオプションは、曜日ごとに異なる優先時間を設定するためのものです。「from」と「to 」のキーは、日曜日から土曜日までの各曜日の時間を表す7メンバーの配列にすることができます。それぞれの値は、Thh:MM形式か、設定がないことを示す空の文字列でなければなりません。
{ “favor” : <keyword> } 「favor」キーワードを使用して、「未来」、「過去」、「午前」、「午後」のいずれかで優先順位を設定することができます。
JSON

"preferredTimes": { "from": "T12:00:00", "to": "T18:00:00" }
エンティティパターン– デフォルトでは日付パターンユーザー発話「3時にリマインドしてください」抽出された値「T15:00:00」
JSON

"preferredTimes": { "from": [ "", "T09:00", "T09:00", "T21:00", "T21:00", "T07:00", "" ], "to": [ "", "T18:00", "T18:00", "T06:00", "T06:00", "T16:00", "" ] }
エンティティパターン– デフォルトは日付パターンユーザー発話 「3時にリマインドしてください」抽出された値 現在の日が月/火/金の場合は「15:00:00」、 現在の日が水/木の場合は 「T03:00:00」
JSON

"preferredTimes": { "favor": "pm" }
エンティティパターン– デフォルトでは日付パターンユーザー発話「3時にリマインドしてください」抽出された値 「T15:00:00」
timeRangePossible true/false trueの場合、ダイアログはユーザー入力において時間範囲を探します。「10から4」の解釈の方法に影響します。デフォルトでは「3:50」となりますが、範囲指定の可能性がある場合は、「10:00 」と「16:00」の2回に分けてデコードされます。
JSON

{ "timeRangePossible": "true" }
 
preferredDateFormat "yyyy-mm-dd" 日付が曖昧な場合は、優先する日付形式を使用して曖昧さを解消します。値は以下が可能:

  • "yyyy-mm-dd"
  • "yyyy-dd-mm"
  • "ddmmyyyy"
  • "mmddyyyy"
JSON

{ "preferredDateFormat": "mm-dd-yyyy" }
ユーザー発話「03-04-2021」抽出された値 「2021-03-04」 メモ:このルールは、ユーザーの発話に曖昧さがある場合にのみ登場します。ユーザーの好みが以前の会話の一部として既に設定されている場合、ユーザーが選択した形式が定義されたルールよりも優先されます。例として、先のユースケースでは、ユーザーが以前の会話で好みの形式として「dd-mm-yyy」を選択していた場合、日付は「2021-04-03」として扱われます。

時間型のエンティティ

ruleName 説明
preferredTimes { “from” : <from-time>, “to” : <to-time> } 時間が曖昧な場合に、時間を解釈するのに使用する優先時間を設定。これらの時間は、すべての曜日に適用されます。例として、「3」は、優先時間が午前9時から午後6時の場合、「3pm」になります。時間が範囲内に収まらない場合は、最も近いものに基づいてam/pmを選択します。2つの可能性がある場合、または距離が等しい場合は、「日中/標準的に起きている状態」の時間を使用します。時刻は、ISO 8601形式のTHH:MMを使用してください。
{ “from” : [], “to” : [] } このオプションは、曜日ごとに異なる優先時間を設定するためのものです。「from」と「to 」のキーは、日曜日から土曜日までの各曜日の時間を表す7メンバーの配列にすることができます。それぞれの値は、Thh:MM形式か、設定がないことを示す空の文字列でなければなりません。
{ “favor” : <keyword> } 「favor」キーワードを使用して、「未来」、「過去」、「午前」、「午後」のいずれかで優先順位を設定することができます。
JSON

"preferredTimes": { "from": "T12:00:00", "to": "T18:00:00" }
エンティティパターン– デフォルトでは日付パターンユーザー発話「3時にリマインドしてください」抽出された値「T15:00:00」
JSON

"preferredTimes": { "from": [ "", "T09:00", "T09:00", "T21:00", "T21:00", "T07:00", "" ], "to": [ "", "T18:00", "T18:00", "T06:00", "T06:00", "T16:00", "" ] }
エンティティパターン– デフォルトは日付パターンユーザー発話 「3時にリマインドしてください」抽出された値 現在の日が月/火/金の場合は「15:00:00」、 現在の日が水/木の場合は 「T03:00:00」
JSON

"preferredTimes": { "favor": "pm" }
エンティティパターン– デフォルトでは日付パターンユーザー発話「3時にリマインドしてください」抽出された値「T15:00:00」
timeRangePossible true/false trueの場合、ダイアログはユーザー入力において時間範囲を探します。
JSON { "timeRangePossible": "true" } 「10から4」のような発話の解釈の方法に影響します。デフォルトでは「3:50」となりますが、範囲指定の可能性がある場合は、「10:00 」と「16:00」の2回に分けてデコードされます。
range { “from” : now, } or { “to” : now } 指定した範囲の日付時間のみを抽出。どちらのエンドポイントもオプションです。現在は「now」という値だけに対応しています。
JSON

{ "range": { "from": now } }

アドレス型エンティティ

ruleName 説明
geocode true/false 完全にフォーマット化されたアドレスの場合。trueに設定すると、Googleなどのジオコードサービスを利用して、アドレスを個々のパーツに分割して表示します。
JSON

{ "geocode" : true }
抽出された値のJSONオブジェクト

{ "text" : "", "geocode" : [] }

「text」プロパティには、geocodeではないフォームを使用した場合のアドレスが含まれます。「geocode」プロパティには、サービス(デフォルトではGoogle)からの修正されていない結果が含まれています。結果の中から自分に合った好きな要素を抽出することができます。

都市型エンティティ

ruleName 説明
ignoreWords <concept name> 概念の中の言葉が、都市とみなされないために。概念名には、スペースで区切られた概念のリスト、または概念の配列を指定できます。
JSON

{ "ignoreWords": "Send" }
エンティティパターン– デフォルトでは大文字の単語 ユーザー発話「私のメールアドレスに目的地を送信してください」抽出された値エンティティ値のプロンプト、ルールがなければ都市名なので「送信」になっていたでしょう

郵便番号型エンティティ

ruleName 説明
preferredCountries [<“country1”>,<“country2”>,..] ユーザーの所在地の国と、入力から集めた国に加えて、与えられた好ましい国のセットから郵便番号を制限。<"country1">, <"country2">,…の代わりに、2文字の国別アルファ2コードを追加する必要があります。
JSON

{ "preferredCountries": [ "GB" ] }
エンティティパターン– デフォルトでは郵便番号パターン ユーザー発話PO16 7GZへの納品をチェック」抽出された値 「PO16 7GZ」、ルールがなければ、ユーザーが英国の地域にいない場合、これは除外されたかもしれません。

所在地型エンティティ

ruleName 説明
preferredCountries [<“country1”>,<“country2”>,..] ユーザーの所在地の国と、入力から集めた国に加えて、与えられた好ましい国のセットから所在地を制限。<"country1">, <"country2">,…の代わりに、2文字の国別アルファ2コードを追加する必要があります。
JSON

{ "preferredCountries": [ "GB" ] }

アイテムのリスト(enum)型エンティティ

ruleName 説明
所有権 含める/除外する 潜在的な選択肢をエンティティの値に含めるべきか、除外すべきかを判断するために、「is mine」などの潜在的な「所有権」の表現を探索。所有権を表すフレーズの例としては、「is mine」「belongs to me」などがあります。
JSON

{ "ownership": "include" }
入力オプション – アイテムを選択します。"pen", "watch", "bottle", "book", "cap」 ユーザー発話 "first two are mine」 抽出された値 ["pen", "watch"].
JSON

{ "ownership": "exclude" }
入力オプション – アイテムを選択します。"pen", "watch", "bottle", "book", "cap」 ユーザー発話 "first two are mine」 抽出された値 ["bottle", "book", "cap"], なぜなら、ルールが所有権の値を除外しているからです。
includeWords <概念名>または単語の配列 所有権のフレーズを補足する言葉のリスト。値は、文字列の配列または概念です。 所有権:除外ルールとともに使用
JSON

{ "ownership": "include", "includeWords": "great" }
入力オプション – アイテムを選択します。「pen」、「watch」、「bottle」、「book」、「cap」ユーザー発話「first two are mine」 抽出された値 [「pen」、「watch」] ユーザー発話 「first two are great」 抽出された値 [「pen」、「watch」]
excludeWords <概念名>または単語の配列 非所有者用のフレーズとして使用できる単語のリストです。値は、文字列の配列または概念です。所有権:除外ルールとともに使用
JSON

{ "ownership": "exclude",    "excludeWords": "~lovConcept" }
入力オプション – アイテムを選択します。「pen」、「watch」、「bottle」、「book」、「cap」lovConceptdubiousUser発話 「First two are dubious」抽出された値 [「bottle」、「book」、「cap」]
noIndexMatch true アルファベットと数字のインデックス一致を無効にすると、ユーザーがインデックスを使用して項目を選択できなくなります。
JSON

{ "noIndexMatch": "true" }
入力オプション – アイテムを選択します。「Pen」、「watch」、「bottle」、「book」、「cap」ユーザー発話ユーザー発話 抽出された値 入力のためのプロンプト、ルールがなければ[「pen」]になっていたでしょう。

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

Validating user input before processing these values goes a long way in improving the bot’s efficiency and user experience. While the entity type does impose some basic restrictions, these are not always sufficient and does not cater to the specific business requirements. Entity rules can be used for additional processing hints and validations.

Entity rules can be added from the Entity Rules section under Instance Properties of the corresponding entity. Add the rule in the JSON editor provided, see here for how.

These rules can also be set in the script for an entity, in such cases, the rule needs to be set before the entity prompt in the dialog flow. Add a script node at the beginning of the dialog or just before the concerned entity node with the following script:

context.entityRules.<entityName> = {
      "ruleName": "value"
   }

Subentity rules can be part of the composite entity rules:

context.entityRules.<compositeEntityName> = {
    <subentityName> : { 
      "ruleName": "value"
     }
   }

Below are the entity rules that can be entered in the JSON editor for the required entity or included as ruleName in the above script. We are continuously improving and updating this list. Any feedback or suggestions, kindly post in the community forum and our developers will accommodate it, if feasible.

Generic rules

ruleName Value Description
processLatestSentence true/false To restrict checking to the sentences only from the current volley.
Example

{
 "processLatestSentence": <true/false>
}
patternsOnly true/false To restrict matching to an entity pattern alone. By default, if the given entity patterns do not result in the extraction of entity value, the platform tries to find a value from user utterance. Setting this rule to true will disable that default processing.
Example

{
"patternsOnly": <true/false>
}
allowConfirmation true/false The extracted entity value is presented to the user after each input and the flow would continue only after confirmation from the user. Currently, this rule is applicable only for LoV enumerated entity types.
Example

{
"allowConfirmation": <true/false>
}
confirmYesSynonyms <concept names> Additional words/phrases to be used to confirm an entity value.
Used in conjunction with allowConfirmation rule mentioned above.
Example

{
"confirmYesSynonyms": ["~concept1", "~concept2"]
}

where concept1: ok;
concept2: affirmative

confirmNoSynonyms <concept names> Additional words/phrases to be used to cancel a confirmation entity. If selected/uttered, the entity value will be set to null
Used in conjunction with allowConfirmation rule mentioned above.
Example

{
"confirmNoSynonyms": ["~concept2", "~concept3"]
}

where concept1: nope;
concept2: wrong

String type entity

Description entity type

ruleName Value Description
stripLeading <concept name> To remove the words given in the concept from the start of the extracted string.

The concept can be a single concept name or a space-separated list of concepts or an array of concept names.

Example
JSON

{ "stripLeading": [ 
      "~stringConcept" 
    ]
}
stringConcept:  city

Entity Pattern: I like *

User UtteranceI like city New York
Extracted Value New York

stripTrailing <concept name> To remove words in a concept from the end of the extracted string.

The value can be a single concept name or a space-separated list of concepts or an array of concept names.

Example
JSON

{ "stripTrailing":
    "~stringConcept ~stringConcept1"
 }
stringConcept:  city; stringConcept1:  airport

Entity Pattern: I like *

User UtteranceI like New York city” or “I like New York airport
Extracted Value New York

avoidSingleWord <concept name> To ignore any value that is a member of the concept, unless it is the entire input.

The value can be a single concept name or a space-separated list of concepts or an array of concept names.

Example
JSON

{
  "avoidSingleWord": 
      "~stringConcept"
}
stringConcept:  chess, cricket

Entity Pattern: like to watch * tournament

User UtteranceI like to watch chess tournament
Extracted Value prompt for entity value

User Utterance I like to watch golf tournament
Extracted Value golf

User Utterancecricket
Extracted Value cricket, since it is the entire input

avoidSingleVerb true If set to true, then any value that is just a verb is ignored, unless it is the entire input.
Example
JSON

{
"avoidSingleVerb": true
}
Entity Pattern: I like * music

User UtteranceI like playing music
Extracted Value prompt for entity value

User UtteranceI like rap music
Extracted Value rap

User Utteranceplay
Extracted Value play, since it is the entire input

extractOnlyNumbers true if true, the entity will extract only numbers present in the string and set it as the entity value
Example
JSON

{
"extractOnlyNumbers": true
}

Number type entity

ruleName Value Description
asString true To capture a number as a string, preserving leading zeros
Example
JSON

{
  "asString": true
}
Entity Pattern – by default numeric entries

User Utterance “OTP is 009944
Extracted Value009944″
without the rule, it would have been “9944”

Currency type entity

ruleName Value Description
defaultCode <currency code>
or
<country code>
If no code is mentioned in user input, this value will be picked as code.
The value needs to be a 3 letter currency code or two-letter country alpha-2 codes.
Example
JSON

{
  "defaultCode": "NZD"
}
Entity Pattern pay *

User Utterance Pay 30
Extracted ValueNZD30

User Utterance Pay USD30
Extracted ValueUSD30

maxDigits <number> To restrict the amount length. If the amount length exceeds the value it will be discarded.
Example
JSON

{
  "maxDigits":[
    "3"
   ]
}
Entity Pattern pay *

User Utterance Pay USD30
Extracted ValueUSD30

User Utterance Pay USD3000
Extracted Value prompt for value

currencyCodes [<currency code>,<currency code>]
or
[<country code>,<country code>]
To restrict the currency codes. If the user entered code is not in the given list then the value will be discarded.
Example
JSON

{
  "currencyCodes": [
    "USD",
    "INR",
    "NZD"
  ]
}
Entity Pattern pay *

User Utterance Pay USD30
Extracted ValueUSD30

User Utterance Pay AUD30
Extracted Value prompt for a value

PersonName type entity

ruleName Value Description
disablePatterns An array of person name patterns to ignore – currently supporting only “possessive To disable patterns in extracting a person’s name when not applicable in specific scenarios.
Example
JSON

{
  "disablePatterns": [
    "possessive"
  ]
}
Entity Pattern – by default capitalized words

User Utterance “schedule Bob’s review at 9 am”
Extracted ValueBob

ignoreWords <concept name> Words in the concept are not to be considered as names even when capitalized.

The concept name could be a space-separated list of concepts or an array of concepts.

Example
JSON

{
  "ignoreWords": [
    "review",
    "~prepositionList"
  ]
}
Entity Pattern – by definition capitalized words

User Utterance “meeting for Bob Review”
Extracted ValueBob
would have been “Bob Review” without the rule

negativePatterns array of patterns Person names can be general capitalized words, or a name can be used in a sense where it is not meant to be taken as a person.
Example
JSON

{
  "negativePatterns": [
    "about *"
  ]
}
Entity Pattern – by definition capitalized words

User Utterance “schedule a meeting about Philip with Fred”
Extracted ValueFred
would have been “Philip” without the rule

Company type entity

ruleName Value Description
ignoreWords <concept name> Words in the concept are not to be considered as companies even when capitalized.

The concept name could be a space-separated list of concepts or an array of concepts.

Example
JSON

{
  "ignoreWords": [
    "atm"
  ]
}
Entity Pattern – by definition capitalized words

User Utterance “find ATM”
Extracted Value none
would have been “ATM” (an Italian company) without the rule

negativePatterns An array of company name patterns to ignore To disable patterns in extracting a company name when not applicable in specific scenarios.

Date type entity

ruleName Value Description
range { “from” : <from-date>, “to” : <to-date> } To extract dates only in the specified range. Either endpoint is optional.

Values can be a date, YYYY-MM-DD, or a keyword: today, tomorrow, yesterday. The dates are inclusive.

Example
JSON

{
"range": {
   "from": "2020-01-01",
   "to": "today"
  }
}
Entity Pattern – by default date patterns

User Utterance “show schedule for 2019-02-03”
Extracted Value prompt for a value

User Utterance “show schedule for tomorrow”
Extracted Value prompt for a value

User Utterance “show schedule  for 2020-02-03”
Extracted Value “2020-02-03”

referenceDate <date> Sets the reference date to <date> and any date calculation to set the current date entity value is based on that date.

Values should be a date, YYYY-MM-DD, or a keyword: today, tomorrow, yesterday.

Example
JSON

{
  "referenceDate": "2020-07-09"
}
Entity Pattern – by default date patterns

User Utterance “schedule after two days”
Extracted Value “2020-07-11”
would have been two days from the current date without the reference date

preferredDateFormat “yyyy-mm-dd” In case of ambiguity in date, it uses the preferred date format to resolve ambiguity.
Values can be:

  • “yyyy-mm-dd”
  • “yyyy-dd-mm”
  • “dd-mm-yyyy”
  • “mm-dd-yyyy”
Example
JSON

{
  "preferredDateFormat": "mm-dd-yyyy"
}
User Utterance “03-04-2021”
Extracted Value “2021-03-04”
NOTE: This rule comes into the picture only when there is an ambiguity in the user utterance. If the user’s preference is already set as part of a previous conversation, then the user selected format would take precedence over the defined rule
For example, a per the previous use case, if the user had selected the preferred format to be “dd-mm-yyy” previously in the conversation then the date would be taken as “2021-04-03”
returnOnlyMonthYear <true/false> When set to true, the platform would capture the month and year alone from the user input and update the context object accordingly. Even if the user gives a full input (like 20 Oct 2019), the system would only take Oct 2019 from that input. The user will not be prompted for the date if not provided
Example
JSON

{
  "returnOnlyMonthYear": true
}
User Utterance “03-04-2021”
Extracted Value “04-2021”User Utterance “Apr 2021”
Extracted Value “04-2021”

Date Period type entity

ruleName Value Description
range { “from” : <from-date>, “to” : <to-date> } To extract dates only in the specified range. Either endpoint is optional.

Values can be a date, YYYY-MM-DD, or a keyword: today, tomorrow, yesterday. The dates are inclusive.

Example
JSON

{
"range": {
   "from": "2020-01-01",
   "to": "today"
  }
}
Entity Pattern – by default date patterns

User Utterance “show schedule for 2019-02-03”
Extracted Value prompt for a value

User Utterance “show schedule for tomorrow”
Extracted Value prompt for a value

User Utterance “show schedule  for 2020-02-03”
Extracted Value “2020-02-03”

referenceDate <date> Sets the reference date to <date> and any date calculation to set the current date entity value is based on that date.

Values should be a date, YYYY-MM-DD, or a keyword: today, tomorrow, yesterday.

Example
JSON

{
  "referenceDate": "2020-07-09"
}
Entity Pattern – by default date patterns

User Utterance “schedule after two days”
Extracted Value “2020-07-11”

tense past/future To adjust the date period based on the tense when the year is not present in the user utterance.

Without this rule, the year is set as the current year if the month/day falls within 90 days from the current date else it would be set to the previous year. With this rule, you can force the year to current or past.

Example
JSON

{
 "tense": "past"
}
Entity Pattern – by default date patterns

User Utterance “get the statement for Jan”
Extracted Value “2020-01-01” if the current date is “2020-15-12”
without the rule, it would have been “2021-01-01”

 

preferredDateFormat “yyyy-mm-dd” In case of ambiguity in date, it uses the preferred date format to resolve ambiguity.
Values can be:

  • “yyyy-mm-dd”
  • “yyyy-dd-mm”
  • “ddmmyyyy”
  • “mmddyyyy”
Example
JSON

{
  "preferredDateFormat": "mm-dd-yyyy"
}
User Utterance “03-04-2021”
Extracted Value “2021-03-04”
NOTE: This rule comes into the picture only when there is an ambiguity in the user utterance. If the user’s preference is already set as part of a previous conversation, then the user selected format would take precedence over the defined rule
For example, a per the previous use case, if the user had selected the preferred format to be “dd-mm-yyy” previously in the conversation then the date would be taken as “2021-04-03”

DateTime type entity

ruleName Value Description
range { “from” : <from-datetime>, “to” : <to-datetime> } To extract date-times only in the specified range. Either endpoint is optional.

Values can be a date, YYYY-MM-DD, or a DateTime, YYYY-MM-DDTHH:MM:SS (user’s timezone is assumed if none specified) or a keyword: today, tomorrow, yesterday, now. The dates are inclusive.

Example
JSON

{
  "range": {
    "from": "2020-01-01T00:00:00+05:30",
    "to": "2020-10-01T00:00:00+05:30"
  }
}
Entity Pattern – by default date time patterns

User Utterance “set alarm for 2019-02-03T10:00:00”
Extracted Value prompt for a value

User Utterance “show schedule for 2021-12-20T10:00:00”
Extracted Value prompt for a value

User Utterance “show schedule  for 2020-02-03 T10:00:00”
Extracted Value “2020-02-03T10:00:00”

preferredTimes { “from” : <from-time>,
“to” : <to-time> }
To set the preferred time which can be used to interpret times when they are ambiguous. These times would be applicable to all days of the week.

For example, “3” will become “3 pm” if the preferredTimes are 9 am to 6 pm.

If the time cannot be placed inside the range then it will pick am/pm based on which is closest. If there are two possibilities or equal distance then the “daylight/standard awake” hours will be used. The times should be ISO 8601 format, THH:MM

{ “from” : [],
“to” : [] }
This option is for setting preferred times different for different days of the week. The “from” and “to” keys can be arrays with 7 members representing the time for each day, from Sunday to Saturday. Each value should be in the in Thh:MM format or an empty string to indicate there is no preference.
{ “favor” : <keyword> } The “favor” keyword can be used to set the preference in terms of “future”, “past”, “am”, or “pm”.
Example
JSON

 "preferredTimes": {
    "from": "T12:00:00",
    "to": "T18:00:00"
  }
Entity Pattern – by default date patterns

User Utterance “remind me at 3”
Extracted Value “T15:00:00”

JSON

 "preferredTimes": {
    "from": [
      "", "T09:00", 
      "T09:00", "T21:00", 
      "T21:00", "T07:00", ""
    ],
    "to": [
      "", "T18:00",
      "T18:00", "T06:00", 
      "T06:00", "T16:00", ""
    ]
  }
Entity Pattern – by default date patterns

User Utterance “remind me at 3”
Extracted Value “T15:00:00”, if the current day is Monday/Tuesday/Friday;
“T03:00:00”, if the current day is Wednesday/Thursday

JSON

 "preferredTimes": {
    "favor": "pm"
  }
Entity Pattern – by default date patterns

User Utterance “remind me at 3”
Extracted Value “T15:00:00”

timeRangePossible true/false If true then the dialog will be looking for time range in the user input.

Influences how “10 to 4” is interpreted. By default, this will be “3:50” but if there is the possibility of a range then will be decoded as 2 times “10:00” and “16:00”

Example
JSON

{
"timeRangePossible": "true"
}
 

 

preferredDateFormat “yyyy-mm-dd” In case of ambiguity in date, it uses the preferred date format to resolve ambiguity.
Values can be:

  • “yyyy-mm-dd”
  • “yyyy-dd-mm”
  • “ddmmyyyy”
  • “mmddyyyy”
Example
JSON

{
  "preferredDateFormat": "mm-dd-yyyy"
}
User Utterance “03-04-2021”
Extracted Value “2021-03-04”
NOTE: This rule comes into the picture only when there is an ambiguity in the user utterance. If the user’s preference is already set as part of a previous conversation, then the user selected format would take precedence over the defined rule
For example, a per the previous use case, if the user had selected the preferred format to be “dd-mm-yyy” previously in the conversation then the date would be taken as “2021-04-03”

Time type entity

ruleName Value Description
preferredTimes { “from” : <from-time>,
“to” : <to-time> }
To set the preferred time which can be used to interpret times when they are ambiguous. These times would be applicable to all days of the week.

For example, “3” will become “3 pm” if the preferredTimes are 9 am to 6 pm.

If the time cannot be placed inside the range then it will pick am/pm based on which is closest. If there are two possibilities or equal distance then the “daylight/standard awake” hours will be used. The times should be ISO 8601 format, THH:MM

{ “from” : [],
“to” : [] }
This option is for setting preferred times different for different days of the week. The “from” and “to” keys can be arrays with 7 members representing the time for each day, from Sunday to Saturday. Each value should be in the in Thh:MM format or an empty string to indicate there is no preference.
{ “favor” : <keyword> } The “favor” keyword can be used to set the preference in terms of “future”, “past”, “am”, or “pm”.
Example
JSON

 "preferredTimes": {
    "from": "T12:00:00",
    "to": "T18:00:00"
  }
Entity Pattern – by default date patterns

User Utterance “remind me at 3”
Extracted Value “T15:00:00”

JSON

 "preferredTimes": {
    "from": [
      "", "T09:00", 
      "T09:00", "T21:00", 
      "T21:00", "T07:00", ""
    ],
    "to": [
      "", "T18:00",
      "T18:00", "T06:00", 
      "T06:00", "T16:00", ""
    ]
  }
Entity Pattern – by default date patterns

User Utterance “remind me at 3”
Extracted Value “T15:00:00”, if the current day is Monday/Tuesday/Friday;
“T03:00:00”, if the current day is Wednesday/Thursday

JSON

 "preferredTimes": {
    "favor": "pm"
  }
Entity Pattern – by default date patterns

User Utterance “remind me at 3”
Extracted Value “T15:00:00”

timeRangePossible true/false If true then the dialog will be looking for time range in the user input.
Example
JSON

{
“timeRangePossible”: “true”
}

Influences how utterances like “10 to 4” is interpreted. By default, this will be “3:50” but if there is the possibility of a range then will be decoded as 2 separate time values “10:00” and “16:00”
range { “from” : now,
}
or
{ “to” : now
}
To extract date-times only in the specified range. Either endpoint is optional.

Currently, support is extended to the value “now” alone

Example
JSON

{
  "range": {
    "from": now
  }
}

Address type entity

ruleName Value Description
geocode true/false For a fully formatted address.

When set to true, the address will be split into individual parts using a geocode service (like Google).

Example
JSON

{
  "geocode" : true
}
Extracted Value JSON object

{
  "text" : "",
  "geocode" : []
}

The “text” property contains the address if the non-geocode form had been used.
The “geocode” property contains the unmodified results from the service (Google by default). You can extract whichever elements you want from the results that suit your needs.

City type entity

ruleName Value Description
ignoreWords <concept name> For the words in the concept not to be considered as cities.

The concept name could be a space-separated list of concepts or an array of concepts or space-separated strings.

Example
JSON

{
  "ignoreWords": "Send"
}
Entity Pattern – by default capitalized words

User Utterance “Send destination to my email”
Extracted Value prompt for entity value, without the rule it would have been “Send” since it is a city name

Zip Code type entity

ruleName Value Description
preferredCountries [<“country1”>,<“country2”>,..] To restrict zip code from the given set of preferred countries along with the user location country and the gleaned countries from the input.

Need to add two-letter country alpha-2 codes in place of
<“country1”>,<“country2”>,…

Example
JSON

{
  "preferredCountries": [
    "GB"
  ]
}
Entity Pattern – by default zip code patterns

User Utterance “check delivery to PO16 7GZ
Extracted ValuePO16 7GZ“, without the rule this might have been ignored if the user is not in the UK region

Location type entity

ruleName Value Description
preferredCountries [<“country1”>,<“country2”>,..] To restrict location from the given set of preferred countries along with the user location country and the gleaned countries from the input.

Need to add two-letter country alpha-2 codes in place of
<“country1”>,<“country2”>,…

Example
JSON

{
  "preferredCountries": [
    "GB"
  ]
}

List of Items (enum) type entity

ruleName Value Description
ownership include/
exclude
To look for potential “ownership” phrasing, e.g. “is mine” to determine if a potential choice should be included or excluded from the entity value.
Examples of ownership phrases are “is mine”, “belongs to me”, etc.
Example
JSON

{
  "ownership": "include"
}
Input Options – Pick your item: “pen”, “watch”, “bottle”, “book”, “cap”

User Utterance “first two are mine”
Extracted Value [“pen”, “watch”]

JSON

{
  "ownership": "exclude"
}
Input Options – Pick your item: “pen”, “watch”, “bottle”, “book”, “cap”

User Utterance “first two are mine”
Extracted Value [“bottle”, “book”, “cap”], since the rule is to exclude the ownership values.

includeWords <concept name> or array of words The list of words that supplement to the ownership phrases.
The value can be an array of strings or a concept.To be used along with ownership: include rule
Example
JSON

{
  "ownership": "include",
  "includeWords": "great"
}
Input Options – Pick your item: “pen”, “watch”, “bottle”, “book”, “cap”

User Utterance “first two are mine”
Extracted Value [“pen”, “watch”]

User Utterance “first two are great”
Extracted Value [“pen”, “watch”]

excludeWords <concept name> or array of words The list of words that can be used as non-ownership phrases.
The value can be an array of strings or a concept. To be used along with ownership: exclude rule
Example
JSON

{
  "ownership": "exclude",
   "excludeWords": "~lovConcept"
}
Input Options – Pick your item: “pen”, “watch”, “bottle”, “book”, “cap”
lovConcept – dubiousUser Utterance “first two are dubious”
Extracted Value [“bottle”, “book”, “cap”]
noIndexMatch true To disable the alphabet and number Index match, would not allow the user to select the items using an index.
Example
JSON

{
  "noIndexMatch": "true"
}
Input Options – Pick your item: “pen”, “watch”, “bottle”, “book”, “cap”

User Utterance a
Extracted Value prompt for input, without the rule it would have been [“pen”]

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed