管理 Vertex 機器學習中繼資料

本指南說明如何管理 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_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"
  }
}

後續步驟