管理 Vertex ML Metadata

本指南演示了如何管理 Vertex ML Metadata。

须知事项

第一次在 Google Cloud 项目中使用 Vertex ML Metadata 时,Vertex AI 会创建项目的元数据存储区。

如果您希望使用 CMEK(客户管理的加密密钥)对元数据进行加密,则必须先使用 CMEK 创建元数据存储区,然后再使用 Vertex ML Metadata 跟踪或分析元数据。按照创建使用 CMEK 的元数据存储区中的说明配置项目的元数据存储区。

工件管理

创建工件

使用 REST 或 Python 版 Vertex AI SDK 创建工件。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION_ID:您的区域。
  • PROJECT_ID:您的项目 ID
  • METADATA_STORE:在其中创建工件的元数据存储区的 ID。 默认元数据存储区名为 default
  • ARTIFACT_ID:(可选)工件记录的 ID。如果未指定工件 ID,Vertex ML Metadata 会为此工件创建一个唯一标识符。
  • DISPLAY_NAME:(可选)用户定义的工件名称。
  • URI:(可选)工件的存储位置。
  • ARTIFACT_STATE:(可选)状态枚举中的值,表示工件的当前状态。此字段由客户端应用管理。Vertex ML Metadata 不会检查状态转换的有效性。
  • METADATA_SCHEMA_TITLE:描述元数据字段的架构的标题。架构的标题必须符合格式“.”。命名空间必须以小写字母开头,可以包含小写字符和数字,并且长度可以是 2 到 20 个字符。架构名称必须以大写字母开头,可以包含字母和数字,并且长度可以是 2 到 49 个字符。
  • METADATA_SCHEMA_VERSION:(可选)描述元数据字段的架构的版本。 schema_version 必须是用句点分隔的 3 个数字的字符串,例如 1.0.0、1.0.1。此格式有助于对版本进行排序和比较。
  • METADATA:(可选)描述工件的属性,例如数据集类型。
  • DESCRIPTION:(可选)人类可读的字符串,用于描述要创建的执行的用途。
  • LABELS:可选。用于整理工件的用户定义元数据。

HTTP 方法和网址:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts?artifactId=ARTIFACT_ID

请求 JSON 正文:

{
  "displayName": "DISPLAY_NAME",
  "uri": "URI",
  "state": "ARTIFACT_STATE",
  "schemaTitle": "METADATA_SCHEMA_TITLE",
  "schemaVersion": "METADATA_SCHEMA_VERSION",
  "metadata": {
    METADATA
  },
  "labels": {"LABEL_1":"LABEL_2"},
  "description": "DESCRIPTION"
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/default/artifacts/ARTIFACT_ID",
  "displayName": "Example artifact",
  "uri": "gs://your_bucket_name/artifacts/dataset.csv",
  "etag": "67891011",
  "labels": {
    "test_label": "test_label_value"
  },
  "createTime": "2021-05-18T00:29:24.344Z",
  "updateTime": "2021-05-18T00:29:24.344Z",
  "state": "LIVE",
  "schemaTitle": "system.Dataset",
  "schemaVersion": "0.0.1",
  "metadata": {
    "payload_format": "CSV"
  },
  "description": "Description of the example artifact."
}

Python

Python

def create_artifact_sample(
    project: str,
    location: str,
    uri: Optional[str] = None,
    artifact_id: Optional[str] = None,
    display_name: Optional[str] = None,
    schema_version: Optional[str] = None,
    description: Optional[str] = None,
    metadata: Optional[Dict] = None,
):
    system_artifact_schema = artifact_schema.Artifact(
        uri=uri,
        artifact_id=artifact_id,
        display_name=display_name,
        schema_version=schema_version,
        description=description,
        metadata=metadata,
    )
    return system_artifact_schema.create(project=project, location=location,)
  • project:您的项目 ID。 您可以在 Google Cloud 控制台的欢迎页面中找到这些 ID。
  • location:请参阅可用位置列表
  • uri:(可选)工件文件的统一资源标识符(如果存在)。如果没有实际的工件文件,则可能为空。
  • artifact_id:(可选)工件记录的 ID。如果未指定工件 ID,Vertex ML Metadata 会为此工件创建一个唯一标识符。
  • display_name:(可选)用户定义的工件名称。
  • schema_version:描述元数据字段的架构的版本。
  • description:(可选)人类可读的字符串,用于描述要创建的工件的用途。
  • metadata:描述工件的属性,例如工件参数。

