Les connecteurs de connaissances complètent les intents définis. Ils analysent des documents de base de connaissances (par exemple, des questions fréquentes ou des articles) pour trouver des réponses automatisées. Pour les configurer, définissez une ou plusieurs bases de connaissances, qui sont des collections de documents de base de connaissances.
Vous pouvez activer des bases de connaissances pour votre agent afin que toutes les requêtes de détection d'intents puissent y trouver des réponses automatisées. Vous pouvez également spécifier une ou plusieurs bases de connaissances dans vos requêtes de détection d'intents individuelles.
Il est courant qu'un agent utilisant des connecteurs de connaissances utilise également des intents définis. Les connecteurs de connaissances offrent moins de précision et de contrôle dans les réponses que les intents. Vous devez définir vos intents de sorte qu'ils gèrent les requêtes utilisateur complexes, et laisser les connecteurs de connaissances gérer les requêtes simples.
Pour obtenir la liste des langues disponibles, consultez la colonne Connecteurs de connaissances dans la documentation de référence sur les langues.
Limites
La fonctionnalité de connecteurs de connaissances n'est disponible que pour la région global
.
Activer les fonctionnalités en version bêta
Assurez-vous que les fonctionnalités en version bêta sont activées :
- Accédez à la console Dialogflow ES.
- Sélectionnez un agent.
- Cliquez sur le bouton des paramètres (settings) à côté du nom de l'agent.
- Faites défiler l'onglet Général et assurez-vous que l'option Fonctionnalités en version bêta est activée.
- Si vous avez apporté des modifications, cliquez sur Enregistrer.
Créer une base de connaissances et un document
Suivez les instructions du guide d'utilisation des bases de connaissances pour créer une base de connaissances et un document.
Paramètres pour les connecteurs de connaissances
Vous pouvez activer ou désactiver les bases de connaissances pour votre agent. Les bases de connaissances activées sont prises en compte pour toutes les requêtes de détection d'intents qui ne spécifient pas de bases de connaissances. Pour activer ou désactiver les bases de connaissances, procédez comme suit :
- Accédez à la console Dialogflow ES.
- Sélectionnez un agent.
- Cliquez sur Connaissances dans le menu de la barre latérale de gauche.
- Sélectionnez une ou plusieurs bases de connaissances dans la liste.
- Cliquez sur Activer ou Désactiver.
Lorsqu'une expression d'utilisateur final correspond également à un intent, vous pouvez indiquer votre degré de préférence des résultats de connaissances :
- Faites défiler la page jusqu'à la section Régler les préférences de résultats de connaissances.
- Faites passer le curseur de la valeur la plus faible (préférence attribuée à l'intent) à la plus forte (préférence attribuée aux connaissances). Pour en savoir plus, consultez la section Réponses de détection d'intent ci-dessous.
Configurer des réponses
Par défaut, une base de connaissances est configurée avec une seule réponse textuelle par défaut, renseignée avec la meilleure réponse de connaissances correspondante. Vous pouvez modifier cette réponse et ajouter des messages de réponses enrichies. Les réponses de connaissances peuvent contenir jusqu'à trois réponses par base de connaissances, et vous pouvez référencer ces réponses dans vos réponses configurées. Pour ajouter des réponses :
- Sur la page Connaissances, cliquez sur le nom de votre base de connaissances.
- Faites défiler jusqu'à la section Réponses et ajoutez les réponses souhaitées :
- Lorsque vous définissez la première réponse, utilisez
$Knowledge.Question[1]
et$Knowledge.Answer[1]
à l'endroit où la question et la réponse doivent être fournies. - L'index pour
$Knowledge.Question
et$Knowledge.Answer
commence à 1. Vous devez donc augmenter cet index lors de l'ajout de réponses.
- Lorsque vous définissez la première réponse, utilisez
- Une fois vos modifications terminées, cliquez sur Enregistrer.
Lorsque vous définissez des réponses, vous devez prendre en compte ces points :
- Si le nombre de réponses définies est supérieur au nombre N de correspondances de réponses du connecteur de connaissances, seules N réponses seront renvoyées.
- Étant donné que la précision peut être inférieure que la mise en correspondance d'intents définis explicitement, nous vous recommandons de renvoyer trois réponses à vos utilisateurs lorsque cela est possible.
Exemple :
Détecter un intent avec la base de connaissances
Lorsque vous effectuez une requête de détection d'intent, vous pouvez spécifier une ou plusieurs bases de connaissances pour une réponse possible. Le fait de fournir explicitement des bases de connaissances dans une requête remplace les paramètres des bases de connaissances activées et désactivées.
Les exemples ci-dessous vous montrent comment détecter un intent avec la console Dialogflow, l'API REST (y compris la ligne de commande) ou les bibliothèques clientes.
Pour utiliser l'API, appelez la méthode detectIntent
sur le type Sessions
.
UI Web
Vous pouvez interagir avec l'agent et recevoir les réponses du connecteur de connaissances via le simulateur Dialogflow :- Suivez la procédure ci-dessus pour activer une base de connaissances.
- Suivez la procédure ci-dessus pour définir des réponses.
- Saisissez "Comment m'inscrire ?" dans le simulateur.
REST
Appelez la méthodedetectIntent
sur le type Sessions
, puis spécifiez la base de connaissances dans le champ queryParams
.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet GCP
- KNOWLEDGE_BASE_ID : ID de votre base de connaissances
Méthode HTTP et URL :
POST https://dialogflow.googleapis.com/v2beta1/projects/PROJECT_ID/agent/sessions/123456789:detectIntent
Corps JSON de la requête :
{ "queryInput": { "text": { "text": "How do I sign up?", "languageCode": "en-US" } }, "queryParams": { "knowledgeBaseNames": ["projects/PROJECT_ID/knowledgeBases/KNOWLEDGE_BASE_ID"] } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ ... "queryResult": { "queryText": "How do I sign up?", "parameters": {}, "allRequiredParamsPresent": true, "fulfillmentText": "Sign up for Cloud Storage by turning on the Cloud Storage service in the Google Cloud Platform Console.", "intent": { "name": "projects/my-gcp-project/agent/intents/487c7242-a769-408a-a339-47b95e10dac4", "displayName": "Knowledge.KnowledgeBase.MzkzNTAyMDE3NDQxNDk3MDg4MA" }, "intentDetectionConfidence": 0.99371547, "languageCode": "en-us", "knowledgeAnswers": { "answers": [ { "answer": "Sign up for Cloud Storage by turning on the Cloud Storage service in the Google Cloud Platform Console.", "matchConfidenceLevel": "HIGH", "matchConfidence": 0.99371547 }, { "answer": "Certain types of content are not allowed on this service; please refer to the Terms of Services and Platform Policies for details. If you believe a piece of content is in violation of our policies, report it here (select See more products, then Google Cloud Storage and Cloud Bigtable).", "matchConfidenceLevel": "LOW", "matchConfidence": 0.0012244871 }, { "answer": "From the Cloud Storage documentation click \"Send feedback\" near the top right of the page. This will open a feedback form. Your comments will be reviewed by the Cloud Storage team.", "matchConfidenceLevel": "LOW", "matchConfidence": 0.0011537358 } ] } } }
Java
Pour vous authentifier auprès de Dialogflow, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour vous authentifier auprès de Dialogflow, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès de Dialogflow, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Réponses de détection d'intent
La réponse de la méthode detectIntent
pour le type Sessions
est DetectIntentResponse
.
Plusieurs facteurs affectent la manière dont les champs de réponse sont renseignés.
Si un intent défini et une base de connaissances sont tous deux des correspondances potentielles, la correspondance proposée sera choisie en fonction de l'indice de confiance de chacun et de la préférence de résultats de connaissances définie (consultez la section Paramètres pour les connecteurs de connaissances).
La correspondance sélectionnée est renseignée dans le champ DetectIntentResponse.queryResult
et les autres correspondances potentielles sont renseignées dans le champ DetectIntentResponse.alternativeQueryResults
.
Ces deux champs contiennent des messages de type QueryResult
.
Si une base de connaissances fournit une correspondance potentielle :
- Le champ
QueryResult.knowledgeAnswers
est renseigné avec une liste de réponses potentielles classées en fonction de la fiabilité des correspondances (par ordre décroissant). - Si des réponses enrichies ont été définies pour la base de connaissances, le champ
QueryResult.fulfillmentMessages
est renseigné avec ces messages de réponses enrichies.
Lorsque vous effectuez une requête de détection d'intent, il est possible que la requête de connaissances échoue.
Dans ce cas, les intents définis sont sélectionnés, afin que la requête globale de détection d'intent ne soit pas interrompue.
Les informations d'erreur de la requête de connaissances sont affichées dans le champ DetectIntentResponse.alternativeQueryResults[i].diagnosticInfo
.
Gérer les bases de connaissances
Pour en savoir plus sur la gestion des bases de connaissances, consultez la page Gérer les bases de connaissances.