봇에 대한 스트림 시작 - Amazon Lex

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

봇에 대한 스트림 시작

StartConversation애플리케이션에서 사용자와 Amazon Lex V2 봇 간의 스트림을 시작하는 작업입니다. 이POST애플리케이션의 요청은 애플리케이션과 Amazon Lex V2 봇 간의 연결을 설정합니다. 이를 통해 애플리케이션과 봇이 이벤트를 통해 서로 정보를 교환할 수 있습니다.

StartConversation작업은 다음 SDK에서만 지원됩니다.

애플리케이션이 Amazon Lex V2 봇에 전송해야 하는 첫 번째 이벤트는ConfigurationEvent. 이 이벤트에는 응답 유형 형식과 같은 정보가 포함됩니다. 다음은 구성 이벤트에서 사용할 수 있는 매개 변수입니다.

  • 응답자 유형— 봇이 텍스트 또는 음성으로 사용자 입력에 응답하는지 여부를 결정합니다.

  • 세션스테이트— 미리 결정된 의도 또는 대화 상태 등 봇과의 스트리밍 세션과 관련된 정보입니다.

  • 웰컴세션— 봇과의 대화 시작 시 사용자에게 재생되는 환영 메시지를 지정합니다. 이러한 메시지는 사용자가 입력을 제공하기 전에 재생됩니다. 시작 메시지를 활성화하려면 의 값도 지정해야 합니다.sessionStatedialogAction매개 변수.

  • 사용 안 함 재생— 봇이 발신자 입력 수신을 시작하기 전에 클라이언트의 큐를 기다려야 하는지 여부를 결정합니다. 기본적으로 재생이 활성화되므로 이 필드의 값은false.

  • requestAttributes— 요청에 대한 추가 정보를 제공합니다.

이전 파라미터의 값을 지정하는 방법에 대한 자세한 내용은 단원을 참조하십시오.ConfigurationEvent data type of the StartConversation작업.

봇과 애플리케이션 간의 각 스트림에는 구성 이벤트가 하나만 있을 수 있습니다. 애플리케이션에서 구성 이벤트를 전송한 후 봇은 애플리케이션에서 추가 통신을 수행할 수 있습니다.

사용자가 오디오를 사용하여 Amazon Lex V2 봇과 통신하도록 지정한 경우 애플리케이션은 해당 대화 중에 봇에게 다음 이벤트를 보낼 수 있습니다.

  • AudioInputEvent— 최대 크기가 320바이트의 오디오 청크를 포함합니다. 애플리케이션은 서버에서 봇으로 메시지를 보내려면 여러 오디오 입력 이벤트를 사용해야 합니다. 스트림의 모든 오디오 입력 이벤트는 동일한 오디오 형식을 가져야 합니다.

  • DTMFInputEvent— DTMF 입력을 봇에 보냅니다. 각 DTMF 키 누름은 단일 이벤트에 해당합니다.

  • PlaybackCompletionEvent— 사용자 입력의 응답이 다시 재생되었음을 서버에 알립니다. 사용자에게 오디오 응답을 보내는 경우 재생 완료 이벤트를 사용해야 합니다. 다음의 경우,disablePlayback구성 이벤트의true에서는 이 기능을 사용할 수 없습니다.

  • DisconnectionEvent— 사용자가 대화에서 연결 해제되었음을 봇에게 알립니다.

사용자가 텍스트를 사용하여 봇과 통신하도록 지정한 경우 애플리케이션은 해당 대화 중에 봇에게 다음 이벤트를 보낼 수 있습니다.

  • TextInputEvent— 애플리케이션에서 봇으로 전송되는 텍스트입니다. 텍스트 입력 이벤트에서 최대 512자를 가질 수 있습니다.

  • PlaybackCompletionEvent— 사용자 입력의 응답이 다시 재생되었음을 서버에 알립니다. 사용자에게 오디오를 다시 재생하는 경우 이 이벤트를 사용해야 합니다. 다음의 경우,disablePlayback구성 이벤트의true에서는 이 기능을 사용할 수 없습니다.

  • DisconnectionEvent— 사용자가 대화에서 연결 해제되었음을 봇에게 알립니다.

