J'ai téléchargé l'exemple QnAmaker à partir de ici a> et essayez de le faire fonctionner à partir de l'émulateur de bot. J'ai donné l'identifiant et le mot de passe d'application Microsoft corrects. J'ai même essayé avec un mot de passe nouvellement régénéré. Mais obtenir la même erreur.
Quelqu'un a-t-il rencontré ce problème? Des pensées. Que dois-je essayer ensuite pour résoudre ce problème?
<❯Mise à jour
J'ai supprimé les paramètres ngrok des paramètres de l'émulateur, j'ai supprimé l'ID MsApp et le mot de passe de l'application Ms, puis j'ai démarré l'émulateur et le bot répond. Mais je dois me connecter à mon QnaMaker sur azure et obtenir une réponse basée sur ma base de connaissances.
Mise à jour 2
J'ai essayé via le chat Web depuis le portail azure et cela n'a pas répondu. Voici le message d'erreur que j'ai trouvé dans Application insights
Échec de l'acquisition du jeton pour les informations d'identification du client. (AADSTS700016: L'application avec l'identifiant 'fXXXXXXXXXXXXXXXXXXXXX2' n'a pas été trouvée dans le répertoire 'botframework.com'. Cela peut arriver si l'application n'a pas été installé par l'administrateur du locataire ou consenti à par tout utilisateur du locataire. Vous avez peut-être envoyé votre authentification demande au mauvais locataire. ID de trace: 9XXXXX-46a3-4XX-b8XXX7-c1XXXXX00
Question:
"Cela peut se produire si l'application n'a pas été installée par l'administrateur du locataire ou acceptée par un utilisateur du locataire. Vous avez peut-être envoyé votre demande d'authentification au mauvais locataire"
Comment puis-je m'assurer que j'envoie la demande au bon locataire? Où puis-je vérifier cela? ou Comment puis-je résoudre ce problème?
3 Réponses :
Essayez de supprimer les valeurs de MicrosoftAppId
et MicrosoftAppPassword
de votre fichier appsettings.json
, puis exécutez le bot et essayez de le connecter via l'émulateur à nouveau.
Lorsque vous vous connectez à un bot dans l'émulateur, ET le fichier appsettings.json
(toujours) ou .bot
(uniquement pour le point de terminaison de développement) a des valeurs définies pour le MicrosoftAppId
et MicrosoftAppPassword
alors vous devrez entrer ces détails dans les champs fournis sur l'écran de connexion, voir mon image ci-dessous:
Si vos valeurs dans votre appsettings.json
pour MicrosoftAppId
et MicrosoftAppPassword
sont vides, c'est-à-dire ""
, vous n'aura pas à les saisir à l'écran de connexion et votre bot fonctionnera toujours lorsque vous déboguerez localement, même si votre bot en direct les a définis. L'exception est que lorsque vous utilisez ngrok pour déboguer un canal de production à l'aide de votre code local, vous devrez alors fournir MicrosoftAppId
et MicrosoftAppPassword
lors de la connexion, même s'ils ne le sont pas être défini localement.
J'ai fait exactement ce que vous avez suggéré ci-dessus.Mais obtenir la même erreur "POST400directline.postActivity" inspecteur -JSON -showing Erreur de service "Response.text n'est pas une fonction"
J'ai supprimé les paramètres ngrok des paramètres de l'émulateur.Removed MsApp Id et Ms App Password, puis démarré l'émulateur et le bot répond. Mais je dois me connecter à QnaMaker sur Azure et obtenir une réponse basée sur ma base de connaissances
Vous devrez ajouter les détails de votre fabricant qna à votre fichier 'appsettings.json' selon la documentation . Vous pouvez trouver les détails sous l'onglet Paramètres du portail qna maker. Assurez-vous que vous disposez de a publié votre base de connaissances.
Comment êtes-vous allé @roney?
Si vous voulez voir la réponse dans l'émulateur, supprimez l'identifiant et le mot de passe de l'application du fichier app settings.json (cela a fonctionné pour moi) et ajoutez les clés QnA kb dans le fichier de paramètres de l'application. Et si vous souhaitez tester sur le chat Web, ajoutez l'identifiant et le mot de passe de l'application dans le fichier de paramètres de l'application avec les clés QnA kb et publiez-le. Une fois que votre bot est publié, vous pourrez tester sur le chat Web et changer le point de terminaison de messagerie en votre URL publiée. En passant, si vous utilisez botframework v4, vous n'aurez pas besoin de ngrok.
Pouvez-vous également vérifier votre point de terminaison dans apps.dev.microsoft.com , où vous avez enregistré votre bot
Je pense que je pourrais savoir ce qui a causé cela - d'où avez-vous obtenu l'ID d'application et le mot de passe d'application? Ils doivent provenir d'une application "Bot" nouvellement créée dans le portail Azure. Si vous ne disposez pas de la bonne combinaison application + clé, vous pouvez communiquer avec votre bot via l'émulateur, par exemple, mais il ne pourra pas se connecter à d'autres services (par exemple, QnAMaker, MS Teams).
Dans le portail Azure, le modèle "Bot App Web" créera une application Bot ET une application d'hébergement Web dans Azure, mais il existe également une option pour créer une "Enregistrement des canaux de Bot" si vous utilisez un exemple d'application existant vous avez téléchargé et exécutez sur votre ordinateur local.
Cette option "Bot Channels" est essentiellement une sorte d'espace réservé dans Azure, où tout l'enregistrement de clé dans Azure pour le bot est effectué, mais vous pouvez héberger le bot lui-même où vous le souhaitez (par exemple sur votre machine locale, auquel cas vous indiquez l'adresse ngrok comme point de terminaison, quelque chose comme: https://250a1f39.ngrok.io / api / messages (assurez-vous que vous avez le "/ api / messages" dessus).
Sur l'écran Paramètres du bot dans le portail Azure, où vous capturez / mettez à jour le point de terminaison, se trouve l '«ID d'application Microsoft» dont vous avez besoin. Il y a aussi un lien pour "gérer", qui devrait vous emmener là où vous pouvez obtenir le mot de passe, mais le lien est actuellement cassé (je pense que MS travaille à le réparer), donc pour obtenir le mot de passe vous avez besoin de quelques étapes supplémentaires: