Assistente virtual
TypeScript
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.
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
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: {}}]
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.
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:
onboardingDialog
onboardingDialog
não foi concluídoObrigado!
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:
onboardingDialog
do VA para que ele chame a Amostra de Habilidade. Vamos basear nossas modificações no trecho compartilhado.É assim que entende o seu fluxo de trabalho.
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.
Comentários muito úteis