Visualização de registros de texto no Amazon CloudWatch Logs - Guia do desenvolvedor

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Visualização de registros de texto no Amazon CloudWatch Logs

O Amazon Lex V2 armazena registros de texto para suas conversas no Amazon CloudWatch Logs. Para ver os registros, use o console de CloudWatch registros ou a API. Para obter mais informações, consulte Pesquisar dados de log usando padrões de filtro e sintaxe de consulta do CloudWatch Logs Insights no Guia do usuário do Amazon CloudWatch Logs.

Para visualizar os logs usando o console do Amazon Lex V2
  1. Abra o console do Amazon Lex V2 em https://console.aws.amazon.com/lexv2.

  2. Na lista, escolha um bot.

  3. No menu à esquerda, escolha Analytics e, em seguida, escolha CloudWatch métricas.

  4. Veja as métricas do seu bot na página de CloudWatch métricas.

Você também pode usar o CloudWatch console ou a API para visualizar suas entradas de registro. Para localizar as entradas de log, navegue até o grupo de logs configurado para o alias. Você pode encontrar o prefixo do stream de logs para seus registros no console do Amazon Lex V2 ou usando a DescribeBotAliasoperação.

As entradas de log para uma expressão de usuário estão em vários fluxos de log. Uma expressão na conversa tem uma entrada em um dos fluxos de log com o prefixo especificado. Uma entrada no fluxo de log contém as seguintes informações.

message-version

A versão do esquema de mensagem.

bot

Detalhes sobre o bot com o qual o cliente está interagindo.

mensagens

A resposta que o bot enviou de volta ao usuário.

utteranceContext

Informações sobre o processamento desse enunciado.

sessionState

O estado atual da conversa entre o usuário e o bot. Para ter mais informações, consulte Gerenciar conversas.

interpretations

Uma lista de intenções que o Amazon Lex V2 determinou que poderiam satisfazer o enunciado do usuário. Usar pontuações de confiança.

interpretationSource

Indica se um slot foi resolvido pelo Amazon Lex ou pelo Amazon Bedrock. Valores: Lex | Bedrock

sessionId

O identificador da sessão do usuário que está tendo a conversa.

inputTranscript

Uma transcrição da entrada do usuário.

  • Para entrada de texto, esse é o texto que o usuário digitou. Para entrada DTMF, essa é a chave que o usuário insere.

  • Para entrada de voz, esse é o texto no qual o Amazon Lex V2 converte o enunciado do usuário para invocar uma intenção ou preencher um slot.

rawInputTranscript

A transcrição bruta da entrada do usuário antes de qualquer processamento de texto. Observação: o processamento de texto é somente para localidades en-US e en-GB.

transcriptions

Uma lista de possíveis transcrições da entrada do usuário. Para ter mais informações, consulte Como usar pontuações de confiança na transcrição de voz.

rawTranscription

Usar pontuações de confiança na transcrição de voz. Para ter mais informações, consulte Como usar pontuações de confiança na transcrição de voz.

missedUtterance

Indica se o Amazon Lex V2 conseguiu reconhecer o enunciado do usuário.

requestId

O Amazon Lex V2 gerou o ID de solicitação para a entrada do usuário.

timestamp

O carimbo de data e hora da entrada do usuário.

developerOverride

Indica se o fluxo da conversa foi atualizado usando um hook de código de diálogo. Para mais informações sobre como usar um hook de código de diálogo, consulte Habilitando a lógica personalizada com as funções do AWS Lambda.

inputMode

Indica o tipo de entrada. Pode ser áudio, DTMF ou texto.

requestAttributes

Os atributos da solicitação usados ao processar a entrada do usuário.

audioProperties

Se os logs de conversas de áudio estiverem ativados e a entrada do usuário estiver no formato de áudio, inclua a duração total da entrada de áudio, a duração da voz e a duração do silêncio no áudio. Também inclui um link para o arquivo de áudio.

bargeIn

Indica se a entrada do usuário interrompeu a resposta anterior do bot.

responseReason

O motivo pelo qual uma resposta foi gerada. Pode ser um dos seguintes:

  • UtteranceResponse – resposta à entrada do usuário

  • StartTimeout – resposta gerada pelo servidor quando o usuário não forneceu a entrada

  • StillWaitingResponse – resposta gerada pelo servidor quando o usuário solicita que o bot espere

  • FulfillmentInitiated – resposta gerada pelo servidor informando que o atendimento está prestes a ser iniciado

  • FulfillmentStartedResponse – resposta gerada pelo servidor informando que o atendimento foi iniciado

  • FulfillmentUpdateResponse – resposta periódica gerada pelo servidor enquanto o atendimento está em andamento

  • FulfillmentCompletedResponse – resposta gerada pelo servidor quando o atendimento é concluído.

operationName

A API usada para interagir com o bot. Pode ser PutSession, RecognizeText, RecognizeUtterance ou StartConversation.

