Interroger la base de connaissances pour obtenir des réponses
Une base de connaissances doit être publiée. Une fois publiée, la base de connaissances est interrogée au point de terminaison de prédiction du runtime à l’aide de l’API generateAnswer. La requête comprend le texte de la question et d’autres paramètres pour aider QnA Maker à sélectionner la meilleure correspondance possible à une réponse.
Notes
Le service QnA Maker sera mis hors service le 31 mars 2025. Une version plus récente de la fonctionnalité de questions et réponses est désormais disponible dans le cadre d’Azure AI Language. Pour obtenir des réponses aux questions au sein du service de langage, consultez Réponses aux questions. À partir du 1er octobre 2022 vous ne pourrez plus créer de nouvelles ressources QnA Maker. Pour plus d’informations sur la migration de bases de connaissances QnA Maker existantes vers Réponses aux questions, consultez le Guide de migration.
Comment QnA Maker traite une requête de l’utilisateur pour sélectionner la meilleure réponse
Le base de connaissances QnA Maker entraînée et publiée reçoit une requête de l’utilisateur, à partir d’un robot ou d’une autre application cliente, au niveau de l’API GenerateAnswer. Le diagramme suivant illustre le processus enclenché lors de la réception de la requête de l’utilisateur.
Processus de classement
Le processus est expliqué dans le tableau suivant.
Étape | Objectif |
---|---|
1 | L’application cliente envoie la requête de l’utilisateur vers l’API GenerateAnswer. |
2 | QnA Maker prétraite la requête de l’utilisateur avec détection de la langue, vérificateurs d’orthographe et analyseurs lexicaux. |
3 | Ce prétraitement modifie la requête utilisateur afin d’offrir des résultats de recherche optimaux. |
4 | Cette requête modifiée est envoyée à un index de recherche Azure AI, qui reçoit le nombre top de résultats. Si la réponse correcte n’est pas dans ces résultats, augmentez légèrement la valeur de top . En règle générale, une valeur de 10 pour top fonctionne dans 90 % des requêtes. Les filtres de recherche Azure arrêtent les mots dans cette étape. |
5 | QnA Maker utilise des caractérisation syntaxiques et sémantiques pour déterminer la similarité entre la requête de l’utilisateur et les résultats QnA récupérés. |
6 | Le modèle d’outil de classement issu de l’apprentissage automatique utilise les différentes fonctionnalités, à partir de l’étape 5, pour déterminer les scores de confiance et le nouvel ordre de classement. |
7 | Les nouveaux résultats sont renvoyés vers l’application cliente selon l’ordre de classement. |
Les fonctionnalités utilisées incluent notamment la sémantique au niveau des mots, l’importance des termes dans un corpus et les modèles sémantiques ayant fait l’objet d’un apprentissage profond pour déterminer la similarité et la pertinence entre deux chaînes de texte.
Requête et réponse HTTP avec point de terminaison
Lorsque vous publiez votre base de connaissance, le service crée un point de terminaison HTTP basé sur REST pouvant être intégré dans votre application, généralement un bot conversationnel.
Demande de requête de l’utilisateur pour générer une réponse
Une requête utilisateur est la question que l’utilisateur final pose à la base de connaissances, telle que How do I add a collaborator to my app?
. Cette requête est souvent dans un format de langage naturel ou composée de quelques mots clés qui représentent la question, tels que help with collaborators
. La requête est envoyée à votre base de connaissances à partir d’une requête HTTP dans votre application cliente.
{
"question": "How do I add a collaborator to my app?",
"top": 6,
"isTest": true,
"scoreThreshold": 20,
"strictFilters": [
{
"name": "QuestionType",
"value": "Support"
}],
"userId": "sd53lsY="
}
Vous contrôlez la réponse en définissant des propriétés telles quescoreThreshold, top, et strictFilters.
Utilisez le contenu de la conversation avec la fonctionnalité multitour pour que la conversation se poursuive afin d’affiner les questions et les réponses pour trouver la réponse correcte et définitive.
Réponse d’un appel pour générer une réponse
La réponse HTTP est la réponse extraite de la base de données. Il s’agit de la meilleure correspondance à une requête utilisateur donnée. La réponse comprend la solution et le score de prédiction. Si vous avez demandé plusieurs réponses principales, avec la propriété top
, vous obtenez plus d’une réponse principale, chacune avec un score.
{
"answers": [
{
"questions": [
"How do I add a collaborator to my app?",
"What access control is provided for the app?",
"How do I find user management and security?"
],
"answer": "Use the Azure portal to add a collaborator using Access Control (IAM)",
"score": 100,
"id": 1,
"source": "Editorial",
"metadata": [
{
"name": "QuestionType",
"value": "Support"
},
{
"name": "ToolDependency",
"value": "Azure Portal"
}
]
}
]
}