Utiliser QnA Maker pour répondre aux questions

S'APPLIQUE À : SDK v4

Remarque

Azure AI QnA Maker sera mis hors service le 31 mars 2025. À partir du 1er octobre 2022, vous ne pourrez plus créer de nouvelles ressources ou bases de connaissances QnA Maker. Une version plus récente de la fonctionnalité de questions et réponses est désormais disponible dans le cadre d’Azure AI Language.

La réponse aux questions personnalisées, une fonctionnalité d'Azure AI Language, est la version mise à jour du service QnA Maker. Pour plus d'informations sur la prise en charge des questions et réponses dans le kit de développement logiciel (SDK) Bot Framework, consultez Compréhension du langage naturel.

QnA Maker fournit une couche de questions et réponses conversationnelle sur vos données. Cela permet à votre bot d’envoyer une question à QnA Maker et de recevoir une réponse sans avoir besoin d’analyser et d’interpréter l’intention de la question.

L’une des exigences de base pour créer votre propre service QnA Maker est de remplir ce dernier à l’aide de questions et de réponses. Dans de nombreux cas, les questions et réponses existent déjà dans du contenu comme un Forum aux questions ou d’autres documents ; parfois, vous souhaiterez personnaliser vos réponses aux questions de manière plus naturelle et conversationnelle.

Cet article explique comment utiliser une base de connaissances QnA Maker existante à partir de votre bot.

Pour les nouveaux bots, envisagez d'utiliser la caractéristique de réponses aux questions d'Azure Cognitive Service for Language. Pour plus d'informations, consultez Utiliser la fonction de réponse aux questions pour répondre aux questions.

Remarque

Les kits SDK JavaScript, C# et Python Bot Framework continueront d’être pris en charge. Toutefois, le kit de développement logiciel (SDK) Java est mis hors service avec une prise en charge finale à long terme se terminant en novembre 2023.

Les bots existants créés avec le kit de développement logiciel (SDK) Java continueront de fonctionner.

Pour la nouvelle génération de bots, envisagez d'utiliser Power Virtual Agents et découvrez comment choisir la solution de chatbot appropriée.

Pour plus d’informations, consultez Les futures versions de bot.

Prérequis

À propos de cet exemple

Pour utiliser QnA Maker dans votre bot, vous devez disposer d'une base de connaissances existante dans le portail QnA Maker. Votre bot peut alors utiliser la base de connaissances pour répondre aux questions de l’utilisateur.

Pour le nouveau développement de bot, envisagez d'utiliser Power Virtual Agents. Si vous devez créer une nouvelle base de connaissances pour bot du kit de développement logiciel (SDK) Bot Framework, consultez les articles suivants sur les Azure AI Services :

Flux logique QnABot C#

OnMessageActivityAsync est appelé pour chaque entrée d’utilisateur reçue. Lorsqu'elle est appelée, elle accède aux paramètres de configuration du fichier appsetting.json du code d'exemple pour trouver la valeur permettant de se connecter à votre base de connaissances QnA Maker préconfigurée.

L’entrée de l’utilisateur est envoyée à votre base de connaissances et la meilleure réponse retournée est présentée à l’utilisateur.

Obtenir des valeurs pour connecter votre bot à la base de connaissances

Conseil

La documentation de QnA Maker contient des instructions sur la façon de créer, d'entraîner et de publier votre base de connaissances.

  1. Sur le site QnA Maker, sélectionnez votre base de connaissances.
  2. Lorsque votre base de connaissances est ouverte, sélectionnez l'onglet PARAMÈTRES. Enregistrez la valeur indiquée pour nom du service. Cette valeur est utile pour rechercher la base de connaissances qui vous intéresse quand vous utilisez l’interface du portail QnA Maker. Elle n'est pas utilisée pour connecter votre application bot à cette base de connaissances.
  3. Faites défiler la page vers le bas jusqu'à la section Détails du déploiement et enregistrez les valeurs suivantes à partir de la demande HTTP de l'échantillon Postman :
    • POST /knowledgebases/<knowledge-base-id>/generateAnswer
    • Hôte : <your-host-url>
    • Autorisation : EndpointKey <your-endpoint-key>

L’URL de votre hôte commence par https:// et se termine par /qnamaker, par exemple https://<hostname>.azure.net/qnamaker. Votre bot a besoin de l'ID de la base de connaissances, de l'URL de l'hôte et de la clé de point de terminaison pour se connecter à votre base de connaissances QnA Maker.

