Botframework-solutions: QnAMakerDialog n'est pas créé pour différentes langues

Créé le 29 juin 2020  ·  22Commentaires  ·  Source: microsoft/botframework-solutions

Quel projet est concerné ?

Assistant virtuel et compétences

C'est dans quelle langue ?

Manuscrit

Ce qui se produit?

Lorsqu'un QnAMakerDialog est créé avec une langue spécifique (ex. DE) résoudra toujours cette langue même si vous changez de langue ou qu'un autre utilisateur utilise une langue différente (ex EN).

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

Utilisateur 1 : Envoie un énoncé au bot ( DE );
Bot : Le Bot résout l'énoncé en tant qu'intention QnA et crée le nouveau QnADialog, avec le knowledgebaseId comme Id du dialogue :

`` private registerQnADialog(knowledgebaseId: string, cognitiveModels: ICognitiveModelSet, locale: string): void { const qnaEndpoint: QnAMakerEndpoint | undefined = cognitiveModels.qnaConfiguration.get(knowledgebaseId); if (qnaEndpoint == undefined){ throw new Error( Impossible de trouver la configuration de la base de connaissances QnA Maker avec l'id : ${ knowledgebaseId }.`);
}

    if (this.dialogs.find(knowledgebaseId) == undefined) {
        const qnaDialog: QnAMakerDialog = new QnAMakerDialog(
            qnaEndpoint.knowledgeBaseId,
            qnaEndpoint.endpointKey,
            // The following line is a workaround until the method getQnAClient of QnAMakerDialog is fixed
            // as per issue https://github.com/microsoft/botbuilder-js/issues/1885
            new URL(qnaEndpoint.host).hostname.split('.')[0],
            this.templateEngine.generateActivityForLocale('UnsupportedMessage', locale) as Activity,
            // Before, instead of 'undefined' a '0.3' value was used in the following line
            undefined,
            this.templateEngine.generateActivityForLocale('QnaMakerAdaptiveLearningCardTitle', locale).text,
            this.templateEngine.generateActivityForLocale('QnaMakerNoMatchText', locale).text
        );

        qnaDialog.id = knowledgebaseId;

        this.addDialog(qnaDialog);
    }
}

```

Bot : envoie la réponse QnA à l'utilisateur 1 dans les paramètres régionaux de l'utilisateur 1 (DE)
Utilisateur 2 : Envoie l'énoncé au bot ( EN );
Bot : Le Bot résout l'énoncé en tant qu'intention QnA (le même que l'utilisateur 1 a envoyé), aucun nouveau QnaMakerDialog n'est créé car un dialogue avec le même KnowledgebaseId existe déjà.
Bot : Le Bot relance le dialogue QnA (ajouté à partir de l'itération de l'utilisateur 1) et obtient la réponse de la base de connaissances (DE) du premier utilisateur ;
Bot : envoie un message à l'utilisateur 2 dans les paramètres régionaux de l'utilisateur 1.

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

Un autre QnAMakerDialog sera créé avec la bonne langue et le bon ID de base de connaissances.

Bot Services Kobuk bug customer-replied-to customer-reported in-progress

Commentaire le plus utile

Salut @Batta32 ,

merci pour votre soutien, on dirait que le problème a été résolu avec la nouvelle bibliothèque de solutions de bots que j'ai intégrée à partir de votre branche :) Avez-vous une estimation approximative de la date de sortie ?

Tous les 22 commentaires

Merci @tommyJimmy87. Dès que nous aurons une mise à jour concernant la mise en œuvre de l'injection de dépendances, nous vous répondrons !

Salut @tommyJimmy87 , nous avons créé le PR #3559 qui résout ce problème en incorporant l' injection de dépendances dans les bots.

Si vous êtes si gentil, pouvez-vous valider les modifications en suivant ces étapes de repro et en utilisant cette branche :

  1. Aller à la bibliothèque de solutions de
  2. Exécutez npm install pour installer les dépendances
  3. Exécutez npm run build pour compiler la solution
  4. Exécutez npm pack pour créer le tgz
  5. Accédez à l' exemple d'assistant virtuel
  6. Utilisez le tgz créé dans Virtual Assistant package.json comme suit :

    "bot-solutions": "CHEMIN VERS LES BOT-SOLUTIONS TGZ"

  7. Déployer l'assistant virtuel en plusieurs langues

  8. Suivez les étapes pour reproduire le scénario QnAMakerDialog vous avez mentionné

Enfin et surtout, comme cela a été mentionné, le PR contient les changements suivants :

  1. Implémentation de l'injection de dépendances (bibliothèque inversifyjs ) dans Virtual Assistant et Skill of TypeScript
  2. Mettre à jour les modèles

Nous serons attentifs à votre réponse 😊.

Salut @Batta32 ,

merci pour votre soutien, on dirait que le problème a été résolu avec la nouvelle bibliothèque de solutions de bots que j'ai intégrée à partir de votre branche :) Avez-vous une estimation approximative de la date de sortie ?

HI @Batta32 , je remarquais que lorsque j'obtenais une erreur : TypeError: Reflect.hasOwnMetadata is not a function .
Est-ce parce que vous n'avez pas migré les tests pour utiliser inversify ?

Merci @tommyJimmy87 ! Nous allons examiner cela et nous reviendrons vers vous dès que nous aurons une mise à jour à ce sujet 😊.

Salut @Batta32 , nous avons résolu ce problème en ajoutant cette importation au fichier js de la base de test : require('reflect-metadata');

Salut @tommyJimmy87 - nous n'avons pas pu reproduire le problème que vous avez mentionné concernant les tests unitaires.

Nous avons posé des questions :

  1. Utilisez-vous notre succursale pour valider ces changements ?
  2. Quel composant avez-vous le problème?
  3. Pouvez-vous partager les étapes de reproduction que vous avez suivies ?

C'est notre environnement :

  • Nous utilisons cette branche : feature/southworks/dependency-injection-implementation
  • Exemple d'assistant virtuel TypeScript
  • Exemple de compétence TypeScript

Nous avons pris les mesures suivantes pour reproduire le problème pour l'assistant virtuel et la compétence :

  1. Aller à la bibliothèque de solutions de
  2. Exécutez npm install pour installer les dépendances
  3. Exécutez npm run build pour compiler la solution
  4. Exécutez npm pack pour créer le .tgz
  5. Accédez à l' exemple d'assistant virtuel
  6. Utilisez le .tgz créé dans Virtual Assistant package.json comme suit :
  7. "bot-solutions": ""
  8. Exécutez npm install pour installer les dépendances
  9. Exécutez npm run build pour compiler la solution
  10. Exécutez npm run test pour compiler la solution
  11. Vérifier l'exécution du test

image

image

Salut @tommyJimmy87 - nous avons ajouté les modifications suggérées dans le PR #3559.

Nous avons mis à jour les bots Virtual Assistant & Skill en ajoutant les fichiers de tests d'importation suivants : require('reflect-metadata'); spécifiquement dans BotTestBase et SkillTestBase , afin d'éviter le problème que vous avez mentionné lié aux tests unitaires.

Vous pouvez suivre ces étapes pour tester les modifications apportées à l'assistant virtuel et à la compétence.

Merci,
Diégo.

Salut @Batta32 et @DiegoCardozo94 ,

J'ai une question générique, mais comme j'utilise déjà cette branche dans notre projet même si elle n'a pas été publiée, je la poserais ici.

Dans notre scénario, nous avons MS Teams comme seul canal, je vois que le TeamsActivityHandler est utilisé uniquement dans le VA et non dans l'échantillon de la compétence, n'est-ce pas ? Parce que peut-être à tort, j'étendais également la compétence TeamsActivityHandler et cela m'a conduit à un problème en particulier : en gros, la méthode endOfConversation n'est jamais appelée après un cancel dans le DefaultActivityHandler la compétence . Mais peut-être devrais-je simplement passer à l'extension ActivityHandler "normale" dans les compétences. Pourriez-vous m'aider ou plutôt me donner votre avis à ce sujet ?

Merci

Salut @tommyJimmy87 , le TeamsActivityHandler est dérivé de ActivityHandler qui ajoute la prise en charge des événements et interactions spécifiques à Microsoft Teams.

L'assistant virtuel est celui qui interagit aux équipes Microsoft canal dans le schéma d'assistant virtuel connecté à des compétences, de sorte que le DefaultActivityHandler de l'assistant virtuel doit prolonger du TeamsActivityHandler , pas la compétence dans ce schéma mentionné, comme vous pouvez le voir dans les exemples.

Le DefaultActivityHandler de l'assistant virtuel dans les modèles/échantillons implémente le TeamsActivityHandler qui permet des scénarios Teams prêts à l'emploi.

Nous avons recherché la documentation suivante que vous pouvez également consulter :

Faites-nous savoir si cela vous aide .

Ce numéro est obsolète car il est ouvert depuis 30 jours sans activité. Supprimez l'étiquette ou le commentaire obsolète ou cela sera fermé dans 5 jours

@Batta32 ce n'est pas encore publié, non?

Salut @tommyJimmy87 - nous finalisons un plan pour publier de nouveaux packages. Dès que nous aurons une mise à jour, nous vous répondrons ici .

@Batta32 des mises à jour ?

Salut @cwhitten , ce problème est déjà résolu avec le PR #3559 qui est mis à jour avec les modifications demandées de @peterinnesmsft .

Dès que le PR est fusionné, les modifications seront présentes dans la branche next .

Quel est le statut du #3559 ? @Batta32

La dernière mise à jour date du 11 septembre

Merci

Salut @tonyanziano , le PR #3559 est prêt à être examiné et fusionné contenant les modifications demandées de @peterinnesmsft.

Dès que le PR est fusionné, les modifications seront présentes dans la branche next .

Ce numéro est obsolète car il est ouvert depuis 30 jours sans activité. Supprimez l'étiquette ou le commentaire obsolète ou cela sera fermé dans 5 jours

@joshgummersall quel est le statut du #3752 ? Quand pensez-vous fusionner cela ?

Dès que quelqu'un d'autre peut l'examiner et l'approuver !

@joshgummersall ,

Pouvez-vous travailler pour fusionner les relations publiques afin que ce ticket puisse être fermé ?

@virtual-josh, il attend juste une autre revue de relations publiques ; il a déjà été approuvé par un examinateur. Je ne sais pas à qui envoyer un ping pour un deuxième avis.

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