Amazon Chime SDK 메시징을 위한 AppInstanceBot 응답 처리 - Amazon Chime SDK

Amazon Chime SDK 메시징을 위한 AppInstanceBot 응답 처리

사용자가 메시지를 보내면 AppInstanceBot은 채널 메시지로 응답합니다. 채널 메시지를 나열하여 봇의 응답을 받을 수 있습니다.

다음 예는 CLI를 사용하여 채널 메시지를 나열하는 방법을 보여 줍니다.

aws chime-sdk-messaging list-channel-messages \ --chime-bearer caller_app_instance_user_arn \ --channel-arn channel_arn

AppInstanceBot의 성공 응답은 다음 형식을 사용합니다.

{ "MessageId": "messageId", "Content": "*{\"Messages\":[{\"...\"}]}*", "ContentType": "application/amz-chime-lex-msgs", "MessageAttributes": { "CHIME.LEX.sessionState.intent.name": { "StringValues": [ "lex_bot_intent_name" ] }, "CHIME.LEX.sessionState.intent.state": { "StringValues": [ "lex_bot_intent_fullfilment_status" ] }, "CHIME.LEX.sessionState.originatingRequestId": { "StringValues": [ "lex_bot_originating_request_id" ] }, "CHIME.LEX.sessionState.sessionId": { "StringValues": [ "lex_bot_session_id" ] } }, "Sender": { "Arn": "app_instance_bot_arn", "Name": "app_instance_bot_name" }, "Type": "STANDARD", }
Content

Content 필드에는 Amazon Lex V2 봇에서 전송된 메시지 목록이 포함되어 있습니다. 이러한 메시지에 대한 자세한 내용은 Amazon Lex V2 RecognizeText API의 메시지를 참조하세요.

다음은 시작 메시지에서 Content 필드를 사용하는 방법을 보여 주는 예시입니다.

{ "Messages": [ { "Content": "Hello!", "ContentType": "PlainText" }, { "ContentType": "ImageResponseCard", "ImageResponseCard": { "Title": "Hello! I'm BB, the Bank Bot.", "Subtitle": "I can help you with the following transactions", "Buttons": [ { "Text": "Check balance", "Value": "Check balance" }, { "Text": "Escalate to agent", "Value": "Escalate to agent" } ] } } ] }

실패 응답의 경우 콘텐츠 필드에는 다음과 같은 형식의 오류 메시지와 코드가 포함됩니다.

{ "Code": error_code }
ContentType

ContentTypeContent 필드에 포함된 페이로드 유형을 나타내므로 Content 필드를 구문 분석하려면 반드시 확인해야 합니다.

참고

Lex V2 봇은 다른 ContentType을 사용합니다.

ContentType은 성공 응답의 경우 application/amz-chime-lex-msgs로, 실패 응답의 경우 application/amz-chime-lex-error로 설정합니다.

MessageAttribute

MessageAttribute는 문자열 키와 문자열 값의 매핑입니다. AppInstanceBot의 응답에는 Amazon Lex 봇의 응답에 매핑된 다음과 같은 메시지 속성이 포함되어 있습니다.

  • CHIME.LEX.sessionState.intent.name - 요청이 처리하려고 시도한 Lex 봇 인텐트의 이름입니다.

  • CHIME.LEX.sessionState.intent.state – 인텐트의 현재 상태입니다. 가능한 값은 Fulfilled, InProgress, Failed입니다.

  • CHIME.LEX.sessionState.originatingRequestId – Amazon Lex 봇에 대한 특정 요청을 위한 고유 식별자입니다. 이 값은 AppInstanceBot을 트리거한 원본 사용자 메시지의 MessageId로 설정됩니다.

  • CHIME.LEX.sessionState.sessionId – 사용자와 봇 간의 대화를 나타내는 고유 식별자입니다. 사용자가 봇과 대화를 시작하면 Amazon Lex는 세션을 생성합니다.

Amazon Lex 세션과 세션 상태에 대한 자세한 내용은 Amazon Lex API 참조의 SessionState 및 Amazon Lex V2 개발자 안내서의 세션 관리를 참조하세요.

Amazon Lex V2가 반환하는 속성에 대한 자세한 내용은 Amazon Lex 런타임 V2 API를 참조하세요.