Partager via


Utiliser la réponse aux questions pour répondre aux questions

S'APPLIQUE À : SDK v4

La fonctionnalité de réponse aux questions d’Azure Cognitive Service for Language fournit un traitement en langage naturel basé sur le cloud (NLP) qui vous permet de créer une couche conversationnelle naturelle sur vos données. Vous pouvez l’utiliser pour trouver la réponse la plus appropriée à une entrée à partir de votre base de connaissances personnalisée.

Cet article explique comment utiliser la fonctionnalité de réponse aux questions dans votre bot.

Conditions préalables

  • Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
  • Ressource de langue dans Language Studio, avec la fonctionnalité de réponse aux questions personnalisée activée.
  • Copie de l’exemple De réponses aux questions personnalisées en C# ou JavaScript.

À propos de cet exemple

Pour utiliser la réponse aux questions dans votre bot, vous avez besoin d’une base de connaissances existante. Votre bot peut ensuite utiliser la base de connaissances pour répondre aux questions de l’utilisateur.

Si vous devez créer une nouvelle base de connaissances pour un bot Bot Framework SDK, vous pouvez consulter le fichier README pour l’exemple de questions personnalisées.

Logique de flux du bot de réponse aux questions C#.

OnMessageActivityAsync est appelé pour chaque entrée utilisateur reçue. Lorsqu’il est appelé, il accède aux paramètres de configuration à partir du fichier deappsetting.json de l’exemple de code et se connecte à votre base de connaissances.

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

Obtenir les paramètres de connexion de votre base de connaissances

  1. Dans Language Studio, ouvrez votre ressource de langue.

  2. Copiez les informations suivantes dans le fichier de configuration de votre bot :

    • Nom d’hôte de votre point de terminaison de langue.
    • Ocp-Apim-Subscription-Key, qui est votre clé de point de terminaison.
    • Nom du projet, qui joue le rôle d’ID de votre base de connaissances.

Votre nom d’hôte fait partie de l’URL de point de terminaison entre https:// et /language, par exemple, https://<hostname>/language. Votre bot a besoin du nom du projet, de l’URL d’hôte et de la clé de point de terminaison pour se connecter à votre base de connaissances.

Conseil / Astuce

Si vous ne déployez pas cette option pour la production, vous pouvez laisser vides les champs d’ID d’application et de mot de passe de votre bot.

Configurer et appeler le client de la base de connaissances

Créez votre client de base de connaissances, puis utilisez le client pour récupérer des réponses à partir de la base de connaissances.

Assurez-vous que le package NuGet Microsoft.Bot.Builder.AI.QnA est installé pour votre projet.

Dans QnABot.cs, dans la OnMessageActivityAsync méthode, créez un client de base de connaissances. Utilisez le contexte de tour pour interroger la base de connaissances.

Bots/CustomQABot.cs

using var httpClient = _httpClientFactory.CreateClient();

var customQuestionAnswering = CreateCustomQuestionAnsweringClient(httpClient);

// Call Custom Question Answering service to get a response.
_logger.LogInformation("Calling Custom Question Answering");
var options = new QnAMakerOptions { Top = 1, EnablePreciseAnswer = _enablePreciseAnswer };
var response = await customQuestionAnswering.GetAnswersAsync(turnContext, options);

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# ou JavaScript).

Démarrez l’émulateur, connectez-vous à votre bot et envoyez des messages à votre bot. Les réponses à vos questions varient en fonction des informations de votre base de connaissances.

Informations supplémentaires

La démonstration Custom Question Answering, toutes les fonctionnalités (C# ou JavaScript) montre comment utiliser un dialogue QnA Maker pour prendre en charge les invites de suivi et les fonctionnalités d'apprentissage actif d'une base de connaissances.

  • La réponses aux questions prend en charge les invites de suivi, aussi appelées invites multitours. Si la base de connaissances nécessite plus d’informations de l’utilisateur, le service envoie des informations contextuelles que vous pouvez utiliser pour inviter l’utilisateur. Ces informations sont également utilisées pour effectuer des appels de suivi au service.
  • La réponse aux questions prend également en charge les suggestions d’apprentissage actives, ce qui permet à la base de connaissances d’améliorer au fil du temps. La boîte de dialogue QnA Maker prend en charge les commentaires explicites pour la fonctionnalité d’apprentissage actif.