Outils de datastore

Les outils de data store peuvent fournir des réponses d'agents 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

  1. Ouvrez la console Agents conversationnels et sélectionnez un projet Google Cloud.
  2. Sélectionnez un agent dans le menu déroulant.
  3. Accédez à la barre de menu tout à gauche de la page, puis sélectionnez Outils.
  4. 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.
  5. Console Conversational Agents : sous Data stores, cliquez sur Add data stores pour ajouter un ou plusieurs datastores préexistants à l'outil, ou sur Create data store pour en ajouter un. Si vous créez un data store, un menu de types de data stores s'affiche. Les options Site Web, Cloud Storage (questions fréquentes) et Cloud Storage (données non structurées) peuvent être complétées dans la console Agents conversationnels. Si vous choisissez un autre type, vous serez automatiquement redirigé vers AI Applications pour créer le data store : Console AI Applications
  6. Console Dialogflow CX : sous Data stores, cliquez sur Add data stores (Ajouter des data stores). La fenêtre pop-up qui s'affiche contient la liste de vos data stores existants, le cas échéant. Sélectionnez le ou les data store que vous souhaitez ajouter à l'outil. Pour créer un datastore dans la console AI Applications, cliquez sur Créer un data store. Vous serez automatiquement redirigé vers AI Applications : Console AI Applications
  7. Une fois le nouveau data store configuré, cliquez sur Créer. Si vous avez créé un data store dans la console Agents conversationnels (Dialogflow CX), il devrait maintenant apparaître dans la liste des data stores. Si vous avez créé un data store dans AI Applications, revenez au menu Créer un outil que vous configurez dans la console Conversational Agents (Dialogflow CX), puis actualisez la page. Le nouveau datastore devrait maintenant apparaître dans la liste des datastores disponibles.
  8. Cliquez sur Enregistrer en haut de la configuration de l'outil de création pour créer le nouvel outil de data store.
  9. Pour en savoir plus sur les options de configuration supplémentaires de l'outil de data store, consultez la page Paramètres du data store.

Ajouter l'outil Data Store à un traitement

  1. Dans la barre de menu tout à gauche, sélectionnez Flux.
  2. Sélectionnez un flux et une page, puis cliquez sur la route de la page que vous souhaitez utiliser avec votre data store.
  3. 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.
  4. Dans le menu Route, faites défiler la page jusqu'à Fulfillment > Réponses de l'agent. Cliquez sur + Ajouter une réponse de dialogue, puis sur Réponse de l'outil Data Store.
  5. 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 Réponses de remplacement statiques. Si vous le souhaitez, vous pouvez cocher la case Réponse générative de secours pour essayer d'utiliser l'IA afin de générer une réponse avant d'utiliser la réponse de secours statique. Si vous souhaitez personnaliser davantage les réponses de secours, cliquez sur l'icône clé à molette en haut à gauche de la fenêtre du formulaire Réponse du datastore pour afficher la fenêtre Réponse conditionnelle.
  6. En haut du menu Itinéraire, cliquez sur Enregistrer.
  7. Accédez au simulateur d'agents de conversation (Dialogflow CX) pour tester les résultats de l'agent.

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 d'expression de filtre acceptée 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 champ servingSize 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é à un public 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 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 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 devez fournir 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 :

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 datastore à votre agent : data store :

  1. Sélectionnez une page, puis cliquez sur Ajouter un gestionnaire d'état.
  2. Cochez la case Data stores, puis cliquez sur Appliquer.
  3. Cliquez sur le symbole + en haut à droite de la section Datastores de la page.
  4. Dans le menu des data stores qui s'affiche, cliquez sur Ajouter des data stores.
  5. 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 data store, cliquez sur Créer un data store. Vous êtes automatiquement redirigé vers AI Applications.
  6. (Nouveaux data stores uniquement) Sélectionnez une source de données, puis suivez les instructions dans Applications d'IA 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 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 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 ?".
  • Escalade vers un agent humain : traite les 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 des agents

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 de la base 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]
Niveau de confiance de l'ancrage pour la réponse principale $request.knowledge.grounding_confidences[0]