Agents de data store

Les agents de data store sont un type particulier d'agent Dialogflow qui peut fournir des réponses d'agent générées par un LLM en fonction du contenu de votre site Web et des données importées.

Pour créer cet agent, vous devez fournir des magasins de données lors de sa création.

Un agent de data store dispose de gestionnaires d'état spéciaux appelés gestionnaires de magasins de données. À l'aide de ces gestionnaires de data store, votre agent de data store peut avoir des conversations sur le 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 agent 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 Dialogflow.

Créer un agent de data store

Pour créer un agent de data store, procédez comme suit:

  1. Si ce n'est pas déjà fait, suivez les instructions de setup de Dialogflow.
  2. Accédez à la console Agent Builder:

    Console Agent Builder

  3. Sélectionnez votre projet dans la liste déroulante de la console.

  4. Si vous n'avez pas encore activé l'API, lisez et acceptez les conditions d'utilisation, puis cliquez sur Continuer et activer l'API.

  5. Cliquez sur Create a New App (Créer une application) ou New App (Nouvelle application).

  6. Sélectionnez Chat.

  7. Indiquez le nom de votre entreprise dans la section Configurations de l'agent.

  8. Développez la section des paramètres de fuseau horaire et de langue.

  9. Sélectionnez un fuseau horaire.

  10. Sélectionnez une langue par défaut.

  11. Indiquez un nom d'agent dans la section Nom de votre agent.

  12. Sélectionnez une région ou un emplacement multirégional dans la section Emplacement de votre agent.

  13. Cliquez sur Continuer.

  14. Connectez un data store à votre agent en effectuant l'une des opérations suivantes:

    • Sélectionnez un data store existant que vous avez créé précédemment.
    • Créez un data store :
      1. Cliquez sur Create New Data Store (Créer un data store).
      2. Choisissez une source de données.
      3. Fournissez des données et une configuration pour la source du data store que vous avez sélectionnée. L'emplacement de votre data store doit correspondre à l'emplacement de l'agent.
      4. Cliquez sur Créer pour créer le data store.
      5. Sélectionnez votre nouveau data store.
  15. Cliquez sur Créer.

  16. Votre agent est maintenant créé et vous êtes automatiquement redirigé vers la page Data stores disponibles, où vous pouvez ajouter d'autres data stores si nécessaire.

  17. Si vous avez créé un data store pour un site Web, vous devez valider votre domaine.

  18. Pour ouvrir votre agent avec Dialogflow CX, cliquez sur Preview (Aperçu) dans le panneau de gauche. Dans la console Dialogflow CX, vous pouvez modifier ou ajouter des data store données, déployer votre agent et éventuellement ajouter des flux qui traiteront des scénarios non couverts par les datastores.

Tester l'agent

Vous pouvez utiliser le simulateur Dialogflow CX pour tester l'agent.

Paramètres

Les paramètres de l'agent de data store suivants sont disponibles.

Surface de référence

Pour chaque réponse générée à partir du contenu de vos datastores connectés, un niveau de confiance est calculé. Il évalue le degré de confiance selon lequel toutes les informations contenues dans la réponse sont compatibles avec les informations stockées dans les data stores. Vous pouvez sélectionner le niveau de confiance le plus bas autorisé. L'agent ne renverra pas de réponses inférieures à ce niveau.

Vous avez le choix entre cinq niveaux de confiance: très faible, faible, moyen, élevé et très élevé.

Vous pouvez également appliquer un filtre heuristique d'ancrage. Si cette option est activée, les réponses comportant du contenu probablement inexact en fonction des hallucinations courantes sont supprimées.

Invite du data store

