Gemini Enterprise Agent Platform 允许您从 Dataset 资源导出元数据和注解集。如果您想要维护一组特定的注解更改、添加或删除操作的记录,此功能会非常有用。
当您导出 Dataset 时,Agent Platform 会创建一个或多个
JSON 行
文件,其中包含 Dataset' 的元数据和注解,并将这些
JSON 行文件保存到您选择的 Cloud Storage 目录中。
您可以导出图片 Dataset 资源。您无法导出表格 Dataset 资源。
导出 Dataset 不会创建 Dataset 所基于的图片数据的其他副本。导出过程创建的 JSON 行文件包含您在将数据导入 Dataset 时为数据指定的原始 Cloud Storage URI。
使用 Google Cloud 控制台或 API 导出 Dataset
您可以使用 Google Cloud 控制台或 Agent Platform API 导出 Dataset。
请按照相应标签页中的步骤操作:
控制台
在 Google Cloud 控制台的 Agent Platform 部分中,前往 数据集 页面。
在区域下拉列表中,选择存储
Dataset的位置。找到
Dataset的行。您可以导出所有注释集或特定注释集的元数据和注释:如果要导出
Dataset的所有注解集的元数据和注解, 请点击 查看 更多 ,然后 点击 导出数据集 。这会指示 Agent Platform 为每个注解集创建一组 JSON 行文件。
如果要导出特定注解集的元数据和注解, 请执行以下操作:
点击展开节点 以显示
Dataset的每个注释集对应的行。在要导出的注解集所在的行中,点击View more ,然后点击Export annotation set。
这会指示 Agent Platform 为您指定的注解集创建一组 JSON 行文件。
在导出数据 对话框中,输入您希望 Agent Platform 用于保存导出的 JSON 行文件的 Cloud Storage 目录。点击导出 。
REST
获取 Dataset 的 ID
要导出 Dataset,您必须知道 Dataset 的数字 ID。如果您知道 Dataset 的显示名,但不知道 ID,请展开以下部分,了解如何使用 API 获取 ID:
从数据集的显示名称获取数据集 ID
在使用任何请求数据之前,请先进行以下替换:
LOCATION:
Dataset的存储位置。例如us-central1。PROJECT_ID: 您的 [项目 ID](/resource-manager/docs/creating-managing-projects#identifiers)。 。
DATASET_DISPLAY_NAME:
Dataset的显示名称。
HTTP 方法和网址:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?filter=displayName=DATASET_DISPLAY_NAME
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?filter=displayName=DATASET_DISPLAY_NAME"
PowerShell
执行以下命令:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?filter=displayName=DATASET_DISPLAY_NAME" | Select-Object -Expand Content
以下示例响应已使用 ... 截断,以强调您可以在何处找到您的 Dataset 的 ID,即取代 DATASET_ID 的编号。
{
"datasets": [
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID",
"displayName": "DATASET_DISPLAY_NAME",
...
}
]
}
或者,您也可以通过 Google Cloud 控制台获取 Dataset's 的 ID:
打开 Agent Platform 数据集 页面,然后在
ID 列中找到该编号。
导出一个或多个注解集
在使用任何请求数据之前,请先进行以下替换:
LOCATION:
Dataset的存储位置。例如us-central1。PROJECT_ID: 您的 [项目 ID](/resource-manager/docs/creating-managing-projects#identifiers)。 。
DATASET_ID:
Dataset的数字 ID。EXPORT_DIRECTORY:您希望 Agent Platform 用于保存导出的 JSON 行文件的目录的 Cloud Storage URI(以
gs://开头)。此目录必须位于您有权访问的 Cloud Storage 存储桶中,但目录不需要已经存在。FILTER:过滤器字符串,用于确定导出哪些注释集。
如果要导出
Dataset的所有注解集的元数据和注解, 请将 FILTER 更换为空字符串(或在请求正文中完全省略annotationsFilter字段)。这会指示 Agent Platform 为每个注解集创建一组 JSON 行文件。如果要导出特定注解 集, 请将 FILTER 替换为以下内容:
labels.aiplatform.googleapis.com/annotation_set_name=ANNOTATION_SET_ID这会指示 Agent Platform 为 具有数字 ID ANNOTATION_SET_ID 的注解集创建一组 JSON 行文件。
如需找到您要指定的注解集的数字 ID,请在 控制台中查看注解集,并在网址中查找 Google Cloud
annotationSetId后面的值。
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export
请求 JSON 正文:
{
"exportConfig": {
"gcsDestination": {
"outputUriPrefix": "EXPORT_DIRECTORY"
},
"annotationsFilter": "FILTER"
}
}
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export"
PowerShell
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportDataOperationMetadata",
"genericMetadata": {
"createTime": "2021-02-17T00:54:58.827429Z",
"updateTime": "2021-02-17T00:54:58.827429Z"
},
"gcsOutputDirectory": "EXPORT_DIRECTORY/export-data-DATASET_DISPLAY_NAME-2021-02-17T00:54:58.734772Z"
}
}
某些请求会启动需要一些时间才能完成的长时间运行的操作。这些请求会返回操作名称,您可以使用该名称查看操作状态或取消操作。Agent Platform 提供辅助方法来调用长时间运行的操作。如需了解详情,请参阅使用长时间运行 的操作。
导出的文件说明
在上一部分中指定导出目录后,Agent Platform 会创建一个标有 Dataset 的显示名称和时间戳的新目录;例如 export-data-DATASET_DISPLAY_NAME-2021-02-17T00:54:58.734772Z。在此目录中,您可以找到您导出的每个注解集的子目录。
对于每个注解集,您可以找到一个或多个 JSON 行文件。每个 JSON 行文件的每一行代表注解集中的一个数据项。每个数据项可能包含您在将数据导入 Agent Platform 时指定的元数据和注解,以及您在导入数据后添加的元数据和注解。例如,如果您请求了为数据
加标签,或者您在
Google Cloud 控制台中为Dataset手动添加了标签或注解,则导出的文件中会包含此信息。Dataset
如果您导出多个注解集,则相同的数据项可能会出现在多个 JSON 行文件中。例如,如果您导出具有多个注解集的图片 Dataset,一个 JSON 行文件可能包含具有单标签分类注解的数据项;不同注解集的另一个 JSON 行文件可能包含相同的数据项,但它具有对象检测注解。
导出文件的格式与您可用于将数据导入 Agent Platform 的 JSON 行导入
文件的格式一致。
此格式取决于数据类型(图片或表格)和目标(例如对象跟踪、实体提取或分类)。
例如,如果导出单标签图片分类的注解集,则每个 JSON 行文件的每一行都根据 gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml 架构文件设置格式,如准备图片数据中所述。
后续步骤
- 了解如何使用控制台为数据加标签 Google Cloud 。
- 详细了解如何在 Agent Platform 中使用数据集。