{ "message-version": "2.0", "bot": { "id": "string", "name": "string", "aliasId": "string", "aliasName": "string", "localeId": "string", "version": "string" }, "messages": [ { "contentType": "PlainText | SSML | CustomPayload | ImageResponseCard", "content": "string", "imageResponseCard": { "title": "string", "subtitle": "string", "imageUrl": "string", "buttonsList": [ { "text": "string", "value": "string" } ] } } ], "utteranceContext": { "activeRuntimeHints": { "slotHints": { "string": { "string": { "runtimeHintValues": [ { "phrase": "string" }, { "phrase": "string" } ] } } } }, "slotElicitationStyle": "string" }, "sessionState": { "dialogAction": { "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot", "slotToElicit": "string" }, "intent": { "name": "string", "slots": { "string": { "value": { "interpretedValue": "string", "originalValue": "string", "resolvedValues": [ "string" ] } }, "string": { "shape": "List", "value": { "originalValue": "string", "interpretedValue": "string", "resolvedValues": [ "string" ] }, "values": [ { "shape": "Scalar", "value": { "originalValue": "string", "interpretedValue": "string", "resolvedValues": [ "string" ] } }, { "shape": "Scalar", "value": { "originalValue": "string", "interpretedValue": "string", "resolvedValues": [ "string" ] } } ] } }, "kendraResponse": { // Only present when intent is KendraSearchIntent. For details, see // https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax }, "state": "InProgress | ReadyForFulfillment | Fulfilled | Failed", "confirmationState": "Confirmed | Denied | None" }, "originatingRequestId": "string", "sessionAttributes": { "string": "string" }, "runtimeHints": { "slotHints": { "string": { "string": { "runtimeHintValues": [ { "phrase": "string" }, { "phrase": "string" } ] } } } } }, "dialogEventLogs": [ { // only for conditional "conditionalEvaluationResult":[ // all the branches until true { "conditionalBranchName": "string", "expressionString": "string", "evaluatedExpression": "string", "evaluationResult": "true | false" } ], "dialogCodeHookInvocationLabel": "string", "response": "string", "nextStep": { "dialogAction": { "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot", "slotToElicit": "string" }, "intent": { "name": "string", "slots": { } } } ] "interpretations": [ { "interpretationSource": "Bedrock | Lex", "nluConfidence": "string", "intent": { "name": "string", "slots": { "string": { "value": { "originalValue": "string", "interpretedValue": "string", "resolvedValues": [ "string" ] } }, "string": { "shape": "List", "value": { "interpretedValue": "string", "originalValue": "string", "resolvedValues": [ "string" ] }, "values": [ { "shape": "Scalar", "value": { "interpretedValue": "string", "originalValue": "string", "resolvedValues": [ "string" ] } }, { "shape": "Scalar", "value": { "interpretedValue": "string", "originalValue": "string", "resolvedValues": [ "string" ] } } ] } }, "kendraResponse": { // Only present when intent is KendraSearchIntent. For details, see // https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax }, "state": "InProgress | ReadyForFulfillment | Fulfilled | Failed", "confirmationState": "Confirmed | Denied | None" }, "sentimentResponse": { "sentiment": "string", "sentimentScore": { "positive": "string", "negative": "string", "neutral": "string", "mixed": "string" } } } ], "sessionId": "string", "inputTranscript": "string", "rawInputTranscript": "string", "transcriptions": [ { "transcription": "string", "rawTranscription": "string", "transcriptionConfidence": "number", }, "resolvedContext": { "intent": "string" }, "resolvedSlots": { "string": { "name": "slotName", "shape": "List", "value": { "originalValue": "string", "resolvedValues": [ "string" ] } } } } ], "missedUtterance": "bool", "requestId": "string", "timestamp": "string", "developerOverride": "bool", "inputMode": "DTMF | Speech | Text", "requestAttributes": { "string": "string" }, "audioProperties": { "contentType": "string", "s3Path": "string", "duration": { "total": "integer", "voice": "integer", "silence": "integer" } }, "bargeIn": "string", "responseReason": "string", "operationName": "string" }

O conteúdo da entrada de log depende do resultado de uma transação e da configuração do bot e da solicitação.

  • Os campos intent, slots e slotToElicit não aparecerão em uma entrada se o campo missedUtterance for true.

  • O campo s3PathForAudio não aparecerá se os logs de áudio estiverem desativados ou se o campo inputDialogMode for Text.

  • O campo responseCard só aparecerá quando você tiver definido um cartão de resposta para o bot.

  • O mapa requestAttributes só aparecerá se você tiver especificado atributos de solicitação na solicitação.

  • O campo kendraResponse só está presente quando o AMAZON.KendraSearchIntent faz uma solicitação para pesquisar um índice do Amazon Kendra.

  • O campo developerOverride é verdadeiro quando uma intenção alternativa foi especificada na função do Lambda do bot.

  • O mapa sessionAttributes só aparecerá se você tiver especificado atributos de sessão na solicitação.

  • O mapa sentimentResponse só aparecerá se você configurar o bot para retornar valores de sentimento.

nota

O formato de entrada pode mudar sem uma alteração correspondente em messageVersion. Seu código não deve gerar um erro se novos campos estiverem presentes.