管理 Vertex ML 中繼資料

本指南說明如何管理 Vertex 機器學習中繼資料。

事前準備

首次在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 會為這個構件建立專屬 ID。
  • DISPLAY_NAME:(選用) 使用者定義的構件名稱。
  • URI:(選用) 儲存構件的位置
  • ARTIFACT_STATE:(選用) State 列舉中的值,代表構件的目前狀態。這個欄位是由用戶端應用程式管理。Vertex 機器學習中繼資料不會檢查狀態轉換的有效性。
  • METADATA_SCHEMA_TITLE:描述中繼資料欄位的結構定義標題。結構定義的標題必須符合 `.` 格式。命名空間開頭必須是小寫字母,可包含小寫字元和數字,長度為 2 到 20 個字元。結構定義名稱開頭須為大寫英文字母,可包含英文字母和數字,長度介於 2 到 49 個字元。
  • METADATA_SCHEMA_VERSION:(選用) 描述中繼資料欄位的結構定義版本。schema_version 必須是三個以半形句點分隔的數字字串, 例如 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

from typing import Dict, Optional

from google.cloud.aiplatform.metadata.schema.system import artifact_schema


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:。您可以在 Google Cloud 控制台 歡迎頁面中找到這些 ID。
  • location:請參閱可用位置清單
  • uri:(選用) 如果有構件檔案的統一資源識別碼,如果沒有實際的構件檔案,則可能為空白。
  • artifact_id:(選用) 構件記錄的 ID。如未指定構件 ID,Vertex ML Metadata 會為這個構件建立專屬 ID。
  • display_name:(選用) 使用者定義的構件名稱。
  • schema_version:描述中繼資料欄位的結構定義版本。
  • description:(選用) 說明待建立構件用途的字串,方便使用者閱讀。
  • metadata:描述構件的屬性,例如構件參數。

查詢現有構件

構件代表機器學習工作流程使用或產生的資料,例如資料集和模型。如要查詢現有構件,請使用 REST 或 Python 適用的 Vertex AI SDK。

REST

使用任何要求資料之前,請先替換以下項目:

  • LOCATION_ID:您的區域。
  • PROJECT_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

from typing import Optional

from google.cloud import aiplatform


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:。您可以在 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:。
  • 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

from google.cloud import aiplatform


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:。您可以在 Google Cloud 控制台 歡迎頁面中找到這些 ID。
  • location:請參閱可用位置清單

清除構件

按照下列操作說明,根據篩選條件刪除多個構件。

REST

使用任何要求資料之前,請先替換以下項目:

  • LOCATION_ID:您的區域。
  • PROJECT_ID:。
  • METADATA_STORE:建立構件的中繼資料儲存庫 ID。 預設中繼資料儲存庫的名稱為 default
  • FILTER:指定刪除構件的必要條件。舉例來說:
    • 篩選顯示名稱中包含「example」的所有構件:"display_name = \"*example*\""
    • 2020 年 11 月 19 日下午 11:30 (美國東部標準時間) 之前建立的所有構件的篩選器: "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:。
  • METADATA_STORE:建立執行的中繼資料商店 ID。 預設中繼資料儲存庫的名稱為 default
  • EXECUTION_ID:執行記錄的 ID。如未指定執行 ID,Vertex ML Metadata 會為這項執行作業建立專屬 ID。
  • DISPLAY_NAME:執行的顯示名稱。這個欄位最多可包含 128 個 Unicode 字元。
  • EXECUTION_STATE:(選用) State 列舉中的值,代表目前執行狀態。這個欄位是由用戶端應用程式管理。 Vertex 機器學習中繼資料不會檢查狀態轉換的有效性。
  • METADATA_SCHEMA_TITLE:描述中繼資料欄位的結構定義標題。結構定義的標題必須符合 `.` 格式。命名空間開頭必須是小寫字母,可包含小寫字元和數字,長度為 2 到 20 個字元。結構定義名稱開頭須為大寫英文字母,可包含英文字母和數字,長度介於 2 到 49 個字元。
  • METADATA_SCHEMA_VERSION:(選用) 描述中繼資料欄位的結構定義版本。schema_version 必須是三個以半形句點分隔的數字字串, 例如 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

from typing import Any, Dict, List, Optional

