Knowledge Graph : optimiser la recherche intelligente et contextuelle

Le Knowledge Graph améliore Gemini Enterprise en associant des données dans trois piliers principaux : personnes, contenu et interactions. Le Knowledge Graph améliore la qualité et l'expérience de recherche en comprenant la relation entre les différentes instances et entités de votre corpus, ce qui permet d'obtenir des résultats de recherche plus approfondis et contextuels.

Le Knowledge Graph améliore les capacités de recherche en :

  • Enrichissement des données liées aux personnes avec le contexte organisationnel, y compris les relations hiérarchiques et les relations avec d'autres entités.
  • Amélioration de la reconnaissance des entités, des relations et de la compréhension de l'intention pour découvrir plus d'insights à partir des requêtes des utilisateurs.
  • Améliorer les réponses de recherche grâce à des données précises et contextuelles, ce qui permet aux utilisateurs de trouver plus facilement des informations sur les personnes et les organisations qui les intéressent.

Sources de données compatibles avec le Knowledge Graph

Le Knowledge Graph est disponible pour les applications qui disposent des sources de données suivantes :

Avant de commencer

Pour utiliser les fonctionnalités de Knowledge Graph, vous devez d'abord connecter les données sur les personnes à Knowledge Graph en configurant un connecteur de personnes. Sans connexion des données sur les personnes, ces fonctionnalités ne fonctionnent pas correctement.

Les données sur les personnes permettent d'alimenter des fonctionnalités clés du Knowledge Graph, y compris les suivantes :

  • Résolution d'entité
  • Compréhension du contexte
  • Personnalisation
  • Saisie semi-automatique
  • Recommandations

Sources de données sur les personnes acceptées

Chaque application ne peut avoir qu'un seul connecteur de personnes. Toutefois, vous pouvez configurer différents connecteurs de personnes pour différentes applications. Choisissez une source de données en fonction de votre système d'identité :

Gemini Enterprise accepte les options suivantes pour ingérer les données des personnes dans le Knowledge Graph :

  • Sources Workspace

    Le connecteur Advanced Google Identity synchronise les données sur les personnes depuis Google Workspace en les copiant directement dans l'index Vertex AI Search. En copiant les données dans l'index, ce connecteur permet de bénéficier de toutes les fonctionnalités du Knowledge Graph, y compris le traitement du langage naturel (NLP). Le connecteur Advanced Google Identity est natif du cloud et se comporte de la même manière que le connecteur Advanced Drive en conservant les données dans l'index.

    Lorsque le connecteur est actif, vous devez :

    1. Dissociez le datastore Recherche de personnes existant s'il est utilisé.
    2. Ajoutez le nouveau data store à votre moteur.
  • Sources natives

    Le connecteur de personnes personnalisé vous permet d'importer des données sur les personnes depuis BigQuery ou Cloud Storage à l'aide d'un schéma spécifié par Google. Cette option est idéale pour les organisations disposant de sources d'identité personnalisées ou hybrides.

  • Sources tierces

    Gemini Enterprise est compatible avec les fournisseurs d'identité tiers suivants pour ingérer les données utilisateur :

À propos de l'annotation des requêtes avec Knowledge Graph

L'annotation des requêtes avec le Knowledge Graph améliore la compréhension des requêtes de recherche en associant des données structurées à des termes de recherche. Ce processus améliore la précision et la pertinence des résultats de recherche en exploitant les insights contextuels du Knowledge Graph.

Contrairement aux panneaux d'informations autonomes, l'annotation des requêtes fonctionne de manière indépendante en enrichissant les requêtes de recherche avec des métadonnées. Cela permet une détection des entités, une association des entités et une compréhension du contexte utilisateur plus précises. Lorsque vous saisissez un terme de recherche, le Knowledge Graph permet de catégoriser et d'interpréter la requête en fonction de sa relation avec des personnes, des organisations, des problèmes ou d'autres entités.

Voici les principaux composants de l'annotation des requêtes :

  • Détection des mentions : identifie les entités clés (par exemple, des personnes) et les relations (par exemple, un responsable) dans une requête de recherche, et les associe à des données structurées.

  • Compréhension du contexte utilisateur : analyse le contexte de l'utilisateur et récupère les signaux utilisateur associés (par exemple, les collaborateurs les plus fréquents) pour affiner la pertinence de la recherche.

  • Association d'entités : résout les ambiguïtés en associant les termes à leurs entités les plus pertinentes (par exemple, en distinguant "Apple" en tant qu'entreprise et en tant que fruit).

