知识图谱:助力实现能够感知上下文的智能搜索

知识图谱通过关联以下三个核心支柱的数据来增强 Gemini Enterprise 的功能:人员内容交互。知识图谱通过理解语料库中不同实例和实体之间的关系,提供更深入的上下文感知型搜索,从而改善搜索质量和体验。

知识图谱通过以下方式增强搜索功能:

  • 利用组织上下文信息(包括派生的汇报关系和其他实体关系)丰富与人员相关的数据。
  • 改进实体识别、关系和意图理解,以从用户查询中发现更多分析洞见。
  • 通过根据上下文获取的精确数据改进搜索回答,使用户更容易找到相关的人员和组织信息。

知识图谱支持的数据源

知识图谱适用于具有以下数据源的应用:

准备工作

如需使用知识图谱功能,您必须先配置人员连接器,将人员数据关联到知识图谱。如果不关联人员数据,这些功能将无法正常工作。

人员数据为知识图谱的关键功能提供支持,包括以下各项:

  • 实体解析
  • 上下文理解
  • 个性化
  • 自动填充
  • 建议

支持的人员数据源

每个应用只能有一个人员连接器。不过,您可以为不同的应用设置不同的人员连接器。根据您的身份系统选择数据源:

Gemini Enterprise 支持使用以下选项来将人员数据注入到知识图谱中:

  • Workspace 来源

    高级 Google 身份连接器可同步 Google Workspace 中的人员数据,并将其直接复制到 Vertex AI Search 索引中。通过将数据复制到索引中,此连接器可实现完整的知识图谱功能,包括自然语言处理 (NLP)。高级 Google 身份连接器是云原生的,其行为与高级云端硬盘连接器类似,会将数据保留在索引中。

    当连接器处于活跃状态时,您必须:

    1. 如果已在使用现有的人员搜索数据存储区,则需要解除其关联。
    2. 将新的数据存储区添加到您的引擎中。
  • 原生来源

    借助自定义人员连接器,您可以使用 Google 指定的架构从 BigQuery 或 Cloud Storage 上传人员数据。此选项非常适合具有自定义或混合身份源的组织。

  • 第三方来源

    Gemini Enterprise 支持使用以下第三方身份提供方来注入人员数据:

“知识图谱中的查询注解”简介

通过将结构化数据与搜索字词相关联,知识图谱中的查询注解可增强对搜索查询的理解。此过程利用来自知识图谱的上下文分析洞见来提高搜索结果的准确性和相关性。

与独立的信息面板不同,查询注解功能通过使用元数据丰富搜索查询来独立运行,从而实现更精确的实体检测、实体关联和用户上下文理解。当您输入搜索字词时,知识图谱会根据该字词与人员、组织、问题或其他实体的关系,帮助对查询进行分类和解读。

查询注解的关键组成部分包括:

  • 提及检测:识别搜索查询中的关键实体(例如人员)和关系(例如主管),并将它们与结构化数据相关联。

  • 用户上下文理解:分析用户上下文并检索相关用户信号(例如,最常联系的同事),以提高搜索相关性。

  • 实体关联:通过将字词关联到最相关的实体来消除歧义(例如,区分作为公司的“苹果”与作为水果的“苹果”)。

知识图谱面板

启用知识图谱后,搜索引擎会将内容丰富的面板整合到搜索结果中,从而提供根据上下文获取的更准确的信息,来帮助用户快速找到相关人员、角色和组织。当您执行搜索时,search API 响应会返回详细信息面板,其中包含与搜索查询相关的更多上下文信息和分析洞见。

以下类型的面板会显示在搜索结果页面上,有助于您识别相关实体。

  • “人员”面板:此面板包括相应人员的职位、部门以及与其他人员的关系(例如管理链、直接下属和团队成员)等信息。它有助于您快速找到组织内的相关人员及其角色。“人员”面板已通过知识图谱得到增强,人员以长卡片形式显示,有助于您全面了解相应人员在组织内的角色和关系。知识图谱搜索 API 响应包含丰富的数据面板,采用统一的单框搜索格式。 “人员”面板包含职位、部门和相关人员信息(例如管理链、直接下属或具有相同主管的团队成员)。 知识图谱派生的字段在“人员”面板结果的 derived_struct_data 中返回。

  • “组织”面板:此面板提供有关组织的关键详细信息,例如其名称、说明和网站信息。知识图谱搜索 API 响应包含丰富的数据面板,采用统一的单框搜索格式。“组织”面板会显示组织名称、说明和网站信息。组织结果在“组织”面板结果的 knowledge_graph_results 字段中返回。

知识图谱配置

知识图谱可以整合内部和外部数据源,将根据上下文获取的准确信息整合到内容丰富的面板中,从而完善搜索结果。

知识图谱的类型

知识图谱分为两种类型:

  • Google Cloud 知识图谱:通过整合外部数据源来扩展搜索结果。这样可以扩大搜索结果范围,并通过额外的分析洞见提高搜索结果的相关性。 Google Cloud 知识图谱仅适用于设置为全球位置的应用。

  • 私有知识图谱:利用内部组织数据生成丰富的搜索结果。它通过整合专有知识(例如关系、角色和职位)来提高相关性,并提供更符合上下文的准确查询注解。

