知识图谱:助力实现智能且情境感知的搜索

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

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

  • 利用组织背景信息(包括派生的汇报关系和其他实体关系)丰富与人员相关的数据。
  • 改进实体识别、关系和意图理解,以便从用户查询中发现更多数据洞见。
  • 通过根据情境获取的精确数据改进搜索结果,让用户更轻松地找到相关人员和组织信息。

知识图谱支持的数据源

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

准备工作

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

人员数据可支持知识图谱的关键功能,包括:

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

支持的人员数据源

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

Gemini Enterprise 支持以下选项,用于将人员数据提取到知识图谱中:

  • Workspace 来源

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

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

    1. 如果正在使用现有的人物搜索数据存储区,请取消关联。
    2. 将新的数据存储区添加到引擎中。
  • 原生来源

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

  • 第三方来源

    Gemini Enterprise 支持以下第三方身份提供方来提取人员数据:

关于使用知识图谱进行查询注解

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

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

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

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

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

  • 实体链接:通过将字词链接到最相关的实体来消除歧义(例如,区分“Apple”是指公司还是水果)。

知识图谱面板

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

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

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

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

知识图谱配置

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

知识图谱的类型

知识图谱分为两种类型:

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

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

更改知识图谱配置

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

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

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

私有知识图谱结构和映射

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

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

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

知识图谱实体类型和关系

知识图谱实体类型 知识图谱关系类型 支持的连接器
人物 管理员 Workspace 来源 → 人员搜索
虚线汇报对象 使用自定义连接器的用户

从数据源架构到实体属性的映射

源文档字段 备注
name.familyName, name.givenName, name.displayName givenNamefamilyName 的串联。如果为空,则使用 displayName
personId 用于唯一标识个人。
employeeId -
employmentStatus -
organizations[0].jobTitle 组织(数组)中第一个元素的职位名称。
websites[0].value 网站(数组)的第一个值。
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 修改 Knowledge Graph 设置:

  {
    "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/"
                                }
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }

后续步骤

使用自定义嵌入