查询现有工件

工件代表机器学习工作流使用或生成的数据,例如数据集和模型。如需查找现有工件,请使用 REST 或 Python 版 Vertex AI SDK。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION_ID:您的区域。
  • PROJECT_ID:您的项目 ID
  • METADATA_STORE:在其中创建工件的元数据存储区的 ID。 默认元数据存储区名为 default
  • PAGE_SIZE:(可选)要返回的最大工件数。如果未指定此值,服务最多返回 100 条记录。
  • PAGE_TOKEN:(可选)来自之前 MetadataService.ListArtifacts 调用的页面令牌。指定此令牌可获取下一页结果。
  • FILTER:指定将工件包括在结果集中所需的条件。

HTTP 方法和网址:

GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

如需发送您的请求,请展开以下选项之一:

您应该会看到类似如下所示的输出。 ARTIFACT_ID 是工件记录的 ID。

{
  "artifacts": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/default/artifacts/ARTIFACT_ID",
      "displayName": "Example artifact",
      "uri": "gs://your_bucket_name/artifacts/dataset.csv",
      "etag": "67891011",
      "createTime": "2021-05-18T00:33:13.833Z",
      "updateTime": "2021-05-18T00:33:13.833Z",
      "state": "LIVE",
      "schemaTitle": "system.Dataset",
      "schemaVersion": "0.0.1",
      "metadata": {
        "payload_format": "CSV"
      },
      "description": "Description of the example artifact."
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID",
      "displayName": "Another example artifact",
      "uri": "gs://your_bucket_name/artifacts/dataset-2.csv",
      "etag": "67891012",
      "createTime": "2021-05-18T00:29:24.344Z",
      "updateTime": "2021-05-18T00:29:24.344Z",
      "state": "LIVE",
      "schemaTitle": "system.Dataset",
      "schemaVersion": "0.0.1",
      "metadata": {
        "payload_format": "CSV"
      },
      "description": "Description of the other example artifact."
    }
  ]
}

Python

Python

def list_artifact_sample(
    project: str,
    location: str,
    display_name_filter: Optional[str] = "display_name=\"my_model_*\"",
    create_date_filter: Optional[str] = "create_time>\"2022-06-11\"",
    order_by: Optional[str] = None,
):
    aiplatform.init(project=project, location=location)

    combined_filters = f"{display_name_filter} AND {create_date_filter}"
    return aiplatform.Artifact.list(
        filter=combined_filters,
        order_by=order_by,
    )

  • project:您的项目 ID。 您可以在 Google Cloud 控制台的欢迎页面中找到这些 ID。
  • location:请参阅可用位置列表
  • display_name_filter:在列出资源时应用于显示名称的过滤条件,格式为“display_name=\"my_filter\"”。
  • create_date_filter:在列出资源时应用于 create_date 名称的过滤条件,格式为“create_time>\"2022-06-11T12:30:00-08:00\"”,

删除现有工件

使用 REST 或 Python 版 Vertex AI SDK 删除工件。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION_ID:您的区域。
  • PROJECT_ID:您的项目 ID
  • METADATA_STORE:在其中创建工件的元数据存储区的 ID。 默认元数据存储区名为 default
  • ARTIFACT_ID:要删除的工件记录的 ID。

HTTP 方法和网址:

DELETE https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID

如需发送您的请求,请展开以下选项之一:

您应该会看到类似如下所示的输出。您可以使用响应中的 OPERATION_ID获取操作的状态

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeleteOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T20:05:30.179713Z",
      "updateTime": "2021-07-21T20:05:30.179713Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

Python

Python

def delete_artifact_sample(
    artifact_id: str,
    project: str,
    location: str,
):
    artifact = aiplatform.Artifact.get(
        resource_id=artifact_id, project=project, location=location
    )
    artifact.delete()
  • artifact_id:执行记录的 ID。
  • project:您的项目 ID。 您可以在 Google Cloud 控制台的欢迎页面中找到这些 ID。
  • location:请参阅可用位置列表

完全清除工件

