要创建数据存储区并注入用于搜索的数据,请转到 来源:
- 使用网站内容创建数据存储区
- 从 BigQuery 导入
- 从 Cloud Storage 导入
- 从 Google 云端硬盘同步
- 从 Cloud SQL 导入
- 从 Spanner 导入(公开预览版)
- 从 Firestore 导入
- 从 Bigtable 导入(公开预览版)
- 从 AlloyDB for PostgreSQL 导入(公开预览版)
- 使用 API 上传结构化 JSON 数据
- 使用 Terraform 创建数据存储区
如需改为从第三方数据源同步数据,请参阅连接第三方数据源。
限制
如果您有 CMEK 组织政策,则必须使用 API(而非 Google Cloud 控制台)创建新的数据存储区。如果您启用了 CMEK 组织政策,则无法使用 Google Cloud 控制台创建新的数据存储区。如需详细了解 Vertex AI Search 对 CMEK 的支持,请参阅客户管理的加密密钥。
使用网站内容创建数据存储区
请按照以下步骤创建数据存储区并为网站编制索引。
要在创建网站数据存储区后使用它,您必须将其附加到符合以下条件的应用: 已启用 Enterprise 功能。您可以在创建应用时为其启用企业版。这会产生额外费用。请参阅 创建搜索应用并 高级功能简介。
控制台
如需使用 Google Cloud 控制台创建数据存储区并编入网站索引,请按以下步骤操作:
在 Google Cloud 控制台中,前往 Agent Builder 页面。
在导航菜单中,点击 Data Stores。
点击创建数据存储区。
在来源页面上,选择网站内容。
选择是否要为此数据存储区开启高级网站索引编制功能。 此选项以后无法开启或关闭。
高级网站索引编制功能提供搜索摘要、搜索跟进和提取式回答等其他功能。高级 网站索引编制会产生额外费用,并且您需要验证网域 您编入索引的任何网站的所有权。如需了解详情,请参阅 高级网站索引编制 和价格。
在要包含的网站字段中,输入 要添加到数据存储区中的网站。请在每行输入一个网址格式,不加英文逗号分隔符。例如
www.example.com/docs/*
。可选:在要排除的网站字段中,输入要从数据存储区中排除的网址模式。
要查看您可以包含或排除的网址格式的数量,请参阅网站数据。
点击继续。
为数据存储区选择一个位置。高级网站索引编制功能必须 选择位置。
输入数据存储区的名称。
点击创建。Vertex AI Search 会创建数据存储区,并在数据存储区页面上显示您的数据存储区。
如需查看有关数据存储区的信息,请点击数据存储区的名称 在名称列中。系统会显示您的数据存储区页面。
- 如果您启用了高级网站索引编制功能,系统会显示一条警告消息,提示您 您需要验证数据存储区中的网域。
- 如果您配额不足(您指定的网站中的网页数量超出了项目的“每个项目的文档数量”配额),系统会显示一条额外的警告,提示您升级配额。
如需验证数据存储区中网址模式的网域,请按照验证网站网域页面上的说明操作。
如需升级配额,请按以下步骤操作:
- 点击升级配额。系统会显示 Google Cloud 控制台的 IAM 和管理页面。
- 请按照 Google Cloud 文档中的申请更高配额限制部分中的说明操作。通过 要增加的配额是 Discovery Engine 中的文档数 API 服务。
- 提交提高配额上限的申请后,请返回 Agent Builder 页面,然后点击导航菜单中的 Data Stores。
- 在名称列中点击数据存储区的名称。状态列表示系统正在为超出配额的网站编制索引。如果某个网址的状态列显示已编入索引,则表示相应网址或网址格式就可以使用高级网站索引编制功能。
如需了解详情,请参阅网页的配额 索引中的“配额和限制”部分页面。
Python
有关详情,请参阅 Vertex AI Agent Builder Python API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入网站
后续步骤
如需将您的网站数据存储区关联到应用,请使用 Enterprise 创建应用 功能,然后按照 创建搜索应用。
要预览在您的应用和数据存储区均已下载完毕后,搜索结果会如何显示 设置,请参阅 获取搜索结果。
从 BigQuery 导入
您可以通过以下两种方式从 BigQuery 表创建数据存储区:
一次性提取:您可以将 BigQuery 表中的数据导入到 和数据存储区。数据存储区中的数据不会更改,除非您手动更改 刷新数据。
定期注入:从一个或多个 BigQuery 导入数据 并设置同步频率,该频率决定了 系统会使用 BigQuery 中的最新数据来更新存储区 数据集。
下表比较了将 BigQuery 数据导入 Vertex AI Search 数据存储区的两种方式。
一次性提取 | 定期提取 |
---|---|
正式版 (GA)。 | 公开预览版。 |
必须手动刷新数据。 | 数据每 1 天、3 天或 5 天自动更新一次。无法手动刷新数据。 |
Vertex AI Search 基于 表。 | Vertex AI Search 可创建一个数据连接器, BigQuery dataset和数据存储区(称为 entity 数据存储区)。对于每项数据 因此这两个表必须具有相同的数据类型(例如, 结构化)并且位于同一 BigQuery 数据集中。 |
首先,可以将多个表中的数据合并到一个数据存储区中 从一个表注入数据,然后从另一个来源提取更多数据,或者 BigQuery 表。 | 由于不支持手动导入数据,因此实体数据存储区中的数据只能从一个 BigQuery 表中获取。 |
支持数据源访问权限控制。 | 不支持数据源访问控制。导入的数据可以 包含访问权限控制,但不遵循这些控制措施。 |
您可以使用 Google Cloud 控制台或 API 创建数据存储空间。 | 您必须使用控制台创建数据连接器及其实体数据存储区。 |
符合 CMEK 标准。 | 不符合 CMEK。 |
从 BigQuery 导入一次
如需从 BigQuery 表中注入数据,请按照以下步骤创建 数据存储区并使用 Google Cloud 控制台或 API 注入数据。
在导入数据之前,请参阅准备数据以便提取。
控制台
如需使用 Google Cloud 控制台从 BigQuery 注入数据,请按照下列步骤操作: 具体步骤:
在 Google Cloud 控制台中,前往 Agent Builder 页面。
前往数据存储区页面。
点击新建数据存储区。
在来源页面上,选择 BigQuery。
选择您要导入的数据类型。
点击一次。
在 BigQuery 路径字段中,点击浏览,然后选择您要 已为提取做好准备,然后点击 Select。 或者,直接在 BigQuery 路径中输入表位置 字段。
点击继续。
如果您要一次性导入结构化数据,请执行以下操作:
将字段映射到关键属性。
如果架构中缺少重要字段,请使用新增 字段进行添加。
有关详情,请参阅关于自动检测和 修改。
点击继续。
为数据存储区选择一个区域。
输入数据存储区的名称。
点击创建。
如需查看数据注入的状态,请前往数据存储区页面,然后点击数据存储区名称,在其数据页面上查看相关详细信息。当活动标签页上的状态列从进行中更改为导入已完成时,提取操作即告完成。
根据数据的大小,数据注入可能需要花费数天时间 从几分钟到几小时
REST
如需使用命令行创建数据存储空间并从 BigQuery 导入数据,请按以下步骤操作。
创建数据存储区。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DATA_STORE_DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_SEARCH"] }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。DATA_STORE_ID
:您要创建的 Vertex AI Search 数据存储区的 ID。此 ID 只能包含小写 字母、数字、下划线和连字符。DATA_STORE_DISPLAY_NAME
:您要创建的 Vertex AI Search 数据存储区的显示名称。
可选:如果您要上传非结构化数据并且希望配置文档 解析或开启 RAG 文档分块,请指定
documentProcessingConfig
对象,并将其添加到您的数据存储区创建请求中。配置 如果您要提取扫描的 PDF,建议您使用适用于 PDF 的 OCR 解析器。如何 要配置解析或分块选项,请参阅解析和分块 文档。从 BigQuery 导入数据。
如果您定义了架构,请确保数据符合架构。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "bigquerySource": { "projectId": "PROJECT_ID", "datasetId":"DATASET_ID", "tableId": "TABLE_ID", "dataSchema": "DATA_SCHEMA", "aclEnabled": "BOOLEAN" }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", "errorConfig": { "gcsPrefix": "ERROR_DIRECTORY" } }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。DATA_STORE_ID
:Vertex AI Search 数据存储区的 ID。DATASET_ID
:BigQuery 数据集的 ID。TABLE_ID
:BigQuery 表的 ID。- 如果 BigQuery 表未位于
PROJECT_ID,您需要向服务账号
service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com
“BigQuery Data Viewer”权限 BigQuery 表。例如,如果您要将 BigQuery 表从源项目“123”导入目标项目“456”,请为项目“123”下的 BigQuery 表授予service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com
权限。
- 如果 BigQuery 表未位于
PROJECT_ID,您需要向服务账号
DATA_SCHEMA
:可选。值为document
和custom
。默认值为document
。document
:BigQuery 表 必须符合默认的 BigQuery 提供的架构 准备数据以便提取。 您可以自行定义每个文档的 ID 同时将所有数据封装在 jsonData 字符串中。custom
:任何 BigQuery 表 Vertex AI Search 会自动 将为导入的每个文档生成 ID。
ERROR_DIRECTORY
:可选。Cloud Storage 目录 获取有关导入的错误信息,例如gs://<your-gcs-bucket>/directory/import_errors
。Google 建议将此字段留空,以便 Vertex AI Search 自动创建临时目录。RECONCILIATION_MODE
:可选。值为FULL
和INCREMENTAL
。默认值为INCREMENTAL
。 指定INCREMENTAL
会从 BigQuery 中增量刷新数据 将数据复制到数据存储区此操作会执行更新/插入操作 文档,并将现有文档替换为更新后的文档 具有相同 ID 的广告。指定FULL
会导致 数据存储区文档。换句话说,系统会将新建和更新的文档添加到您的数据存储区,并将 BigQuery 中不存在的文档从您的数据存储区中移除。通过 如果您想自动删除文档,FULL
模式非常有用 您不再需要的资源。AUTO_GENERATE_IDS
:可选。指定是否自动生成文档 ID。如果设置为true
,则文档 ID 是基于载荷的哈希值生成的请注意,生成的 文档 ID 可能不会在多次导入时保持一致。如果您在多次导入时自动生成 ID,Google 强烈建议您将reconciliationMode
设置为FULL
,以保持文档 ID 的一致性。仅当
bigquerySource.dataSchema
设置为custom
时,才指定autoGenerateIds
。否则,INVALID_ARGUMENT
错误为 返回。如果您未指定autoGenerateIds
或将其设置为false
,您必须指定idField
。否则,文档将无法导入。ID_FIELD
:可选。指定哪些字段是文档 ID。对于 BigQuery 源文件,请使用idField
表示 BigQuery 中列的名称 表。仅在满足以下条件时指定
idField
:(1) 设置了bigquerySource.dataSchema
设为custom
,且 (2)auto_generate_ids
设为false
或 未指定。否则,系统将返回INVALID_ARGUMENT
错误。BigQuery 列名称的值必须为 字符串类型,长度必须介于 1 到 63 个字符之间,并且必须符合 至 RFC-1034。否则,文档将无法导入。
C#
有关详情,请参阅 Vertex AI Agent Builder C# API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Go
如需了解详情,请参阅 Vertex AI Agent Builder Go API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Java
有关详情,请参阅 Vertex AI Agent Builder Java API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Node.js
如需了解详情,请参阅 Vertex AI Agent Builder Node.js API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Python
如需了解详情,请参阅 Vertex AI Agent Builder Python API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Ruby
如需了解详情,请参阅 Vertex AI Agent Builder Ruby API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
通过定期同步功能连接到 BigQuery
在导入数据之前,请参阅准备数据以便提取。
以下步骤介绍了如何创建将 包含 Vertex AI Search 数据的 BigQuery 数据集 以及如何在数据集上为每个所需的数据存储区指定表 要创建的活动。作为数据连接器子项的数据存储区称为实体 和数据存储区。
数据集中的数据会定期同步到实体数据存储区。您可以 指定每天、每三天或每五天同步一次。
控制台
如需使用 Google Cloud 控制台创建一个连接器,以便定期将 BigQuery 数据集中的数据同步到 Vertex AI Search,请按以下步骤操作:
在 Google Cloud 控制台中,前往 Agent Builder 页面。
在导航菜单中,点击 Data Stores。
点击创建数据存储区。
在来源页面上,选择 BigQuery。
选择要导入的数据类型。
点击周期性。
选择同步频率,即 Vertex AI Search 连接器与 BigQuery 数据集同步的频率。您可以稍后更改频次。
在 BigQuery 数据集路径字段中,点击浏览,选择包含您准备好提取的表的数据集。或者,您也可以直接在 BigQuery 路径字段中输入表位置。路径的格式为
projectname.datasetname
。在要同步的表字段中,点击浏览,然后选择包含您要存储到数据存储区中的数据的表。
数据集中包含要用于其他表的其他表 数据存储区,请点击添加表,然后指定这些表。
点击继续。
为您的数据存储区选择一个区域,为数据连接器输入名称, 然后点击创建。
现在,您已创建数据连接器,该连接器会定期将数据与 BigQuery 数据集同步。并且您已创建一个或多个实体数据存储区。数据存储区与 BigQuery 同名 表格。
如需查看注入的状态,请前往数据存储区页面 然后点击数据连接器名称,即可在其数据部分中查看有关该连接器的详细信息 页面 >数据注入活动标签页。当系统显示 活动标签从进行中变为成功,第一个 提取完成。
根据数据的大小,数据注入可能需要花费数天时间 从几分钟到几小时
设置数据源并首次导入数据后,数据存储区 会按照您在设置期间选择的频率同步来自该来源的数据。 数据连接器创建后约 1 小时,首次同步将进行。 然后,下一次同步将在大约 24 小时 72 小时后进行 或 120 小时后
后续步骤
从 Cloud Storage 导入
您可以通过以下两种方式从 Cloud Storage 表创建数据存储区:
一次性注入:从 Cloud Storage 文件夹或文件导入数据 存储到数据存储区中。数据存储区中的数据不会改变,除非您 您可以手动刷新数据
定期注入:您可以从 Cloud Storage 文件夹或 并设置同步频率,该频率决定了 系统会使用该 Cloud Storage 中的最新数据来更新 位置。
下表对导入 Cloud Storage 的两种方法进行了比较 导出到 Vertex AI Search 数据存储区。
一次性提取 | 定期提取 |
---|---|
正式版 (GA)。 | 公开预览版。 |
您必须手动刷新数据。 | 数据每 1 天、3 天或 5 天自动更新一次。数据不能 手动刷新。 |
Vertex AI Search 基于 Cloud Storage 中的文件夹或文件。 | Vertex AI Search 会创建一个数据连接器,并为指定的文件或文件夹将数据存储区(称为实体数据存储区)与其相关联。每个 Cloud Storage 数据连接器 可以有一个实体数据存储区。 |
您可以先从一个 Cloud Storage 位置提取数据,然后再从另一个位置提取更多数据,以便将来自多个文件、文件夹和存储桶的数据合并到一个数据存储区中。 | 由于不支持手动导入数据,实体数据存储区中的数据只能来自一个 Cloud Storage 文件或文件夹。 |
支持数据源访问权限控制。如需了解详情,请参阅 数据源访问权限控制。 | 不支持数据源访问控制。导入的数据可以包含访问控制,但系统不会遵循这些控制。 |
您可以使用 Google Cloud 控制台或 API 创建数据存储空间。 | 您必须使用控制台创建数据连接器及其实体数据存储区。 |
CMEK-compliant。 | 不符合 CMEK。 |
从 Cloud Storage 导入一次
如需从 Cloud Storage 提取数据,请按照以下步骤使用 Google Cloud 控制台或 API 创建数据存储区并提取数据。
在导入数据之前,请参阅准备数据以便提取。
控制台
如需使用控制台从 Cloud Storage 存储桶中注入数据,请按以下说明操作 步骤:
在 Google Cloud 控制台中,前往 Agent Builder 页面。
前往数据存储区页面。
点击新建数据存储区。
在来源页面上,选择 Cloud Storage。
在选择要导入的文件夹或文件部分,选择文件夹或文件。
点击浏览,选择您准备好提取的数据,然后点击选择。或者,直接在
gs://
字段中输入位置。选择要导入的数据类型。
点击继续。
如果您要一次性导入结构化数据,请执行以下操作:
将字段映射到关键属性。
如果架构中缺少重要字段,请使用添加新字段进行添加。
有关详情,请参阅关于自动检测和 修改。
点击继续。
为数据存储区选择一个区域。
输入数据存储区的名称。
可选:如果您选择了非结构化文档,则可以为文档选择解析和分块选项。如需比较解析器,请参阅解析文档。有关分块的信息,请参阅分块文档 RAG。
OCR 解析器和布局解析器可能会产生额外费用。请参阅文档 AI 功能价格。
如需选择解析器,请展开文档处理选项,然后指定要使用的解析器选项。
点击创建。
如需查看数据注入的状态,请前往数据存储区页面,然后点击数据存储区名称,在其数据页面上查看相关详细信息。当活动标签页上的状态列从进行中变为状态时 更改为导入完成,则表示注入完成。
提取过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。
REST
如需使用命令行创建数据存储区并从 Cloud Storage 提取数据,请按以下步骤操作。
创建数据存储区。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DATA_STORE_DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_SEARCH"], "contentConfig": "CONTENT_REQUIRED", }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。DATA_STORE_ID
:您要创建的 Vertex AI Search 数据存储区的 ID。此 ID 只能包含小写 字母、数字、下划线和连字符。DATA_STORE_DISPLAY_NAME
:Vertex AI 的显示名 搜索要创建的数据存储区。
可选:如需配置文档解析或为 RAG 启用文档分块,请指定
documentProcessingConfig
对象并将其添加到数据存储区创建请求中。如果您要提取扫描的 PDF 文件,建议为 PDF 配置光学字符识别 (OCR) 解析器。如何 要配置解析或分块选项,请参阅解析和分块 文档。从 Cloud Storage 导入数据。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "gcsSource": { "inputUris": ["INPUT_FILE_PATTERN_1", "INPUT_FILE_PATTERN_2"], "dataSchema": "DATA_SCHEMA", }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", "errorConfig": { "gcsPrefix": "ERROR_DIRECTORY" } }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。DATA_STORE_ID
:Vertex AI Search 数据存储区的 ID。INPUT_FILE_PATTERN
:Cloud Storage 中的文件格式 包含您的文档。对于结构化数据或包含元数据的非结构化数据, 输入文件格式的一个示例是
gs://<your-gcs-bucket>/directory/object.json
以及 与一个或多个文件匹配的格式是gs://<your-gcs-bucket>/directory/*.json
。对于非结构化文档,
gs://<your-gcs-bucket>/directory/*.pdf
。与模式匹配的每个文件都会成为一个文档。如果
<your-gcs-bucket>
未低于 PROJECT_ID,则 需要为服务账号“service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com
”提供 对象查看者”对 Cloud Storage 存储桶的权限。例如,如果您要将 Cloud Storage 存储桶从源项目“123”导入目标项目“456”,请向service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com
授予对项目“123”下的 Cloud Storage 存储桶的权限。DATA_SCHEMA
:可选。值为document
、custom
、csv
和content
。默认值为document
。document
:上传带有以下项的元数据的非结构化数据: 非结构化文档。文件的每一行都必须跟在一行之后 以下格式。您可以定义每个文档的 ID:{ "id": "<your-id>", "jsonData": "<JSON string>", "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
{ "id": "<your-id>", "structData": <JSON object>, "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
custom
:上传结构化文档的 JSON。数据 按架构进行整理您可以指定架构 否则,系统会自动将其检测出来您可以将 以一致格式直接放在每行中, Vertex AI Search 会自动生成 ID 。content
:上传非结构化文档(PDF、HTML、DOC、TXT、 PPTX)。每个文档的 ID 会自动生成为 SHA256(GCS_URI) 的前 128 位,编码为十六进制字符串。您可以 指定多个输入文件格式,只要匹配的文件即可 不要超过 10 万个文件的限制。csv
:在 CSV 文件中添加标题行,并将每个标题映射到文档字段。指定 使用inputUris
字段保存 CSV 文件。
ERROR_DIRECTORY
:可选。Cloud Storage 目录 获取有关导入的错误信息,例如gs://<your-gcs-bucket>/directory/import_errors
。Google 建议 将此字段留空可让 Vertex AI Search 系统会自动创建一个临时目录RECONCILIATION_MODE
:可选。值为FULL
和INCREMENTAL
。默认值为INCREMENTAL
。 指定INCREMENTAL
会导致数据从 Cloud Storage 增量刷新到数据存储区。这会执行更新/插入操作,该操作会添加新文档,并将现有文档替换为具有相同 ID 的更新文档。如果指定FULL
,则会对 中的文档执行完全 rebase 操作 和数据存储区。换句话说,系统会将新文档和更新后的文档添加到您的数据存储区,并将 Cloud Storage 中不存在的文档从您的数据存储区中移除。如果您想自动删除不再需要的文档,FULL
模式会很有用。AUTO_GENERATE_IDS
:可选。指定是否 自动生成文档 ID。如果设置为true
,则文档 ID 是基于载荷的哈希值生成的请注意,生成的 文档 ID 可能不会在多次导入时保持一致。如果您在多次导入时自动生成 ID,Google 强烈建议您将reconciliationMode
设置为FULL
,以保持文档 ID 的一致性。仅当
gcsSource.dataSchema
设置为以下内容时,才指定autoGenerateIds
custom
或csv
。否则,系统将返回INVALID_ARGUMENT
错误。如果您未指定autoGenerateIds
或将其设置为false
,您必须指定idField
。否则,文档将无法 导入。ID_FIELD
:可选。指定哪些字段 文档 ID。对于 Cloud Storage 来源文档,idField
用于在 JSON 字段(即文档 ID)中指定名称。对于 例如,如果{"my_id":"some_uuid"}
是某个 指定"idField":"my_id"
。这会将名称为"my_id"
的所有 JSON 字段标识为文档 ID。仅当 (1)
gcsSource.dataSchema
设置为custom
或csv
,并且 (2)auto_generate_ids
设置为false
或 未指定参数。否则,系统会返回INVALID_ARGUMENT
错误。请注意,Cloud Storage JSON 字段的值必须为 字符串类型,长度必须介于 1 到 63 个字符之间,并且必须符合 RFC-1034。否则,文档将无法导入。
请注意,
id_field
指定的 JSON 字段名称必须为 字符串类型,长度必须介于 1 到 63 个字符之间,并且必须符合 至 RFC-1034。否则,文档将无法导入。
C#
有关详情,请参阅 Vertex AI Agent Builder C# API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Go
有关详情,请参阅 Vertex AI Agent Builder Go API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Java
如需了解详情,请参阅 Vertex AI Agent Builder Java API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Node.js
有关详情,请参阅 Vertex AI Agent Builder Node.js API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Python
如需了解详情,请参阅 Vertex AI Agent Builder Python API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Ruby
有关详情,请参阅 Vertex AI Agent Builder Ruby API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
连接到 Cloud Storage 并定期同步
在导入数据之前,请查看 准备数据以便提取。
以下步骤介绍了如何创建将 包含 Vertex AI Search 数据的 Cloud Storage 位置 以及如何为数据指定该位置中的文件夹或文件 您要创建的存储区。作为数据连接器子项的数据存储区 称为实体数据存储区。
系统会定期将数据同步到实体数据存储区。您可以指定每天、每三天或每五天同步一次。
控制台
在 Google Cloud 控制台中,前往 Agent Builder 页面。
前往数据存储区页面。
点击创建数据存储区。
在来源页面上,选择 Cloud Storage。
选择要导入的数据类型。
点击周期性。
选择同步频率,即 Vertex AI Search Connector 与 Cloud Storage 位置同步的频率。您可以稍后更改频率。
在选择要导入的文件夹或文件部分,选择 文件夹或文件。
点击浏览,然后选择您拥有的数据 准备提取,然后点击选择。 或者,直接在
gs://
字段中输入位置。点击继续。
为数据连接器选择一个区域。
为数据连接器输入名称。
可选:如果您选择了非结构化文档,则可以选择“解析”和 分块选项要比较不同的解析器,请参阅解析 文档。如需了解分块,请参阅 RAG 的分块文档。
OCR 解析器和布局解析器可能会产生额外费用。请参阅文档 AI 功能价格。
要选择解析器,请展开文档处理选项,并指定 解析器选项。
点击创建。
现在,您已创建数据连接器,该连接器会定期将数据与 Cloud Storage 位置同步。您还创建了一个实体 名为
gcs_store
的数据存储区。如需查看数据提取状态,请前往数据存储区页面,然后点击数据连接器名称,在其数据页面上查看相关详细信息
数据注入活动标签页。当数据提取活动标签页上的状态列从进行中更改为成功时,第一次提取即告完成。
提取过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。
您首次设置数据源并导入数据后,系统会按照您在设置期间选择的频率从该数据源同步数据。在创建数据连接器大约一小时后,系统会进行首次同步。然后,系统会在大约 24 小时、72 小时或 120 小时后进行下一次同步。
后续步骤
从 Google 云端硬盘同步
如需从 Google 云端硬盘同步数据,请按照以下步骤使用 Google Cloud 控制台创建数据存储区并提取数据。
之后,来自 Google 云端硬盘的数据会持续同步到 Vertex AI Search, 您需要创建数据存储区
准备工作:
您必须使用您要关联的 Google 云端硬盘实例所用的账号登录 Google Cloud 控制台。Vertex AI Search 会使用您的 Google Workspace 客户 ID 连接到 Google 云端硬盘。
为 Google 云端硬盘设置访问权限控制。相关信息 有关如何设置访问权限控制的信息,请参阅 使用数据源访问权限控制。
控制台
如需使用控制台使 Google 云端硬盘数据可搜索,请按以下步骤操作:
在 Google Cloud 控制台中,前往 Agent Builder 页面。
前往数据存储区页面。
点击新建数据存储区。
在来源页面上,选择 Google 云端硬盘。
为您的数据存储区选择一个区域。
输入数据存储区的名称。
点击创建。提取过程可能需要较长时间,具体取决于您的数据的大小 几分钟到几小时请至少等待 1 小时再使用您的 供搜索的数据存储区。
后续步骤
从 Cloud SQL 导入
如需从 Cloud SQL 注入数据,请按以下步骤设置 访问 Cloud SQL、创建数据存储区和注入数据。
为 Cloud SQL 实例设置预演桶访问权限
从 Cloud SQL 注入数据时,数据会首先暂存到 Cloud Storage 存储分区。请按照以下步骤为 Cloud SQL 实例授予对 Cloud Storage 存储桶的访问权限。
在 Google Cloud 控制台中,转到 SQL 页面。
点击您计划从中导入数据的 Cloud SQL 实例。
复制实例服务账号的标识符(类似于 电子邮件地址,例如
p9876-abcd33f@gcp-sa-cloud-sql.iam.gserviceaccount.com
。前往 IAM 和管理页面。
点击授予访问权限。
对于新的主账号,输入实例的服务账号标识符,然后选择 Cloud Storage > Storage Admin 角色。
点击保存。
下一步:
如果您的 Cloud SQL 数据与 Vertex AI Search 位于同一项目中:请参阅从 Cloud SQL 导入数据。
如果您的 Cloud SQL 数据位于与 Vertex AI Search 项目不同的项目中:请参阅从其他项目设置 Cloud SQL 访问权限。
通过其他项目设置 Cloud SQL 访问权限
要授权 Vertex AI Search 访问 请按以下步骤操作:
将以下
PROJECT_NUMBER
变量替换为您的 Vertex AI Search 项目编号,然后复制代码块中的内容。这是您的 Vertex AI Search 服务账号 标识符:service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com`
前往 IAM 和管理页面。
在 IAM 和管理页面上,切换到您的 Cloud SQL 项目,然后点击授予访问权限。
在新的主账号部分,输入服务账号的标识符,然后 选择 Cloud SQL >Cloud SQL Viewer 角色。
点击保存。
接下来,前往从 Cloud SQL 导入数据。
从 Cloud SQL 导入数据
控制台
如需使用控制台从 Cloud SQL 注入数据,请按以下说明操作 步骤:
在 Google Cloud 控制台中,前往 Agent Builder 页面。
前往数据存储区页面。
点击新建数据存储区。
在 Source(来源)页面上,选择 Cloud SQL。
指定数据的项目 ID、实例 ID、数据库 ID 和数据表 ID 导入的数据
点击浏览,然后选择一个中间 Cloud Storage 位置以 导出数据,然后点击选择。或者,您也可以输入 直接在
gs://
字段中填写。选择是否启用无服务器导出功能。无服务器导出会产生额外费用。如需了解无服务器导出,请参阅最大限度地减少 数据导出作业的性能影响 Cloud SQL 文档。
点击继续。
为数据存储区选择一个区域。
输入数据存储区的名称。
点击创建。
如需查看数据注入的状态,请前往数据存储区页面,然后点击数据存储区名称,在其数据页面上查看相关详细信息。当活动标签页上的状态列从进行中变为状态时 更改为导入完成,则表示注入完成。
提取过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。
REST
如需使用命令行创建数据存储区并从 Cloud SQL 提取数据,请按以下步骤操作:
创建数据存储区。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_SEARCH"], }'
替换以下内容:
PROJECT_ID
:您的项目的 ID。DATA_STORE_ID
:数据存储区的 ID。ID 可以 只能包含小写字母、数字、下划线和连字符。DISPLAY_NAME
:数据存储区的显示名。这可能会 显示在 Google Cloud 控制台中。
从 Cloud SQL 导入数据。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "cloudSqlSource": { "projectId": "SQL_PROJECT_ID", "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "tableId": "TABLE_ID", "gcsStagingDir": "STAGING_DIRECTORY" }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", }'
替换以下内容:
PROJECT_ID
:您的 Vertex AI Search 的 ID 项目。DATA_STORE_ID
:数据存储区的 ID。ID 只能包含小写字母、数字、下划线和连字符。SQL_PROJECT_ID
:Cloud SQL 的 ID 项目。INSTANCE_ID
:Cloud SQL 实例的 ID。DATABASE_ID
:您的 Cloud SQL 数据库的 ID。TABLE_ID
:Cloud SQL 表的 ID。STAGING_DIRECTORY
:可选。Cloud Storage 目录,例如gs://<your-gcs-bucket>/directory/import_errors
。RECONCILIATION_MODE
:可选。值为FULL
和INCREMENTAL
。默认值为INCREMENTAL
。 指定INCREMENTAL
会将数据从 Cloud SQL 逐步刷新 和数据存储区。这会执行更新/插入操作,该操作会添加新文档,并将现有文档替换为具有相同 ID 的更新文档。指定FULL
会导致数据中文档的完整 rebase 操作 商店。换言之,新文档和更新文档将添加到您的数据中 而 Cloud SQL 以外的文档则会被移除 来自数据存储区如果您想自动删除不再需要的文档,FULL
模式会很有用。
Python
有关详情,请参阅 Vertex AI Agent Builder Python API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
后续步骤
从 Spanner 导入
如需从 Spanner 注入数据,请按照以下步骤创建 数据存储区并使用 Google Cloud 控制台或 API 注入数据。
从其他项目设置 Spanner 访问权限
如果您的 Spanner 数据与 Vertex AI Search,跳转至从以下来源导入数据: Spanner 实例。
为了让 Vertex AI Search 能够访问 请按以下步骤操作:
将以下
PROJECT_NUMBER
变量替换为您的 Vertex AI Search 项目编号,然后复制此代码块的内容。这是您的 Vertex AI Search 服务账号 标识符:service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
前往 IAM 和管理页面。
在 IAM 和管理页面 然后点击授予访问权限。
在新的主账号中,输入服务账号的标识符,然后选择以下任一选项:
- 如果您在导入过程中不会使用数据提升功能,请选择 Cloud Spanner > Cloud Spanner Database Reader 角色。
- 如果您打算在导入期间使用数据提升功能,请选择 Cloud Spanner > Cloud Spanner Database Admin 角色,或者拥有以下权限的自定义角色 Cloud Spanner Database Reader 和 spanner.databases.useDataBoost。 如需了解 Data Boost,请参阅 数据提升概览(位于 Spanner 文档。
点击保存。
接下来,前往从 Spanner 导入数据。
从 Spanner 导入数据
控制台
如需使用控制台从 Spanner 提取数据,请按以下步骤操作:
在 Google Cloud 控制台中,前往 Agent Builder 页面。
前往数据存储区页面。
点击新建数据存储区。
在来源页面上,选择 Cloud Spanner。
指定数据的项目 ID、实例 ID、数据库 ID 和数据表 ID 导入的数据
选择是否开启 Data Boost。如需了解 Data Boost,请参阅 Spanner 文档中的 Data Boost 概览。
点击继续。
为数据存储区选择一个区域。
输入数据存储区的名称。
点击创建。
如需查看数据注入的状态,请前往数据存储区页面,然后点击数据存储区名称,在其数据页面上查看相关详细信息。当活动标签页上的状态列从进行中变为状态时 更改为导入完成,则表示注入完成。
提取过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。
REST
如需使用命令行创建数据存储区并从 Spanner 提取数据,请按以下步骤操作:
创建数据存储区。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_SEARCH"], "contentConfig": "CONTENT_REQUIRED", }'
替换以下内容:
PROJECT_ID
:您的 Vertex AI Search 项目的 ID。DATA_STORE_ID
:数据存储区的 ID。ID 只能包含小写字母、数字、下划线和连字符。DISPLAY_NAME
:数据存储区的显示名称。这可能会显示在 Google Cloud 控制台中。
从 Spanner 导入数据。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "cloudSpannerSource": { "projectId": "SPANNER_PROJECT_ID", "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "tableId": "TABLE_ID", "enableDataBoost": "DATA_BOOST_BOOLEAN" }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", }'
替换以下内容:
PROJECT_ID
:您的 Vertex AI Search 项目的 ID。DATA_STORE_ID
:数据存储区的 ID。SPANNER_PROJECT_ID
:Spanner 的 ID 项目。INSTANCE_ID
:您的 Spanner 实例的 ID。DATABASE_ID
:您的 Spanner 数据库的 ID。TABLE_ID
:Spanner 表的 ID。DATA_BOOST_BOOLEAN
:可选。是否开启 Data Boost。 如需了解 Data Boost,请参阅 Spanner 文档中的 Data Boost 概览。RECONCILIATION_MODE
:可选。值为FULL
和INCREMENTAL
。默认值为INCREMENTAL
。 指定INCREMENTAL
会导致从 Spanner 到数据存储区以增量方式刷新数据。这会执行更新/插入操作 操作,这会添加新文档并替换现有文档 具有相同 ID 的更新文档。指定FULL
会导致 对数据存储区中文档执行 rebase 操作。换句话说,系统会将新文档和更新后的文档添加到您的数据存储区,并将 Spanner 中不存在的文档从您的数据存储区中移除。通过 如果您想自动删除文档,FULL
模式非常有用 您不再需要的资源。AUTO_GENERATE_IDS
:可选。指定是否自动生成文档 ID。如果设置为true
,文档 ID 将根据载荷的哈希生成。请注意,在多次导入后,生成的文档 ID 可能不会保持一致。如果您在多次导入时自动生成 ID,Google 强烈建议您将reconciliationMode
设置为FULL
,以保持文档 ID 的一致性。ID_FIELD
:可选。指定哪些字段是文档 ID。
Python
有关详情,请参阅 Vertex AI Agent Builder Python API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
后续步骤
从 Firestore 导入
如需从 Firestore 注入数据,请按照以下步骤创建 数据存储区并使用 Google Cloud 控制台或 API 注入数据。
如果您的 Firestore 数据与 Vertex AI Search 位于同一项目中,请参阅从 Firestore 导入数据。
如果您的 Firestore 数据位于与 Vertex AI Search 项目不同的项目中,请参阅设置 Firestore 访问权限。
通过其他项目设置 Firestore 访问权限
如需向 Vertex AI Search 授予对其他项目中的 Firestore 数据的访问权限,请按以下步骤操作:
将以下
PROJECT_NUMBER
变量替换为 Vertex AI Search 项目编号,然后将此 代码块。这是您的 Vertex AI Search 服务账号标识符:service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
前往 IAM 和管理页面。
在 IAM 和管理页面 然后点击授予访问权限。
在新的主账号部分,输入实例的服务账号标识符并 选择 Datastore >Cloud Datastore Import Export Admin 角色。
点击保存。
切换回 Vertex AI Search 项目。
接下来,前往从 Firestore 导入数据。
从 Firestore 导入数据
控制台
如需使用控制台从 Firestore 提取数据,请按以下步骤操作:
在 Google Cloud 控制台中,前往 Agent Builder 页面。
前往数据存储区页面。
点击新建数据存储区。
在 Source(来源)页面上,选择 Firestore。
指定您要创建的数据的项目 ID、数据库 ID 和集合 ID 计划导入的数据。
点击继续。
为数据存储区选择一个区域。
输入数据存储区的名称。
点击创建。
如需查看数据注入的状态,请前往数据存储区页面,然后点击数据存储区名称,在其数据页面上查看相关详细信息。当活动标签页上的状态列从进行中变为状态时 更改为导入完成,则表示注入完成。
提取过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。
REST
如需使用命令行创建数据存储区并从 Firestore 提取数据,请按以下步骤操作:
创建数据存储区。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_SEARCH"], }'
替换以下内容:
PROJECT_ID
:您的项目的 ID。DATA_STORE_ID
:数据存储区的 ID。ID 可以 只能包含小写字母、数字、下划线和连字符。DISPLAY_NAME
:数据存储区的显示名。这可能会 显示在 Google Cloud 控制台中。
从 Firestore 导入数据。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "firestoreSource": { "projectId": "FIRESTORE_PROJECT_ID", "databaseId": "DATABASE_ID", "collectionId": "COLLECTION_ID", }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", }'
替换以下内容:
PROJECT_ID
:您的 Vertex AI Search 项目的 ID。DATA_STORE_ID
:数据存储区的 ID。ID 可以 只能包含小写字母、数字、下划线和连字符。FIRESTORE_PROJECT_ID
:您的 Firestore 项目。DATABASE_ID
:您的 Firestore 数据库的 ID。COLLECTION_ID
:Firestore 的 ID 。RECONCILIATION_MODE
:可选。值为FULL
和INCREMENTAL
。默认值为INCREMENTAL
。 指定INCREMENTAL
会将数据从 Firestore 逐步刷新到 和数据存储区。这会执行更新/插入操作,该操作会添加新文档,并将现有文档替换为具有相同 ID 的更新文档。指定FULL
会导致数据中文档的完整 rebase 操作 商店。换言之,新文档和更新文档将添加到您的数据中 并且 Firestore 中未存在的文档会被移除 来自数据存储区如果您想执行以下操作,FULL
模式会很有帮助: 自动删除您不再需要的文档。AUTO_GENERATE_IDS
:可选。指定是否自动生成文档 ID。如果设置为true
,则文档 ID 是基于载荷的哈希值生成的请注意,生成的 文档 ID 可能不会在多次导入时保持一致。如果 您将通过多次导入自动生成 ID,Google 高度 建议将reconciliationMode
设置为FULL
以保持 文档 ID 保持一致。ID_FIELD
:可选。指定哪些字段是文档 ID。
Python
如需了解详情,请参阅 Vertex AI Agent Builder Python API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
后续步骤
从 Bigtable 导入
如需从 Bigtable 提取数据,请按照以下步骤创建数据存储区,然后使用 API 提取数据。
设置 Bigtable 访问权限
为了让 Vertex AI Search 能够访问 请按以下步骤操作:
将以下
PROJECT_NUMBER
变量替换为 Vertex AI Search 项目编号,然后将此 代码块。这是您的 Vertex AI Search 服务账号标识符:service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com`
前往 IAM 和管理页面。
在 IAM 和管理页面 然后点击授予访问权限。
在新的主账号部分,输入实例的服务账号标识符并 选择 Bigtable >Bigtable Reader 角色。
点击保存。
切换回 Vertex AI Search 项目。
接下来,转到从 Bigtable 导入数据。
从 Bigtable 导入数据
REST
使用命令行创建数据存储区并从中注入数据 Bigtable,请按以下步骤操作:
创建数据存储区。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_SEARCH"], }'
替换以下内容:
PROJECT_ID
:您的项目的 ID。DATA_STORE_ID
:数据存储区的 ID。ID 可以 只能包含小写字母、数字、下划线和连字符。DISPLAY_NAME
:数据存储区的显示名。这可能会显示在 Google Cloud 控制台中。
从 Bigtable 导入数据。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "bigtableSource ": { "projectId": "BIGTABLE_PROJECT_ID", "instanceId": "INSTANCE_ID", "tableId": "TABLE_ID", "bigtableOptions": { "keyFieldName": "KEY_FIELD_NAME", "families": { "key": "KEY", "value": { "fieldName": "FIELD_NAME", "encoding": "ENCODING", "type": "TYPE", "columns": [ { "qualifier": "QUALIFIER", "fieldName": "FIELD_NAME", "encoding": "COLUMN_ENCODING", "type": "COLUMN_VALUES_TYPE" } ] } } ... } }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", }'
替换以下内容:
PROJECT_ID
:您的 Vertex AI Search 的 ID 项目。DATA_STORE_ID
:数据存储区的 ID。ID 只能包含小写字母、数字、下划线和连字符。BIGTABLE_PROJECT_ID
:您的 Bigtable 项目中。INSTANCE_ID
:Bigtable 的 ID 实例。TABLE_ID
:Bigtable 的 ID 表格。KEY_FIELD_NAME
:可选,但建议提供。提取到 Vertex AI Search 后要用于行键值的字段名称。KEY
:必填。列族键的字符串值。ENCODING
:可选。当值的类型不是 STRING 时,值的编码模式。您可以通过在columns
中列出该列并为其指定编码,为特定列替换此值。COLUMN_TYPE
:可选。此列中值的类型 系列。QUALIFIER
:必填。列的限定符。FIELD_NAME
:可选,但建议提供。提取到 Vertex AI Search 后要为此列使用的字段名称。COLUMN_ENCODING
:可选。当类型不是字符串时,特定列值的编码模式。RECONCILIATION_MODE
:可选。值为FULL
和INCREMENTAL
。默认值为INCREMENTAL
。 指定INCREMENTAL
从 Bigtable 数据增量刷新到 数据存储区这会执行更新/插入操作,该操作会添加新文档,并将现有文档替换为具有相同 ID 的更新文档。指定FULL
会导致对以下项目中的文档执行完全 rebase 操作 数据存储区也就是说,新文档和更新文档 数据存储区以及不在 Bigtable 中的文档 从数据存储区中移除如果你需要FULL
希望自动删除您不再需要的文档。AUTO_GENERATE_IDS
:可选。指定是否自动生成文档 ID。如果设置为true
,则文档 ID 是基于载荷的哈希值生成的请注意,生成的 文档 ID 可能不会在多次导入时保持一致。如果您在多次导入时自动生成 ID,Google 强烈建议您将reconciliationMode
设置为FULL
,以保持文档 ID 的一致性。仅当
bigquerySource.dataSchema
为以下值时,才指定autoGenerateIds
: 已设置为custom
。否则,INVALID_ARGUMENT
错误为 返回。如果您未指定autoGenerateIds
或将其设置为false
,则必须指定idField
。否则,文档将无法 导入。ID_FIELD
:可选。指定哪些字段是文档 ID。
Python
如需了解详情,请参阅 Vertex AI Agent Builder Python API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
后续步骤
从 AlloyDB for PostgreSQL 导入
如需从 AlloyDB for PostgreSQL 注入数据,请按照以下步骤创建 数据存储区并使用 Google Cloud 控制台或 API 注入数据。
如果您的 AlloyDB for PostgreSQL 数据与 Vertex AI Search 项目,请参阅从以下位置导入数据: AlloyDB for PostgreSQL。
如果您的 AlloyDB for PostgreSQL 数据位于与 Vertex AI Search 项目不同的项目中,请参阅设置 AlloyDB for PostgreSQL 访问权限。
从其他项目设置 AlloyDB for PostgreSQL 访问权限
如需向 Vertex AI Search 授予对其他项目中 AlloyDB for PostgreSQL 数据的访问权限,请按以下步骤操作:
将以下
PROJECT_NUMBER
变量替换为您的 Vertex AI Search 项目编号,然后复制此代码块的内容。这是您的 Vertex AI Search 服务账号标识符:service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
切换到您的 AlloyDB for PostgreSQL 数据所在的 Google Cloud 项目 资源。
转到 IAM 页面。
点击授予访问权限。
在新的主账号部分,输入 Vertex AI Search 服务账号 和 选择 Cloud AlloyDB >Cloud AlloyDB Admin 角色。
点击保存。
切换回您的 Vertex AI Search 项目。
接下来,请参阅从 AlloyDB for PostgreSQL 导入数据。
从 AlloyDB for PostgreSQL 导入数据
控制台
如需使用控制台从 AlloyDB for PostgreSQL 提取数据,请按以下步骤操作:
在 Google Cloud 控制台中,前往 Agent Builder 页面。
在导航菜单中,点击数据存储区。
点击创建数据存储区。
在来源页面上,选择 AlloyDB。
指定项目 ID、位置 ID、集群 ID、数据库 ID 和表 ID 您计划导入的数据
点击继续。
为数据存储区选择一个区域。
输入数据存储区的名称。
点击创建。
如需查看数据注入的状态,请前往数据存储区页面,然后点击数据存储区名称,在其数据页面上查看相关详细信息。当活动标签页上的状态列从进行中变为状态时 更改为导入完成,则表示注入完成。
提取过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。
REST
使用命令行创建数据存储区并从中注入数据 AlloyDB for PostgreSQL,请按以下步骤操作:
创建数据存储区。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_SEARCH"], }'
替换以下内容:
PROJECT_ID
:您的项目的 ID。DATA_STORE_ID
:数据存储区的 ID。ID 可以 只能包含小写字母、数字、下划线和连字符。DISPLAY_NAME
:数据存储区的显示名称。这可能会显示在 Google Cloud 控制台中。
从 AlloyDB for PostgreSQL 导入数据。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "alloydbSource": { "projectId": "ALLOYDB_PROJECT_ID", "locationId": "LOCATION_ID", "clusterId": "CLUSTER_ID", "databaseId": "DATABASE_ID", "tableId": "TABLE_ID", }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", }'
替换以下内容:
PROJECT_ID
:您的 Vertex AI Search 项目的 ID。DATA_STORE_ID
:数据存储区的 ID。ID 可以 只能包含小写字母、数字、下划线和连字符。ALLOYDB_PROJECT_ID
:您的 AlloyDB for PostgreSQL 项目的 ID。LOCATION_ID
:您的 AlloyDB for PostgreSQL 位置的 ID。CLUSTER_ID
:您的 AlloyDB for PostgreSQL 集群的 ID。DATABASE_ID
:您的 AlloyDB for PostgreSQL 数据库的 ID。TABLE_ID
:您的 AlloyDB for PostgreSQL 表的 ID。RECONCILIATION_MODE
:可选。值为FULL
和INCREMENTAL
。默认值为INCREMENTAL
。 指定INCREMENTAL
会导致从 AlloyDB for PostgreSQL 到数据存储区的数据增量刷新。此操作会执行更新/插入操作,这会添加新文档和 将现有文档替换为具有相同 ID 的更新文档。 指定FULL
会导致数据中文档的完整 rebase 操作 商店。换言之,新文档和更新文档将添加到您的数据中 并移除 AlloyDB for PostgreSQL 中不存在的文档 来自数据存储区如果您想执行以下操作,FULL
模式会很有帮助: 自动删除您不再需要的文档。AUTO_GENERATE_IDS
:可选。指定是否自动生成文档 ID。如果设置为true
,则文档 ID 是基于载荷的哈希值生成的请注意,生成的 文档 ID 可能不会在多次导入时保持一致。如果 您将通过多次导入自动生成 ID,Google 高度 建议将reconciliationMode
设置为FULL
以保持 文档 ID 保持一致。ID_FIELD
:可选。指定哪些字段是文档 ID。
Python
如需了解详情,请参阅 Vertex AI Agent Builder Python API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
后续步骤
使用 API 上传结构化 JSON 数据
要使用 API 直接上传 JSON 文档或对象,请按以下步骤操作。
在导入数据之前, 准备数据以便提取。
REST
如需使用命令行创建数据存储区并导入结构化 JSON 数据,请执行以下操作: 请按以下步骤操作。
创建数据存储区。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DATA_STORE_DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_SEARCH"] }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。DATA_STORE_ID
:您要创建的 Vertex AI Search 数据存储区的 ID。此 ID 只能包含小写 字母、数字、下划线和连字符。DATA_STORE_DISPLAY_NAME
:Vertex AI 的显示名 搜索要创建的数据存储区。
导入结构化数据。
您可以通过以下几种方法上传数据,包括:
上传 JSON 文档。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents?documentId=DOCUMENT_ID" \ -d '{ "jsonData": "JSON_DOCUMENT_STRING" }'
替换以下内容:
DOCUMENT_ID
:文档的唯一 ID。 此 ID 的长度不得超过 63 个字符,且只能包含小写形式 字母、数字、下划线和连字符。JSON_DOCUMENT_STRING
:将 JSON 文档作为单个字符串。此值必须符合您在上一步中提供的 JSON 架构,例如:{ \"title\": \"test title\", \"categories\": [\"cat_1\", \"cat_2\"], \"uri\": \"test uri\"}
上传 JSON 对象。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents?documentId=DOCUMENT_ID" \ -d '{ "structData": JSON_DOCUMENT_OBJECT }'
将
JSON_DOCUMENT_OBJECT
替换为 JSON 文档作为 JSON 对象。此架构必须符合您提供的 JSON 架构 之前的步骤中的 - 例如:```json { "title": "test title", "categories": [ "cat_1", "cat_2" ], "uri": "test uri" } ```
使用 JSON 文档进行更新。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents/DOCUMENT_ID" \ -d '{ "jsonData": "JSON_DOCUMENT_STRING" }'
使用 JSON 对象进行更新。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents/DOCUMENT_ID" \ -d '{ "structData": JSON_DOCUMENT_OBJECT }'
后续步骤
排查数据注入问题
如果您在数据提取方面遇到问题,请参阅以下提示:
如果您使用的是客户管理的加密密钥,并且数据导入失败(并显示错误消息
The caller does not have permission
),请确保已向 Cloud Storage 服务代理授予相应密钥的 CryptoKey Encrypter/Decrypter IAM 角色 (roles/cloudkms.cryptoKeyEncrypterDecrypter
)。如需了解详情,请参阅 “由客户管理的加密”中的准备工作 密钥”。如果您使用的是高级网站索引,并且数据存储空间的文档用量远低于预期,请检查您为索引编制指定的网址模式,确保指定的网址模式涵盖您要编入索引的网页,并根据需要对其进行扩展。例如,如果 您使用了
*.en.example.com/*
,则可能需要将*.example.com/*
添加到 您希望编入索引的网站
使用 Terraform 创建数据存储区
您可以使用 Terraform 创建空数据存储区。创建空数据存储区后,您可以使用 Google Cloud 控制台或 API 命令将数据提取到数据存储区。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
如需使用 Terraform 创建空数据存储区,请参阅
google_discovery_engine_data_store
。