借助自定义连接器,您可以集成 Gemini Enterprise 标准连接器库之外的外部数据源,让组织中的独特数据变得可搜索且可访问。这些连接器由 Gemini 和 Google 的高级搜索智能技术提供支持,让您能够使用自然语言进行搜索和访问。自定义连接器直接与 Discovery Engine API 交互,从而实现强大的数据存储区、索引编制和智能搜索功能。连接器会将来源信息转换为标准化的基于 JSON 的文档格式(对内容、元数据和访问控制列表 [ACL] 进行结构化处理),并确保将这些数据整理到数据存储区中。这些存储区充当逻辑代码库,理想情况下代表单一文档格式,每个存储区都有自己的专用搜索索引和配置。
自定义连接器的工作原理
自定义连接器通过自动化数据流水线执行三个关键操作:提取、转换和同步。此流程可确保外部数据已正确准备并上传到 Gemini Enterprise。
提取:连接器使用外部系统的 API、数据库或文件格式,从外部系统提取数据,包括文档、元数据和权限。
转换:连接器会将原始数据转换为 Discovery Engine 的文档格式,对内容和元数据进行结构化处理,并为每个文档分配一个全局唯一 ID。对于访问权限控制,您可以直接使用 Google 认可的身份,也可以为外部用户或自定义群组使用身份映射。
同步:连接器会将文档上传到 Gemini Enterprise 数据存储区,并通过计划作业使文档保持最新状态。数据同步是使用为实体创建的数据存储区执行的。如需详细了解如何创建数据存储区,请参阅数据存储区创建流程。根据需要选择同步模式:增量模式会添加和更新数据,而完整模式会替换整个数据集。
ACL 和身份映射
如需管理文档级访问权限,请根据数据使用的身份格式,在纯 ACL 或身份映射这两种方法之间进行选择。
纯 ACL (AclInfo):当数据源使用 (Google Cloud) 识别的基于邮箱的身份时,使用此方法。此方法非常适合直接定义哪些人有权访问。
身份映射:当数据源使用用户名、旧版 ID 或其他外部身份系统时,可以使用此方法:
它在外部身份群组(例如 EXT1)和内部身份提供方 (IDP) 用户或组(例如
IDPUser1@example.com)之间建立了清晰的一对一关联。这样,系统就可以理解并应用源系统中基于群组的访问权限控制,这在 API 返回群组标签但不返回完整用户成员资格时,或者在高效伸缩 ACL 而不列出每个文档的数千个用户时非常有用。
身份映射过程需要将所有嵌套或分层身份结构解析为直接映射的平面列表,通常采用指定的 JSON 格式。
使用外部身份的唯一外部身份群组 ID(例如,EXT1)来维护系统完整性。如需了解详情和示例,请参阅映射外部身份。
数据存储区创建流程
创建身份存储区:此存储区充当所有身份映射的父级资源。创建后,系统会自动提取项目级身份提供方 (IDP) 设置。如需了解详情,请参阅检索或创建身份存储区。
将外部身份映射加载到身份存储区:创建身份存储区后,将外部身份数据加载到其中。如需了解详情,请参阅将身份映射注入到身份存储区。
创建并绑定实体数据存储区:只有在成功创建身份存储区并加载身份映射之后,才能创建实体数据存储区。您必须在创建实体数据存储区期间将其绑定到身份存储区。如需详细了解如何创建实体数据存储区,请参阅创建数据存储区。
数据同步
同步数据有两种不同的架构模型:
架构模型 1:增量 upsert:增量 upsert 方法最适合数据流式传输且需要实时更新的场景。连接器利用 Discovery Engine API,通过在发生细微更改时调用适当的函数,来执行高效的增量 upsert(插入或更新数据)。这种对最小更改大小和最小延迟的关注,使文档存储区即使在数据快速变化的情况下也能保持高度最新。
架构模型 2:与 Google Cloud Storage 全面同步:此推荐方法提供了一套全面的数据管理功能和高度灵活性。它支持完全同步(允许在整个数据集中插入、更新和删除数据)和增量同步(仅通过发送更改来处理插入和更新)。这使得该方法能够稳健地满足各种数据需求,尤其是在管理更大规模或更复杂的数据操作时。此模型采用暂存流程(图中的第 1 步),其中连接器首先将数据写入 Google Cloud Storage (GCS),然后利用 Discovery Engine API 从暂存的 GCS 位置调用必要的导入函数,从而更新文档存储区。
自定义连接器非常灵活,可支持混合架构,让您能够针对快速变化的数据实现增量 upsert,并针对计划的完整数据更新或删除实现全面同步。