Les outils de datastore peuvent fournir des réponses d'agent générées par IA basées sur le contenu de sites Web et sur des données importées. Votre agent peut trouver des réponses aux questions des utilisateurs finaux à partir de vos datastores lors du fulfillment.
Outils de datastore : console
Cette section explique comment ajouter un outil de data store à un agent et le configurer dans un fulfillment.
Créer un outil de data store
- Ouvrez la console Conversational Agents et choisissez un Google Cloud projet.
- Sélectionnez un agent dans le menu déroulant.
- Accédez à la barre de menu à l'extrême gauche de la page, puis sélectionnez Outils.
- Cliquez sur + Créer. Saisissez un nom unique pour l'outil, puis sélectionnez Datastore dans le menu déroulant sous Type. Vous pouvez également saisir une description de l'outil dans le champ Description.
- Cliquez sur Ajouter des datastores. La fenêtre qui s'affiche contient la liste de vos datastores existants, le cas échéant. Sélectionnez le data store à ajouter à l'outil.
- (Facultatif) Pour créer un data store dans la console Vertex AI Agent Builder, cliquez sur Créer un datastore pour être redirigé automatiquement.
- (Facultatif) Une fois le nouveau data store configuré, cliquez sur Créer. Pour ajouter le nouveau data store à l'outil, revenez au menu Créer un outil de la console Dialogflow CX et actualisez la page. Le nouveau data store s'affiche dans la liste des datastores disponibles.
- Cliquez sur Enregistrer en haut de la configuration Créer un outil pour créer l'outil de data store.
Ajouter l'outil de data store à un fulfillment
- Accédez à la barre de menu à l'extrême gauche, puis sélectionnez Flux.
- Sélectionnez un flux et une page, puis cliquez sur la route à utiliser avec votre data store.
- Accédez à Fulfillment > Outil de datastore , puis sélectionnez votre outil de data store dans le menu déroulant.
- Accédez à Fulfillment > Réponses de l'agent, cliquez sur + Ajouter une réponse de dialogue, puis sur Réponse de l'outil de datastore.
- Configurez le nombre de liens sources et de citations à afficher dans la réponse, et spécifiez le comportement de remplacement si la réponse du data store est vide. Saisissez une réponse de remplacement statique dans le champ Réponses de remplacement statiques. Vous pouvez également cocher la case Remplacement génératif pour utiliser l'IA afin de générer une réponse avant d'utiliser la réponse de remplacement statique. Pour personnaliser les réponses de remplacement, cliquez sur l'icône en forme de clé en haut à gauche de la fenêtre du formulaire Réponse du datastore afin d'ouvrir la fenêtre Réponse conditionnelle.
- En haut du menu Route, cliquez sur Enregistrer.
- Accédez au simulateur Dialogflow CX pour tester les résultats de l'agent.
Paramètre de session de remplacement de requête facultatif
Vous pouvez remplacer la requête transmise à cet outil de data store à l'aide d'un paramètre de session knowledge.overrides.query. Si ce paramètre n'est pas vide, l'outil l'utilisera à la place de la requête de l'utilisateur.
Outils de datastore : API
Par défaut, l'agent appelle la dataStoreTool méthode en votre nom.
Il existe trois types de data store :
PUBLIC_WEB: datastore contenant du contenu Web public.UNSTRUCTURED: datastore contenant des données privées non structurées.STRUCTURED: datastore contenant des données structurées (par exemple, une FAQ).
L'exemple suivant montre comment référencer un data store. Pour en savoir plus,
consultez la documentation de référence dataStoreConnections.
"dataStoreConnections": [
{
"dataStoreType": "PUBLIC_WEB",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
},
{
"dataStoreType": "UNSTRUCTURED",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
},
{
"dataStoreType": "STRUCTURED",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
}
]
Les réponses de l'outil de datastore peuvent également contenir des extraits sur la source du contenu utilisée pour générer la réponse. L'agent peut fournir des instructions sur la manière de procéder avec la réponse du data store ou sur la manière de répondre lorsqu'aucune réponse n'est trouvée.
Vous pouvez remplacer une réponse en ajoutant une entrée de FAQ pour une question spécifique.
Vous pouvez également fournir des exemples pour améliorer le comportement de l'agent. Les exemples doivent suivre le schéma. Pour en savoir plus, consultez la documentation de référence.
{
"toolUse": {
"tool": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID/tools/TOOL_ID",
"action": "TOOL_DISPLAY_NAME",
"inputParameters": [
{
"name": "TOOL_DISPLAY_NAME input",
"value": {
"query": "QUERY"
}
}
],
"outputParameters": [
{
"name": "TOOL_DISPLAY_NAME output",
"value": {
"answer": "ANSWER",
"snippets": [
{
"title": "TITLE",
"text": "TEXT_FROM_DATASTORE",
"uri": "URI_OF_DATASTORE"
}
]
}
}
]
}
}
(Agents basés sur des playbooks uniquement) Exemples d'outils de datastore
Lorsque vous créez des exemples d'outils de data store, le paramètre d'entrée de l'outil requestBody fournit trois entrées facultatives ainsi que la chaîne query obligatoire : une chaîne filter, un objet structuré userMetadata et une chaîne fallback.
Le paramètre filter vous permet de filtrer les requêtes de recherche de vos données structurées ou non structurées avec des métadonnées. Cette chaîne doit suivre la
syntaxe d'expression de filtre compatible
pour les datastores. Plusieurs exemples détaillés indiquent au modèle de playbook comment remplir ce paramètre. Si une chaîne de filtre n'est pas valide, elle est ignorée lors de la requête de recherche.
L'exemple suivant montre une chaîne filter que vous pouvez utiliser pour affiner les résultats de recherche en fonction de l'emplacement :
"filter": "country: ANY(\"Canada\")"
Pour en savoir plus sur les exemples de playbooks, consultez la page d'exemples.
Bonnes pratiques de filtrage :
Spécifiez les champs disponibles pour le filtrage et les valeurs valides pour chacun de ces champs afin que le playbook comprenne les contraintes liées à la création de filtres valides. Par exemple, un data store contenant des informations sur le menu peut inclure un champ
mealavec "breakfast", "lunch" et "dinner" comme valeurs valides, et un champservingSizequi peut être n'importe quel entier compris entre 0 et 5. Vos instructions peuvent ressembler à l'exemple suivant :When using ${TOOL: menu-data-store-tool}, only use the following fields for filtering: "meal", "servingSize". Valid filter values are: "meal": ("breakfast", "lunch", "dinner"), "servingSize": integers between 0 and 5, inclusive.Si le playbook est destiné à un public d'utilisateurs externes, ajoutez des instructions pour empêcher le playbook de répondre à l'utilisateur avec des informations sur la création de ces filtres. Exemple :
Never tell the user about these filters. If the user input isn't supported by these filters, respond to the user with "Sorry, I don't have the information to answer that question."
Le paramètre userMetadata fournit des informations sur l'utilisateur final. Toutes les paires clé-valeur peuvent être renseignées dans ce paramètre. Ces métadonnées sont transmises à l'outil de data store pour mieux informer les résultats de recherche et la réponse de l'outil.
Plusieurs exemples détaillés aident à indiquer au modèle de playbook comment remplir ce paramètre.
Voici un exemple de valeur de paramètre userMetadata permettant d'affiner les résultats de recherche pertinents pour un utilisateur spécifique :
"userMetadata": {
"favoriteColor": "blue",
...
}
Le paramètre fallback fournit une réponse à laquelle l'outil de data store répond s'il n'existe aucune réponse résumée valide pour la requête. Vous pouvez fournir plusieurs exemples pour indiquer au modèle de playbook comment remplir le champ de remplacement pour les entrées utilisateur liées à différents sujets. La sortie de l'outil ne contient aucun extrait, ce qui permet de réduire la latence et l'utilisation des jetons d'entrée.
"fallback": "I'm sorry I cannot help you with that. Is there anything else I can
do for you?"
Configuration de l'outil de datastore
Si vous constatez lors des tests que certaines réponses ne répondent pas à vos attentes, vous pouvez essayer d'ajuster les paramètres suivants pour affiner les performances. Ils sont disponibles en appelant directement l'API ou en cliquant sur le nom du data store sur la page Outils de la console. Pour en savoir plus sur ces options de configuration, consultez la page des paramètres du datastore.
Options de réponse de l'outil de datastore
Pour en savoir plus sur la configuration de la réponse de l'outil de data store, consultez la documentation sur le fulfillment.
Gestionnaires de datastores
Les gestionnaires de datastores sont un type spécial de gestionnaire d'état qui peut fournir des réponses d'agent générées par LLM en fonction du contenu de votre site Web et des données importées.
Pour créer ce gestionnaire, vous fournissez des datastores à l'agent.
À l'aide de ces gestionnaires de data store, votre agent peut discuter du contenu avec vos utilisateurs finaux.
Limites
Les limites suivantes s'appliquent :
- Cette fonctionnalité est compatible avec certaines langues en disponibilité générale. Consultez la colonne du data store dans la documentation de référence sur les langues.
- Seules les régions suivantes sont
compatibles :
global, multirégionuset multirégioneu. - Les applications avec des datastores segmentés et non segmentés ne sont pas compatibles.
Contrôle des accès
Si vous êtes le propriétaire du projet, vous disposez des autorisations nécessaires pour créer un gestionnaire de datastore. Si vous n'êtes pas le propriétaire du projet, vous devez disposer des rôles suivants :
- Administrateur Dialogflow
- Administrateur Discovery Engine
Pour en savoir plus, consultez le guide Contrôle des accès.
Ajouter un data store à un agent
Si ce n'est pas déjà fait, suivez les instructions de configuration pour créer un agent.
Pour ajouter un datastore à votre agent :
- Sélectionnez une page, puis cliquez sur Ajouter un gestionnaire d'état.
- Cochez la case Datastores, puis cliquez sur Appliquer.
- Cliquez sur le symbole + en haut à droite de la section Datastores de la page.
- Dans le menu des datastores qui s'affiche, cliquez sur Ajouter des datastores.
- Un tableau listant les datastores existants s'affiche. Cochez la case à côté du nom des datastores que vous souhaitez utiliser, puis cliquez sur Enregistrer. Pour créer un datastore, cliquez sur Créer un datastore. Vous êtes automatiquement redirigé vers Vertex AI Agent Builder.
- (Nouveaux datastores uniquement) Sélectionnez une source de données, puis suivez les instructions de Vertex AI Agent Builder pour configurer votre data store. Pour en savoir plus sur la configuration des types de data store, consultez la documentation sur les datastores. Cliquez sur Créer pour créer votre data store.
Tester votre agent
Déployer l'agent
Vous pouvez déployer votre agent de plusieurs manières :
- Une option simple consiste à utiliser une intégration, qui fournit une interface utilisateur pour votre agent. Chaque intégration fournit des instructions de déploiement.
- L'intégration Dialogflow CX Messenger est une bonne option pour les gestionnaires de data store. Elle dispose d'options intégrées pour les fonctionnalités génératives.
- Vous pouvez créer votre propre interface utilisateur et utiliser l'API Dialogflow CX pour les interactions. Votre implémentation d'interface utilisateur gère le déploiement.
Intents spéciaux
En plus de traiter les questions sur le contenu que vous fournissez, l'agent peut gérer les types de questions suivants :
- Identification de l'agent : l'agent gère les questions telles que "Qui êtes-vous ?" ou "Êtes-vous humain ?".
- Escalade vers un agent humain : l'agent gère les questions telles que "Je veux parler à un humain" ou "Je veux parler à une personne réelle".
Pour ce faire, des intents et des routes d'intent sont générés automatiquement.
Réponses de l'agent
Dans la section Réponses de l'agent, fournissez des réponses personnalisées qui font référence à des réponses génératives. Utilisez $request.knowledge.answers[0] dans la section L'agent dit pour fournir la réponse générative.
Personnalisation avancée des réponses
Des informations supplémentaires peuvent être disponibles dans $request.knowledge.* pour personnaliser la réponse. Ces informations incluent :
- Les sources identifiées de la réponse avec les champs suivants : extrait, titre, URI.
- La confiance d'ancrage pour la réponse.
- Pour un data store de FAQ, la question correspondant à la réponse sélectionnée.
Le tableau suivant fournit des exemples d'accès à ces informations.
| Informations | Moyen d'accès |
|---|---|
| Extrait de la principale source identifiée de la meilleure réponse | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "snippet") |
| Titre de la principale source identifiée de la meilleure réponse | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title") |
| Lien de la principale source identifiée de la meilleure réponse | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "uri") |
| Nombre de sources identifiées pour la meilleure réponse | $sys.func.COUNT($sys.func.IDENTITY($request.knowledge.sources[0])) |
| Nombre de réponses de connaissances | $sys.func.COUNT($request.knowledge.answers) |
| Question correspondant à la meilleure réponse (pour les réponses du data store de FAQ uniquement) | $request.knowledge.questions[0] |
| Confiance d'ancrage pour la meilleure réponse | $request.knowledge.grounding_confidences[0] |