Ajustar o Comportamento de Roteamento
Para poder colocar seu assistente digital em produção, teste e ajuste a forma como o seu assistente digital roteia e resolve intenções.
Treinar o Assistente Digital
Antes de ajustar o seu assistente digital, verifique se ele foi treinado. Com o treinamento do assistente digital, você consolida os dados de treinamento de todas as habilidades que ele contém e preenche os dados de treinamento das intenções incorporadas (Ajuda, Saída e UnresolvedIntent) do assistente digital.
Para treinar um assistente digital:
- Abra o assistente digital.
- Clique no botão Treinar (
) e selecione um modelo de treinamento.
Use o mesmo modelo de treinamento utilizado para treinar a maioria das habilidades.
Para conhecer mais a fundo os modelos de treinamento, consulte Qual Modelo de Treinamento Devo Usar?
O que Testar
Veja aqui alguns comportamentos de roteamento que devem ser testados e ajustados:
-
Chamada explícita (entrada do usuário que contém o nome da chamada).
Exemplo (em que
Financial Wizard
é o nome da chamada):send money using financial wizard
-
Chamada implícita (entrada do usuário que implica no uso de uma habilidade sem realmente incluir o nome da chamada).
Exemplo:
send money
-
Declarações ambíguas (para ver até que ponto o assistente digital desfaz a ambiguidade).
Exemplo (em que várias habilidades permitem que você faça pedidos):
place order
-
Interrompendo um fluxo de conversa alterando o assunto (também conhecido como não sequenciador).
Leia mais para obter detalhes sobre como o modelo de roteamento funciona e sobre os parâmetros de roteamento que você pode ajustar para adequar o comportamento do assistente digital.
O componente mais importante de como o roteamento funciona em um assistente digital é o design das próprias habilidades. Se você estiver trabalhando em um projeto no qual tenha entrada na composição do assistente digital e no design das habilidades que ele contém, é melhor se concentrar na otimização da resolução de intenção nas habilidades individuais antes de ajustar os parâmetros de roteamento do assistente digital. Consulte O QUE FAZER e O QUE NÃO FAZER no Design de Conversa.
O Modelo de Roteamento
Quando um usuário insere uma frase no assistente digital, este determina como rotear a conversa, se para uma habilidade específica, para outro estado no fluxo atual ou para uma intenção incorporada do assistente digital.
No centro do modelo de roteamento, há pontuações de confiança calculadas para habilidades individuais e intenções para medir em que nível elas correspondem com a entrada do usuário. As pontuações de confiança são derivadas aplicando os algoritmos NLP (processamento de linguagem natural) subjacentes aos dados de treinamento das habilidades e do assistente digital.
As decisões de roteamento então são tomadas medindo as pontuações de confiança em relação aos valores de diversos parâmetros de roteamento, Limite de Confiança de Habilidades Candidatas e Margem de Ganho de Confiança.
O modelo de roteamento tem estas camadas chave:
-
Determinar as intenções do sistema candidatas: A entrada do usuário é avaliada e as pontuações de confiança são aplicadas às intenções (sair, ajuda e unresolvedIntent) do assistente digital. Qualquer uma dessas intenções que tenha pontuações de confiança que excedam o valor do parâmetro de roteamento do Limite de Confiança de Intenção Integrada do Sistema do assistente digital será tratada como candidata para avaliação adicional.
-
Determinar habilidades candidatas: A entrada do usuário é avaliada e as pontuações de confiança são aplicadas a cada habilidade. Qualquer habilidade que tenha pontuações de confiança que excedam o valor do parâmetro de roteamento do Limite de Confiança de Habilidades Candidatas do assistente digital será tratada como habilidade candidata para avaliação adicional.
-
Determinar fluxos candidatos: Depois que as habilidades candidatas forem identificadas, cada intenção nessas habilidades será avaliada (de acordo com o modelo de intenção para cada habilidade) e as pontuações de confiança serão aplicadas a cada intenção. Em geral, qualquer intenção que tenha uma pontuação de confiança que exceda o valor de seu parâmetro de roteamento do Limite de Confiança da habilidade (não do parâmetro do Limite de Confiança de Habilidades Candidatas do assistente digital) será tratada como fluxo candidato.
O comportamento desse roteamento pode ser adaptado ajustando os parâmetros de roteamento do assistente digital.
Além disso, há regras para casos específicos que afetam a fórmula de roteamento: Esses casos incluem:
-
Chamada explícita: Se um usuário incluir o nome de chamada de uma habilidade em sua entrada, o assistente digital será roteado diretamente para essa habilidade, mesmo que a entrada também corresponda a outras habilidades.
-
Roteamento contextual: se um usuário já estiver envolvido com uma habilidade, essa habilidade terá mais peso durante a resolução de intenção do que as intenções de outras habilidades.
-
Fixação de contexto:Se a entrada do usuário incluir uma chamada explícita para uma habilidade, mas sem declaração relacionada à intenção, o roteador vai “fixar” a conversa na habilidade. Isso significa que se presume que a próxima declaração está relacionada a essa habilidade.
Estados de Início, Boas-vindas e Ajuda
Para tornar mais tranquila para o usuário a navegação entre as diversas habilidades, os assistentes digitais gerenciam o roteamento para os estados de início, boas-vindas e ajuda e a exibição desses estados para cada habilidade adicionada ao assistente digital.
Você pode configurar cada habilidade para especificar quais estados em seu fluxo de caixas de diálogo o assistente digital deve usar, por exemplo, os estados de boas-vindas, início e ajuda. Se esses estados não forem especificados na habilidade, o assistente digital fornecerá o comportamento padrão.
Veja um resumo de como esses estados funcionam.
-
Estado de Início: Aplica-se quando o mecanismo de intenções determina que o usuário deseja começar a usar uma habilidade em questão. Isso geralmente ocorre quando o usuário expressa uma intenção relacionada à habilidade.
Se a habilidade não tiver um estado de início especificado, o assistente digital simplesmente usará o primeiro estado na habilidade como estado de início.
-
Estado de Boas-vindas: Aplica-se quando o usuário digita o nome da chamada sem uma intenção de acompanhamento.
Exemplo (em que "cash bank" é o nome da chamada):
cash bank
Se (e apenas se) um estado de boas-vindas não tiver sido especificado na habilidade, o assistente digital fornecerá automaticamente uma resposta padrão que consiste em um prompt e um cartão mostrando o nome para exibição da habilidade, uma descrição de sentença e algumas de suas declarações de amostra. Além disso, ele oferece ao usuário a opção de sair da conversa e obter ajuda para o assistente digital como um todo.
Veja aqui um exemplo de resposta de boas-vindas padrão sendo aplicada a uma habilidade bancária.
Descrição da ilustração da-welcome-prompt.pngTambém é possível personalizar o prompt de boas-vindas padrão usando a definição de configuração Prompt de Boas-vindas do Bot de Habilidade.
-
Estado de Ajuda: Aplica-se quando o mecanismo de intenção determina que o usuário está solicitando ajuda ou outras informações.
Exemplo: se um usuário estiver em um fluxo na habilidade bancária para enviar dinheiro e digitar “ajuda” quando for solicitada a conta para enviar dinheiro.
Se (e apenas se) um estado de ajuda não tiver sido especificado na habilidade, o assistente digital preparará automaticamente uma resposta que inclua um prompt e um cartão mostrando o nome para exibição da habilidade, uma descrição de sentença e algumas de suas declarações de amostra. Além disso, ele oferece ao usuário a opção de sair da conversa e obter ajuda para o assistente digital como um todo.
Veja um exemplo de prompt de ajuda e cartão preparados pelo assistente digital:
Descrição da ilustração da-help-prompt.pngTambém é possível personalizar o prompt de ajuda padrão usando a definição de configuração Prompt de Ajuda do Bot de Habilidade.
Especificar Estados de Início, Boas-vindas e Ajuda
Se o fluxo de caixas de diálogo da habilidade for projetado no modo Visual, você poderá especificar esses estados com os eventos incorporados correspondentes no fluxo Principal:
- Na habilidade, clique em
.
- Selecione Fluxo Principal.
- Clique em
na seção Eventos Incorporados.
- Na caixa de diálogo Criar Handler de Evento Incorporado, selecione o tipo de evento no fluxo mapeado e clique em Criar.
Se o fluxo de caixas de diálogo da habilidade for projetado no modo YAML, você poderá especificar esses estados nas definições da habilidade:
- Na habilidade, clique em
e selecione a tab Digital Assistant.
- Selecione Estado de Início, Estado de Boas-vindas e/ou Estado de Ajuda.
Chamada Explícita
A chamada explícita ocorre quando o usuário informa o nome da chamada para uma habilidade como parte de sua entrada. Usando chamada explícita, o usuário ajuda a garantir que sua entrada seja imediatamente roteada para a habilidade desejada, reduzindo assim o número de trocas com o assistente digital necessárias para realizar sua tarefa.
Quando a chamada explícita é usada, um peso extra é dado à habilidade correspondente ao determinar o roteamento:
-
Se o usuário ainda não estiver em uma habilidade e digitar uma chamada explícita, essa chamada terá precedência sobre outros fluxos no contexto do assistente digital.
-
Se o usuário estiver em um fluxo de outra habilidade, o assistente digital sempre tentará confirmar se o usuário deseja realmente alternar as habilidades.
Em cada assistente digital, você pode determinar o nome da chamada que deseja usar para uma habilidade em questão. Defina o nome da chamada na página da habilidade no Assistente Digital. Para chegar lá:
- Na barra de navegação esquerda do assistente digital, clique em
- Selecione a habilidade cujo nome da chamada você deseja verificar ou modificar.
- Role para baixo até o campo Chamada.
Esse comportamento é suportado pelo parâmetro de roteamento Limite de Confiança da Chamada Explícita. Se a pontuação de confiança para a chamada explícita exceder esse limite, as intenções de outras habilidades não serão consideradas na decisão de roteamento. O valor padrão para esse limite é 0.8 (80% de confiança).
Para entrada que não seja em inglês em uma habilidade, o nome da chamada da habilidade precisa ser informado antes de quaisquer outras palavras para que a entrada seja reconhecida como uma chamada explícita. Por exemplo, se a habilidade tiver um nome de chamada de Pizza King, a expressão "Pizza King, quiero una pizza grande" será reconhecida como uma invocação explícita, mas a frase "Hola Pizza King, quiero una pizza grande" não será.
Detecção de Contexto
O roteamento em assistentes digitais detecta contexto, o que significa que as intenções correspondentes da habilidade das quais o usuário está participando atualmente recebem mais peso do que as intenções de outras habilidades durante a resolução da intenção.
Por exemplo, imagine que o seu assistente digital tenha uma habilidade bancária e uma habilidade para uma loja de varejo on-line. Se um usuário digitar a pergunta “Qual é meu saldo?”, isso pode ser aplicado ao saldo da conta bancária do usuário e ao saldo restante de um cartão-presente registrado no varejista on-line.
-
Se o usuário digitar essa pergunta antes de digitar o contexto de qualquer uma das habilidades, o assistente digital deverá dar a ele a opção de qual fluxo de “saldo” informar (na habilidade bancária ou na habilidade de varejista).
-
Se o usuário inserir essa pergunta de dentro da habilidade bancária, o assistente digital deverá escolher automaticamente o fluxo “saldo” correspondente à habilidade bancária (e desconsiderar as intenções de outras habilidades, mesmo que atendam ao parâmetro de roteamento de Limite de Confiança padrão).
Mesmo que o usuário tenha concluído um fluxo dentro de uma habilidade, ele permanecerá no contexto dessa habilidade, a menos que:
- Ele tenha saído explicitamente da habilidade ou ido para outra.
- Sua próxima solicitação seja resolvida como
unresolvedIntent
da habilidade e não corresponda a qualquer outra intenção da habilidade. Nesse caso, o contexto vai para o assistente digital e o assistente digital determina como tratar a intenção não resolvida.
Além disso, a detecção de contexto leva em conta os grupos de habilidades. Isso significa que, quando uma habilidade é definida como parte de um grupo e está no contexto atual, esse contexto também inclui as outras habilidades desse grupo. Consulte Grupos de Habilidades.
A detecção de contexto é suportado pelo parâmetro de roteamento Considerar Somente Limite de Contexto Atual. Se a pontuação de confiança de uma intenção no contexto atual exceder esse limite, as intenções de outros contextos não serão consideradas na decisão de roteamento. O valor padrão desse limite é 0.8 (80% de confiança), pois você provavelmente quer ter certeza de que uma intenção no contexto atual é a correta antes de descartar a exibição de outras intenções.
Intenções help e unresolvedIntent
Dentro do contexto de uma habilidade, se a entrada do usuário corresponder à intenção help
do sistema, o usuário será roteado para um fluxo de ajuda determinado por essa habilidade (e não a um fluxo determinado no nível do assistente digital).
Por exemplo, se um usuário estiver envolvido com uma habilidade e digitar help
, será fornecida a ajuda para essa habilidade, não para o assistente digital como um todo.
Para a intenção unresolvedIntent
do sistema, o comportamento é diferente. Se a entrada do usuário for resolvida como unresolvedIntent
(e não houver outras intenções correspondentes na habilidade), a entrada será tratada como intenção não resolvida no nível do assistente digital. No entanto, se unresolvedIntent
for apenas uma das intenções correspondentes dentro da habilidade, a habilidade identificará a resposta.
Esse comportamento é suportado pelo parâmetro de roteamento de Limite de Confiança de Intenção Integrada do Sistema. Se a pontuação de confiança de uma dessas intenções exceder esse limite, essa intenção será tratada como candidata à avaliação mais detalhada. Começando com a versão 20.12 da plataforma, o valor padrão para esse limite é .9 (90% de confiança). Para versões anteriores da plataforma, o padrão é .6.
Intenção exit
Se a entrada do usuário corresponder à intenção do sistema exit
, será solicitado que o usuário saia do fluxo atual ou da habilidade inteira, dependendo do contexto do usuário:
- Se o usuário estiver em um fluxo, a saída será aplicada ao fluxo.
- Se o usuário estiver em uma habilidade, mas não em um fluxo na habilidade, a saída se aplicará à habilidade.
A intenção
exit
não se aplica ao próprio assistente digital. Os usuários que não estiverem envolvidos em nenhuma habilidade serão meramente tratados como inativos.
Esse comportamento é suportado pelo parâmetro de roteamento de Limite de Confiança de Intenção Integrada do Sistema. Se a pontuação de confiança da intenção exit
exceder esse limite, essa intenção será tratada como candidata à avaliação mais detalhada. Começando com a versão 20.12 da plataforma, o valor padrão para esse limite é .9 (90% de confiança). Em versões anteriores da plataforma, o padrão é .6.
Grupos de Habilidades
Para domínios de habilidade que abrangem muitas funcionalidades, geralmente convém dividir essa funcionalidade em várias habilidades especializadas. Isso é útil especialmente de uma perspectiva de desenvolvimento. Diferentes equipes podem trabalhar em diferentes aspectos da funcionalidade e liberar as habilidades e suas atualizações nas prazos mais adequados.
Quando você tem várias habilidades em um domínio, é provável que os usuários precisem alternar entre elas com relativa frequência. Por exemplo, em uma única sessão em um assistente digital que contém várias habilidades relacionadas a RH, um usuário pode fazer solicitações relacionadas a habilidades para remuneração, informações pessoais e férias.
Para otimizar o comportamento de roteamento entre habilidades relacionadas, você pode definir um grupo de habilidades. Em um assistente digital, todas as habilidades de um grupo são tratadas como habilidade lógica única. Como resultado, todas as habilidades do grupo são consideradas parte do contexto atual, de modo que todas as suas intenções são ponderadas igualmente durante a resolução da intenção.
Contexto do Grupo versus Contexto da Habilidade
Quando você tem grupos de habilidades no seu assistente digital, o mecanismo de roteamento controla os contextos da habilidade e do grupo.
O mecanismo de roteamento alterna o contexto da habilidade dentro de um grupo se ele determina que outra habilidade do grupo é mais adequada para lidar com a solicitação do usuário. Essa determinação se baseia na classificação de habilidades do grupo, no modelo de roteamento de habilidades candidatas.
Se a pontuação de confiança da habilidade candidata principal do grupo for menos de 5% a mais do que a da habilidade atual, o contexto de habilidade no grupo não será alterado.
Ao usar o testador de roteamento, você pode verificar a seção Regras da guia Roteamento para monitorar quando qualquer alteração de contexto da habilidade ocorrer dentro de um grupo.
Delineando Grupos de Habilidades
Cada grupo de habilidades deve ser um conjunto de habilidades dentro do mesmo domínio que tem um parentesco linguístico. As habilidades do grupo devem ser divididas por função.
Por exemplo, pode fazer sentido montar habilidades para Benefícios, Remuneração, Informações Pessoais e Admissão em um grupo de habilidades do HCM. As habilidades para Oportunidades e Contas podem pertencer a um grupo de habilidades de Vendas.
Nomeando Grupos de Habilidades
Para organizar melhor seus grupos de habilidades e impedir colisões de nomes, recomendamos que você use o padrão <company name>.<domain>
para os nomes de seus grupos de habilidades.
Por exemplo, você pode criar um grupo chamado acme.hcm
para as seguintes habilidades do HCM para uma corporação hipotética Acme.
- Benefícios
- Remuneração
- Ausências
- Informações Pessoais
- Admissão
Da mesma forma, se a hipotética Acme também tiver as seguintes habilidades que estão no domínio de vendas, você poderá usar acme.sales
como grupo de habilidades:
- Oportunidades
- Contas
Habilidades Comuns e Grupos de Habilidades
Se você tiver habilidades comuns para funções como ajuda ou tratamento de conversa casual, provavelmente não vai querer tratá-las como outro grupo de habilidades, já que elas podem ser chamadas a qualquer momento na conversa, independentemente do grupo de habilidades com o qual o usuário está interagindo principalmente. E, uma vez chamada, você vai querer garantir que o usuário não fique preso nessas habilidades comuns.
Para garantir que outros grupos de habilidades tenham o mesmo peso de uma habilidade comum após uma troca com a habilidade comum ser finalizada, você poderá incluir a habilidade comum em um grupo de grupos. Você faz isso incluindo o asterisco (*
) no nome do grupo da habilidade comum. Por exemplo :
- Se você usar
acme.*
como nome do grupo de habilidades, todas as habilidades nos gruposacme.hcm
eacme.sales
serão incluídas, mas nenhuma habilidade em um grupo chamadohooli.hcm
será incluída. - Se você usar
*
como nome do grupo de habilidades, todos os grupos serão incluídos (embora não seja qualquer habilidade que não será designada a um grupo).
Quando um usuário navega de uma habilidade em um grupo simples (um grupo que não tem um asterisco no nome) para uma habilidade com asterisco no nome do grupo, o contexto do grupo permanecerá o mesmo de antes da navegação para essa habilidade. Por exemplo, se uma conversa mudar de uma habilidade no grupo acme.hcm
para uma habilidade no grupo acme.*
, o contexto do grupo permanecerá acme.hcm
.
Exemplos: Detecção de Contexto nos Grupos de Habilidades
Aqui estão alguns exemplos de como o roteamento dentro e entre esses grupos funcionaria:
- Um usuário pergunta: "A quais benefícios eu tenho direito?" O contexto da habilidade é Benefícios e o contexto do grupo é
acme.hcm
. Em seguida, o usuário pergunta: "Qual é meu salário?" O contexto da habilidade é alterado para Remuneração e o contexto do grupo permaneceacme.hcm
. - O contexto atual de um usuário é a habilidade Benefícios, o que significa que o contexto do grupo atual é
acme.hcm
. O usuário pergunta: "Quais oportunidades de vendas existem?" Essa solicitação está fora do domínio não apenas da habilidade atual, mas de todas as habilidades do grupo HCM (embora "oportunidades" ofereça uma correspondência potencial para a habilidade Admissão). O usuário é roteado para a correspondência principal, Oportunidades, que está no contexto do grupoacme.sales
.
Exemplo: Detecção de Contexto entre Grupos de Habilidades
Veja um exemplo de detecção de contexto para roteamento entre grupos de habilidades:
-
Um usuário digita "quais são meus benefícios", que chama a habilidade Benefícios que faz parte do grupo
acme.hcm
.O contexto do usuário é a habilidade Benefícios e o grupo
acme.hcm
. -
O usuário digita "Conte-me uma piada", que chama a habilidade genérica ChitChat designada ao grupo
acme.*
.O usuário agora está no contexto da habilidade ChitChat. O contexto do grupo agora é qualquer grupo que corresponda a
acme.*
. Isso incluiacme.hcm
(que inclui a habilidade Benefícios chamada anteriormente) e tambémacme.sales
, que é feito das habilidades Oportunidades e Contas. -
O usuário pergunta "quais são meus benefícios?" e continua com "Tenho outra pergunta".
O usuário está no contexto
acme.hcm
porque estava anteriormente nesse contexto por causa de uma pergunta sobre benefícios, mas agora foi encaminhado para a intenção misc.another.question na habilidade Diversos, que é membro do grupoacme.*
.Quando um usuário navega até uma habilidade pertencente a um nome de grupo que inclui o asterisco (
*
), o contexto do grupo de usuários permanece o mesmo (comoacme.hcm
neste exemplo) de antes do encaminhamento para a habilidade que pertence a um grupo*
. - O usuário está atualmente no contexto da habilidade chamada Diversos, que fornece funções comuns. Ela pertence ao grupo
acme.*
, o que significa que o contexto do grupo atual do usuário é todos os grupos acme (acme.sales
eacme.hcm
). O contexto da habilidade atual é Diversos. O usuário digita "Para quais benefícios eu me qualifico?" O contexto da habilidade atual muda para Benefícios, que pertence ao grupoacme.hcm
.
Adicionar Grupos de Habilidades
Você pode definir a qual grupo uma habilidade pertence na própria habilidade e/ou em um assistente digital que contém o grupo.
Definir o Grupo de Habilidades na Habilidade
Para definir um grupo para uma habilidade:
-
Clique em
para abrir o menu lateral, selecione Desenvolvimento > Habilidades e abra sua habilidade.
-
Na navegação esquerda da habilidade, clique em
e selecione a guia Assistente Digital.
- Digite um nome de grupo no campo Grupo.
Depois que você adicionar a habilidade a um assistente digital, qualquer outra habilidade no assistente digital com esse nome será considerada parte do mesmo grupo de habilidades.
Definir Grupos de Habilidades no Assistente Digital
Se a habilidade já tiver sido adicionada a um assistente digital, você poderá definir o grupo (ou substituir o grupo designado nas definições da habilidade) no assistente digital. Para fazer isso:
-
Clique em
para abrir o menu lateral, selecione Desenvolvimento > Assistentes Digitais e abra seu assistente digital.
-
Na navegação esquerda do assistente digital, clique em
, selecione a habilidade e a guia Geral.
- Digite um nome de grupo no campo Grupo.
Fixação de Contexto
Se a entrada do usuário incluir uma chamada explícita para uma habilidade, mas nenhuma declaração relacionada à intenção, o roteador "fixará" a conversa na habilidade para a próxima parte da entrada do usuário. Isso significa a suposição de que a próxima declaração esteja relacionada a essa habilidade, de modo que o roteador não considere qualquer intenção de outras habilidades.
Se o usuário então digitar algo que não tenha relação com essa habilidade, o roteador tratará como intenção não resolvida dentro da habilidade, mesmo que ela corresponda bem a uma intenção de outra habilidade. (A intenção exit
é uma exceção. Ela é sempre levada em consideração.) Depois disso, ela remove a fixação. Portanto, se o usuário repetir essa entrada ou informar algo não relacionado ao contexto fixado, todos os fluxos serão novamente levados em consideração.
Considere este exemplo de como funciona quando o usuário se comporta como esperado:
-
O usuário digita “Ir para a Habilidade Pizza”, que é uma chamada explícita da Habilidade Pizza. (A inclusão do nome da habilidade na declaração a torna uma chamada explícita.)
Nesse ponto, a conversa é fixada na Habilidade Pizza, o que significa que o assistente digital só vai procurar correspondências na Habilidade Pizza.
-
O usuário então digita “I want to place an order”.
O assistente digital encontra uma correspondência para a intenção OrderPizza na Habilidade Pizza e inicia o fluxo para pedir uma pizza.
Nesse ponto, a fixação é removida.
E aqui está um exemplo de como deve funcionar quando o usuário proceder de maneira menos esperada:
-
O usuário digita “Ir para a Habilidade Pizza”, que é uma chamada explícita da Habilidade Pizza.
Nesse ponto, a conversa é fixada na Habilidade Pizza.
-
Ele então digita “transfer money”.
Essa entrada não corresponde a item algum da Habilidade Pizza, de modo que o roteador a trata como intenção não resolvida na Habilidade Pizza (e, dependendo da forma como o fluxo de
unresolvedIntent
foi projetado, o usuário é solicitado a esclarecer). As intenções de outras habilidades (como a Habilidade Financeira) são ignoradas, mesmo que forneçam correspondências adequadas.A fixação da Habilidade Pizza é removida.
-
O usuário então repete sua solicitação de transferência de dinheiro.
Uma correspondência é encontrada na Habilidade Financeira e o fluxo de transferência de dinheiro é iniciado.
Margem de Ganho e Considerar Tudo
Para ajudar a gerenciar casos em que a entrada do usuário corresponde bem a várias habilidades candidatas, você pode ajustar os seguintes parâmetros de roteamento:
-
Margem de Ganho de Confiança: A diferença máxima entre a pontuação de confiança da habilidade candidata principal e as pontuações de confiança de qualquer habilidade candidata de classificação inferior (que também exceda o limite de confiança) para que a habilidade candidata de classificação inferior seja considerada. As intenções incorporadas (ajuda, sair e unresolvedIntent) do assistente digital também são consideradas.
Por exemplo, se essa opção for definida como 10% (.10) e a habilidade candidata principal tiver uma pontuação de confiança de 60%, todas as outras habilidades que tiverem pontuações de confiança entre 50% e 60% também serão consideradas.
-
Limite para Considerar Tudo: A pontuação de confiança mínima necessária para considerar todas as intenções e fluxos correspondentes. Esse valor também tem precedência sobre a margem de ganho. (Se tivermos essa confiança alta, não poderemos saber ao certo qual fluxo o usuário deseja usar.)
Por exemplo, se for definido como 70% (.70) e você tiver habilidades candidatas com pontuações de confiança de 71% e 90%, as habilidades candidatas serão consideradas, independentemente do valor do parâmetro Margem de Ganho de Confiança.
Interrupções
Os assistentes digitais são projetados para tratar não sequenciadores, que são casos em que um usuário fornece informações que não estão relacionadas diretamente com a resposta mais recente do assistente digital. Por exemplo, se um usuário estiver no meio de um pedido de pizza, poderá perguntar repentinamente sobre o saldo da sua conta bancária para ter certeza de que pode pagar pela pizza. Os assistentes digitais podem tratar as transições para outros fluxos e orientar o usuário de volta para o fluxo original.
-
Antes de tomar qualquer decisão de roteamento, os assistentes digitais sempre atendem às:
-
tentativas do usuário de sair do fluxo
-
chamadas explícitas de outras habilidades
Se a pontuação de confiança para a intenção de saída do sistema ou a chamada explícita de outra habilidade atender ao limite apropriado, o assistente digital imediatamente roteará novamente para a intenção correspondente.
-
-
Se o usuário não tentar sair ou explicitamente chamar outra habilidade, mas o estado atual não conseguir resolver a intenção do usuário, o assistente digital reavaliará a entrada do usuário com relação a todas as habilidades e, em seguida, roteará novamente para a habilidade e intenção apropriadas.
Isso pode acontecer por causa de:
-
Entrada inválida para um componente.
Para obter informações sobre como a entrada é validada para componentes incorporados, consulte Validação de Mensagens do Usuário.
Para obter informações sobre como a entrada é validada para componentes personalizados, consulte Garantir que o Componente Funcione em Assistentes Digitais.
-
(Para habilidades que têm fluxos projetados no modo YAML) uma transição explícita para o componente
System.Intent
.
-
Aplicar Chamadas ao Componente System.Intent
de uma Habilidade
Interrupções no fluxo podem ser causadas por um usuário que precisa repentinamente ir para outro fluxo na mesma habilidade ou para outra habilidade completamente diferente. Em habilidades baseadas em YAML, para suportar interrupções em que o usuário precisa ir para uma habilidade separada, por padrão, os assistentes digitais interceptam chamadas feitas ao componente System.Intent
da habilidade antes do fim do fluxo atual (ou seja, antes de uma transição return
ser chamada no fluxo).
Por exemplo, neste código do fluxo de caixas de diálogo de uma habilidade, existem ações que correspondem a botões para pedir pizza e macarrão. Mas também há uma ação textReceived: Intent
para tratar o caso de um usuário digitar uma mensagem, em vez de clicar em um dos botões.
ShowMenu:
component: System.CommonResponse
properties:
metadata: ...
processUserMessage: true
transitions:
actions:
pizza: "OrderPizza"
pasta: "OrderPasta"
textReceived: Intent
Se essa habilidade estiver sendo executada sozinha (e não em um assistente digital) e um usuário digitar texto, a habilidade chamará System.Intent
para avaliar a entrada do usuário e fornecer uma resposta apropriada. No entanto, em um assistente digital, as intenções de todas as habilidades do assistente digital são consideradas na avaliação (por padrão).
Se você tiver um caso em que não quer que o assistente digital intercepte essas chamadas para System.Intent
, defina a propriedade daIntercept
do componente System.Intent
como "never"
, ou seja:
daIntercept: "never"
Esse só se aplica a fluxos de caixas de diálogo projetados no modo YAML (já que o Designer de Fluxo Visual não tem um equivalente ao componente System.Intent
).
Se você quiser que o valor da propriedade daIntercept
dependa do estado da conversa, poderá configurar uma variável no fluxo de caixas de diálogo. Por exemplo, você pode definir o valor da propriedade como ${daInterceptSetting.value}
, em que daInterceptSetting
é uma variável que você definiu no fluxo de caixas de diálogo e na qual ela recebe um valor ("always"
ou "never"
) dependendo do curso do fluxo do usuário pela conversa.
Rotear Diretamente de uma Habilidade para Outra
É possível projetar o fluxo de caixas de diálogo de uma habilidade para chamar outra habilidade diretamente no assistente digital. Por exemplo, uma habilidade de pedido de pizza pode ter um botão que permite a um usuário verificar seu saldo bancário antes de concluir um pedido.
Se um usuário selecionar uma opção em uma habilidade que leve a outra habilidade, o assistente digital fornecerá o roteamento para essa segunda habilidade e o roteamento de volta para a habilidade original (depois que o fluxo na segunda habilidade for concluído).
Consulte Call a Skill from Another Skill from a YAML Dialog Flow.
Suprimir o Prompt de Saída
Quando a intenção exit
for detectada, o usuário geralmente deverá confirmar o desejo de sair.
Se você deseja permitir que o usuário saia sem um prompt de confirmação quando a pontuação de confiança para a intenção de saída atingir um determinado limite, você pode fazer isso alterando o valor do parâmetro Limite de Confiança do Prompt de Saída. (Por padrão, esse parâmetro é definido como 1.01 (101% de confiança), o que significa que um prompt de saída sempre será mostrado.)
Parâmetros de Roteamento
Dependendo da composição de habilidades (e suas intenções) no seu assistente digital, pode ser necessário ajustar os valores dos parâmetros de roteamento do assistente digital para controlar melhor como o seu assistente digital responde à entrada do usuário.
Todos os parâmetros de roteamento têm valores de 0 (0% de confiança) a 1 (100% de confiança).
Veja aqui um resumo dos parâmetros de roteamento do assistente digital:
- Limite de Confiança de Intenção Integrada do Sistema: A pontuação mínima de confiança necessária para corresponder a intenções integradas do sistema, como help e exit. Valor padrão para a plataforma versão 20.12 e superior: 0.9. Valor padrão para a plataforma versão 20.09 e inferior: 0.6.
Observação
Se você tiver um assistente digital baseado na versão 20.09 ou anterior da plataforma e tiver criado uma nova versão ou clone desse assistente digital na versão 20.12 ou superior da plataforma, o valor desse parâmetro será atualizado para 0.9 no novo assistente digital, mesmo que você tenha modificado o valor no assistente digital base. - Limite de Confiança de Habilidades Candidatas: A pontuação de confiança mínima necessária para corresponder a uma habilidade candidata. Valor padrão: 0.4
-
Margem de Ganho de Confiança: A diferença máxima entre a pontuação de confiança da habilidade candidata principal e as pontuações de confiança de qualquer habilidade candidata de classificação inferior (que também exceda o limite de confiança) para que as habilidades candidatas de classificação inferior sejam consideradas. As intenções incorporadas (ajuda, sair e unresolvedIntent) do assistente digital também são consideradas. Valor padrão: 0.1
Há um parâmetro de Margem de Ganho de Confiança separado para habilidades que funcionam da mesma maneira, exceto que se aplica às pontuações de confiança das intenções dentro da habilidade.
-
Limite para Considerar Tudo: A pontuação de confiança mínima necessária para considerar todas as intenções e fluxos correspondentes. Esse valor também tem precedência sobre a margem de ganho. (Se tivermos essa confiança alta, não poderemos saber ao certo qual fluxo o usuário deseja usar.) Valor padrão: 0.8
-
Considerar Somente Limite de Contexto Atual: A pontuação de confiança mínima necessária ao considerar somente a habilidade atual e a intenção de saída do assistente digital. Se a entrada do usuário corresponder a uma intenção acima desse limite, outras intenções não serão consideradas, mesmo que elas atinjam o limite de confiança.
Essa configuração é útil para impedir prompts de desambiguação de entrada do usuário que correspondam bem às intenções de várias habilidades. Por exemplo, a entrada do usuário “cancelar pedido” pode corresponder bem às intenções de várias habilidades de entrega de alimentos. Valor padrão: 0.8
-
Limite de Confiança da Chamada Explícita: A pontuação de confiança mínima necessária para corresponder à entrada que contém a chamada explícita da habilidade. Valor padrão: 0.8
-
Limite de Confiança do Prompt de Saída: A pontuação de confiança mínima necessária para sair sem solicitar confirmação do usuário. O valor padrão 1.01, que é nominalmente definido fora do intervalo de 0 a 1 para limites de confiança, garante que um prompt de confirmação sempre seja exibido. Se você quiser que o usuário possa sair sem um prompt de confirmação quando a pontuação de confiança para sair for alta, diminua-a para um limite com o qual você esteja confortável. Valor padrão: 1.01
Além dos parâmetros de roteamento do assistente digital, há também os seguintes parâmetros de roteamento para habilidades.
- Limite de Confiança: A pontuação de confiança mínima necessária para fazer a correspondência da intenção de uma habilidade com a entrada do usuário. Se não houver correspondência, a ação de transição será definida como
unresolvedIntent
. Valor padrão: 0.7 - Margem de Ganho de Confiança: Somente a intenção superior que excede o limite de confiança é selecionada se for a intenção de classificação mais alta que excede o limite de confiança. Se outras intenções que excederem o limite de confiança tiverem pontuações dentro da intenção superior em menos que a margem de ganho, essas intenções também serão apresentadas ao usuário. Valor padrão: 0.1
Ajustar Parâmetros do Roteamento
Para acessar os parâmetros de roteamento de um assistente digital:
-
Clique em
para abrir o menu lateral, selecione Desenvolvimento > Assistentes Digitais e abra seu assistente digital.
-
Na navegação esquerda do assistente digital, clique em
e selecione a guia Configuração.
Para acessar os parâmetros de roteamento de uma habilidade:
-
Clique em
para abrir o menu lateral, selecione Desenvolvimento > Habilidades e abra sua habilidade.
-
Na navegação esquerda da habilidade, clique em
e selecione a guia Configuração.
Consulte Ilustrações de Comportamento de Roteamento para obter exemplos de uso do testador para diagnosticar o comportamento de roteamento. Além disso, o tutorial Introdução ao Roteamento em Assistentes Digitais também fornece alguns exemplos desses parâmetros em ação.
A partir da Versão 21.04, as chaves de pacotes de recursos são geradas automaticamente para propriedades com valores de texto. Você pode editar os valores dessas chaves na página Pacotes de Recursos do assistente digital. Na navegação esquerda do assistente digital, clique em