from google.cloud import aiplatform
from google.cloud.aiplatform.metadata.schema.system import execution_schema


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 執行個體的清單,代表輸出 Artifact。
  • project:。您可以在 Google Cloud 控制台 歡迎頁面中找到這些 ID。
  • location:請參閱可用位置清單
  • execution_id:執行記錄的 ID。如未指定執行 ID,Vertex ML Metadata 會為這項執行作業建立專屬 ID。
  • metadata:描述執行的屬性,例如執行參數。
  • schema_version:描述中繼資料欄位的結構定義版本。
  • description:(選用) 方便使用者閱讀的字串,說明要建立的執行作業用途。

查詢現有執行作業

使用 REST 或 Python 適用的 Vertex AI SDK,即可查詢現有執行作業。

REST

使用任何要求資料之前,請先替換以下項目:

  • LOCATION_ID:您的區域。
  • PROJECT_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

from google.cloud import aiplatform


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:。您可以在 Google Cloud 控制台 歡迎頁面中找到這些 ID。
  • location:請參閱可用位置清單

刪除現有的執行作業

使用 REST 或 Python 適用的 Vertex AI SDK 刪除執行作業。

REST

使用任何要求資料之前,請先替換以下項目:

  • LOCATION_ID:您的區域。
  • PROJECT_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

from google.cloud import aiplatform


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:。您可以在 Google Cloud 控制台 歡迎頁面中找到這些 ID。
  • location:請參閱可用位置清單

清除執行作業

如要根據篩選條件刪除多個執行作業,請按照下列操作說明進行。

REST

使用任何要求資料之前,請先替換以下項目:

  • LOCATION_ID:您的區域。
  • PROJECT_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:。
  • METADATA_STORE:建立執行的中繼資料商店 ID。 預設中繼資料儲存庫的名稱為 default
  • CONTEXT_ID:(選用) 內容記錄的 ID。如未指定內容 ID,Vertex ML Metadata 會為這個內容建立專屬 ID
  • DISPLAY_NAME:情境的顯示名稱。這個欄位最多可包含 128 個 Unicode 字元。
  • PARENT_CONTEXT:指定任何父項環境的資源名稱。一個內容最多只能有 10 個父項內容。
  • METADATA_SCHEMA_TITLE:描述中繼資料欄位的結構定義標題。結構定義的標題必須符合 `.` 格式。命名空間開頭必須是小寫字母,可包含小寫字元和數字,長度為 2 到 20 個字元。結構定義名稱開頭須為大寫英文字母,可包含英文字母和數字,長度介於 2 到 49 個字元。
  • METADATA_SCHEMA_VERSION:(選用) 描述中繼資料欄位的結構定義版本。schema_version 必須是三個以半形句點分隔的數字字串, 例如 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

from typing import Any, Dict, Optional

from google.cloud import aiplatform
from google.cloud.aiplatform.metadata.schema.system import context_schema


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:。您可以在 Google Cloud 控制台 歡迎頁面中找到這些 ID。
  • location:請參閱可用位置清單
  • context_id:(選用) 內容記錄的 ID。
  • metadata:描述背景資訊的屬性,例如背景資訊參數。
  • schema_version:描述中繼資料欄位的結構定義版本。
  • description:(選用) 說明要建立的環境用途,使用者可理解的字串。

查詢現有內容

使用 REST 或 Python 適用的 Vertex AI SDK 查詢現有內容。

REST

使用任何要求資料之前,請先替換以下項目:

  • LOCATION_ID:您的區域。
  • PROJECT_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

from google.cloud import aiplatform


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:。您可以在 Google Cloud 控制台 歡迎頁面中找到這些 ID。
  • location:請參閱可用位置清單

刪除現有脈絡

您可以使用 REST 或 Python 適用的 Vertex AI SDK 刪除內容。

REST

使用任何要求資料之前,請先替換以下項目:

  • LOCATION_ID:您的區域。
  • PROJECT_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

from google.cloud import aiplatform


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:。您可以在 Google Cloud 控制台 歡迎頁面中找到這些 ID。
  • location:請參閱可用位置清單

清除背景資訊

按照下列操作說明,根據篩選條件刪除多個內容。

REST

使用任何要求資料之前,請先替換以下項目:

  • LOCATION_ID:您的區域。
  • PROJECT_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"
  }
}

後續步驟