Vous avez la possibilité d'ajouter des informations supplémentaires sur l'agent afin d'améliorer la qualité des réponses générées à partir du contenu du data store et de les faire ressembler davantage à votre marque:

  • Nom de l'agent : nom que l'agent doit appeler lui-même. Si vous ne la configurez pas, la valeur par défaut Assistant IA sera utilisée.
  • Identité de l'agent : persona de l'agent. Si vous ne la configurez pas, la valeur par défaut Assistant IA sera utilisée.
  • Nom de l'entreprise : indiquez le nom de votre entreprise. Celui-ci doit déjà avoir été défini dans le cadre du flux de création de l'agent, mais peut être ajusté si nécessaire. Nous vous recommandons de définir ce champ correctement (et surtout de ne pas le laisser vide), afin de limiter la qualité des réponses générées.
  • Description de l'entreprise : brève description de ce que l'entreprise fait ou propose.
  • Champ d'application de l'agent : endroit où l'agent est destiné à être utilisé. Si cette règle n'est pas configurée, la valeur par défaut sur le site Web de l'entreprise sera utilisée.

Une fois que vous avez rempli partiellement ou entièrement cette section, vous pouvez inspecter à droite, sous Your prompt (Votre invite), le court paragraphe dérivé de ces paramètres. Cette information est utilisée lors de la génération des réponses.

Invite de sélection et de synthèse du modèle de data store

Lorsqu'une requête utilisateur est traitée, l'agent recherche les datastores afin de trouver les sources appropriées. L'agent envoie ensuite la requête utilisateur et les sources trouvées au LLM, qui effectue une synthèse.

Vous pouvez sélectionner le modèle à utiliser pour la synthèse et éventuellement fournir votre propre requête.

Sélectionner un modèle génératif

Vous pouvez sélectionner le modèle génératif utilisé par un agent de data store pour la requête de générative de résumé. Le tableau suivant contient les options disponibles:

Identifiant du modèle Langues acceptées
Par défaut Il s'agit de la configuration actuellement recommandée et susceptible d'évoluer au fil du temps. Si vous utilisez cette option, vous constaterez peut-être des changements au niveau du comportement de l'agent (améliorations probables). Si vous souhaitez plus de cohérence dans le comportement de l'agent, sélectionnez un modèle spécifique.
text-bison@001 Disponible dans toutes les langues acceptées.
text-bison@002 Disponible dans toutes les langues acceptées.
text-bison@001 ajusté (conversationnel) Seul l'anglais est accepté pour le moment.
text-bison@001 ajusté (informatif) Seul l'anglais est accepté pour le moment.
gemini-1.0-pro-001 Disponible dans toutes les langues acceptées.

Personnaliser l'invite de synthèse

Vous pouvez fournir votre propre requête pour l'appel LLM de synthèse. La requête est un modèle de texte pouvant contenir des espaces réservés prédéfinis. Les espaces réservés seront remplacés par les valeurs appropriées au moment de l'exécution, et le texte final sera envoyé au LLM.

Les espaces réservés sont les suivants:

  • $original-query: texte de la requête de l'utilisateur
  • $rewritten-query: Dialogflow utilise un module de réécriture pour réécrire la requête utilisateur d'origine dans un format plus précis.
  • $sources: Dialogflow utilise Enterprise Search pour rechercher des sources en fonction de la requête de l'utilisateur. Les sources trouvées sont affichées dans un format spécifique:

    [1] title of first source
    content of first source
    [2] title of second source
    content of second source
    
  • $conversation: l'historique de la conversation est affiché au format suivant:

    Human: user's first query
    AI: answer to user's first query
    Human: user's second query
    AI: answer to user's second query
    

Une invite personnalisée doit indiquer au LLM de renvoyer "NOT_ENOUGH_INFORMATION" lorsqu'il ne peut pas fournir de réponse. Dans ce cas, l'agent appelle un événement de non-correspondance.

Exemple :

Given the conversation between a Human and a AI assistant and a list of sources,
write a final answer for the AI assistant.
Follow these guidelines:
+ Answer the Human's query and make sure you mention all relevant details from
  the sources, using exactly the same words as the sources if possible.
+ The answer must be based only on the sources and not introduce any additional
  information.
+ All numbers, like price, date, time or phone numbers must appear exactly as
  they are in the sources.