Amazon Lex V2 봇에 보내는 모든 이벤트를 올바른 형식으로 인코딩해야 합니다. 자세한 정보는 이벤트 스트림을 참조하십시오.

모든 이벤트에는 이벤트 ID가 있습니다. 스트림에서 발생할 수 있는 문제를 해결하는 데 도움이 되도록 각 입력 이벤트에 고유한 이벤트 ID를 할당하십시오. 그런 다음 봇을 사용하여 처리 실패를 해결할 수 있습니다.

또한 Amazon Lex V2는 각 이벤트에 타임스탬프를 사용합니다. 이벤트 ID 외에 이러한 타임스탬프를 사용하여 네트워크 전송 문제를 해결할 수 있습니다.

사용자와 Amazon Lex V2 봇 간의 대화 중에 봇은 사용자에게 응답하여 다음과 같은 아웃바운드 이벤트를 보낼 수 있습니다.

  • IntentResultEvent— Amazon Lex V2가 사용자 발언에서 결정한 인텐트를 포함합니다. 각 내부 결과 이벤트에는 다음이 포함됩니다.

    • InputMode— 사용자 발언 유형입니다. 유효한 값은 Speech, DTMF 또는 Text입니다.

    • 해석— Amazon Lex V2가 사용자 발언에서 결정하는 해석입니다.

    • 요청 속성— lambda 함수를 사용하여 요청 속성을 수정하지 않은 경우 대화 시작 시 전달된 속성과 동일합니다.

    • SessionId— 대화에 사용되는 세션 식별자입니다.

    • 세션스테이트— Amazon Lex V2와의 사용자 세션 상태입니다.

  • TranscriptEvent— 사용자가 애플리케이션에 입력을 제공하는 경우 이 이벤트에는 봇에 대한 사용자 발언의 기록이 포함됩니다. 응용 프로그램이 수신되지 않습니다.TranscriptEvent사용자 입력이 없는 경우

    응용 프로그램으로 전송되는 성적 기록 이벤트의 값은 음성 (음성 및 DMTF) 또는 텍스트를 대화 모드로 지정했는지 여부에 따라 다릅니다.

    • 음성 입력 기록 — 사용자가 봇과 대화하는 경우 성적 기록 이벤트는 사용자 오디오의 전사입니다. 사용자가 말하기 시작한 시점부터 말하기를 끝내는 시간까지 모든 연설의 성적표입니다.

    • DTMF 입력 기록 — 사용자가 키패드에 입력하는 경우 성적 기록 이벤트에는 사용자가 입력에서 누른 모든 숫자가 포함됩니다.

    • 텍스트 입력 기록 — 사용자가 텍스트 입력을 제공하는 경우 성적 기록 이벤트에는 사용자 입력에 있는 모든 텍스트가 포함됩니다.

  • TextResponseEvent— 봇 응답을 텍스트 형식으로 포함합니다. 텍스트 응답은 기본적으로 반환됩니다. 오디오 응답을 반환하도록 Amazon Lex V2를 구성한 경우 이 텍스트는 오디오 응답을 생성하는 데 사용됩니다. 각 텍스트 응답 이벤트에는 봇이 사용자에게 반환하는 메시지 객체 배열이 포함됩니다.

  • AudioResponseEvent— 에서 생성된 텍스트에서 합성된 오디오 응답을 포함합니다.TextResponseEvent. 오디오 응답 이벤트를 수신하려면 오디오 응답을 제공하도록 Amazon Lex V2를 구성해야 합니다. 모든 오디오 응답 이벤트는 동일한 오디오 형식을 갖습니다. 각 이벤트에는 100바이트를 넘지 않는 오디오 청크가 포함되어 있습니다. Amazon Lex V2가 빈 오디오 청크를bytes필드 설정null응용 프로그램에 대한 오디오 응답 이벤트의 끝을 나타냅니다.

  • PlaybackInterruptionEvent— 사용자가 봇이 애플리케이션에 보낸 응답을 중단하면 Amazon Lex V2가 이 이벤트를 트리거하여 응답 재생을 중지합니다.

  • HeartbeatEvent— Amazon Lex V2에서는 애플리케이션과 봇 간의 연결이 시간 초과되지 않도록 주기적으로 이 이벤트를 다시 보냅니다.