Fiches Knowledge Graph

Une fois le Knowledge Graph activé, le moteur de recherche intègre les panneaux enrichis aux résultats de recherche. Les utilisateurs bénéficient ainsi d'informations plus précises et contextuelles qui les aident à trouver rapidement les personnes, les rôles et les organisations qui les intéressent. Lorsque vous effectuez une recherche, l'API search répond avec des panneaux détaillés qui fournissent un contexte et des insights supplémentaires liés à la requête de recherche.

Les types de panneaux suivants s'affichent sur la page des résultats de recherche, ce qui vous permet d'identifier plus facilement les entités pertinentes.

  • Panneau "Personnes" : ce panneau inclut des informations telles que le poste, le service et les relations de la personne avec d'autres personnes (par exemple, la chaîne hiérarchique, les collaborateurs directs et les coéquipiers). Il vous aide à trouver rapidement les personnes concernées et leurs rôles au sein de l'organisation. Le panneau "Personnes" est amélioré grâce au Knowledge Graph. Les personnes sont affichées sous forme de fiches longues, ce qui permet d'obtenir une vue complète de leur rôle et de leurs relations au sein de l'organisation. La réponse de l'API Knowledge Graph Search inclut des panneaux de données enrichies dans un format de recherche unifié. Le panneau "Personnes" contient des informations sur le poste, le service et les personnes associées (telles que la chaîne hiérarchique, les collaborateurs directs ou les coéquipiers ayant les mêmes responsables). Les champs dérivés du Knowledge Graph sont renvoyés dans derived_struct_data dans le résultat du panneau "Personnes".

  • Panneau "Organisation" : ce panneau fournit des informations clés sur l'organisation, comme son nom, sa description et les informations de son site Web. La réponse de l'API Knowledge Graph Search inclut des panneaux de données enrichies dans un format de recherche unifié. Le panneau "Organisation" affiche le nom, la description et les informations sur le site Web de l'organisation.Les résultats de l'organisation sont renvoyés dans le champ knowledge_graph_results du résultat du panneau "Organisation".

Configurations du Knowledge Graph

Knowledge Graph améliore les résultats de recherche en intégrant des panneaux enrichis avec des informations précises et contextuelles issues de sources de données internes et externes.

Types de Knowledge Graph

Il existe deux types de graphiques de connaissances :

  • Google Cloud Knowledge Graph : étend les résultats de recherche en intégrant des sources de données externes. Cela élargit la portée des résultats de recherche et fournit des insights supplémentaires pour améliorer la pertinence. Google Cloud Le Knowledge Graph n'est disponible que dans les applications définies sur la zone géographique Monde.

  • Knowledge Graph privé : exploite les données internes de l'organisation pour générer des résultats de recherche enrichis. Il améliore la pertinence en intégrant des connaissances propriétaires, telles que les relations, les rôles et les titres de postes, et fournit des annotations de requêtes plus précises en fonction du contexte.

Modifier les configurations du Knowledge Graph

Les configurations Knowledge Graph sont activées pour toutes les applications Gemini Enterprise. Avant d'apporter des modifications, vous pouvez voir leur impact sur les résultats de recherche comme suit :

Configuration Activé Désactivé
Google Cloud  Knowledge Graph Étend la recherche avec des données externes. Limite la recherche aux données internes.
Knowledge Graph privé Améliore la recherche avec des données internes. Supprime les données dérivées internes.

Pour modifier les configurations du Knowledge Graph, consultez la section Gérer la configuration du Knowledge Graph.

Structure et mappage du Knowledge Graph privé

Le Knowledge Graph privé utilise un modèle de données de graph de propriétés. Il est conçu pour les cas d'utilisation Enterprise et prend en charge des types spécifiques d'entités et de relations. Vous pouvez récupérer les données des documents importés à l'aide de connecteurs compatibles. Le Knowledge Graph privé utilise des règles internes pour :

  1. Mappez les données du schéma du data store d'origine aux propriétés des entités.
  2. Créez des relations entre les entités en associant des identifiants.

Le moteur Knowledge Graph construit son graphique en appliquant ces règles internes à tous les documents des connecteurs compatibles.

Types d'entités et relations du Knowledge Graph

Types d'entités Knowledge Graph Types de relations dans le Knowledge Graph Connecteurs compatibles
Personne Gestionnaire Sources Workspace → Recherche de personnes
Responsable hiérarchique Personnes utilisant un connecteur personnalisé

Mappage du schéma de la source de données aux propriétés des entités

Champ du document source Remarques
name.familyName, name.givenName, name.displayName Concaténation de givenName et familyName. Si ce champ est vide, utilisez displayName.
personId Permet d'identifier une personne de manière unique.
employeeId -
employmentStatus -
organizations[0].jobTitle Titre du poste dans le premier élément des organisations (tableau).
websites[0].value Première valeur des sites Web (tableau).
topCoworkers -

Cycle de vie du Knowledge Graph

Le Knowledge Graph de votre moteur passe par plusieurs états lorsqu'il est activé, mis à jour et géré. Comprendre les états suivants vous aide à savoir à quoi vous attendre et quelles actions sont disponibles.

  • unspecified

    Le Knowledge Graph n'est pas activé pour le moteur ou est en attente d'initialisation. Pour l'activer, vous devez définir le paramètre knowledge_graph_config.enable_private_knowledge_graph sur true.

  • initialization

    La construction initiale du Knowledge Graph est en cours. Dans cet état, le Knowledge Graph n'est pas disponible pour le traitement.

    Lorsque l'état est initialization :

    • Vous ne pouvez pas activer ni désactiver le Knowledge Graph.
    • Vous ne pouvez pas supprimer le moteur.
    • Les modifications apportées lorsque vous associez ou dissociez des data stores compatibles avec le Knowledge Graph ne sont pas immédiatement répercutées dans le graphique. Pour en savoir plus, consultez les sources de données compatibles avec Knowledge Graph.
  • active

    Le Knowledge Graph est fiable et actif. Il s'agit de l'état sélectionné pour un Knowledge Graph fonctionnel.

  • batch_update

    Le Knowledge Graph est en cours de mise à jour pour intégrer les modifications récentes apportées à ses données sources. Cette action est déclenchée par une modification de la source de données acceptée pour le Knowledge Graph ou par une synchronisation périodique entre le Knowledge Graph et sa source de données acceptée. Le graphique Knowledge Graph reste actif, mais il est potentiellement désynchronisé avec les données sources modifiées, car les mises à jour sont toujours en cours.

    Lorsque l'état est batch_update :

    • Vous ne pouvez pas activer ni désactiver le Knowledge Graph.
    • Vous ne pouvez pas supprimer le moteur.
    • Les modifications apportées lorsque vous associez ou dissociez des data stores compatibles avec le Knowledge Graph ne sont pas immédiatement reflétées dans le graphique. Pour en savoir plus, consultez les sources de données compatibles avec Knowledge Graph.
  • deleting

    Le Knowledge Graph est désactivé pour le moteur et est en cours de suppression. Le Knowledge Graph n'est pas disponible pour le traitement.

    Lorsque l'état est deleting :

    • Vous ne pouvez pas activer ni désactiver le Knowledge Graph.
    • Vous ne pouvez pas supprimer le moteur.

Gérer la configuration du Knowledge Graph

Vous pouvez gérer les configurations à l'aide de la console ou de l'API.

Avant de commencer :

  1. Vous devez avoir créé une application Gemini Enterprise.
  2. Consultez Modifier les configurations du Knowledge Graph pour connaître l'impact de la modification des configurations sur les applications existantes.

Suivez la procédure ci-dessous pour mettre à jour les configurations du Knowledge Graph dans la console :

Console

Pour gérer les configurations du Knowledge Graph à l'aide de la console Google Cloud , procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Gemini Enterprise.

    Gemini Enterprise

  2. Sur la page Applications, cliquez sur l'application dont vous souhaitez mettre à jour les configurations du Knowledge Graph.

  3. Accédez à l'onglet Configurations > Graphique des connaissances.

  4. Activez Google Cloud Knowledge Graph ou Knowledge Graph privé selon vos besoins.

  5. Cliquez sur le bouton Enregistrer après avoir confirmé les invites ou les avertissements.

Voici les conséquences de l'activation et de la désactivation du Knowledge Graph :

  1. Google Cloud Knowledge Graph :

    • L'activation du Google Cloud Knowledge Graph permet d'accéder à des données enrichies provenant de sources externes, ce qui élargit le contexte de recherche.
    • Si vous la désactivez, les résultats de recherche seront limités aux données internes et vous n'aurez plus accès au contexte externe.
  2. Knowledge Graph privé :

    • L'activation du Knowledge Graph privé régénère les données dérivées internes, et les annotations de requête sont renvoyées au bout d'un jour maximum.
    • Si vous le désactivez, les données dérivées internes et les annotations de requête seront supprimées, ce qui réduira la précision et la richesse de la recherche.

API

Vous pouvez modifier les paramètres Knowledge Graph à l'aide de l'API :

  {
    "engine": {
      "name": "projects/<project_id>/locations/<location>/collections/<collection_id>/engines/<engine_id>",
      "knowledge_graph_config": {
        "enable_cloud_knowledge_graph": true,
        "enable_private_knowledge_graph": true
      }
    },
    "update_mask": {
      "paths": "knowledge_graph_config"
    }
  }

Afficher les fiches info dans les résultats de recherche

Vous pouvez voir comment les résultats de recherche enrichis par le Knowledge Graph s'affichent dans votre application de recherche. Pour les interfaces de recherche basées sur des panneaux, le panneau Knowledge Graph s'affiche sous la forme d'une zone d'informations enrichies à côté des résultats de recherche standards. Il intègre des détails pertinents sur les entités, tels que les noms, les descriptions, les images et les relations, ce qui permet d'offrir une expérience de recherche plus informative et contextuellement pertinente. Ces résultats boostés vous aident à trouver rapidement des informations clés en lien avec votre requête.

