管理 Vertex ML Metadata

本指南說明如何管理 Vertex ML Metadata。

事前準備

首次在Google Cloud 專案中使用 Vertex ML Metadata 時,Gemini Enterprise Agent Platform 會建立專案的中繼資料儲存庫。

如要使用客戶自行管理的加密金鑰 (CMEK) 加密中繼資料,您必須先使用 CMEK 建立中繼資料存放區,才能使用 Vertex ML Metadata 追蹤或分析中繼資料。按照「建立使用 CMEK 的中繼資料儲存庫」的操作說明,設定專案的中繼資料儲存庫。

構件管理

可建立構件

使用 REST 或 Vertex AI SDK for Python 建立構件。

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 ML Metadata 不會檢查狀態轉換的有效性。
  • 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 或 Agent Platform SDK for Python。

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 ML Metadata 不會檢查狀態轉換的有效性。
  • 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 或 Vertex AI SDK for Python,查詢現有執行作業。

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 或 Vertex AI SDK for Python 查詢現有內容。

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"
  }
}

後續步驟