Se você estiver usando o Amazon Lex V2, consulte o Guia do Amazon Lex V2.
Se você estiver usando o Amazon Lex V1, recomendamos atualizar seus bots para o Amazon Lex V2. Não estamos mais adicionando novos atributos à V1 e recomendamos o uso da V2 para todos os novos bots.
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á.
AMAZON.FallbackIntent
Quando a entrada de um usuário em uma intenção não é o que um bot espera, você pode configurar o Amazon Lex para invocar uma intenção de fallback. Por exemplo, se a entrada do usuário "Eu gostaria de pedir doce" não corresponder a uma intenção em seu bot OrderFlowers
, o Amazon Lex invocará a intenção de fallback para lidar com a resposta.
Inclua uma intenção de fallback adicionando o tipo de intenção AMAZON.FallbackIntent
integrada ao bot. Você pode especificar a intenção usando a operação PutBot ou escolhendo a intenção na lista de intenções integradas no console.
A invocação de uma intenção de fallback usa duas etapas. Na primeira etapa, a intenção de fallback é correspondida com base na entrada do usuário. Quando a intenção de fallback é correspondida, a maneira como o bot se comporta depende do número de novas tentativas configuradas para um prompt. Por exemplo, se o número máximo de tentativas para determinar uma intenção for 2, o bot retornará o prompt de esclarecimento do bot duas vezes antes de invocar a intenção de fallback.
O Amazon Lex corresponde à intenção de fallback nestas situações:
-
A entrada do usuário para uma intenção não corresponde à entrada esperada pelo bot
-
A entrada de áudio é ruído ou a entrada de texto não é reconhecida como palavras.
-
A entrada do usuário é ambígua, e o Amazon Lex não consegue determinar qual intenção invocar.
A intenção de fallback é invocada quando:
-
O bot não reconhece a entrada do usuário como uma intenção após o número configurado de tentativas para esclarecimento quando a conversa é iniciada.
-
Uma intenção não reconhece a entrada do usuário como um valor de slot após o número configurado de tentativas.
-
Uma intenção não reconhece a entrada do usuário como uma resposta a um prompt de confirmação após o número configurado de tentativas.
Você pode usar o seguinte com uma intenção de fallback:
-
Uma função do Lambda de atendimento
-
Uma declaração de conclusão
-
Um prompt de acompanhamento
Você não pode adicionar o seguinte a uma intenção de fallback:
-
Declarações
-
Slots
-
Uma função do Lambda de inicialização e validação
-
Um prompt de confirmação
Se você tiver configurado uma instrução de anulação e uma intenção de fallback para um bot, o Amazon Lex usará a intenção de fallback. Se você precisar que seu bot tenha uma instrução de cancelamento, use a função de atendimento para que a intenção de fallback forneça o mesmo comportamento que uma instrução de cancelamento. Para obter mais informações, consulte o parâmetro abortStatement
da operação PutBot.
Usar prompts de esclarecimento
Se você fornecer ao bot um prompt de esclarecimento, o prompt será usado para solicitar uma intenção válida do usuário. O prompt de esclarecimento será repetido o número de vezes que você configurou. Depois disso, a intenção de fallback será invocada.
Se você não definir um prompt de esclarecimento ao criar um bot e o usuário não iniciar a conversa com uma intenção válida, o Amazon Lex chamará imediatamente sua intenção de fallback.
Quando você usa uma intenção de fallback sem um prompt de esclarecimento, o Amazon Lex não chama o fallback nestas circunstâncias:
-
Quando o usuário responde a um prompt de acompanhamento, mas não fornece uma intenção. Por exemplo, em resposta a um prompt de acompanhamento que diz "Você quer mais alguma coisa hoje?", o usuário diz "Sim". O Amazon Lex retorna uma exceção 400 Bad Request porque não tem um prompt de esclarecimento para enviar ao usuário e obter uma intenção.
-
Ao usar uma função do AWS Lambda, você retorna um tipo de diálogo
ElicitIntent
. Como o Amazon Lex não tem um prompt de esclarecimento para obter uma intenção do usuário, ele retorna uma exceção 400 Bad Request. -
Ao usar a operação
PutSession
, envie um tipo de diálogoElicitIntent
. Como o Amazon Lex não tem um prompt de esclarecimento para obter uma intenção do usuário, ele retorna uma exceção 400 Bad Request.
Usar uma função do Lambda com uma intenção de fallback
Quando uma intenção de fallback é invocada, a resposta depende da configuração do parâmetro fulfillmentActivity
para a operação PutIntent. O bot realiza uma das seguintes ações:
-
Retorna as informações de intenção para o aplicativo cliente.
-
Chama a função do Lambda de atendimento. Ele chama a função com as variáveis de sessão que são definidas para a sessão.
Para obter mais informações sobre como definir a resposta quando uma intenção de fallback é invocada, consulte o parâmetro fulfillmentActivity
da operação PutIntent.
Se você usar a função do Lambda de atendimento em sua intenção de fallback, poderá usar essa função para chamar outra intenção ou executar alguma forma de comunicação com o usuário, como coletar um número de retorno de chamada ou abrir uma sessão com um representante de atendimento ao cliente.
É possível executar qualquer ação em uma função do Lambda de intenção de fallback que possa ser executada na função de cumprimento para qualquer outra intenção. Para obter mais informações sobre como criar uma função de cumprimento usando o AWS Lambda, consulte Uso de funções do Lambda.
Uma intenção de fallback pode ser invocada várias vezes na mesma sessão. Por exemplo, imagine que a função do Lambda usa a ação de diálogo ElicitIntent
para solicitar ao usuário uma intenção diferente. Se o Amazon Lex não conseguir inferir a intenção do usuário após o número configurado de tentativas, ele invocará a intenção de fallback novamente. Ele também invoca a intenção de fallback quando o usuário não responde com um valor de slot válido após o número configurado de tentativas.
É possível configurar uma função do Lambda para controlar o número de vezes que a intenção de fallback é chamada usando uma variável de sessão. Sua função do Lambda poderá executar uma ação diferente se for chamada mais vezes do que o limite definido na função do Lambda. Para obter mais informações sobre variáveis de sessão, consulte Definição dos atributos da sessão.