L'exemple JSON suivant montre comment un panneau "Personnes" s'affiche dans une réponse d'API :


      one_box_results: [
        {
          one_box_type: PEOPLE
          search_results: [
            {
              document: {
                name: "projects/<pii data>/locations/global/collections/default_collection/dataStores/people-v17-df-sprint_1731449540556/branches/0/documents/<name>"
                derived_struct_data: {
                  fields: [
                    {
                      key: "management_chain"
                      value: {
                        list_value: {
                          values: [
                            {
                              struct_value: {
                                fields: [
                                  {
                                    key: "person_id"
                                    value: {

                                      string_value: "<persons name>"
                                    }
                                  },
                                  {
                                    key: "job_title"
                                    value: {
                                      string_value: "Account Executive"
                                    }
                                  },
                                  {
                                    key: "name"
                                    value: {
                                      string_value: "<persons name>"
                                    }
                                  }
                                ]
                              }
                            },
                            {
                              struct_value: {
                                fields: [
                                  {
                                    key: "name"
                                    value: {
                                      string_value: "<persons name>"
                                    }
                                  },
                                  {
                                    key: "job_title"
                                    value: {

                                      string_value: "Account Executive"
                                    }
                                  },
                                  {
                                    key: "person_id"
                                    value: {

                                      string_value: "<persons name>"
                                    }
                                  }
                                ]
                              }
                            }

                          ]
                        }
                      }
                    },
                    {

                      key: "teammates_with_same_manager"
                      value: {

                        list_value: {

                          values: [
                            {

                              struct_value: {

                                fields: [
                                  {

                                    key: "person_id"
                                    value: {

                                      string_value: "<persons name>"
                                    }
                                  },
                                  {

                                    key: "job_title"
                                    value: {

                                      string_value: "Account Executive"
                                    }
                                  },
                                  {

                                    key: "name"
                                    value: {

                                      string_value: "<persons name>"
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    },
                    {
                      key: "direct_reports"
                      value: {
                        list_value: {
                          values: [
                            {
                              struct_value: {
                                fields: [
                                  {
                                    key: "job_title"
                                    value: {
                                      string_value: "Account Strategist, Lead Generation"
                                    }
                                  },
                                  {
                                    key: "name"
                                    value: {
                                      string_value: "<persons name>"
                                    }
                                  },
                                  {
                                    key: "person_id"
                                    value: {
                                      string_value: "<persons name>"
                                    }
                                  }
                                ]
                              }
                            },
                            {
                              struct_value: {
                                fields: [
                                  {
                                    key: "person_id"
                                    value: {
                                      string_value: "<persons name>"
                                    }
                                  },
                                  {
                                    key: "name"
                                    value: {
                                      string_value: "<persons name>"
                                    }
                                  },
                                  {
                                    key: "job_title"
                                    value: {

                                      string_value: "Account Strategist, Mid-Market Sales, Google Customer Solutions"
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          ]
        }
      ]

L'exemple JSON suivant montre comment un panneau "Organisation" s'affiche dans une réponse d'API :

      {
        one_box_type: ORGANIZATION
        knowledge_graph_results: [
          {
            knowledge_graph_source_type: CLOUD_KG
            context: {
              struct_value: {
                fields: [
                  {
                    key: "@vocab"
                    value: {
                      string_value: "http://schema.org/"
                    }
                  }
                ]
              }
            }
            type: {
              string_value: "ItemList"
            }
            item_list_element: {
              values: [
                {
                  struct_value: {
                    fields: [
                      {
                        key: "result"
                        value: {
                          struct_value: {
                            fields: [
                              {
                                key: "@id"
                                value: {
                                  string_value: "c-025prnpgp"
                                }
                              },
                              {
                                key: "identifier"
                                value: {
                                  list_value: {
                                    values: [
                                      {
                                        struct_value: {
                                          fields: [
                                            {
                                              key: "name"
                                              value: {
                                                string_value: "googleKgMID"
                                              }
                                            },
                                            {
                                              key: "value"
                                              value: {
                                                string_value: "/m/0k8z"
                                              }
                                            },
                                            {
                                              key: "@type"
                                              value: {
                                                string_value: "PropertyValue"
                                              }
                                            }
                                          ]
                                        }
                                      },
                                      {
                                        struct_value: {
                                          fields: [
                                            {
                                              key: "value"
                                              value: {

                                                string_value: "Q312"
                                              }
                                            },
                                            {
                                              key: "@type"
                                              value: {
                                                string_value: "PropertyValue"
                                              }
                                            },
                                            {
                                              key: "name"
                                              value: {

                                                string_value: "wikidataQID"
                                              }
                                            }
                                          ]
                                        }
                                      }
                                    ]
                                  }
                                }
                              },
                              {
                                key: "@type"
                                value: {
                                  list_value: {
                                    values: [
                                      {
                                        string_value: "Corporation"
                                      },
                                      {
                                        string_value: "Thing"
                                      },
                                      {
                                        string_value: "Organization"
                                      }
                                    ]
                                  }
                                }
                              },
                              {
                                key: "name"
                                value: {
                                  string_value: "Apple"
                                }
                              },
                              {
                                key: "detailedDescription"
                                value: {
                                  struct_value: {
                                    fields: [
                                      {
                                        key: "url"
                                        value: {
                                          string_value: "https://en.wikipedia.org/wiki/Apple_Inc."
                                        }
                                      },
                                      {
                                        key: "articleBody"
                                        value: {
                                          string_value: "Apple Inc. is an American multinational corporation and technology company headquartered and incorporated in Cupertino, California, in Silicon Valley. It is best known for its consumer electronics, software, and services. "
                                        }
                                      },
                                      {
                                        key: "license"
                                        value: {

                                          string_value: "https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License"
                                        }
                                      }
                                    ]
                                  }
                                }
                              },
                              {
                                key: "description"
                                value: {
                                  string_value: "Technology company"
                                }
                              },
                              {
                                key: "image"
                                value: {
                                  struct_value: {
                                    fields: [
                                      {
                                        key: "contentUrl"
                                        value: {
                                          string_value: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTMHrvLPmr_8yVjoTYsyxhRGtPMcA90bcJl9_RehtJU0tr64KNR"
                                        }
                                      },
                                      {
                                        key: "url"
                                        value: {

                                          string_value: "https://commons.wikimedia.org/wiki/File:Apple_logo_black.svg"
                                        }
                                      }
                                    ]
                                  }
                                }
                              },
                              {
                                key: "url"
                                value: {

                                  string_value: "http://www.apple.com/"
                                }
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }

Étapes suivantes

Utilisez des embeddings personnalisés.