按照以下说明根据过滤条件删除多个工件。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION_ID:您的区域。
  • PROJECT_ID:您的项目 ID
  • METADATA_STORE:在其中创建工件的元数据存储区的 ID。 默认元数据存储区名为 default
  • FILTER:指定要删除的工件所需的条件。例如:
    • 过滤显示名称中包含 example 的所有工件:"display_name = \"*example*\""
    • 过滤 2020-11-19T11:30:00-04:00 之前创建的所有工件:"create_time < \"2020-11-19T11:30:00-04:00\""
  • FORCE:指示是否执行实际完全清除。如果该标志设置为 false,则该方法将返回要删除的工件名称示例。

HTTP 方法和网址:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts:purge

请求 JSON 正文:

{
  "filter": "FILTER",
  "force": FORCE
}

如需发送您的请求,请展开以下选项之一:

您应该会看到类似如下所示的输出。您可以使用响应中的 OPERATION_ID获取操作的状态

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.PurgeArtifactsMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T21:02:33.757991Z",
      "updateTime": "2021-07-21T21:02:33.757991Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.PurgeArtifactsResponse",
    "purgeCount": "15"
  }
}

执行管理

创建执行任务

执行代表机器学习工作流中的一个步骤。使用 REST 或 Python 版 Vertex AI SDK 创建执行。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION_ID:您的区域。
  • PROJECT_ID:您的项目 ID
  • METADATA_STORE:在其中创建执行作业的元数据存储区的 ID。 默认元数据存储区名为 default
  • EXECUTION_ID:执行记录的 ID。如果未指定执行作业 ID,则 Vertex ML Metadata 会为执行作业创建一个唯一标识符。
  • DISPLAY_NAME:执行作业的显示名称。此字段最多可包含 128 个 Unicode 字符。
  • EXECUTION_STATE:(可选)状态枚举中的值,表示执行作业的当前状态。此字段由客户端应用管理。Vertex ML Metadata 不会检查状态转换的有效性。
  • METADATA_SCHEMA_TITLE:描述元数据字段的架构的标题。架构的标题必须符合格式“.”。命名空间必须以小写字母开头,可以包含小写字符和数字,并且长度可以是 2 到 20 个字符。架构名称必须以大写字母开头,可以包含字母和数字,并且长度可以是 2 到 49 个字符。
  • METADATA_SCHEMA_VERSION:(可选)描述元数据字段的架构的版本。 schema_version 必须是用句点分隔的 3 个数字的字符串,例如 1.0.0、1.0.1。此格式有助于对版本进行排序和比较。
  • METADATA:(可选)描述执行作业的属性,例如执行作业参数。
  • DESCRIPTION:(可选)人类可读的字符串,用于描述要创建的执行的用途。
  • LABELS:可选。用于整理执行的用户定义元数据。

HTTP 方法和网址:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions?executionId=EXECUTION_ID

请求 JSON 正文:

{
  "displayName": "DISPLAY_NAME",
  "state": "EXECUTION_STATE",
  "schemaTitle": "METADATA_SCHEMA_TITLE",
  "schemaVersion": "METADATA_SCHEMA_VERSION",
  "metadata": {
    METADATA
  },
  "labels": {"LABEL_1":"LABEL_2"},
  "description": "DESCRIPTION"

}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
  "displayName": "Example Execution",
  "etag": "67891011",
  "labels": {
    "test_label": "test_label_value"
  },
  "createTime": "2021-05-18T00:04:49.659Z",
  "updateTime": "2021-05-18T00:04:49.659Z",
  "schemaTitle": "system.Run",
  "schemaVersion": "0.0.1",
  "metadata": {},
  "description": "Description of the example execution."
}

Python

Python

def create_execution_sample(
    display_name: str,
    input_artifacts: List[aiplatform.Artifact],
    output_artifacts: List[aiplatform.Artifact],
    project: str,
    location: str,
    execution_id: Optional[str] = None,
    metadata: Optional[Dict[str, Any]] = None,
    schema_version: Optional[str] = None,
    description: Optional[str] = None,
):
    aiplatform.init(project=project, location=location)

    with execution_schema.ContainerExecution(
        display_name=display_name,
        execution_id=execution_id,
        metadata=metadata,
        schema_version=schema_version,
        description=description,
    ).create() as execution:
        execution.assign_input_artifacts(input_artifacts)
        execution.assign_output_artifacts(output_artifacts)
        return execution
  • display_name:执行作业的显示名称。此字段最多可包含 128 个 Unicode 字符。
  • input_artifacts:表示输入工件的一个或多个 aiplatform.Artifact 实例的列表。
  • output_artifacts:表示输出工件的一个或多个 aiplatform.Artifact 实例的列表。
  • project:您的项目 ID。 您可以在 Google Cloud 控制台的欢迎页面中找到这些 ID。
  • location:请参阅可用位置列表
  • execution_id:执行记录的 ID。如果未指定执行作业 ID,则 Vertex ML Metadata 会为执行作业创建一个唯一标识符。
  • metadata:描述执行作业的属性,例如执行参数。
  • schema_version:描述元数据字段的架构的版本。
  • description:(可选)人类可读的字符串,用于描述要创建的执行的用途。

查找现有执行

使用 REST 或 Python 版 Vertex AI SDK 查找现有执行。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION_ID:您的区域。
  • PROJECT_ID:您的项目 ID
  • METADATA_STORE:在其中创建执行作业的元数据存储区的 ID。 默认元数据存储区名为 default
  • PAGE_SIZE:(可选)要返回的最大工件数。如果未指定此值,服务最多返回 100 条记录。
  • PAGE_TOKEN:(可选)来自之前 MetadataService.ListArtifacts 调用的页面令牌。指定此令牌可获取下一页结果。
  • FILTER:指定将执行作业包括在结果集中所需的条件。

HTTP 方法和网址:

GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

如需发送您的请求,请展开以下选项之一:

您应该会看到类似如下所示的输出。 EXECUTION_ID 是执行记录的 ID。

{
  "executions": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "displayName": "Example execution 1",
      "etag": "67891011",
      "createTime": "2021-05-18T00:06:56.177Z",
      "updateTime": "2021-05-18T00:06:56.177Z",
      "schemaTitle": "system.Run",
      "schemaVersion": "0.0.1",
      "metadata": {},
      "description": "Description of the example execution."
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "displayName": "Example execution 2",
      "etag": "67891011",
      "createTime": "2021-05-18T00:04:49.659Z",
      "updateTime": "2021-05-18T00:04:49.659Z",
      "schemaTitle": "system.Run",
      "schemaVersion": "0.0.1",
      "metadata": {},
      "description": "Description of the example execution."
    }
  ]
}

Python

Python

def get_execution_sample(
    execution_id: str,
    project: str,
    location: str,
):
    execution = aiplatform.Execution.get(
        resource_id=execution_id, project=project, location=location
    )

    return execution

  • execution_id:执行记录的 ID。
  • project:您的项目 ID。 您可以在 Google Cloud 控制台的欢迎页面中找到这些 ID。
  • location:请参阅可用位置列表

删除现有执行

使用 REST 或 Python 版 Vertex AI SDK 删除执行。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION_ID:您的区域。
  • PROJECT_ID:您的项目 ID
  • METADATA_STORE:在其中创建执行作业的元数据存储区的 ID。 默认元数据存储区名为 default
  • EXECUTION_ID:要删除的执行记录的 ID。

HTTP 方法和网址:

DELETE https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID

如需发送您的请求,请展开以下选项之一:

您应该会看到类似如下所示的输出。您可以使用响应中的 OPERATION_ID获取操作的状态

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeleteOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T20:05:30.179713Z",
      "updateTime": "2021-07-21T20:05:30.179713Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

Python

Python

def delete_execution_sample(
    execution_id: str,
    project: str,
    location: str,
):
    execution = aiplatform.Execution.get(
        resource_id=execution_id, project=project, location=location
    )
    execution.delete()
  • execution_id:执行记录的 ID。
  • project:您的项目 ID。 您可以在 Google Cloud 控制台的欢迎页面中找到这些 ID。
  • location:请参阅可用位置列表

完全清除执行

如需根据过滤条件删除多个执行,请按照以下说明操作。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION_ID:您的区域。
  • PROJECT_ID:您的项目 ID
  • METADATA_STORE:在其中创建执行作业的元数据存储区的 ID。 默认元数据存储区名为 default
  • FILTER:指定要删除的执行所需的条件。例如:
    • 过滤显示名称中包含 example 的所有执行:"display_name = \"*example*\""
    • 过滤 2020-11-19T11:30:00-04:00 之前创建的所有执行:"create_time < \"2020-11-19T11:30:00-04:00\""
  • FORCE:指示是否执行实际完全清除。如果该标志设置为 false,则该方法将返回要删除的工件名称示例。