O Testador de Roteamento
Ao testar um assistente digital, você pode abrir a guia Roteamento no testador para ver:
-
As intenções que correspondem à declaração que você digitou no testador.
-
Uma visão geral das etapas de roteamento executadas.
-
Uma lista de regras que foram aplicadas ao roteamento.
-
Uma lista de quaisquer intenções que foram correspondidas com suas pontuações de confiança.
Além disso, os valores das várias definições de limite de confiança são mostrados para que você possa compará-los com as pontuações de confiança das intenções.
Para usar o testador de roteamento para um assistente digital:
-
Abra o assistente digital que você deseja testar.
-
Na parte superior da página perto dos botões Validar e Treinar, clique em
.
-
Na lista drop-down Canal, selecione o canal no qual você planeja implantar o assistente digital.
Ao selecionar um canal, você também pode ver quaisquer limitações que esse canal possa ter.
-
No campo de texto da parte inferior do testador, digite um texto de teste.
-
No testador, clique na guia Roteamento.
Veja a aparência da guia Roteamento para o assistente digital de amostra ODA_Pizza_Financial_Retail depois de digitar “qual o saldo da minha conta” no testador.

Descrição da ilustração what-is-my-balance-fullscreen.png
Ilustrações do Comportamento de Roteamento
Veja aqui alguns exemplos que, com a assistência do testador, ilustram como o roteamento funciona em assistentes digitais.
Exemplo: Rotear para Fluxo
Veja um exemplo bem padrão do assistente digital avaliando a entrada do usuário e roteando a conversa para um fluxo específico.
Primeiro, veja a entrada do usuário e a resposta inicial do assistente digital:

Descrição da ilustração route-flow1.png
Nesse caso, a resposta do assistente digital “How old are you?” indica o início do fluxo OrderPizza da Habilidade Pizza (que exige que o usuário tenha 18 anos ou mais para pedir uma pizza).
Veja a avaliação da intenção que leva a essa resposta:

Como você pode ver, o assistente digital descobriu que houve uma correspondência forte para a Habilidade Pizza (100%) e uma fraca para a Habilidade Varejo (21,56%).
-
Não houve correspondências para as intenções do sistema.
-
Houve uma correspondência forte para a Habilidade Pizza (100%) e uma fraca para a Habilidade Varejo (21,56%).
-
Como a correspondência para a Habilidade Pizza excedeu o limite de confiança das habilidades candidatas (40%), o assistente digital avaliou os fluxos na Habilidade Pizza.
Você pode ajustar o valor do Limite de Confiança de Habilidades Candidatas nas definições de configuração do assistente digital. Para isso, clique em
e selecione a guia Configuração.
-
Na Habilidade Pizza, foi encontrada uma correspondência (OrderPizza).
-
Como essa correspondência excedeu o limite de confiança dos fluxos da Habilidade Pizza (e não houve outras correspondências de qualificação a serem consideradas), o fluxo OrderPizza foi iniciado.
Você pode definir o limite de confiança da habilidade nas definições do assistente digital da habilidade. Para isso, abra a habilidade, clique em
e selecione a guia Assistente Digital.
Exemplo: Desambiguando Intenções de Habilidade
Veja um exemplo simples que mostra quando o usuário precisa ser solicitado a esclarecer sua intenção.
Primeiro, veja a conversa:

Descrição da ilustração disambiguation1.png
Como é possível ver, o assistente digital não sabe o que o usuário deseja fazer; assim, ele fornece um prompt solicitando que o usuário escolha entre algumas opções (desambiguar).
Na seção Chamadas de Intenções do testador, você pode ver os dados que fizeram o assistente digital fornecer esse prompt. As Habilidades Fin e Varejo candidatas tiveram pontuações altas (100%). E então, para cada uma delas, o roteador identificou um fluxo candidato que também teve pontuação alta (também 100%).
Como os fluxos candidatos GiftCardBalance e Saldos excedem o limite de confiança e, como a diferença entre suas pontuações é menor que o valor da Margem de Ganho de Confiança (10%), o assistente digital solicita que o usuário escolha entre essas intenções.
Exemplo: Chamada Explícita
Este é um exemplo que mostra onde o uso de chamada explícita afeta o comportamento de roteamento substituindo outras considerações, como o contexto atual.
Veja a conversa:
Nesse caso, o usuário começou a usar o assistente digital para verificar seu saldo na Habilidade Varejo, mas depois decide solicitar o saldo do seu vale presente na Habilidade Varejo. Como ele usa chamada explícita (feita pelo nome da chamada, que também é Retail Skill
, e que é definido na página da habilidade no assistente digital), o roteador dá preferência à Habilidade Varejo ao tentar resolver a intenção, mesmo que o usuário esteja no contexto da Habilidade Financeira.
Veja onde o testador chama a regra de roteamento:
E veja como as chamadas de intenções são tratadas:
Como a imagem mostra, há uma correspondência para o contexto atual, mas é ignorada. A correspondência para a chamada explícita do GiftCardBalance (100%) da Habilidade Varejo vence.
Exemplo: Detecção de Contexto
Veja um exemplo de como o testador ilustra o comportamento de roteamento com detecção de contexto.
Como você pode ver, o usuário começa com a pergunta "what's my balance", percorre um prompt para desfazer ambiguidades entre as habilidades Fin e Varejo e, por fim, obtém o saldo da conta corrente. Em seguida, ele digita "what's my balance" novamente, mas dessa vez não precisa navegar por nenhum prompt de desambiguação. As informações na guia Roteamento ajudam a explicar o motivo.
Na seção Regras da guia, você verá o seguinte:

Assim, mesmo que haja intenções correspondentes da habilidade Varejo, elas serão ignoradas. A seção Chamadas de Intenções mostra todas as intenções correspondentes, mas a entrada de “Contexto Atual”, que contém apenas a intenção Saldos da Habilidade Fin, é decisiva.

Descrição da ilustração context-awareness-current-context.png
Você pode ajustar o valor do Limite Considerar Somente Contexto Atual nas definições de configuração do assistente digital. Para isso, clique em e selecione a guia Configuração.
Tutorial: Roteamento do Assistente Digital
Você pode obter uma visão prática do roteamento do assistente digital percorrendo este tutorial: Introdução ao Roteamento em Assistentes Digitais.
Casos de Teste para Assistentes Digitais
Você pode criar conjuntos de testes e compilá-los usando o recurso Conjuntos de Testes no Testador de Conversas. Você pode criar os casos de teste registrando conversas no testador ou gravando-os em JSON.
Esses casos de teste permanecem como parte dos metadados do assistente digital e, portanto, persistem nas versões. Na verdade, os assistentes digitais que você obtém do Armazenamento de Habilidades podem muito bem ter um conjunto de tais testes que você pode executar para garantir que quaisquer modificações feitas por você não desfaçam nenhuma das funções básicas do assistente digital.
O recurso Suítes de Teste funciona da mesma forma para assistentes digitais e habilidades. Consulte Suítes de Teste e Casos de Teste para obter detalhes.
Testar Roteamento com o Testador de Declaração
O Testador de Declaração (acessado clicando em Testar Declarações na página Habilidades) permite testar a detecção de contexto do assistente digital e o roteamento digitando declarações de teste. Assim como o teste de declaração no nível da habilidade, você pode usar o Testador de Declaração para testes one-off ou pode usá-lo para criar casos de teste que persistam entre as versões do assistente digital.
No contexto do teste de declaração para um assistente digital, seu objetivo não é testar todo um fluxo de conversas. (Você usa o Testador de Conversa para isso.) Em vez disso, você está testando fragmentos de uma conversa. Especificamente, você está testando se o assistente digital roteia para a habilidade e a intenção corretas e se ele é capaz de fazer a transição corretamente de um contexto inicial.
Testes Rápidos
- Selecione a habilidade para o contexto inicial ou selecione Qualquer Habilidade para testes sem contexto de habilidade específico (um teste emulando uma visita inicial ao assistente digital, por exemplo).
- Se as habilidades registradas no assistente digital suportarem vários idiomas nativos, escolha o idioma de teste.
- Digite uma declaração de teste.
- Clique em Testar e, em seguida, verifique os resultados do roteamento. Em vez de descartar esse teste, você pode adicioná-lo como caso de teste clicando primeiro em Salvar como Caso de Teste e depois escolhendo uma suíte de testes. Em seguida, você pode acessar e editar o caso de teste na página Casos de Teste (acessado clicando em Ir para Casos de Teste).
Casos de Teste
Você pode criar um caso de teste de declaração do assistente digital da mesma forma que cria um caso de teste no nível da habilidade: salvando um teste rápido como caso de teste no Testador de Declaração, usando a caixa de diálogo Novo Caso de Teste, que você abre clicando em + Caso de Teste, ou importando um CSV. No entanto, como os casos de teste do assistente digital focam no roteamento de habilidade e nas transições de contexto, bem como nas intenções esperadas, eles incluem valores para habilidade esperada e contexto inicial (uma habilidade dentro do assistente digital).
Criar uma execução de teste de casos do mesmo modo é o mesmo que criar um caso de teste de nível de habilidade: você pode filtrar os casos do teste que deseja incluir em uma execução e, após a conclusão da execução, revise os resultados e a análise de distribuição.
Criar um Caso de Teste de Roteamento
- Clique em + Caso de Teste.
- Preencha a caixa de diálogo Novo Caso de Teste:
- Se necessário, desative o caso de teste.
- Digite a declaração de teste.
- Selecione a suíte de teste.
- Digite a habilidade esperada.
- Selecione a intenção esperada.
- Se as habilidades registradas no assistente digital forem multilíngues, você poderá selecionar a tag de idioma e o idioma esperado.
- Selecione o contexto inicial: selecione uma habilidade ou escolha Qualquer Habilidade para nenhum contexto.
- Clique em Adicionar à Suíte. É possível editar ou excluir o caso de teste na página Casos de Teste. Você pode testar a detecção de contexto combinando o contexto inicial com a habilidade esperada. Por meio dessas combinações, você pode descobrir se os usuários têm probabilidade de ficar presos em uma habilidade porque o contexto do usuário não foi alterado mesmo após uma solicitação para outra habilidade. Se você quiser descobrir como seu assistente digital roteia uma solicitação quando nenhum contexto foi definido, escolha Qualquer Habilidade.
- Clique em Adicionar à Suíte.
Adicionar Casos de Teste para Intenções do Sistema
Se você treinou as intenções do sistema com declarações adicionais, poderá testar a correspondência de intenções criando casos de teste específicos de intenção do sistema. Se um caso de teste passar, isso significa que o roteamento de contexto com base na intenção do sistema foi preservado à luz do treinamento atualizado.
- Escolha o assistente digital para a Habilidade Esperada.
- Escolha uma das intenções do sistema (saída, ajuda, unresolvedIntent) para Intenção Esperada.
Observação
Você não pode testar a intenção do sistema de Boas-vindas. - Para verificar o roteamento de intenção do sistema dentro de um contexto de habilidade específico, escolha uma habilidade no menu Roteamento Inicial.
Importar Casos de Teste para Suítes de Teste do Digital Assistant
initialContent
e expectedSkill
:
testSuite
– Se você não nomear uma suíte de teste, os casos de teste serão adicionados à Suíte de Teste Padrão.utterance
– Um exemplo de declaração (obrigatório).expectedIntent
– A intenção de correspondência (obrigatória).enabled
–TRUE
inclui o caso de teste na execução de teste.FALSE
o exclui.languageTag
– OpcionalexpectedLanguageTag
– OpcionalinitialContext
– O nome de uma habilidade ou Qualquer Habilidade para testar a declaração sem contexto de roteamento.expectedSkill
– Deixar esse campo em branco equivale a escolher unresolvedSkill.