更改知识图谱配置

所有 Gemini Enterprise 应用都启用了知识图谱配置。 在进行更改之前,您可以查看对搜索结果的影响,如下所示:

配置 已启用 已停用
Google Cloud 知识图谱 使用外部数据扩展搜索范围。 将搜索范围限制为内部数据。
私有知识图谱 利用内部数据增强搜索。 移除内部派生数据。

如需修改知识图谱配置,请参阅管理知识图谱配置部分。

私有知识图谱的结构和映射

私有知识图谱使用属性图数据模型。它专为企业使用场景而设计,支持特定类型的实体和关系。您可以检索通过支持的连接器导入的文档中的数据。私有知识图谱使用内部规则来:

  1. 将原始数据存储区架构中的数据映射到实体属性。
  2. 通过关联标识符在实体之间创建关系。

知识图谱引擎通过将这些内部规则应用于来自受支持连接器的所有文档来构建其图谱。

知识图谱实体类型和关系

知识图谱实体类型 知识图谱关系类型 支持的连接器
人员 经理 工作区来源 → 人员搜索
间接下属 使用自定义连接器的人员

数据源架构与实体属性之间的映射

源文档字段 备注
name.familyNamename.givenNamename.displayName givenNamefamilyName 的串联。如果为空,则使用 displayName
personId 用于唯一标识人员。
employeeId -
employmentStatus -
organizations[0].jobTitle organizations(数组)的第一个元素中的职位。
websites[0].value websites(数组)的第一个值。
topCoworkers -

知识图谱的生命周期

您的引擎的知识图谱在启用、更新和管理过程中会经历几个状态。了解以下状态有助于您知道预期的行为以及您可以执行的操作。

  • unspecified

    相应引擎未启用知识图谱,或知识图谱正在等待初始化。 如要启用它,您必须将 knowledge_graph_config.enable_private_knowledge_graph 设置配置为 true

  • initialization

    初始知识图谱构建正在运行中。在此状态期间,知识图谱无法进行处理。

    initialization 状态期间:

    • 您无法启用或停用知识图谱。
    • 您无法删除相应引擎。
    • 关联或取消关联支持知识图谱的数据存储区后,所做的更改不会立即反映在图谱中。如需了解详情,请参阅知识图谱支持的数据源
  • active

    知识图谱状态稳定且正在主动提供服务。这是功能正常的知识图谱的选定状态。

  • batch_update

    知识图谱正在更新以整合来自其源数据的最新更改。知识图谱支持的数据源发生更改,或者知识图谱与其支持的数据源之间进行定期同步时,会触发此操作。知识图谱会保持有效状态,但由于更新仍在进行中,因此可能与已更改的源数据不同步。

    batch_update 状态期间:

    • 您无法启用或停用知识图谱。
    • 您无法删除相应引擎。
    • 关联或取消关联支持知识图谱的数据存储区后,所做的更改不会立即反映在图谱中。如需了解详情,请参阅知识图谱支持的数据源
  • deleting

    相应引擎已停用知识图谱,并且正在删除该知识图谱。知识图谱无法进行处理。

    deleting 状态期间:

    • 您无法启用或停用知识图谱。
    • 您无法删除相应引擎。

管理知识图谱配置

您可以使用控制台或 API 管理配置。

准备工作:

  1. 您必须已创建 Gemini Enterprise 应用。
  2. 请参阅更改知识图谱配置,了解更改配置对现有应用的影响。

请按照以下步骤在控制台中更新知识图谱配置:

控制台

如需使用 Google Cloud 控制台管理知识图谱配置,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Gemini Enterprise 页面。

    Gemini Enterprise

  2. 应用页面上,点击要更新其知识图谱配置的应用。

  3. 依次前往配置 > 知识图谱标签页。

  4. 根据需要,切换Google Cloud 知识图谱私有知识图谱

  5. 在确认所有提示或警告后,点击保存按钮。

启用和停用知识图谱的效果如下:

  1. Google Cloud 知识图谱

    • 启用 Google Cloud 知识图谱后,您便可访问来自外部来源的丰富数据,从而扩大搜索范围。
    • 停用它会将搜索结果范围限制为内部数据,移除对外部上下文的访问权限。
  2. 私有知识图谱

    • 启用私有知识图谱会重新生成内部派生数据,查询注解会在最多一天后返回。
    • 停用它会删除内部派生数据并移除查询注解,从而降低搜索的准确性和丰富度。

API

您可以使用 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"
    }
  }

在搜索结果中查看知识面板

您可以查看通过知识图谱丰富的搜索结果在您的搜索应用中是如何显示的。对于基于面板的搜索界面,知识图谱面板会以丰富的信息框的形式与常规搜索结果一起显示。它整合了相关的实体详细信息,例如名称、说明、图片和关系,从而提供更具信息性和上下文相关性的搜索体验。这些提升的结果可帮助您快速找到与查询相关的关键分析洞见。

以下 JSON 示例展示了“人员”面板在 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"
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          ]
        }
      ]

以下 JSON 示例展示了“组织”面板在 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/"
                                }
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }

后续步骤

使用自定义嵌入