HTTP 方法和网址:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions:purge

请求 JSON 正文:

{
  "filter": "FILTER",
  "force": FORCE
}

如需发送您的请求,请展开以下选项之一:

您应该会看到类似如下所示的输出。您可以使用响应中的 OPERATION_ID获取操作的状态

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.PurgeExecutionsMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T21:02:45.757991Z",
      "updateTime": "2021-07-21T21:02:45.757991Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.PurgeExecutionsResponse",
    "purgeCount": "2"
  }
}

上下文管理

创建上下文

借助上下文,您可以将工件和执行组合在一起。使用 REST 或 Python 版 Vertex AI SDK 创建上下文。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION_ID:您的区域。
  • PROJECT_ID:您的项目 ID
  • METADATA_STORE:在其中创建执行作业的元数据存储区的 ID。默认元数据存储区名为 default
  • CONTEXT_ID:(可选)上下文记录的 ID。如果未指定上下文 ID,则 Vertex ML Metadata 会为此上下文创建一个唯一标识符
  • DISPLAY_NAME:上下文的显示名称。此字段最多可包含 128 个 Unicode 字符。
  • PARENT_CONTEXT:为任何父级上下文指定资源名称。一个上下文包含的父级上下文不能超过 10 个。
  • METADATA_SCHEMA_TITLE:描述元数据字段的架构的标题。架构的标题必须符合格式“.”。命名空间必须以小写字母开头,可以包含小写字符和数字,并且长度可以是 2 到 20 个字符。架构名称必须以大写字母开头,可以包含字母和数字,并且长度可以是 2 到 49 个字符。
  • METADATA_SCHEMA_VERSION:(可选)描述元数据字段的架构的版本。 schema_version 必须是用句点分隔的 3 个数字的字符串,例如 1.0.0、1.0.1。此格式有助于对版本进行排序和比较。
  • METADATA:描述上下文的属性,例如上下文参数。
  • DESCRIPTION:(可选)人类可读的字符串,用于描述要创建的执行的用途。
  • LABELS:可选。用于整理上下文的用户定义元数据。

HTTP 方法和网址:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts?contextId=CONTEXT_ID

请求 JSON 正文:

{
  "displayName": "DISPLAY_NAME:",
  "parentContexts": [
    "PARENT_CONTEXT_1",
    "PARENT_CONTEXT_2"
  ],
  "schemaTitle": "METADATA_SCHEMA_TITLE",
  "schemaVersion": "METADATA_SCHEMA_VERSION",
  "metadata": {
    METADATA
  },
  "labels": {"LABEL_1":"LABEL_2"},
  "description": "DESCRIPTION"

}

如需发送您的请求,请展开以下选项之一:

您应该会看到类似如下所示的输出。 CONTEXT_ID 是上下文记录的 ID。

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID",
  "displayName": "Example context:",
  "etag": "67891011",
  "labels": {
    "test_label": "test_label_value"
  },
  "createTime": "2021-05-18T01:52:51.642Z",
  "updateTime": "2021-05-18T01:52:51.642Z",
  "schemaTitle": "system.Experiment",
  "schemaVersion": "0.0.1",
  "metadata": {},
  "description": "Description of the example context."
}

Python

Python

def create_context_sample(
    display_name: str,
    project: str,
    location: str,
    context_id: Optional[str] = None,
    metadata: Optional[Dict[str, Any]] = None,
    schema_version: Optional[str] = None,
    description: Optional[str] = None,
):
    aiplatform.init(project=project, location=location)

    return context_schema.Experiment(
        display_name=display_name,
        context_id=context_id,
        metadata=metadata,
        schema_version=schema_version,
        description=description,
    ).create()
  • display_name:上下文的显示名称。此字段最多可包含 128 个 Unicode 字符。
  • project:您的项目 ID。 您可以在 Google Cloud 控制台的欢迎页面中找到这些 ID。
  • location:请参阅可用位置列表
  • context_id:(可选)上下文记录的 ID。
  • metadata:描述上下文的属性,例如上下文参数。
  • schema_version:描述元数据字段的架构的版本。
  • description:(可选)人类可读的字符串,用于描述要创建的上下文的用途。