+ Give as comprehensive answer as possible given the sources. Include all
  important details, and any caveats and conditions that apply.
+ The answer MUST be in English.
+ Don't try to make up an answer: If the answer cannot be found in the sources,
  you admit that you don't know and you answer NOT_ENOUGH_INFORMATION.
You will be given a few examples before you begin.

Example 1:
Sources:
[1] <product or service> Info Page
Yes, <company> offers <product or service> in various options or variations.

Human: Do you sell <product or service>?
AI: Yes, <company> sells <product or service>. Is there anything else I can
help you with?

Example 2:
Sources:
[1] Andrea - Wikipedia
Andrea is a given name which is common worldwide for both males and females.

Human: How is the weather?
AI: NOT_ENOUGH_INFORMATION


Begin! Let's work this out step by step to be sure we have the right answer.

Sources:
$sources

$conversation
Human: $original-query
AI:

Création de remplacement du data store

Cette section comprend les paramètres suivants:

  • Lien de remplacement : affiche le lien le plus approprié si l'agent ne parvient pas à produire de réponse.
  • Enable Generative AI (Activer l'IA générative) : permet au data store d'utiliser l'IA générative pour générer des résultats.

Améliorer les réponses de l'agent

Si, lors des tests, vous constatez que certaines réponses ne répondent pas à vos attentes, procédez comme suit.

Déployer l'agent

Il existe plusieurs façons de déployer l'agent:

  • L'option la plus simple consiste à utiliser une intégration de Dialogflow CX, qui fournit une interface utilisateur à votre agent. Chaque intégration fournit des instructions de déploiement.

  • L'intégration de Dialogflow Messenger est une option particulièrement intéressante pour les agents 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 Dialogflow CX pour les interactions. L'implémentation de votre interface utilisateur contrôle le déploiement.

Suivre les performances de votre agent

Vous pouvez surveiller l'historique des conversations de vos agents et utiliser l'outil d'analyse pour obtenir des statistiques sur ces agents.

Intents spéciaux

En plus de traiter les questions concernant le contenu que vous fournissez, l'agent de data store peut répondre aux types de questions suivants:

  • Identification de l'agent : permet de répondre aux questions telles que "Qui êtes-vous ?" ou "Êtes-vous un humain ?".
  • Escalader à un agent humain : gère les questions telles que "Je veux parler à un humain" ou "Je veux parler à une personne réelle".

Pour ce faire, les intents et les routes d'intent générés automatiquement sont utilisés.

Agents hybrides

Si vous disposez déjà d'un agent Dialogflow CX, vous pouvez le mettre à niveau vers un agent hybride, qui combine la puissance de commandes de conversation précises (flux, paramètres, intents, conditions, transitions, etc.) aux fonctionnalités génératives du gestionnaire de data store.

Lors de cette mise à niveau, vous pouvez supprimer ou désactiver temporairement les routes d'intent (lorsque vous testez les gestionnaires de data store) pour certains scénarios de conversation à partir de votre agent, car les gestionnaires de data store peuvent gérer ces scénarios plus simplement.

Les scénarios suivants sont recommandés pour les gestionnaires de data store:

  • Questions auxquelles vous pouvez répondre via les documents ou le site Web de votre organisation.
  • Questions fréquentes qui ne nécessitent pas de recherche dans une base de données.

Les scénarios suivants ne sont pas recommandés pour les gestionnaires de data store:

  • Contenu qui n'offre pas les réponses aux questions souhaitées
  • Questions qui nécessitent des recherches dans une base de données ou des requêtes de serveur.
  • Scénarios nécessitant le masquage des données
  • Scénarios nécessitant des réponses déterministes d'agent

Dialogflow évalue les entrées de l'utilisateur final dans l'ordre de préférence suivant:

  1. Correspondance d'intent pour les routes incluses dans le champ d'application
  2. Questions fréquentes sur le contenu du data store
  3. Contenu de data store non structuré

Ordre d'évaluation des entrées

Dialogflow évalue les entrées de l'utilisateur final dans l'ordre suivant pour les agents hybrides:

  1. Saisie d'un paramètre lors du remplissage du formulaire.
  2. Correspondances d'intent pour les routes incluses dans le champ d'application.
  3. Gestionnaire de data store avec contenu de data store de type FAQ.
  4. Gestionnaire de data store avec contenu de data store non structuré.

Ajouter ou modifier des gestionnaires de data store pour un agent existant

Les gestionnaires de data store sont un type particulier de gestionnaire d'état Dialogflow. Cela signifie que vous pouvez les appliquer à des flux ou des pages, et qu'ils sont évalués à l'aide des mêmes règles de champ d'application.

Pour ajouter ou modifier un gestionnaire de data store:

  1. Accéder à la console Dialogflow CX
  2. Sélectionnez votre projet Google Cloud.
  3. Sélectionnez l'agent.
  4. Sélectionnez le flux associé au gestionnaire de data store. Il s'agit généralement du flux de début par défaut.
  5. Sélectionnez la page associée au gestionnaire de data store. Il s'agit généralement de la page d'accueil.
  6. Cliquez sur Ajouter un gestionnaire d'état dans les données de la page, puis sélectionnez data store.
  7. Si vous devez créer un data store, vous serez redirigé vers l'interface utilisateur de Vertex AI Agent Builder. Consultez les informations sur le datastore pour vous aider à faire des sélections.
  8. Si vous possédez déjà un data store, cliquez sur Modifier le data store.
  9. Apportez les modifications nécessaires, puis enregistrez vos modifications lorsque vous avez terminé. Vous trouverez ci-dessous des informations sur les paramètres propres au data store.

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 aux réponses génératives. Utilisez $request.knowledge.questions[0] dans la section Agent dit pour fournir la réponse générative.

Options de réponse du data store

Vous pouvez mettre à jour le champ Link maximum (Nombre maximal de liens) pour indiquer le nombre maximal de liens supplémentaires devant être fournis par les réponses génératives.

Gérer les digressions de conversation

Un utilisateur final peut poser des questions de clarification au cours d'une conversation. Par exemple, lors de la collecte d'informations de carte de crédit, ils peuvent souhaiter clarifier ce qu'est un CVV. Dans ce cas, votre agent doit répondre à la question et reprendre la collecte des informations de carte de crédit nécessaires. Pour ce faire, vous pouvez créer un gestionnaire de data store avec des data stores qui répondent à la question, appliquer ce gestionnaire à la page de début du flux qui gère la collecte d'informations de carte de crédit et définir une cible de transition pour que ce gestionnaire retourne à la "page actuelle".

Gérer les correspondances d'intent indésirables

Si votre agent met en correspondance des intents alors qu'il devrait utiliser un gestionnaire de data store, vous pouvez essayer de résoudre le problème en procédant comme suit:

  • Supprimez ou modifiez les phrases d'entraînement vagues, afin qu'elles répondent précisément à l'intention souhaitée et n'entrent pas en conflit avec le contenu de votre data store.
  • Utilisez des exemples négatifs pour éviter la mise en correspondance des intents.

Filtrage des data stores

Dans certains cas, vous souhaiterez peut-être que seuls certains datastores soient disponibles pour les requêtes, en fonction des valeurs des paramètres de session. Par exemple, vous pouvez disposer de data stores uniques pour les catégories de produits. Pour filtrer les catégories de produits par data store:

  • Définissez les paramètres de session sur des catégories de produits.
  • Créez des routes de condition qui vérifient les valeurs des paramètres de session et passent à une page spécifique contenant le gestionnaire de data store souhaité.
  • Le gestionnaire de data store doit revenir à la page appelante pour que la conversation puisse se poursuivre.

Personnalisation

Pour améliorer la pertinence des réponses génératives pour les utilisateurs finaux, vous pouvez fournir à Dialogflow des informations sur les utilisateurs.

Ces informations sont fournies au format JSON. Comme aucun schéma n'est attendu, vous pouvez définir les propriétés de l'objet. Ce fichier JSON est envoyé au grand modèle de langage tel quel. Ainsi, les noms et valeurs de propriété descriptifs offrent les meilleurs résultats.

Exemple :

{
  "subscription plan": "Business Premium Plus",
  "devices owned": [
    {"model": "Google Pixel 7"},
    {"model": "Google Pixel Tablet"}
  ]
}

Personnaliser avec l'API Dialogflow

Vous pouvez fournir ces données à Dialogflow lors de l'envoi de requêtes de détection d'intent. Ces informations doivent être fournies dans chaque requête de détection d'intent, car elles ne sont pas conservées dans la session.

Indiquez ces informations dans le champ queryParams.endUserMetadata de la méthode Sessions.detectIntent.

Sélectionnez un protocole et une version pour la référence de session :

Protocole V3 V3beta1
REST Ressource de la session Ressource de la session
RPC Interface de la session Interface de la session
C++ SessionsClient Non disponible
C# SessionsClient Non disponible
Go SessionsClient Non disponible
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP Non disponible Non disponible
Python SessionsClient SessionsClient
Ruby Non disponible Non disponible

Personnaliser avec Dialogflow Messenger

Vous pouvez fournir ces données à l'intégration de Dialogflow Messenger. Consultez la méthode setContext.

Configuration de la recherche

Pour mieux contrôler le comportement de l'agent et améliorer la qualité des réponses, les configurations de recherche de boosting et de filtrage sont exposées afin de vous permettre de booster, d'enfouir et de filtrer les documents.

Les commandes d'optimisation vous permettent de modifier le classement des résultats de recherche en appliquant une valeur d'optimisation (supérieure à zéro pour un classement supérieur et inférieure à zéro pour un classement inférieur) à des documents spécifiques.

Les commandes de filtrage vous permettent de conserver ou de supprimer des résultats de recherche en fonction des critères de filtrage spécifiés.

Ces informations sont fournies au format JSON aux requêtes Dialogflow. Le format du fichier JSON dépend du type de commande de recherche.

Contrôle du boosting

La configuration de recherche suivante décrit une commande d'optimisation:

"searchConfig": {
  "boostSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "spec": [
        {
          "conditionBoostSpecs": {
            "condition": "CONDITION",
            "boost": "1.0"
          }
        }
      ]
    }
  ]
}