오디오 대화의 이벤트 시간 순서

다음 다이어그램은 사용자와 Amazon Lex V2 봇 간의 스트리밍 오디오 대화를 보여줍니다. 애플리케이션은 계속해서 오디오를 봇에 스트리밍하고 봇은 오디오에서 사용자 입력을 찾습니다. 이 예에서는 사용자와 봇 모두 음성을 사용하여 통신합니다. 각 다이어그램은 사용자 발언 및 해당 발언에 대한 봇의 응답에 해당합니다.

다음 다이어그램은 애플리케이션과 봇 간의 대화의 시작을 보여줍니다. 스트림은 시간 0 (t0) 에서 시작됩니다.

다음 목록에서는 이전 다이어그램의 이벤트를 설명합니다.

  • t0: 애플리케이션은 구성 이벤트를 봇에 전송하여 스트림을 시작합니다.

  • T1 애플리케이션이 오디오 데이터를 스트리밍합니다. 이 데이터는 응용 프로그램의 일련의 입력 이벤트로 나뉩니다.

  • T2 용1사용자가 말하기 시작할 때 봇이 오디오 입력 이벤트를 감지합니다.

  • T2 사용자가 말하는 동안 봇은 연결을 유지하기 위해 하트비트 이벤트를 보냅니다. 이러한 이벤트를 간헐적으로 전송하여 연결 시간 초과가 발생하지 않도록 합니다.

  • T3 봇은 사용자의 발언의 끝을 감지합니다.

  • T4 봇은 사용자의 음성 기록이 포함된 성적 기록 이벤트를 애플리케이션에 다시 보냅니다. 이것이 시작입니다.사용자 발언에 대한 봇 응답 1.

  • T5 봇은 의도 결과 이벤트를 전송하여 사용자가 수행하고자 하는 작업을 나타냅니다.

  • T6 봇은 텍스트 응답 이벤트에서 응답을 텍스트로 제공하기 시작합니다.

  • T7 봇은 사용자에게 재생하기 위해 일련의 오디오 응답 이벤트를 애플리케이션에 보냅니다.

  • T8 봇은 연결을 간헐적으로 유지하기 위해 또 다른 하트비트 이벤트를 보냅니다.

다음 다이어그램은 이전 다이어그램의 연속입니다. 봇에 재생 완료 이벤트를 보내는 응용 프로그램이 사용자의 오디오 응답 재생을 중지했음을 나타냅니다. 응용 프로그램이 재생됩니다.사용자 발언에 대한 봇 응답 1사용자에게. 사용자가 응답합니다.사용자 발언에 대한 봇 응답 11.

다음 목록에서는 이전 다이어그램의 이벤트를 설명합니다.

  • T10 애플리케이션은 사용자에게 봇 메시지 재생이 완료되었음을 나타내는 재생 완료 이벤트를 전송합니다.

  • T11 애플리케이션은 사용자 응답을 봇에게 다음과 같이 보냅니다.1.

  • T12 용사용자 발언에 대한 봇 응답 2, 봇은 사용자가 말하기를 중지할 때까지 기다린 다음 오디오 응답을 제공하기 시작합니다.

  • T13 봇을 전송하는 동안사용자 발언에 대한 봇 응답 2응용 프로그램에 대해 봇이 시작을 감지합니다.1. 봇을 중지합니다.사용자 발언에 대한 봇 응답 2재생 중단 이벤트를 전송합니다.

  • t14: 봇은 재생 중단 이벤트를 애플리케이션에 전송하여 사용자가 프롬프트를 중단했음을 알립니다.

다음 다이어그램은사용자 발언에 대한 봇 응답 3봇이 사용자 발언에 응답한 후에도 대화가 계속됩니다.