Iniciar uma transmissão para um bot - 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á.

Iniciar uma transmissão para um bot

Você usa a operação StartConversation para iniciar uma transmissão entre o usuário e o bot do Amazon Lex V2 em sua aplicação. A solicitação POST da aplicação estabelece uma conexão entre a aplicação e o bot do Amazon Lex V2. Isso permite que sua aplicação e o bot comecem a trocar informações entre si por meio de eventos.

A operação StartConversation é compatível somente com os seguintes SDKs:

O primeiro evento que a aplicação deve enviar para o bot Amazon Lex V2 é um ConfigurationEvent. Esse evento tem informações como o formato do tipo de resposta. A seguir estão os parâmetros que você pode usar em um evento de configuração:

  • responseContentType: determina se o bot responde à entrada do usuário com texto ou fala.

  • sessionState: Informações relacionadas à sessão de transmissão com o bot, como intenção predeterminada ou estado da caixa de diálogo.

  • welcomeMessages: especifica as mensagens de boas-vindas que são reproduzidas para o usuário no início da conversa com um bot. Essas mensagens são reproduzidas antes que o usuário forneça qualquer entrada. Para ativar uma mensagem de boas-vindas, você também deve especificar valores para os parâmetros sessionState e dialogAction.

  • disablePlayback: determina se o bot deve esperar por uma sugestão do cliente antes de começar a ouvir a entrada do chamador. Por padrão, a reprodução é ativada, então o valor desse campo é false.

  • requestAttributes: fornece informações adicionais para a solicitação.

Para obter informações sobre como especificar valores para os parâmetros anteriores, consulte o tipo de dados ConfigurationEvent da operação StartConversation.

Cada transmissão entre um bot e sua aplicação só pode ter um evento de configuração. Depois que sua aplicação enviar um evento de configuração, o bot poderá receber comunicação adicional da sua aplicação.

Se você especificou que seu usuário está usando áudio para se comunicar com o bot do Amazon Lex V2, sua aplicação pode enviar os seguintes eventos para o bot durante essa conversa:

  • AudioInputEvent: contém um bloco de áudio com tamanho máximo de 320 bytes. A aplicação deve usar vários eventos de entrada de áudio para enviar uma mensagem do servidor para o bot. Cada evento de entrada de áudio na transmissão deve ter o mesmo formato de áudio.

  • DTMFInputEvent: envia uma entrada de DTMF para o bot. Cada pressionamento de tecla de DTMF corresponde a um único evento.

  • PlaybackCompletionEvent: informa ao servidor que uma resposta da entrada do usuário foi reproduzida para ele. Você deve usar um evento de conclusão de reprodução, se estiver enviando uma resposta de áudio para o usuário. Se disablePlayback do seu evento de configuração for true, você não poderá usar esse atributo.

  • DisconnectionEvent: informa ao bot que o usuário se desconectou da conversa.

Se você especificou que o usuário está usando texto para se comunicar com o bot, sua aplicação pode enviar os seguintes eventos para o bot durante essa conversa:

  • TextInputEvent: texto enviado da sua aplicação para o bot. Você pode ter até 512 caracteres em um evento de entrada de texto.

  • PlaybackCompletionEvent: informa ao servidor que uma resposta da entrada do usuário foi reproduzida para ele. Você deve usar esse evento se estiver reproduzindo áudio para o usuário. Se disablePlayback do seu evento de configuração for true, você não poderá usar esse atributo.

  • DisconnectionEvent: informa ao bot que o usuário se desconectou da conversa.

Você deve codificar cada evento enviado para um bot do Amazon Lex V2 no formato correto. Para mais informações, consulte Codificação de transmissão de evento.

Cada evento tem um ID de evento. Para ajudar a solucionar quaisquer problemas que possam ocorrer na transmissão, atribua um ID de evento exclusivo a cada evento de entrada. Em seguida, você pode solucionar qualquer falha de processamento com o bot.

O Amazon Lex V2 também usa registros de data e hora para cada evento. Você pode usar esses carimbos de data/hora, além do ID do evento, para ajudar a solucionar qualquer problema de transmissão de rede.

