Outils de datastore

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 dans vos data stores lors de l'exécution.

Outils de stockage de données: console

Cette section vous explique comment ajouter un outil de datastore à un agent et le configurer dans un traitement.

Créer un outil de datastore

  1. Ouvrez la console des agents conversationnels, puis choisissez un Google Cloud projet.
  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 Tools (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 (Dépôt de données) dans le menu déroulant sous Type (Type). Vous pouvez également saisir une description de l'outil dans le champ Description.
  5. Sous Datastores (Data stores), 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 datastore que vous souhaitez ajouter à l'outil.
  6. (Facultatif) Pour créer un data store dans la console Agent Builder, cliquez sur Créer un data store. Vous serez automatiquement redirigé vers la console Agent Builder.
  7. (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 Agents de conversation (Dialogflow CX) et 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 Créer un outil pour créer l'outil de data store.

Ajouter l'outil de 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 le parcours de la page que vous souhaitez utiliser avec votre data store.
  3. Dans le menu Itinéraire, faites défiler la page jusqu'à Traitement > Outil de magasin de données. Sélectionnez votre outil de stockage de données dans le menu déroulant.
  4. Dans le menu Route, faites défiler la page jusqu'à Réalisation > Réponses de l'agent. Cliquez sur + Ajouter une réponse de boîte 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 et de citations sources pouvant apparaître dans la réponse, ainsi que le comportement de remplacement si la réponse du magasin de données est vide. Vous pouvez saisir une réponse de remplacement statique dans le champ Réponses de remplacement statiques. Vous pouvez également cliquer sur la case à cocher Remplacement génératif pour essayer d'utiliser l'IA pour générer une réponse avant d'utiliser la réponse de remplacement statique. Si vous avez besoin de personnaliser davantage les réponses de remplacement, cliquez sur l'icône en forme de clé à molette en haut à gauche de la fenêtre du formulaire Réponse du magasin de données pour afficher la fenêtre Réponse conditionnelle.
  6. En haut du menu Itinéraire, cliquez sur Enregistrer.
  7. Accédez au simulateur des agents de conversation (Dialogflow CX) pour tester les résultats de l'agent.

Outils de Datastore: API

Vous pouvez configurer un entrepôt de données de chaque type par outil. L'outil interrogera chacun de ces entrepôts de données pour obtenir des réponses. Par défaut, l'agent appellera le dataStoreTool à votre place.

Il existe trois types de magasins de données:

  • PUBLIC_WEB: magasin de données contenant du contenu Web public.
  • UNSTRUCTURED: magasin de données contenant des données privées non structurées.
  • STRUCTURED: magasin de données contenant des données structurées (par exemple, des questions fréquentes).

L'exemple suivant montre comment faire référence à un magasin de données. 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 de 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 marche à suivre avec la réponse des magasins de données 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 dans la FAQ pour une question spécifique.

Vous pouvez éventuellement fournir des exemples pour améliorer le comportement de l'agent. L'exemple doit avoir 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'outils de data store

Lorsque vous créez des exemples d'outils de magasin de données, le paramètre d'entrée de l'outil requestBody fournit trois entrées facultatives avec 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 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 compatible pour les magasins de données. Plusieurs exemples détaillés aident à indiquer 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.

Voici un exemple de chaîne filter pour affiner les résultats de recherche en fonction de la zone géographique:

  "filter": "country: ANY(\"Canada\")"

Pour en savoir plus, consultez la page d'exemples
du playbook.

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 datastore contenant des informations sur un menu peut inclure un champ meal avec "petit-déjeuner", "déjeuner" et "dîner" comme valeurs valides, et un champ servingSize pouvant être n'importe quel entier compris entre 0 et 5. Vos instructions peuvent se présenter comme suit:

    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 à 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. Vous pouvez renseigner n'importe quelle paire clé-valeur dans ce paramètre. Ces métadonnées sont transmises à l'outil de stockage de données 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 pour 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 stockage de données doit fournir si aucune réponse récapitulative valide n'est disponible 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. Il n'y a pas d'extraits dans la sortie de l'outil, ce qui peut aider à 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 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 magasin de données sur la page Outils de la console.

Ancrer la confiance

Les agents de conversation (Dialogflow CX) calculent un niveau de confiance pour chaque réponse générée à partir du contenu de vos data stores connectés. Cela évalue la confiance que vous pouvez accorder à toutes les informations de la réponse, qui sont étayées par les informations des datastores. Vous pouvez ajuster les réponses autorisées en sélectionnant le niveau de confiance le plus bas qui vous convient. Seules les réponses ayant un niveau de confiance égal ou supérieur à ce niveau s'affichent.

Vous avez le choix entre cinq niveaux de confiance: VERY_LOW, LOW, MEDIUM, HIGH et VERY_HIGH.

Sélection du modèle de data store

Les agents de conversation (Dialogflow CX) proposent plusieurs modèles à utiliser avec les data stores. Le choix d'un autre modèle peut affecter les performances de l'outil de data store. Pour obtenir la liste complète, consultez la documentation sur les modèles.

Requête de synthèse

La requête est un modèle de texte qui contient des espaces réservés prédéfinis. Les espaces réservés sont remplacés par les valeurs appropriées au moment de l'exécution, et le texte obtenu est envoyé au modèle d'IA. Vous pouvez utiliser une requête par défaut ou fournir votre propre requête personnalisée. Sachez qu'une invite personnalisée peut avoir un impact positif ou négatif sur les résultats.

Vous pouvez affiner le texte d'une requête personnalisée pour influer sur les résultats produits par le modèle en incluant des instructions supplémentaires et des exemples détaillés. Pour en savoir plus sur la création d'une invite personnalisée, consultez la documentation sur les paramètres du magasin de données.

Paramètres de la charge utile

Les paramètres de la charge utile permettent d'ajouter les extraits de data store en tant que contenu enrichi dans la charge utile de la réponse, qui est affichée dans le messager. Vous pouvez activer ou désactiver cette fonctionnalité.

Options de réponse de l'outil Data Store

Pour en savoir plus sur la configuration de la réponse de l'outil de magasin de données, consultez la documentation sur l'exécution.

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 le 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.

À l'aide de ces gestionnaires de datastore, 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 data store à votre agent : data store:

  1. Sélectionnez une page, puis cliquez sur Ajouter un gestionnaire d'état.
  2. Cochez la case Data stores (Data stores), puis cliquez sur Apply (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 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 Agent Builder.
  6. (Nouveaux data stores uniquement) Sélectionnez une source de données, puis suivez les instructions dans Agent Builder pour configurer votre data store. Pour en savoir plus sur la configuration des types de datastores, consultez la documentation sur les datastores. Cliquez sur Créer pour créer votre 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 à 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 Conversational Agents (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 : permet de répondre à des questions telles que "Qui êtes-vous ?" ou "Êtes-vous humain ?".
  • Transférer la demande à un agent humain : permet de gérer les requêtes telles que "Je veux parler à un humain" ou "Je veux parler à une personne réelle".

Pour ce faire, utilisez des intents et des routes d'intent générés 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 Agent says (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 les suivantes:

  • Sources identifiées de la réponse avec les champs suivants: extrait, titre, URI.
  • Confiance de la réponse.
  • Dans le cas d'un data store de questions fréquentes, la question correspondant à la réponse sélectionnée.

Consultez le tableau suivant pour obtenir des exemples d'accès à ces informations.

Informations Moyen d'accès
Extrait de la source principale 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 source principale identifiée de la réponse principale $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title")
Lien de la source la plus identifiée de la réponse la plus populaire $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "uri")
Nombre de sources identifiées pour la première réponse $sys.func.COUNT($sys.func.IDENTITY($request.knowledge.sources[0]))
Nombre de réponses de la base de connaissances $sys.func.COUNT($request.knowledge.answers)
Question correspondant à la réponse principale (pour les réponses du magasin de données des questions fréquentes uniquement) $request.knowledge.questions[0]
Établir la confiance pour la réponse principale $request.knowledge.grounding_confidences[0]