Botframework-solutions: Incapaz de finalizar adequadamente a habilidade quando o usuário cancela quando a habilidade é iniciada a partir do sub diálogo em VA

Criado em 1 jun. 2020  ·  16Comentários  ·  Fonte: microsoft/botframework-solutions

Qual projeto é afetado?

Assistente virtual

Em que idioma está isso?

TypeScript

O que acontece?

Quando você inicia uma caixa de diálogo, em seguida, inicia uma habilidade a partir dessa caixa de diálogo, ela não é registrada corretamente na pilha. Quando o usuário utiliza a interrupção "cancelar" a habilidade nunca recebe o fim da conversação para zerar.

Quais são as etapas para reproduzir esse problema?

Crie um VA e habilidade. inicie a habilidade a partir do "diálogo de embarque do VA. Tente cancelar a habilidade usando a interrupção e verifique se a habilidade recebe o fim da conversa

O que você esperava que acontecesse?

Você pode compartilhar algum registro, saída de erro, etc.?

Pilha de diálogo da habilidade iniciada em um sub diálogo
[{id: 'MainDialog',
estado: {options: {}, values: [Object], stepIndex: 1}},
{id: 'TextPrompt', estado: {opções: [Objeto], estado: {}}},
{id: 'TransferDialog2',
estado: {diálogos: [Objeto]},
versão: '-43530585'}]

pilha de diálogo de habilidade iniciada a partir do diálogo principal
[{id: 'MainDialog',
estado: {opções: {}, valores: [Objeto], stepIndex: 2}},
{id: 'dlpskill', estado: {}}]

Alguma captura de tela ou contexto adicional?

Needs Triage Bug

Comentários muito úteis

Todos 16 comentários

Obrigado @ tomSauret847 por comunicar este problema! Assim que tivermos alguma atualização, entraremos em contato com você 😊.

Olá @ tomSauret847! Não tivemos sucesso ao tentar reproduzir este problema.

Temos algumas perguntas sobre suas etapas de reprodução.

  • Você está usando o [email protected] ?
  • Você está ativando a habilidade enviando o enunciado durante o onboardingDialog do VA?
  • Você atualizou o VA para encaminhar a intenção para a Habilidade? Em caso afirmativo, quais modificações você fez nele?
  • O que você quer dizer com TransferDialog2 ? É um sinônimo de onboardingDialog ?

Notamos que há uma validação no método interruptDialog do MainDialog do VA, que só muda para outra habilidade se o diálogo atual pertencer a uma habilidade.
No caso de onboardingDialog retorna falso, portanto, não sendo interrompido para iniciar a amostra de habilidade.

Este é o nosso ambiente:

Realizamos as seguintes etapas para reproduzir o problema:

  1. Implantar assistente virtual e habilidade
  2. Conecte o assistente virtual à habilidade
  3. Execute os dois bots no emulador de bot
  4. Envie a declaração de uma habilidade durante o VA onboardingDialog
  5. A habilidade não foi inicializada porque onboardingDialog não foi concluído

image

Obrigado!

Atualmente, temos nossa transferência de agente ao vivo definida como uma habilidade para ser capaz de escalar para um agente ao vivo se o bot não puder resolver o problema do cliente (TransferDialog2). Precisamos realizar algumas validações para garantir que o cliente seja transferido para a fila de bate-papo correta, e é por isso que incluímos isso em uma caixa de diálogo semelhante à caixa de diálogo de integração. Eu chamo a habilidade de transferência do agente com o seguinte código no transferDialog.

    const identifiedSkill: IEnhancedBotFrameworkSkill | undefined = this.skillsConfig.skills.get('agenttransfer');
    if (identifiedSkill !== undefined) {
        await this.activeSkillProperty.set(sc.context, identifiedSkill);
        return sc.beginDialog('agenttransfer', skillDialogArgs);

O VA iniciará a habilidade e encaminhará todas as mensagens do cliente para a habilidade, mas se o cliente acionar a interrupção "Cancelar diálogo", o VA não enviará o fim da conversa para a habilidade para que possamos limpar e encerrar a habilidade. Você reproduziu as etapas, mas não cancelou a habilidade em sua reprodução. É aí que está o nosso problema em poder receber o EOC na habilidade de limpar os recursos usados ​​e fechá-los.

Estou usando um TypeScript VA
Habilidade TypeScript
Eu atualizei ambos com base nas alterações que foram postadas no "próximo" branch do repo para garantir que estejam atualizados
A habilidade está sendo acionada e funcionando corretamente, ela só não recebe o EOC quando o cliente opta por cancelar todos os diálogos ativos.

Obrigado @ tomSauret847 por todas as informações 😊.
Continuaremos reproduzindo o problema e avisaremos você sobre qualquer atualização.

@ tomSauret847 , queremos confirmar com você que entendemos corretamente o problema.

Com base no que você disse em seu último comentário, trabalharemos na recriação do seguinte cenário:

  1. Criar uma amostra de assistente virtual
  2. Crie um exemplo de habilidade
  3. Modifique o onboardingDialog do VA para que ele chame a Amostra de Habilidade. Vamos basear nossas modificações no trecho compartilhado.
  4. Enviar cancelar uma vez que a amostra de habilidade tenha começado
  5. O cancelamento da Amostra de Habilidade deve falhar

É assim que entende o seu fluxo de trabalho.
image

Obrigado @VictorGrycuk Esse é o fluxo de trabalho correto do cenário que estamos implementando. Podemos fazer com que a habilidade funcione corretamente durante a conversa, mas quando o cliente cancelar, a habilidade não será redefinida, pois nunca recebe o Fim da conversa.

Esta página foi útil?
0 / 5 - 0 avaliações