Mettre à jour le fichier de paramètres

Tout d'abord, ajoutez les informations nécessaires pour accéder à votre base de connaissances, y compris le nom d'hôte, clé de point de terminaison et l'ID de la base de connaissances (kbId), au fichier de paramètres. Il s'agit des valeurs que vous avez enregistrées à partir de l'onglet PARAMÈTRES de votre base de connaissances dans QnA Maker.

Si vous n'effectuez pas le déploiement pour la production, vous pouvez laisser les champs de ID d'application et mot de passe de l'espace de votre bot.

Remarque

Pour ajouter une base de connaissances QnA Maker à une application bot existante, veillez à ajouter des titres évocateurs pour vos entrées QnA. La valeur « name » de cette section fournit la clé nécessaire pour accéder à ces informations à partir de votre application.

appsettings.json

C# (archivé)

Configurer l’instance de QnA Maker

Tout d’abord, nous créons un objet pour accéder à notre base de connaissances QnA Maker.

Vérifiez que le package NuGet Microsoft.Bot.Builder.AI.QnA est installé pour votre projet.

Dans QnABot.cs, dans la méthode OnMessageActivityAsync, créez une instance de QnAMaker. La classe QnABot est également l'endroit où les noms des informations de connexion, sauvegardés dans appsettings.json ci-dessus, sont récupérés. Si vous choisissez des noms différents pour vos informations de connexion à la base de connaissances dans votre fichier de paramètres, veillez à mettre à jour les noms ici afin qu'ils reflètent le nom choisi.

Bots/QnABot.cs

C# (archivé)

Appel de QnA Maker à partir de votre bot

Lorsque votre bot a besoin d'une réponse de QnAMaker, appelez la méthode GetAnswersAsync à partir du code de votre robot pour obtenir la réponse appropriée en fonction du contexte actuel. Si vous accédez à votre propre base de connaissances, changez le message aucune réponse trouvée ci-dessous pour fournir des instructions utiles à vos utilisateurs.

Bots/QnABot.cs

C# (archivé)

Tester le bot

Exécutez l’exemple en local sur votre machine. Si vous ne l'avez pas encore fait, installez Bot Framework Emulator. Pour obtenir d’autres instructions, reportez-vous à l’exemple README (C# (archivé), JavaScript (archivé), Java (archivé) ou Python (archivé)).

Lancez l'émulateur, connectez-vous à votre bot et envoyez-lui des messages. Les réponses à vos questions varient en fonction des informations que vous base de connaissances.

Exemple de bot de test.

Informations supplémentaires

L'échantillon de multitours de QnA Maker (échantillon de multitours C# (archivé), échantillon de multitours , JavaScript (archivé), échantillon de multitours Java (archivé), échantillon de multitours Python (archivé)) montre comment utiliser un dialogue QnA Maker pour prendre en charge les caractéristiques d'invite de suivi et d'apprentissage actif de QnA Maker.

  • QnA Maker prend en charge les invites de suivi, aussi appelées invites multitours. Si la base de connaissances de QnA Maker requiert plus d'informations de la part de l'utilisateur, QnA Maker envoie des informations contextuelles que vous pouvez utiliser pour inviter l'utilisateur. Ces informations servent aussi à passer des appels de suivi au service QnA Maker. Dans la version 4.6, le SDK Bot Framework a ajouté la prise en charge de cette fonctionnalité.

    Pour construire une base de connaissances de ce type, consultez la documentation QnA Maker pour savoir comment Utiliser des invites de suivi pour créer plusieurs tours d’une conversation.

  • QnA Maker prend également en charge les suggestions d’apprentissage actif, ce qui permet à la base de connaissances de s’améliorer au fil du temps. Le dialogue QnA Maker prend en charge les commentaires explicites pour la fonctionnalité d’apprentissage actif.

    Pour activer cette fonctionnalité sur une base de connaissances, consultez la documentation de QnA Maker sur les suggestions d’apprentissage actif.

Étapes suivantes

Vous pouvez combiner QnA Maker avec d'autres Azure AI Services, pour rendre votre bot encore plus puissant. Bot Framework Orchestrator permet de combiner QnA et la compréhension du langage (LUIS) dans votre bot.