Processar respostas de um AppInstanceBot para o sistema de mensagens do SDK do Amazon Chime
Quando um usuário envia uma mensagem, o AppInstanceBot responde com uma mensagem do canal. Você pode listar as mensagens do canal para obter a resposta do bot.
O exemplo a seguir mostra como usar a CLI para listar mensagens do canal.
aws chime-sdk-messaging list-channel-messages \ --chime-bearer
caller_app_instance_user_arn
\ --channel-arnchannel_arn
As respostas de sucesso de um AppInstanceBot têm seguinte o formato.
{ "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
-
O campo
Content
contém uma lista de mensagens provenientes do bot do Amazon Lex V2. Para obter mais informações sobre essas mensagens, consulte as mensagens na APIRecognizeText
do Amazon Lex V2.O exemplo a seguir mostra como usar o campo
Content
em uma mensagem de boas-vindas.{ "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
" } ] } } ] }Para uma resposta a falhas, o campo Conteúdo contém uma mensagem de erro e um código no seguinte formato:
{ "Code":
error_code
} - ContentType
-
O
ContentType
se refere ao tipo de carga útil que o campoContent
contém e deve ser verificado para analisar o campoContent
.nota
O bot do Lex V2 usa um
ContentType
diferente.ContentType
está definido comoapplication/amz-chime-lex-msgs
para uma resposta bem-sucedida ou comoapplication/amz-chime-lex-error
para uma resposta de falha. - MessageAttribute
-
Um MessageAttribute é um mapa de chaves de string para valores de string. Uma resposta de um
AppInstanceBot
contém os seguintes atributos da mensagem associados a uma resposta de um bot do Amazon Lex.-
CHIME.LEX.sessionState.intent.name: o nome da intenção do Bot Lex que a solicitação tentou atender.
-
CHIME.LEX.sessionState.intent.state: o estado atual da intenção. Os valores possíveis são:
Fulfilled
,InProgress
eFailed
. -
CHIME.LEX.sessionState.originatingRequestId: um identificador exclusivo para uma solicitação específica para o Bot do Amazon Lex. Isso é definido como
MessageId
da mensagem do usuário de origem que acionou o AppInstanceBot. -
CHIME.LEX.sessionState.sessionId: um identificador exclusivo para uma conversa entre o usuário e o bot. Quando um usuário inicia um chat com seu bot, o Amazon Lex cria uma sessão.
Para ter mais informações sobre sessões e estados de sessão do Amazon Lex, consulte SessionState em Amazon Lex API Reference e Managing sessions no Guia do desenvolvedor do Amazon Lex V2.
Para obter mais informações sobre os atributos que o Amazon Lex V2 retorna, consulte as APIs de Runtime do Amazon Lex V2.
-