Durante a conversa entre o usuário e o bot do Amazon Lex V2, o bot pode enviar os seguintes eventos de saída em resposta ao usuário:

  • IntentResultEvent: contém a intenção que o Amazon Lex V2 determinou usando a declaração do usuário. Cada evento de resultado interno inclui:

    • inputMode: o tipo de declaração do usuário. Os valores válidos são Speech, DTMF ou Text.

    • interpretations: interpretações que o Amazon Lex V2 determina a partir da declaração do usuário.

    • requestAttributes: se você não modificou os atributos da solicitação usando uma função do lambda, esses são os mesmos atributos que foram passados no início da conversa.

    • sessionId: identificador de sessão usado para a conversa.

    • sessionState: o estado da sessão do usuário com o Amazon Lex V2.

  • TranscriptEvent: se o usuário fornecer uma entrada para sua aplicação, esse evento conterá a transcrição da declaração do usuário para o bot. Sua aplicação não recebe um TranscriptEvent se não houver nenhuma entrada do usuário.

    O valor do evento de transcrição enviado à sua aplicação depende se você especificou áudio (fala e DMTF) ou texto como modo de conversa:

    • Transcrição da entrada de fala: se o usuário estiver falando com o bot, o evento de transcrição será a transcrição do áudio do usuário. É uma transcrição de todo o discurso desde o momento em que o usuário começa a falar até o momento em que termina de falar.

    • Transcrição da entrada DTMF: se o usuário estiver digitando em um teclado, o evento de transcrição conterá todos os dígitos que o usuário pressionou na entrada.

    • Transcrição da entrada de texto: se o usuário estiver fornecendo entrada de texto, o evento de transcrição conterá todo o texto na entrada do usuário.

  • TextResponseEvent: contém a resposta do bot em formato de texto. Uma resposta de texto é retornada por padrão. Se você configurou o Amazon Lex V2 para retornar uma resposta de áudio, esse texto será usado para gerar uma resposta de áudio. Cada evento de resposta de texto contém uma matriz de objetos de mensagem que o bot retorna ao usuário.

  • AudioResponseEvent: contém a resposta de áudio sintetizada a partir do texto gerado no TextResponseEvent. Para receber eventos de resposta de áudio, você deve configurar o Amazon Lex V2 para fornecer uma resposta de áudio. Todos os eventos de resposta de áudio têm o mesmo formato de áudio. Cada evento contém partes de áudio de no máximo 100 bytes. O Amazon Lex V2 envia um trecho de áudio vazio com o campo bytes definido como null para indicar o final do evento de resposta de áudio para a aplicação.

  • PlaybackInterruptionEvent: quando um usuário interrompe uma resposta que o bot enviou à aplicação, o Amazon Lex V2 aciona esse evento para interromper a reprodução da resposta.

  • HeartbeatEvent: o Amazon Lex V2 envia esse evento de volta periodicamente para evitar que a conexão entre a aplicação e o bot atinja o tempo limite.

Sequência de tempo de eventos para uma conversa em áudio

Os diagramas a seguir mostram uma conversa de streaming de áudio entre um usuário e um bot do Amazon Lex V2. A aplicação transmite áudio continuamente para o bot, e o bot procura a entrada do usuário a partir do áudio. Neste exemplo, tanto o usuário quanto o bot estão usando a fala para se comunicar. Cada diagrama corresponde a uma declaração do usuário e à resposta do bot a essa declaração.

O diagrama a seguir mostra o início de uma conversa entre a aplicação e o bot. A transmissão começa no horário zero (t0).

As seções a seguir descrevem os eventos do diagrama anterior.

  • t0: a aplicação envia um evento de configuração ao bot para iniciar a transmissão.

  • t1: a aplicação transmite dados de áudio. Esses dados são divididos em uma série de eventos de entrada da aplicação.

  • t2: para a declaração do usuário 1, o bot detecta um evento de entrada de áudio quando o usuário começa a falar.

  • t2: enquanto o usuário fala, o bot envia um evento de heartbeat para manter a conexão. Ele envia esses eventos de forma intermitente para garantir que a conexão não atinja o tempo limite.

  • t3: o bot detecta o final da declaração do usuário.

  • t4: o bot envia de volta um evento de transcrição que contém uma transcrição da fala do usuário para a aplicação. Este é o início da Resposta do bot à declaração do usuário 1.

  • t5: o bot envia um evento de resultado de intenção para indicar a ação que o usuário deseja realizar.

  • t6: o bot começa a fornecer sua resposta como texto em um evento de resposta de texto.

  • t7: o bot envia uma série de eventos de resposta de áudio à aplicação para serem reproduzidos para o usuário.

  • t8: o bot envia outro evento de heartbeat para manter a conexão de forma intermitente.

O diagrama a seguir é uma continuação do diagrama anterior. Ele mostra a aplicação enviando um evento de conclusão da reprodução ao bot para indicar que ele parou de reproduzir a resposta de áudio para o usuário. A aplicação reproduz a Resposta do bot à declaração do usuário 1 para o usuário. O usuário responde à Resposta do bot à declaração do usuário 1 com Declaração do usuário 2.

As seções a seguir descrevem os eventos do diagrama anterior:

  • t10: a aplicação envia um evento de conclusão da reprodução para indicar que terminou de reproduzir a mensagem do bot para o usuário.

  • t11: a aplicação envia a resposta do usuário de volta ao bot como Declaração do usuário 2.

  • t12: para Resposta do bot à declaração do usuário 2, o bot espera que o usuário pare de falar e, em seguida, começa a fornecer uma resposta de áudio.

  • t13: enquanto o bot envia a Resposta do bot à declaração do usuário 2 para a aplicação, o bot detecta o início da Declaração do usuário 3. O bot interrompe a Resposta do bot à declaração do usuário 2 e envia um evento de interrupção da reprodução.

  • t14: o bot envia um evento de interrupção da reprodução à aplicação para sinalizar que o usuário interrompeu a mensagem.

O diagrama a seguir mostra a Resposta do bot à declaração do usuário 3 e que a conversa continua depois que o bot responde à declaração do usuário.