如需创建数据存储区并注入数据以用于自定义推荐,请前往您计划使用的数据源对应的部分:
BigQuery
您可以通过以下两种方式从 BigQuery 表创建数据存储区:
一次性注入:将数据从 BigQuery 表导入到数据存储区。除非您手动刷新数据,否则数据存储区中的数据不会更改。
定期注入:您可以从一个或多个 BigQuery 表中导入数据,并设置同步频率,以确定使用 BigQuery 数据集中的最新数据更新数据存储区的频率。
下表比较了将 BigQuery 数据导入 Vertex AI Search 数据存储区的两种方式。
| 一次性注入 | 定期注入 |
|---|---|
| 正式版 (GA)。 | 公开预览版。 |
| 数据必须手动刷新。 | 数据每 1 天、3 天或 5 天会自动更新一次。数据无法手动刷新。 |
| Vertex AI Search 会根据 BigQuery 中的一个表创建一个数据存储区。 | Vertex AI Search 会为一个 BigQuery 数据集创建一个数据连接器,并为指定的每个表创建一个数据存储区(称为实体数据存储区)。对于每个数据连接器,表必须具有相同的数据类型(例如结构化),并且位于同一 BigQuery 数据集中。 |
| 您可以先从一个表注入数据,然后再从另一个来源或 BigQuery 表注入更多数据,从而将多个表中的数据合并到一个数据存储区中。 | 由于不支持手动导入数据,因此实体数据存储区中的数据只能来自一个 BigQuery 表。 |
| 支持数据源访问权限控制。 | 不支持数据源访问权限控制。导入的数据可以包含访问权限控制,但这些控制将不会生效。 |
| 您可以使用Google Cloud 控制台或 API 创建数据存储区。 | 您必须使用控制台创建数据连接器及其实体数据存储区。 |
| 符合 CMEK 要求。 | 符合 CMEK 要求。 |
从 BigQuery 一次性导入
如需从 BigQuery 表注入数据,请按照以下步骤,使用 Google Cloud 控制台或 API 创建数据存储区并注入数据。
在导入数据之前,请查阅准备数据以进行注入。
控制台
如需使用 Google Cloud 控制台从 BigQuery 注入数据,请按以下步骤操作:
在 Google Cloud 控制台中,前往 AI Applications 页面。
前往数据存储区页面。
点击 创建数据存储区。
在来源页面上,选择 BigQuery。
在您要导入哪种数据部分中,选择要导入的数据类型。
在同步频率部分中,选择一次。
在 BigQuery 路径字段中,点击浏览,选择您已准备好进行注入的表,然后点击选择。 或者,您也可以直接在 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_RECOMMENDATION"] }'替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 ID。DATA_STORE_ID:您要创建的 Vertex AI Search 数据存储区的 ID。此 ID 只能包含小写字母、数字、下划线和连字符。DATA_STORE_DISPLAY_NAME:您要创建的 Vertex AI Search 数据存储区的显示名称。
从 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 表的“BigQuery Data Viewer”权限。例如,如果您要将 BigQuery 表从来源项目“123”导入到目标项目“456”,则您需要授予service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com对项目“123”下 BigQuery 表的权限。
- 如果 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 中的数据增量刷新到数据存储区。这会执行一个 upsert(插入/更新)操作,即添加新文档并用具有相同 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 表中包含文档 ID 的列的名称。仅当满足以下两个条件时才应指定
idField:(1)bigquerySource.dataSchema设置为custom,以及 (2)auto_generate_ids设置为false或未指定。否则,系统会返回INVALID_ARGUMENT错误。BigQuery 列名称的值必须为字符串类型,长度必须介于 1 到 63 个字符之间,并且必须符合 RFC-1034 标准。否则,文档将无法导入。
C#
如需了解详情,请参阅 Vertex AI Search C# API 参考文档。
如需向 Vertex AI Search 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Go
如需了解详情,请参阅 Vertex AI Search Go API 参考文档。
如需向 Vertex AI Search 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Java
如需了解详情,请参阅 Vertex AI Search Java API 参考文档。
如需向 Vertex AI Search 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Node.js
如需了解详情,请参阅 Vertex AI Search Node.js API 参考文档。
如需向 Vertex AI Search 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Python
如需了解详情,请参阅 Vertex AI Search Python API 参考文档。
如需向 Vertex AI Search 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Ruby
如需了解详情,请参阅 Vertex AI Search Ruby API 参考文档。
如需向 Vertex AI Search 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
通过定期同步连接到 BigQuery
在导入数据之前,请查阅准备数据以进行注入。
以下步骤介绍了如何创建将 BigQuery 数据集与 Vertex AI Search 数据连接器相关联的数据连接器,以及如何为要创建的每个数据存储区指定数据集中的表。数据存储区是数据连接器的子级,称为实体数据存储区。
数据集中的数据会定期同步到实体数据存储区。您可以指定每天、每三天或每五天同步一次。
控制台
如需使用 Google Cloud 控制台创建定期将数据从 BigQuery 数据集同步到 Vertex AI Search 的连接器,请按以下步骤操作:
在 Google Cloud 控制台中,前往 AI Applications 页面。
在导航菜单中,点击数据存储区。
点击创建数据存储区。
在来源页面上,选择 BigQuery。
选择要导入的数据类型。
点击定期。
选择同步频率,即您希望 Vertex AI Search 连接器与 BigQuery 数据集同步的频率。您日后可以更改频率。
在 BigQuery 数据集路径字段中,点击浏览,然后选择包含您已准备好进行注入的表的相应数据集。或者,您也可以直接在 BigQuery 路径字段中输入表位置。路径的格式为
projectname.datasetname。在要同步的表字段中,点击浏览,然后选择包含您想要用于数据存储区的数据的相应表。
如果数据集中还有其他您想要用于数据存储区的表,请点击添加表,然后指定这些表。
点击继续。
为数据存储区选择一个区域,输入数据连接器的名称,然后点击创建。
您现已创建数据连接器,该连接器会定期与 BigQuery 数据集同步数据。并且,您已创建一个或多个实体数据存储区。这些数据存储区与 BigQuery 表具有相同的名称。
如需查看数据注入状态,请前往数据存储区页面,然后点击数据连接器名称,依次前往数据页面 > 数据注入活动标签页,以查看相关详细信息。当活动标签页上的“状态”列从进行中变为成功时,即表示首次注入已完成。
注入过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。
首次设置数据源并导入数据后,数据存储区会按照您在设置期间选择的频率同步来自该来源的数据。 创建数据连接器大约一小时后,系统会进行首次同步。下一次同步会在大约 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 要求。 | 符合 CMEK 要求。 |
从 Cloud Storage 导入一次
如需从 Cloud Storage 中注入数据,请按照以下步骤使用 Google Cloud 控制台或 API 创建数据存储区并注入数据。
在导入数据之前,请查阅准备数据以进行注入。
控制台
如需使用控制台从 Cloud Storage 存储桶中注入数据,请按照以下步骤操作:
在 Google Cloud 控制台中,前往 AI Applications 页面。
前往数据存储区页面。
点击 创建数据存储区。
在来源页面上,选择 Cloud Storage。
在选择您要导入的文件夹或文件部分中,选择文件夹或文件。
点击浏览,然后选择您已准备好进行注入的数据,再点击选择。 或者,您也可以直接在
gs://字段中输入相应位置。选择要导入的数据类型。
点击继续。
如果您要一次性导入结构化数据,请执行以下操作:
将字段映射到键属性。
如果架构中缺少重要字段,请使用添加新字段来添加这些字段。
如需了解详情,请参阅自动检测和修改简介。
点击继续。
为数据存储区选择一个区域。
为数据存储区输入名称。
可选:如果您选择了非结构化文档,则可以为文档选择解析和分块选项。如需比较解析器,请参阅解析文档。如需了解如何分块,请参阅为 RAG 进行文档分块。
OCR 解析器和布局解析器可能会产生额外费用。请参阅 Document 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_RECOMMENDATION"] }'替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 ID。DATA_STORE_ID:您要创建的 Vertex AI Search 数据存储区的 ID。此 ID 只能包含小写字母、数字、下划线和连字符。DATA_STORE_DISPLAY_NAME:您要创建的 Vertex AI Search 数据存储区的显示名称。
从 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 下,您需要为服务账号授予 Cloud Storage 存储桶的service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com“Storage Object Viewer”权限。例如,如果您要将 Cloud Storage 存储桶从来源项目“123”导入到目标项目“456”,请授予项目“123”下 Cloud Storage 存储桶的service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com权限。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。数据是根据架构整理的。您可以指定架构,否则系统会自动检测架构。您可以将文档的 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 中的数据增量刷新到数据存储区。这会执行 upsert 操作,即添加新文档,并将现有文档替换为具有相同 ID 的更新后文档。指定FULL会使数据存储区中的文档完全变基。换句话说,新文档和更新后的文档会添加到数据存储区,而 Cloud Storage 中不存在的文档会从数据存储区中移除。如果您想要自动删除不再需要的文档,FULL模式会很有帮助。AUTO_GENERATE_IDS:可选。指定是否自动生成文档 ID。如果设置为true,则系统会根据载荷的哈希值生成文档 ID。请注意,生成的文档 ID 在多次导入时可能不会保持一致。如果您在多次导入时自动生成 ID,Google 强烈建议您将reconciliationMode设置为FULL,以保持一致的文档 ID。仅当
gcsSource.dataSchema设置为custom或csv时,才应指定autoGenerateIds。否则,系统会返回INVALID_ARGUMENT错误。如果您未指定autoGenerateIds或将其设置为false,则必须指定idField。否则,文档将无法导入。ID_FIELD:可选。指定哪些字段是文档 ID。对于 Cloud Storage 源文档,idField用于指定作为文档 ID 的 JSON 字段中的名称。例如,如果{"my_id":"some_uuid"}是某个文档中的文档 ID 字段,请指定"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 Search C# API 参考文档。
如需向 Vertex AI Search 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Go
如需了解详情,请参阅 Vertex AI Search Go API 参考文档。
如需向 Vertex AI Search 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Java
如需了解详情,请参阅 Vertex AI Search Java API 参考文档。
如需向 Vertex AI Search 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Node.js
如需了解详情,请参阅 Vertex AI Search Node.js API 参考文档。
如需向 Vertex AI Search 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Python
如需了解详情,请参阅 Vertex AI Search Python API 参考文档。
如需向 Vertex AI Search 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Ruby
如需了解详情,请参阅 Vertex AI Search Ruby API 参考文档。
如需向 Vertex AI Search 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
通过定期同步连接到 Cloud Storage
在导入数据之前,请查阅准备数据以进行注入。
以下步骤介绍了如何创建将 Cloud Storage 位置与 Vertex AI Search 数据连接器相关联的数据连接器,以及如何在该位置中为要创建的数据存储区指定文件夹或文件。数据存储区是数据连接器的子级,称为实体数据存储区。
数据会定期同步到实体数据存储区。您可以指定每天、每三天或每五天同步一次。
控制台
在 Google Cloud 控制台中,前往 AI Applications 页面。
前往数据存储区页面。
点击创建数据存储区。
在来源页面上,选择 Cloud Storage。
选择要导入的数据类型。
点击定期。
选择同步频率,即您希望 Vertex AI Search 连接器与 Cloud Storage 位置同步的频率。您日后可以更改频率。
在选择您要导入的文件夹或文件部分中,选择文件夹或文件。
点击浏览,然后选择您已准备好进行注入的数据,再点击选择。 或者,您也可以直接在
gs://字段中输入相应位置。点击继续。
为数据连接器选择一个区域。
为数据连接器输入名称。
可选:如果您选择了非结构化文档,则可以为文档选择解析和分块选项。如需比较解析器,请参阅解析文档。如需了解如何分块,请参阅为 RAG 进行文档分块。
如需选择解析器,请展开文档处理选项,然后指定要使用的解析器选项。
OCR 解析器和布局解析器可能会产生额外费用。请参阅 Document AI 功能价格。
点击创建。
您现已创建数据连接器,该连接器会定期与 Cloud Storage 位置同步数据。您还创建了一个名为
gcs_store的实体数据存储区。如需查看数据注入状态,请前往数据存储区页面,然后点击数据连接器名称,在其数据页面上查看相关详细信息。
数据注入活动标签页。当数据注入活动标签页上的状态列从正在进行更改为成功时,表示首次注入已完成。
注入过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。
首次设置数据源并导入数据后,系统会按照您在设置期间选择的频率同步来自该来源的数据。 创建数据连接器大约一小时后,系统会进行首次同步。 下一次同步会在大约 24 小时、72 小时或 120 小时后进行。
后续步骤
通过 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_RECOMMENDATION"] }'替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 ID。DATA_STORE_ID:您要创建的推荐数据存储区的 ID。此 ID 只能包含小写字母、数字、下划线和连字符。DATA_STORE_DISPLAY_NAME:您要创建的推荐数据存储区的显示名称。
可选:提供您自己的架构。提供架构通常可以获得更好的结果。如需了解详情,请参阅提供或自动检测架构。
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/schemas/default_schema" \ -d '{ "structSchema": JSON_SCHEMA_OBJECT }'替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 ID。DATA_STORE_ID:建议数据存储区的 ID。JSON_SCHEMA_OBJECT:以 JSON 对象形式表示的 JSON 架构 - 例如:{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string", "keyPropertyMapping": "title" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } }, "uri": { "type": "string", "keyPropertyMapping": "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 '{ "jsonData": "JSON_DOCUMENT_STRING" }'将
JSON_DOCUMENT_STRING替换为作为单个字符串的 JSON 文档。此文件必须符合您在上一步中提供的 JSON 架构,例如:```none { \"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 }'
后续步骤
使用 Terraform 创建数据存储区
您可以使用 Terraform 创建空数据存储区。创建空数据存储区后,您可以使用 Google Cloud 控制台或 API 命令将数据注入到该数据存储区中。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
如需使用 Terraform 创建空数据存储区,请参阅
google_discovery_engine_data_store。