Les outils de data store peuvent fournir des réponses d'agent générées par IA en fonction du contenu du site Web et des données importées. Votre agent peut trouver des réponses aux questions des utilisateurs finaux à partir de vos data stores lors de l'exécution.
Outils de data store : console
Cette section vous 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 sélectionnez un projet Google Cloud.
- Sélectionnez un agent dans le menu déroulant.
- Accédez à la barre de menu tout à gauche de la page, puis sélectionnez Outils.
- Pour créer un outil de data store, cliquez sur + Créer. Saisissez un Nom unique pour l'outil, puis sélectionnez Data store dans le menu déroulant sous Type. Vous pouvez également saisir une description de l'outil dans le champ Description.
- Sous Data stores, cliquez sur Ajouter des data stores. La fenêtre pop-up contient la liste de vos datastores existants, le cas échéant. Choisissez le data store que vous souhaitez ajouter à l'outil.
- (Facultatif) Pour créer un datastore dans la console Vertex AI Agent Builder, cliquez sur Créer un data store. Vous serez automatiquement redirigé vers la console Vertex AI Agent Builder.
- (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 que vous configurez dans la console Conversational Agents (Dialogflow CX), puis actualisez la page. Le nouveau data store devrait maintenant apparaître dans la liste des datastores disponibles.
- Cliquez sur Enregistrer en haut de la configuration Créer un outil pour créer le nouvel outil de data store.
Ajouter l'outil de data store à un fulfillment
- Dans la barre de menu tout à gauche, sélectionnez Flux.
- Sélectionnez un flux et une page, puis cliquez sur la route de la page que vous souhaitez utiliser avec votre data store.
- Dans le menu Route, faites défiler la page jusqu'à Traitement > Outil de data store. Sélectionnez votre outil de data store dans le menu déroulant.
- Dans le menu Route, faites défiler la page jusqu'à Fulfillment > Réponses de l'agent. Cliquez sur + Add dialogue response (Ajouter une réponse de dialogue), puis sur Data store tool response (Réponse de l'outil Data Store).
- Dans le formulaire qui s'affiche, vous pouvez configurer le nombre de liens sources et de citations pouvant figurer dans la réponse, et spécifier le comportement de secours si la réponse du data store est vide. Vous pouvez saisir une réponse de remplacement statique dans le champ Static fallback responses (Réponses de remplacement statiques). Si vous le souhaitez, vous pouvez cocher la case Remplacement génératif pour essayer d'utiliser l'IA afin de générer une réponse avant d'utiliser la réponse de remplacement statique. Si vous souhaitez personnaliser davantage les réponses de secours, cliquez sur l'icône en forme de clé à molette en haut à gauche de la fenêtre du formulaire Réponse du datastore pour afficher la fenêtre Réponse conditionnelle.
- En haut du menu Route, cliquez sur Enregistrer.
- Accédez au simulateur d'agents conversationnels (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 elle n'est pas vide, l'outil l'utilisera à la place de la requête utilisateur.
Outils de data store : API
Par défaut, l'agent appellera ledataStoreTool
en votre nom.
Il existe trois types de data store :
PUBLIC_WEB
: un data store contenant du contenu Web public.UNSTRUCTURED
: data store contenant des données privées non structurées.STRUCTURED
: un data store contenant des données structurées (par exemple, des questions fréquentes).
L'exemple suivant montre comment référencer un data store. Pour en savoir plus, consultez la documentation de référence sur 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 Data Store peuvent également contenir des extraits sur la source de contenu utilisée pour générer la réponse. L'agent peut fournir des instructions sur la façon de procéder avec la réponse des data stores ou sur la façon de répondre en l'absence de réponse.
Vous pouvez remplacer une réponse en ajoutant une entrée de questions fréquentes pour une question spécifique.
Vous pouvez éventuellement fournir des exemples pour améliorer le comportement de l'agent. L'exemple doit comporter les schémas suivants. 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'outil de data store
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
requise : une chaîne filter
, un objet structuré userMetadata
et une chaîne fallback
.
Le paramètre filter
permet de filtrer les requêtes de recherche dans vos données structurées ou non structurées avec des métadonnées. Cette chaîne doit respecter la syntaxe des expressions de filtre compatibles pour les magasins de données. De nombreux exemples détaillés aident le modèle de playbook à comprendre comment renseigner ce paramètre. Si une chaîne de filtre n'est pas valide, ce filtre est ignoré lors de la requête de recherche.
Voici un exemple de chaîne filter
permettant d'affiner les résultats de recherche en fonction de la localisation :
"filter": "country: ANY(\"Canada\")"
Pour en savoir plus, consultez la page d'exemples de playbooks
.
Bonnes pratiques pour le 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 les menus peut inclure un champ
meal
avec "petit-déjeuner", "déjeuner" et "dîner" comme valeurs valides, et un champservingSize
qui peut être n'importe quel entier de 0 à 5. Voici un exemple d'instructions :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é à une audience d'utilisateurs externes, il peut être nécessaire d'ajouter des instructions pour empêcher le playbook de répondre potentiellement à 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.
De nombreux exemples détaillés aident le modèle de playbook à comprendre 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 élément spécifique :
"userMetadata": {
"favoriteColor": "blue",
...
}
Le paramètre fallback
fournit une réponse que l'outil de data store doit fournir 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 secours pour les entrées utilisateur liées à différents thèmes. L'outil ne génère aucun extrait, ce qui peut contribuer à réduire la latence et l'utilisation des limites de 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 data store
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. Elles 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 supplémentaires, consultez la page Paramètres du data store.
Options de réponse de l'outil Data Store
Pour en savoir plus sur la configuration de la réponse de l'outil de data store, consultez la documentation sur l'exécution.
Gestionnaires de data stores
Les gestionnaires de data stores 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.
Grâce à ces gestionnaires de data store, votre agent peut discuter du contenu avec vos utilisateurs finaux.
Limites
Les limites suivantes s'appliquent :
- Cette fonctionnalité est disponible dans certaines langues en disponibilité générale. Consultez la colonne "data store" dans la documentation de référence sur les langues.
- Seules les régions suivantes sont acceptées :
global
,us
(multirégion) eteu
(multirégion). - Les applications avec des datastores segmentés et non segmentés ne sont pas acceptées.
Contrôle des accès
Si vous êtes le propriétaire du projet, vous disposez de toutes les autorisations nécessaires pour créer un gestionnaire de data store. 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 du 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 data store à votre agent : data store :
- Sélectionnez une page, puis cliquez sur Add state handler (Ajouter un gestionnaire d'état).
- Cochez la case Data stores, puis cliquez sur Appliquer.
- Cliquez sur le symbole + en haut à droite de la section Datastores de la page.
- Dans le menu des data stores qui s'affiche, cliquez sur Ajouter des data stores.
- Un tableau listant les éventuels datastores existants s'affiche. Cochez la case à côté du nom des data stores 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 data stores 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 data stores. Cliquez sur Créer pour créer votre nouveau data store.
Tester votre agent
Vous pouvez utiliser le simulateur pour tester votre agent.
Déployer l'agent
Il existe de nombreuses façons de déployer votre agent :
L'option la plus 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 de Dialogflow CX Messenger est particulièrement adaptée aux gestionnaires de data store. Il propose des options intégrées pour les fonctionnalités génératives.
Vous pouvez créer votre propre interface utilisateur et utiliser l'API Agents de conversation (Dialogflow CX) pour les interactions. L'implémentation de votre interface utilisateur contrôle le déploiement.
Intents spéciaux
En plus de répondre aux questions sur le contenu que vous fournissez, l'agent peut répondre aux types de questions suivants :
- Identification de l'agent : répond aux questions telles que "Qui êtes-vous ?" ou "Êtes-vous un humain ?".
- Transférer à un agent humain : répond aux questions telles que "Je veux parler à un humain" ou "Je veux parler à une personne réelle".
Pour ce faire, des intentions et des routes d'intention sont générées automatiquement.
Réponses de l'agent
Dans la section Réponses de l'agent, vous pouvez fournir 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.*
et peuvent être utilisées pour personnaliser la réponse. Ces informations incluent :
- Sources identifiées de la réponse avec les champs suivants : extrait, titre, URI.
- Confiance de l'ancrage pour la réponse.
- Dans le cas d'un data store de questions fréquentes, il s'agit de la question correspondant à la réponse sélectionnée.
Consultez le tableau suivant pour savoir comment accéder à ces informations.
Informations | Moyen d'accès |
---|---|
Extrait de la principale source identifiée de la réponse principale | $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 réponse principale | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title") |
Lien vers 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 réponse principale | $sys.func.COUNT($sys.func.IDENTITY($request.knowledge.sources[0])) |
Nombre de réponses issues des connaissances | $sys.func.COUNT($request.knowledge.answers) |
Question correspondant à la réponse principale (pour les réponses du data store questions fréquentes uniquement) | $request.knowledge.questions[0] |
Niveau de confiance de l'ancrage pour la réponse principale | $request.knowledge.grounding_confidences[0] |