Eventos e Transições
Em fluxos de caixas de diálogo desenvolvidos com o Designer de Fluxo Visual, os eventos são usados para rotear uma conversa para fluxos ou estados dentro de fluxos.
No nível de habilidade, os eventos são divididos nos seguintes tipos:
- Tentativa. Esses eventos correspondem às intenções da habilidade. Esse evento ocorre quando a entrada do usuário é resolvida para uma determinada intenção.
- Incorporado. Esses são eventos padrão para casos de uso típicos, como intenção não resolvida, intenção de resposta e erro de caixa de diálogo.
- Ação do Fluxo Final. Esses são eventos que você define a si mesmo e que podem ser acionados por ações nos estados de fluxo final (ambos os estados que usam o componente Fluxo Final e os estados que terminam implicitamente o fluxo).
No nível do fluxo, os eventos são divididos nos seguintes tipos:
- Transições do Sistema. Esses são eventos incorporados para casos de uso típicos, como entrada de usuário não resolvida, autorização necessária e erros.
- Transições Personalizadas. Esses são eventos que você pode especificar a si mesmo e que geralmente são atribuídos a ações de transições de componentes. Quando o fluxo atinge essa transição, o evento correspondente é acionado e o estado mapeado para o evento é chamado.
Eventos Incorporados para o Fluxo Principal
Evento | Quando disparado | Como usar |
---|---|---|
Iniciar Habilidade | Quando uma habilidade começa pela primeira vez. | Mapeie para um fluxo personalizado para fazer coisas como inicializar sistemas de backend ou exibir um menu Ajuda. |
Erro de diálogo | Quando um erro é gerado por um componente durante uma conversa. Esse evento também pode ser acionado quando há um erro em outro fluxo e a transição do sistema Erro de Caixa de Diálogo desse fluxo não está mapeada. | Mapeie para um fluxo personalizado de tratamento de erros. Se esse evento for acionado, mas não houver mapeamento, o fluxo atual será encerrado e a habilidade emitirá a mensagem de erro padrão ("Oops! I’m encountering a spot of trouble )".
|
Intenção de Resposta | Quando uma intenção de resposta é resolvida. | Mapeie para um fluxo personalizado dedicado a intenções de resposta. |
Intenção Não Resolvida | Quando a intenção do usuário não for resolvida. | Mapeie para um fluxo de ajuda personalizado. |
Ajuda do Digital Assistant | Quando o usuário expressa um pedido de ajuda. Isso só se aplica quando o usuário acessou a habilidade por meio de um assistente digital e a habilidade está no contexto atual do assistente digital. | Mapeie para um fluxo de ajuda personalizado. |
Boas-vindas ao Assistente Digital | Quando o usuário inicia o contato com o assistente digital. Isso só se aplica quando o usuário usou a chamada explícita para acessar a habilidade por meio de um assistente digital, mas não expressou uma intenção. | Mapeie para um fluxo de boas-vindas ou ajuda personalizado. |
Ao especificar fluxos para os eventos Ajuda do Digital Assistant e Boas-vindas do Digital Assistant, você não está substituindo completamente o comportamento da ajuda do assistente digital e das intenções do sistema unresolvedIntent. Se quiser alterar universalmente esse comportamento, faça isso nas definições do assistente digital. Consulte Especificar Estados para Intenções do Sistema de um Assistente Digital.
Transições do Sistema para Fluxos
Para cada fluxo, você pode aproveitar as transições do sistema para definir onde você trata eventos, como erros de caixa de diálogo e mensagens fora de ordem.
Para definir o estado que é usado para tratar um determinado evento:
- Na guia Configuração do fluxo, role para baixo e expanda a seção Mapeamentos de Eventos.
Você verá a subseção Transições do Sistema.
- Para o evento que você deseja mapear, selecione o estado para o qual você deseja mapeá-lo.
Esse estado geralmente seria um componente Chamar Fluxo que aponta para o fluxo do utilitário para tratar o evento. Consulte Chamar um Fluxo de Outro Fluxo.
Aqui estão os eventos que você pode mapear como transições do sistema em um fluxo.
Evento | Quando disparado | Como usar |
---|---|---|
Autorizar Usuário | Quando um estado é atingido em que seu estado Exige Autorização é resolvido como true .
|
Mapear para um componente Chamar Fluxo que chama um fluxo de autorização. |
Erro de diálogo | Ocorreu um erro inesperado na conversa. |
Mapear para um componente Chamar Fluxo que chama um fluxo para tratamento de erros. Se esse evento não for mapeado e ocorrer um erro no fluxo, o fluxo de tratamento de erros mapeado para o evento incorporado do Erro de Caixa de Diálogo para o fluxo principal será chamado. Quando Erro de Caixa de Diálogo não é mapeado para o fluxo nem para o fluxo principal, a habilidade gera a mensagem de erro padrão ( |
Mensagem Fora da Ordem | O usuário seleciona uma opção de uma mensagem anterior na conversa em vez da mensagem atual. | Mapeie para um componente Chamar Fluxo que chama um fluxo fornecido para tratar mensagens fora da ordem. |
Entrada de Usuário Inesperada | O usuário fornece entrada de texto em vez de selecionar uma das opções fornecidas na mensagem. | Mapeie para um componente Chamar Fluxo que chama um fluxo fornecido para tratar uma entrada inesperada. |
Listener e Trigger de Eventos
Quando você tiver fluxos aninhados (fluxos com subfluxos):
- O fluxo atual escuta e aciona eventos de ação de fluxo incorporados e finais.
- O fluxo de chamada só escuta eventos de ação de fluxo final que são acionados pelo fluxo atual. Em seguida, quando o subfluxo que acionou um evento de ação de fluxo final for concluído, o fluxo pai atuará no evento acionado.
O exemplo principal disso é quando a propriedade Action de um subfluxo especifica um evento de ação de fluxo final.