Outils de datastore

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 data stores 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 datastore

  1. Ouvrez la console Conversational Agents et sélectionnez votre projet.
  2. Sélectionnez un agent dans le menu déroulant.
  3. Accédez à la barre de menu située tout à gauche de la page, puis sélectionnez Outils.
  4. Cliquez sur + Créer. Saisissez un nom unique pour l'outil, puis sélectionnez Datastore dans le menu déroulant sous Type. Vous pouvez éventuellement saisir une description de l'outil dans le champ Description.
  5. 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.
  6. (Facultatif) Pour créer un data store dans la console Vertex AI Agent Builder, cliquez sur Créer un datastore pour être automatiquement redirigé.
  7. (Facultatif) Après avoir configuré le nouveau data store, cliquez sur Créer. Pour ajouter le nouveau data store à l'outil, revenez au menu Créer un outil dans la console Dialogflow CX et actualisez la page. Le nouveau data store apparaît dans la liste des datastores disponibles.
  8. 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

  1. Accédez à la barre de menu située tout à gauche, puis sélectionnez Flux.
  2. Sélectionnez un flux et une page, puis cliquez sur la route à utiliser avec votre data store.
  3. Accédez à Fulfillment > Data store tool (Exécution > Outil de datastore), puis sélectionnez votre outil de datastore dans le menu déroulant.
  4. Accédez à Fulfillment > Agent responses (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 de datastore).
  5. Configurez le nombre de liens sources et de citations à afficher dans la réponse, puis 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 pour ouvrir la fenêtre Réponse conditionnelle.
  6. En haut du menu Route (Routage), cliquez sur Save (Enregistrer).
  7. 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 méthode dataStoreTool 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 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 des outils de datastore peuvent également contenir des extraits de 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 du data store ou sur la façon de répondre lorsqu'aucune réponse n'est trouvée.

Vous pouvez écraser une réponse en ajoutant une entrée de FAQ pour une question spécifique.

Vous pouvez éventuellement 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 requise : 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 respecter la syntaxe d'expression de filtre acceptée pour les datastores. Plusieurs exemples détaillés indiquent au modèle de playbook 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.

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 un menu peut inclure un champ meal avec les valeurs valides "petit-déjeuner", "déjeuner" et "dîner", ainsi qu'un champ servingSize qui peut être n'importe quel entier compris entre 0 et 5. Vos instructions pourraient 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é à une audience 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 renseigner 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 que l'outil de data store renvoie s'il n'existe pas de réponse résumée valide pour la requête. Vous pouvez fournir plusieurs exemples pour indiquer au modèle de playbook comment renseigner 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, lors des tests, vous constatez 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 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 datastore

Les gestionnaires de datastore 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 :

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 du contrôle des accès.

Ajouter un data store à un agent

Si vous ne l'avez pas déjà fait, suivez les instructions de configuration pour créer un agent.

Pour ajouter un datastore à votre agent :

  1. Sélectionnez une page, puis cliquez sur Ajouter un gestionnaire d'état.
  2. Cochez la case Datastores, puis cliquez sur Appliquer.
  3. Cliquez sur le symbole + en haut à droite de la section Datastores de la page.
  4. Dans le menu des datastores qui s'affiche, cliquez sur Ajouter des datastores.
  5. 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.
  6. (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 :

  • Utilisez une intégration pour fournir une interface utilisateur à votre agent. Chaque intégration fournit des instructions de déploiement.
  • L'intégration de Dialogflow CX Messenger est une bonne option pour les gestionnaires de data store. Il intègre des options 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 de l'interface utilisateur gère 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 : l'agent gère les questions telles que "Qui êtes-vous ?" ou "Êtes-vous un humain ?".
  • Escalader 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'intents 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 Réponse de l'agent 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 : extrait, titre et URI.
  • Confiance de l'ancrage pour la réponse.
  • Pour un data store de questions fréquentes, 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 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 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 réponse principale (uniquement pour les réponses du data store questions fréquentes) $request.knowledge.questions[0]
Confiance de l'ancrage pour la meilleure réponse $request.knowledge.grounding_confidences[0]