런타임 힌트를 통한 슬롯 값 인식 개선 - Amazon Lex

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

런타임 힌트를 통한 슬롯 값 인식 개선

런타임 힌트를 사용하면 Amazon Lex V2에 상황에 따른 슬롯 값 세트를 제공하여 음성 대화에서 더 잘 인식되고 슬롯 해상도를 개선할 수 있습니다. 런타임 힌트를 사용하여 런타임에 슬롯 값 확인에 적합한 구문 목록을 제공할 수 있습니다.

예를 들어 항공편 예약 봇과 상호 작용하는 사용자가 샌프란시스코, 자카르타, 서울, 모스크바로 자주 여행하는 경우 목적지로 유도할 때 이 네 도시 목록을 포함한 런타임 힌트를 구성하여 자주 여행하는 도시에 대한 인지를 높일 수 있습니다.

런타임 힌트는 영어(미국) 및 영어(영국) 언어로만 제공됩니다. 다음 슬롯 유형과 함께 사용할 수 있습니다.

  • 사용자 지정 슬롯 유형

  • AMAZON.City

  • AMAZON.Country

  • AMAZON.FirstName

  • AMAZON.LastName

  • AMAZON.State

  • AMAZON.StreetName

런타임 힌트 기본 사항

  • 런타임 힌트는 사용자로부터 슬롯 값을 유도할 때만 사용됩니다.

  • 런타임 힌트를 사용하는 경우 힌트의 값이 비슷한 값보다 우선합니다. 예를 들어 음식 주문 봇의 경우 메뉴 항목 목록을 런타임 힌트로 설정하면서 사용자 지정 슬롯에 있는 음식 항목에는 비슷하게 들리는 ‘fella’보다 ‘fillet’을 선호하도록 유도할 수 있습니다.

  • 사용자 입력이 런타임 힌트에 제공된 값과 다른 경우 원래 사용자 입력이 슬롯에 사용됩니다.

  • 사용자 지정 슬롯 유형의 경우, 런타임 힌트로 제공된 값은 봇 생성 시 사용자 지정 슬롯의 일부가 아니더라도 슬롯 확인에 사용됩니다.

  • 런타임 힌트는 8kHz 오디오 입력에만 지원됩니다. Amazon Lex V2에서 지원하는 고객 센터 통합을 통해 사용할 수 있습니다. Amazon Lex V2 콘솔의 테스트 창에서 입력되는 오디오에는 16kHz 오디오 입력을 사용하므로 런타임 힌트가 제공되지 않습니다.

참고

기존 봇에서 런타임 힌트를 사용하려면 먼저 봇을 다시 빌드해야 합니다. 기존 버전의 봇은 런타임 힌트를 지원하지 않습니다. 봇을 사용하려면 봇의 새 버전을 만들어야 합니다.

PutSession, RecognizeText, RecognizeUtterance 또는 StartConversation 작업을 사용하여 Amazon Lex V2에 런타임 힌트를 보낼 수 있습니다. Lambda 함수를 사용하여 런타임 힌트를 추가할 수도 있습니다.

대화를 시작할 때 런타임 힌트를 전송하여 봇에서 사용되는 각 슬롯에 대한 힌트를 구성하거나 대화 중에 세션 상태의 일부로 힌트를 보낼 수 있습니다. runtimeHints 속성은 슬롯을 해당 슬롯의 힌트에 매핑합니다.

Amazon Lex V2에 런타임 힌트를 보내면 세션이 종료될 때까지 대화가 계속 진행됩니다. null runtimeHints 구조를 보내면 기존 힌트가 사용됩니다. 다음을 통해 힌트를 수정할 수 있습니다.

  • 봇에 새 runtimeHints 구조를 전송합니다. 새 구조의 내용이 기존 구조를 대체합니다.

  • 봇에 빈 runtimeHints 구조를 전송합니다. 봇의 런타임 힌트가 지워집니다.

상황에 맞는 슬롯 값 추가

애플리케이션에 사용자의 다음 발화 가능성에 대한 정보가 있을 때 예상 슬롯 값을 런타임 힌트로 제공하여 봇에 대한 컨텍스트를 추가하세요. Lambda 대화 코드 후크를 봇에 추가하고(자세한 내용은 AWS Lambda 함수를 사용하여 사용자 지정 로직 활성화 참조) 입력 이벤트 형식 해석proposedNextState 필드를 사용하여 사용자와의 대화를 개선하기 위해 포함해야 하는 런타임 힌트를 결정합니다.

예를 들어, 뱅킹 앱에서 특정 사용자의 계좌 별명 목록을 생성한 다음 사용자가 액세스하려는 계좌를 유도할 때 이 목록을 사용할 수 있습니다.

봇이 사용자 입력을 해석하는 데 도움이 되는 컨텍스트가 있으면 대화를 시작할 때 런타임 힌트를 보냅니다. 예를 들어 사용자의 전화번호를 알고 있는 경우 이 정보를 사용하여 사용자를 조회할 수 있습니다. 그러면 보안 인증 정보를 검증하기 위해 사용자 이름을 요청하려는 경우 PutSession 또는 StartConversation 작업을 사용하여 봇에 이름과 성 힌트를 전달할 수 있습니다.

대화 중에 한 슬롯 값에서 다른 슬롯 값에 도움이 될 수 있는 정보를 수집할 수 있습니다. 예를 들어 자동차 관리 앱에서 사용자 계정 번호가 있으면 검색을 통해 고객이 소유한 자동차를 찾아 힌트로 다른 슬롯에 전달할 수 있습니다.

두문자어 또는 문자를 개별적으로 발음해야 하는 기타 단어는 마침표와 띄어쓰기로 구분된 단일 문자로 입력합니다. ‘J. P. Morgan’ 또는 ‘A.W.S’와 같이 문구의 일부가 아닌 한 개별 문자는 사용하지 마십시오. 대문자 또는 소문자를 사용해 두문자어를 정의할 수 있습니다.

슬롯에 힌트 추가

슬롯에 런타임 힌트를 추가하려면 sessionState 구조의 일부인 runtimeHints 구조를 사용하세요. 다음은 runtimeHints 구조의 예입니다. “MakeAmprime” 의도를 위한 “FirstName”과 “LastName”이라는 두 개의 슬롯에 대한 힌트를 제공합니다.

{ "sessionState": { "intent": {}, "activeContexts": [], "dialogAction": {}, "originatingRequestId": {}, "sessionAttributes": {}, "runtimeHints": { "slotHints": { "MakeAppointment": { "FirstName": { "runtimeHintValues": [ { "phrase": "John" }, { "phrase": "Mary" } ] }, "LastName": { "runtimeHintValues": [ { "phrase": "Stiles" }, { "phrase": "Major" } ] } } } } } }

Lambda 함수를 사용하여 대화 중에 런타임 힌트를 추가할 수도 있습니다. 런타임 힌트를 추가하려면 Lambda 함수가 Amazon Lex V2로 보내는 응답의 세션 상태에 runtimeHints 구조를 추가합니다. 자세한 내용은 응답 형식 준비 섹션을 참조하세요.

slotName요청에서 유효한 intentName 및 을 지정해야 합니다. 그렇지 않으면 Amazon Lex V2에서 런타임 오류를 반환합니다.