Commande de filtrage

La configuration de recherche suivante décrit une commande de filtrage:

"searchConfig": {
  "filterSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "filter": "CONDITION"
    }
  ]
}

Définir la configuration de la recherche avec l'API Dialogflow

Vous pouvez fournir ces données à Dialogflow lors de l'envoi de requêtes de détection d'intent. Ces informations doivent être fournies dans chaque requête de détection d'intent, car elles ne sont pas conservées dans la session.

Indiquez ces informations dans le champ queryParams.searchConfig de la méthode Sessions.detectIntent.

Sélectionnez un protocole et une version pour la référence de session :

Protocole V3 V3beta1
REST Ressource de la session Ressource de la session
RPC Interface de la session Interface de la session
C++ SessionsClient Non disponible
C# SessionsClient Non disponible
Go SessionsClient Non disponible
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP Non disponible Non disponible
Python SessionsClient SessionsClient
Ruby Non disponible Non disponible

Définir la configuration de la recherche avec Dialogflow Messenger

Vous pouvez fournir ces données à l'intégration de Dialogflow Messenger.

Pour appliquer une commande de recherche, l'extrait suivant doit être ajouté au code DF Messenger lors de son intégration à un site Web:

<script>
  document.addEventListener('df-messenger-loaded', () => {
    const dfMessenger = document.querySelector('df-messenger');
    const searchConfig = { ... }
    dfMessenger.setQueryParameters(searchConfig);
  });
</script>

Consultez la méthode setQueryParameters.