查找现有上下文

使用 REST 或 Python 版 Vertex AI SDK 查找现有上下文。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION_ID:您的区域。
  • PROJECT_ID:您的项目 ID
  • METADATA_STORE:在其中创建上下文的元数据存储区的 ID。 默认元数据存储区名为 default
  • PAGE_SIZE:(可选)要返回的最大工件数。如果未指定此值,服务最多返回 100 条记录。
  • PAGE_TOKEN:(可选)来自之前 MetadataService.ListArtifacts 调用的页面令牌。指定此令牌可获取下一页结果。
  • FILTER:指定将上下文包括在结果集中所需的条件。

HTTP 方法和网址:

GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

如需发送您的请求,请展开以下选项之一:

您应该会看到类似如下所示的输出。 CONTEXT_ID 是上下文记录的 ID。

{
  "contexts": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID",
      "displayName": "Experiment 1",
      "etag": "67891011",
      "createTime": "2021-05-18T22:36:02.153Z",
      "updateTime": "2021-05-18T22:36:02.153Z",
      "parentContexts": [],
      "schemaTitle": "system.Experiment",
      "schemaVersion": "0.0.1",
      "metadata": {}
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID",
      "displayName": "Pipeline run 1",
      "etag": "67891011",
      "createTime": "2021-05-18T22:35:02.600Z",
      "updateTime": "2021-05-18T22:35:02.600Z",
      "parentContexts": [],
      "schemaTitle": "system.PipelineRun",
      "schemaVersion": "0.0.1",
      "metadata": {}
    }
  ]
}

Python

Python

def get_context_sample(
    context_id: str,
    project: str,
    location: str,
):
    context = aiplatform.Context.get(
        resource_id=context_id, project=project, location=location)
    return context
  • context_id::上下文记录的 ID。
  • project:您的项目 ID。 您可以在 Google Cloud 控制台的欢迎页面中找到这些 ID。
  • location:请参阅可用位置列表

删除现有上下文

使用 REST 或 Python 版 Vertex AI SDK 删除上下文。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION_ID:您的区域。
  • PROJECT_ID:您的项目 ID
  • METADATA_STORE:在其中创建上下文的元数据存储区的 ID。 默认元数据存储区名为 default
  • CONTEXT_ID:(可选)上下文记录的 ID。

HTTP 方法和网址:

DELETE https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID

如需发送您的请求,请展开以下选项之一:

您应该会看到类似如下所示的输出。您可以使用响应中的 OPERATION_ID获取操作的状态

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeleteOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T20:05:30.179713Z",
      "updateTime": "2021-07-21T20:05:30.179713Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

Python

Python

def delete_context_sample(
    context_id: str,
    project: str,
    location: str,
):
    context = aiplatform.Context.get(
        resource_id=context_id, project=project, location=location
    )
    context.delete()
  • context_id::上下文记录的 ID。
  • project:您的项目 ID。 您可以在 Google Cloud 控制台的欢迎页面中找到这些 ID。
  • location:请参阅可用位置列表

完全清除上下文

按照以下说明根据过滤条件删除多个上下文。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION_ID:您的区域。
  • PROJECT_ID:您的项目 ID
  • METADATA_STORE:在其中创建上下文的元数据存储区的 ID。默认元数据存储区名为 default
  • FILTER:指定要删除的上下文所需的条件。例如:
    • 过滤显示名称中包含 example 的所有上下文:"display_name = \"*example*\""
    • 过滤 2020-11-19T11:30:00-04:00 之前创建的所有上下文:"create_time < \"2020-11-19T11:30:00-04:00\""
  • FORCE:指示是否执行实际完全清除。如果该标志设置为 false,则该方法将返回要删除的上下文名称示例。

HTTP 方法和网址:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts:purge

请求 JSON 正文:

{
  "filter": "FILTER",
  "force": FORCE
}

如需发送您的请求,请展开以下选项之一:

您应该会看到类似如下所示的输出。您可以使用响应中的 OPERATION_ID获取操作的状态

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.PurgeContextsMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T21:02:40.757991Z",
      "updateTime": "2021-07-21T21:02:40.757991Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.PurgeContextsResponse",
    "purgeCount": "5"
  }
}

后续步骤