Botframework-solutions: Impossible de terminer correctement la compétence lorsque l'utilisateur annule lorsque la compétence est démarrée à partir de la sous-boîte de dialogue dans VA

Créé le 1 juin 2020  ·  16Commentaires  ·  Source: microsoft/botframework-solutions

Quel projet est concerné ?

Assistant virtuel

C'est dans quelle langue ?

Manuscrit

Ce qui se produit?

Lorsque vous démarrez une boîte de dialogue, puis démarrez une compétence à partir de cette boîte de dialogue, elle n'est pas correctement enregistrée dans la pile. Lorsque l'utilisateur utilise l'interruption « annuler », la compétence ne reçoit jamais la fin de la conversation à réinitialiser.

Quelles sont les étapes pour reproduire ce problème ?

Créez un VA et une compétence. démarrez la compétence à partir de la boîte de dialogue d'embarquement du VA. Essayez d'annuler la compétence à l'aide de l'interruption et vérifiez si la compétence reçoit la fin de la conversation

Que vous attendiez-vous à ce qu'il se passe?

Pouvez-vous partager des journaux, des résultats d'erreur, etc. ?

Pile de dialogue de la compétence démarrée dans une sous-boîte de dialogue
[ { id : 'MainDialog',
état : { options : {}, valeurs : [Objet], stepIndex : 1 } },
{ id : 'TextPrompt', état : { options : [Objet], état : {} } },
{ id : 'TransferDialog2',
état : { dialogues : [Objet] },
version : '-43530585' } ]

pile de compétences de dialogue démarrée à partir de la boîte de dialogue principale
[ { id : 'MainDialog',
état : { options : {}, valeurs : [Objet], stepIndex : 2 } },
{ id : 'dlpskill', état : {} } ]

Des captures d'écran ou un contexte supplémentaire ?

Needs Triage Bug

Commentaire le plus utile

Tous les 16 commentaires

Merci @tomSauret847 d' avoir signalé ce problème ! Dès que nous aurons une mise à jour, nous reviendrons vers vous .

Salut @tomSauret847 ! Nous n'avons pas réussi à essayer de reproduire ce problème.

Nous avons quelques questions concernant vos étapes de reproduction.

  • Utilisez-vous le [email protected] ?
  • Déclenchez -vous la Skill en envoyant l'énoncé lors de l'
  • Avez-vous mis à jour le VA afin de transmettre l'intention à la Skill ? Si oui, quelles modifications avez-vous apportées ?
  • Que veux-tu dire par TransferDialog2 ? Est-ce un synonyme du onboardingDialog ?

Nous avons remarqué qu'il y a une validation dans la méthode interruptDialog du MainDialog du VA, qui ne bascule vers une autre Skill que si le dialogue actuel appartient à une Skill.
Dans le cas de onboardingDialog cela renvoie false, il n'est donc pas interrompu pour démarrer l'échantillon Skill.

Voici notre environnement :

Nous avons pris les mesures suivantes pour reproduire le problème :

  1. Déployer l'assistant virtuel et les compétences
  2. Connecter l'assistant virtuel à la compétence
  3. Exécutez les deux bots dans Bot Emulator
  4. Envoyer l'énoncé d'une compétence pendant le onboardingDialog du VA
  5. La compétence n'a pas été initialisée car le onboardingDialog n'était pas terminé

image

Merci!

Actuellement, nous avons défini notre transfert d'agent en direct comme une compétence pour pouvoir passer à un agent en direct si le bot ne peut pas résoudre le problème du client (TransferDialog2). Nous devons effectuer une validation pour nous assurer que le client est transféré vers la bonne file d'attente de discussion, c'est pourquoi nous l'avons intégré dans une boîte de dialogue similaire à la boîte de dialogue d'intégration. J'appelle la compétence agenttransfer avec le code suivant dans le 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);

Le VA démarrera la Skill et transmettra tous les messages des clients à la Skill, mais si le client déclenche l'interruption "Annuler la boîte de dialogue", le VA n'enverra pas la fin de la conversation à la Skill pour nous permettre de nettoyer et de mettre fin à la Skill. Vous avez reproduit les étapes mais n'avez pas annulé la compétence dans votre reproduction. C'est là que notre problème est de pouvoir recevoir l'EOC dans la compétence pour nettoyer les ressources utilisées et les fermer.

J'utilise un TypeScript VA
Compétence TypeScript
J'ai mis à jour les deux en fonction des modifications qui ont été publiées dans la branche "suivante" du référentiel pour m'assurer qu'elles sont à jour
La compétence est déclenchée et fonctionne correctement, elle ne reçoit tout simplement pas l'EOC lorsque le client choisit d'annuler toutes les boîtes de dialogue actives.

Merci @tomSauret847 pour toutes les informations 😊.
Nous continuerons à reproduire le problème et nous vous informerons de toute mise à jour.

@tomSauret847 , nous souhaitons vous confirmer que nous avons bien compris le problème.

Sur la base de ce que vous avez dit dans votre dernier commentaire, nous allons travailler à recréer le scénario suivant :

  1. Créer un exemple d'assistant virtuel
  2. Créer un exemple de compétence
  3. Modifiez le onboardingDialog du VA pour qu'il appelle l'exemple de compétence. Nous allons baser nos modifications sur l'extrait partagé.
  4. Envoyer annuler une fois que l'échantillon de compétence a commencé
  5. L'annulation de l'échantillon de compétence devrait échouer

C'est ainsi que l'on comprend que votre flux de travail est.
image

Merci @VictorGrycuk C'est le flux de travail correct du scénario que nous mettons en œuvre. Nous pouvons faire en sorte que la compétence fonctionne correctement pendant la conversation, mais lorsque le client annule, la compétence ne sera pas réinitialisée car elle ne reçoit jamais la fin de la conversation.

Cette page vous a été utile?
0 / 5 - 0 notes