유형

유형을 사용하면 사용자 입력에서 구조화된 데이터를 추출하도록 어시스턴트 NLU (자연어 이해) 엔진을 구성할 수 있습니다. 다음과 같은 상황에서 유형을 사용할 수 있습니다.

  • 인텐트에서는 유형을 사용하여 학습 문구를 주석 처리하여 슬롯을 만들 수 있습니다. 사용자가 슬롯과 일치하는 무언가를 말하면 NLU 엔진은 이를 입력된 매개변수로 추출하므로 장면에서 처리할 수 있습니다.

  • 장면의 슬롯 채우기 단계 내에서 사용자가 장면을 전환하거나 장면에서 나가기 전에 제공하기를 원하는 슬롯을 여러 개 지정할 수 있습니다.

  • 장면의 conditions 단계 내에서 매개변수에 유형에 정의된 특정 값이 있는지에 따라 로직을 작성할 수 있습니다.

커스텀 유형

커스텀 유형을 사용하면 일련의 값을 단일 키에 할당하도록 NLU에 알리는 자체 유형 사양을 만들 수 있습니다. 다음과 같은 다양한 방법으로 유형을 지정할 수 있습니다.

  • 단어 및 동의어를 사용하면 여러 값을 단일 키에 매핑할 수 있으며 이를 항목이라고 합니다. 유형에는 하나 이상의 항목이 포함될 수 있습니다. 이 옵션을 선택하면 다음 NLU 설정을 사용 설정할 수도 있습니다.
    • 퍼지 일치 사용 설정 - 이 기능을 사용하면 단어가 다른 순서로 말하는 경우에도 두 개 이상의 단어가 있는 항목을 일치시킬 수 있습니다.
    • 알 수 없는 값 허용 - 가능한 모든 값을 지정할 수 없는 경우 언어 프로세서가 주변 입력 및 인텐트 학습 데이터를 기반으로 알 수 없는 단어나 문구를 허용할 수 있습니다(예: 식료품 목록에 추가될 수 있는 항목).
  • 정규 표현식을 사용하면 Google의 RE2 표준을 기반으로 하는 정규 표현식 패턴을 사용하여 유형을 일치시킬 수 있습니다.
  • 자유 형식 텍스트를 사용하면 사용자가 지정하는 모든 내용과 유형을 일치시킬 수 있습니다. 이 유형으로 인텐트에 주석을 달면 모든 입력을 자체 NLU로 파이핑할 수 있는 매개변수로 사용할 수 있습니다.

시스템 유형

시스템 유형을 사용하면 시스템 제공 학습 데이터와 값을 사용하여 사용자 입력에서 잘 알려진 데이터에 주석을 달고 추출할 수 있습니다. 지원되는 시스템 유형은 다음과 같습니다.

유형 설명
actions.type.DateTime 사용자의 기기 설정에 따른 날짜, 시간, 시간대가 포함됩니다. 슬롯 채우기 및 학습 문구 주석에 사용할 수 있습니다.
actions.type.Date 날짜만 포함합니다. 슬롯 채우기에만 사용할 수 있습니다.
actions.type.Time 시간만 포함합니다. 슬롯 채우기에만 사용할 수 있습니다.
actions.type.Number Number 유형은 서수 및 기수와 일치합니다.

DateTime, Date, Time 사용량

이러한 유형은 유형을 사용하는 위치 및 유형과 일치하는 사용자 입력에 따라 다르게 동작합니다.

인텐트와 함께 사용

인텐트에서 학습 문구를 주석 처리하는 기능은 DateTime 유형만 지원합니다. 사용자 입력이 전체 DateTime 값과 일치하지 않아도 됩니다. 예를 들어 사용자가 연도만 제공하는 경우 세션 매개변수는 다음과 같을 수 있습니다.

"date_time": {
  "year": 2019
}

슬롯 채우기와 함께 사용

슬롯 채우기는 DateTime, DateTime를 지원합니다.

  • 슬롯 유형이 DateTime이면 어시스턴트가 전체 값이 제공될 때까지 사용자에게 메시지를 표시합니다.
  • 슬롯 유형이 Date이면 어시스턴트가 날짜 값이 제공될 때까지 사용자에게 메시지를 표시합니다. 수집될 때 수신하는 매개변수는 시간이 00:00으로 설정된 전체 DateTime입니다.
  • 슬롯 유형이 Time이면 어시스턴트가 시간 값이 제공될 때까지 사용자에게 메시지를 표시합니다. 수집될 때 수신하는 매개변수는 날짜가 현재 날짜로 설정된 전체 DateTime 객체입니다.

예를 들어 로스앤젤레스의 사용자가 "Hey Google, 2024년 1월 15일 오후 8시 리마인더 만들어 줘"라고 했다고 가정해 보겠습니다. DateTime가 슬롯 채우기 프로세스의 일부로 추출되면 전체 매개변수는 다음과 같을 수 있습니다.

"date_time": {
  "day": 15,
  "hours": 20,
  "minutes": 0,
  "month": 1,
  "nanos": 0,
  "seconds": 0,
  "time_zone": {
    "id": "America/Los_Angeles"
  },
  "year": 2024
}

조건과 함께 사용

조건은 숫자와 문자열만 사용하도록 허용하므로 최상위 DateTime 매개변수를 사용하면 조건에 False 결과가 발생합니다. 예:

  • day 값은 숫자이며 지원되므로 $session.params.my_dateTime.day > 5는 유효한 조건입니다.
  • 최상위 'DateTime' 객체가 숫자 또는 문자열이 아니므로 $session.params.my_dateTime > "01-01-2010"은 잘못된 조건입니다.

런타임 유형 재정의

런타임 유형 재정의를 사용하면 처리에서 유형을 동적으로 만들거나 수정할 수 있습니다. 이 기능을 사용하면 런타임에 유형 사양을 추가하거나 대체할 수 있습니다. 예를 들어 백엔드 데이터 소스를 확인하여 일일 메뉴 항목을 처리의 유형으로 로드할 수 있습니다.

빌드 유형 재정의 방법에 관한 자세한 내용은 웹훅 가이드를 참고하세요.