Gestire Vertex ML Metadata

Questa guida mostra come gestire Vertex ML Metadata.

Prima di iniziare

La prima volta che utilizzi Vertex ML Metadata in un progetto Google Cloud, Vertex AI crea l'archivio di metadati del progetto.

Se vuoi che i metadati vengano criptati utilizzando una chiave di crittografia gestita dal cliente (CMEK), devi creare il tuo repository dei metadati utilizzando una chiave CMEK prima di utilizzare Vertex ML Metadata per monitorare o analizzare i metadati. Segui le istruzioni per creare un archivio dei metadati che utilizza un CMEK per configurare l'archivio dei metadati del progetto.

Gestione degli elementi

Creazione di un artefatto

Utilizza REST o l'SDK Vertex AI per Python per creare un artefatto.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio metadati in cui viene creato l'artefatto. L'archivio dei metadati predefinito si chiama default.
  • ARTIFACT_ID: (facoltativo) l'ID del record dell'elemento. Se l'ID artefatto non è specificato, Vertex ML Metadata crea un identificatore univoco per questo artefatto.
  • DISPLAY_NAME: (facoltativo) il nome definito dall'utente dell'elemento.
  • (Facoltativo) URI: la posizione in cui è archiviato l'elemento
  • ARTIFACT_STATE: (facoltativo) un valore dell'enumerazione Stato che rappresenta lo stato corrente dell'elemento. Questo campo è gestito dalle applicazioni client. Vertex ML Metadata non controlla la validità delle transizioni di stato.
  • METADATA_SCHEMA_TITLE: il titolo dello schema che descrive il campo dei metadati. Il titolo dello schema deve soddisfare il formato ".". Lo spazio dei nomi deve iniziare con una lettera minuscola, può contenere caratteri minuscoli e numeri e può essere lungo da due a venti caratteri. Il nome dello schema deve iniziare con una lettera maiuscola, può includere lettere e numeri e può avere una lunghezza compresa tra due e quaranta caratteri.
  • METADATA_SCHEMA_VERSION: (facoltativo) la versione dello schema che descrive il campo dei metadati. schema_version deve essere una stringa di tre numeri separati da punti, ad esempio 1.0.0, 1.0.1. Questo formato consente di ordinare e confrontare le versioni.
  • METADATA: (facoltativo) Proprietà che descrivono l'elemento, ad esempio il tipo di set di dati.
  • DESCRIPTION: (Facoltativo) una stringa leggibile che descrive lo scopo dell'esecuzione da creare.
  • LABELS:facoltativo. Metadati definiti dall'utente per organizzare gli elementi.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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: il tuo ID progetto. Puoi trovare questi ID nella pagina di benvenuto della console Google Cloud.
  • location: consulta l'elenco delle località disponibili.
  • uri: (Facoltativo) L'identificatore uniforme di risorse per il file dell'elemento, se esistente. Può essere vuoto se non esiste un file dell'elemento effettivo.
  • artifact_id: (facoltativo) l'ID del record dell'elemento. Se l'ID artefatto non è specificato, Vertex ML Metadata crea un identificatore univoco per questo artefatto.
  • display_name: (facoltativo) il nome definito dall'utente dell'elemento.
  • schema_version: la versione dello schema che descrive il campo dei metadati.
  • description: (Facoltativo) una stringa leggibile che descrive lo scopo dell'elemento da creare.
  • metadata: proprietà che descrivono l'elemento, ad esempio i relativi parametri.

Cercare un elemento esistente

Gli artefatti rappresentano i dati utilizzati o prodotti dal flusso di lavoro di ML, ad esempio set di dati e modelli. Per cercare un artefatto esistente, utilizza REST o l'SDK Vertex AI per Python.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio metadati in cui viene creato l'artefatto. L'archivio dei metadati predefinito si chiama default.
  • PAGE_SIZE: (facoltativo) Il numero massimo di elementi da restituire. Se questo valore non viene specificato, il servizio restituisce un massimo di 100 record.
  • PAGE_TOKEN: (Facoltativo) un token di pagina di una chiamata MetadataService.ListArtifacts precedente. Specifica questo token per ottenere la pagina successiva dei risultati.
  • FILTER: specifica le condizioni necessarie per includere un elemento nell'insieme di risultati.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. ARTIFACT_ID è l'ID del record dell'elemento.

{
  "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: il tuo ID progetto. Puoi trovare questi ID nella pagina di benvenuto della console Google Cloud.
  • location: consulta l'elenco delle località disponibili.
  • display_name_filter: filtro da applicare al nome visualizzato durante l'elenco delle risorse con il formato "display_name=\"my_filter\"" .
  • create_date_filter: filtro da applicare al nome create_date durante l'elenco delle risorse con il formato "create_time>\"2022-06-11T12:30:00-08:00\"".

Eliminare un artefatto esistente

Utilizza REST o l'SDK Vertex AI per Python per eliminare un elemento.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio metadati in cui viene creato l'artefatto. L'archivio dei metadati predefinito si chiama default.
  • ARTIFACT_ID: l'ID del record dell'artefatto da eliminare.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. Puoi utilizzare OPERATION_ID nella risposta per ottenere lo stato dell'operazione.

{
  "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()

Eliminare definitivamente gli elementi

Segui le istruzioni riportate di seguito per eliminare più elementi in base a una condizione di filtro.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio metadati in cui viene creato l'artefatto. L'archivio dei metadati predefinito si chiama default.
  • FILTER: specifica le condizioni richieste dagli elementi da eliminare. Ad esempio:
    • Filtra tutti gli elementi che contengono example nel nome visualizzato: "display_name = \"*example*\"".
    • Filtri per tutti gli elementi creati prima del 19-11-2020T11:30:00-04:00: "create_time < \"2020-11-19T11:30:00-04:00\"".
  • FORCE: indica se eseguire o meno l'eliminazione effettiva. Se il flag è impostato su false, il metodo restituirà un esempio di nomi di elementi che verranno eliminati.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. Puoi utilizzare OPERATION_ID nella risposta per ottenere lo stato dell'operazione.

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

Gestione dell'esecuzione

Creazione di un'esecuzione

Le esecuzioni rappresentano un passaggio del flusso di lavoro ML. Utilizza REST o l'SDK Vertex AI per Python per creare un'esecuzione.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID del repository dei metadati in cui viene creata l'esecuzione. L'archivio dei metadati predefinito si chiama default.
  • EXECUTION_ID: l'ID del record di esecuzione. Se l'ID esecuzione non è specificato, Vertex ML Metadata crea un identificatore univoco per questa esecuzione.
  • DISPLAY_NAME: il nome visualizzato dell'esecuzione. Questo campo può contenere fino a 128 caratteri Unicode.
  • EXECUTION_STATE: (facoltativo) un valore dell'enumerazione Stato che rappresenta lo stato corrente dell'esecuzione. Questo campo è gestito dalle applicazioni client. Vertex ML Metadata non controlla la validità delle transizioni di stato.
  • METADATA_SCHEMA_TITLE: il titolo dello schema che descrive il campo dei metadati. Il titolo dello schema deve soddisfare il formato ".". Lo spazio dei nomi deve iniziare con una lettera minuscola, può contenere caratteri minuscoli e numeri e può essere lungo da due a venti caratteri. Il nome dello schema deve iniziare con una lettera maiuscola, può includere lettere e numeri e può avere una lunghezza compresa tra 2 e 40 caratteri.
  • METADATA_SCHEMA_VERSION: (facoltativo) la versione dello schema che descrive il campo dei metadati. schema_version deve essere una stringa di tre numeri separati da punti, ad esempio 1.0.0, 1.0.1. Questo formato consente di ordinare e confrontare le versioni.
  • METADATA: (Facoltativo) Proprietà che descrivono l'esecuzione, ad esempio i parametri di esecuzione.
  • DESCRIPTION: (Facoltativo) una stringa leggibile che descrive lo scopo dell'esecuzione da creare.
  • LABELS: facoltativo. Metadati definiti dall'utente per organizzare le esecuzioni.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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: il nome visualizzato dell'esecuzione. Questo campo può contenere fino a 128 caratteri Unicode.
  • input_artifacts: un elenco di una o più istanze di aiplatform.Artifact che rappresentano un elemento di input.
  • output_artifacts: un elenco di una o più istanze di aiplatform.Artifact che rappresentano un elemento di output.
  • project: il tuo ID progetto. Puoi trovare questi ID nella pagina di benvenuto della console Google Cloud.
  • location: consulta l'elenco delle località disponibili.
  • execution_id: l'ID del record di esecuzione. Se l'ID esecuzione non è specificato, Vertex ML Metadata crea un identificatore univoco per questa esecuzione.
  • metadata: proprietà che descrivono l'esecuzione, ad esempio i parametri di esecuzione.
  • schema_version:la versione dello schema che descrive il campo dei metadati.
  • description: (Facoltativo) una stringa leggibile che descrive lo scopo dell'esecuzione da creare.

Cercare un'esecuzione esistente

Utilizza REST o l'SDK Vertex AI per Python per cercare un'esecuzione esistente.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID del repository dei metadati in cui viene creata l'esecuzione. L'archivio dei metadati predefinito si chiama default.
  • PAGE_SIZE: (facoltativo) Il numero massimo di elementi da restituire. Se questo valore non viene specificato, il servizio restituisce un massimo di 100 record.
  • PAGE_TOKEN: (Facoltativo) un token di pagina di una chiamata MetadataService.ListArtifacts precedente. Specifica questo token per ottenere la pagina successiva dei risultati.
  • FILTER: specifica le condizioni necessarie per includere un'esecuzione nell'insieme di risultati.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. EXECUTION_ID è l'ID del record di esecuzione.

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

Eliminare un'esecuzione esistente

Utilizza REST o l'SDK Vertex AI per Python per eliminare un'esecuzione.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID del repository dei metadati in cui viene creata l'esecuzione. L'archivio dei metadati predefinito si chiama default.
  • EXECUTION_ID: l'ID del record di esecuzione da eliminare.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. Puoi utilizzare OPERATION_ID nella risposta per ottenere lo stato dell'operazione.

{
  "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()

Elimina definitivamente le esecuzioni

Per eliminare più esecuzioni in base a un filtro, segui le istruzioni riportate di seguito.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID del repository dei metadati in cui viene creata l'esecuzione. L'archivio dei metadati predefinito si chiama default.
  • FILTER: specifica le condizioni richieste per le esecuzioni da eliminare. Ad esempio:
    • Filtri per tutte le esecuzioni che contengono example nel nome visualizzato: "display_name = \"*example*\"".
    • Filtri per tutte le esecuzioni create prima del 19-11-2020T11:30:00-04:00: "create_time < \"2020-11-19T11:30:00-04:00\"".
  • FORCE: indica se eseguire o meno l'eliminazione effettiva. Se il flag è impostato su false, il metodo restituirà un esempio di nomi di elementi che verranno eliminati.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. Puoi utilizzare OPERATION_ID nella risposta per ottenere lo stato dell'operazione.

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

Gestione del contesto

Creare un contesto

I contesti ti consentono di raggruppare insiemi di elementi e di esecuzioni. Utilizza REST o l'SDK Vertex AI per Python per creare un contesto.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE:l'ID del repository dei metadati in cui viene creata l'esecuzione. L'archivio dei metadati predefinito si chiama default.
  • CONTEXT_ID: (Facoltativo) L'ID del record del contesto. Se l'ID contesto non è specificato, Vertex ML Metadata ha creato un identificatore univoco per questo contesto
  • DISPLAY_NAME: il nome visualizzato del contesto. Questo campo può contenere fino a 128 caratteri Unicode.
  • PARENT_CONTEXT: specifica il nome della risorsa per eventuali contesti principali. Un contesto non può avere più di 10 contesti principali.
  • METADATA_SCHEMA_TITLE: il titolo dello schema che descrive il campo dei metadati. Il titolo dello schema deve soddisfare il formato ".". Lo spazio dei nomi deve iniziare con una lettera minuscola, può contenere caratteri minuscoli e numeri e può essere lungo da due a venti caratteri. Il nome dello schema deve iniziare con una lettera maiuscola, può includere lettere e numeri e può avere una lunghezza compresa tra due e quaranta caratteri.
  • METADATA_SCHEMA_VERSION: (facoltativo) la versione dello schema che descrive il campo dei metadati. schema_version deve essere una stringa di tre numeri separati da punti, ad esempio 1.0.0, 1.0.1. Questo formato consente di ordinare e confrontare le versioni.
  • METADATA: proprietà che descrivono il contesto, ad esempio i parametri di contesto.
  • DESCRIPTION:(Facoltativo) una stringa leggibile che descrive lo scopo dell'esecuzione da creare.
  • LABELS: facoltativo. Metadati definiti dall'utente per organizzare i contesti.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. CONTEXT_ID è l'ID del record del contesto.

{
  "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: il nome visualizzato del contesto. Questo campo può contenere fino a 128 caratteri Unicode.
  • project: il tuo ID progetto. Puoi trovare questi ID nella pagina di benvenuto della console Google Cloud.
  • location: consulta l'elenco delle località disponibili.
  • context_id: (Facoltativo) L'ID del record del contesto.
  • metadata: proprietà che descrivono il contesto, ad esempio i parametri di contesto.
  • schema_version: la versione dello schema che descrive il campo dei metadati.
  • description: (facoltativo) una stringa leggibile che descrive lo scopo del contesto da creare.

Cercare un contesto esistente

Utilizza REST o l'SDK Vertex AI per Python per cercare un contesto esistente.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID del repository dei metadati in cui viene creato il contesto. L'archivio dei metadati predefinito si chiama default.
  • PAGE_SIZE: (facoltativo) Il numero massimo di elementi da restituire. Se questo valore non viene specificato, il servizio restituisce un massimo di 100 record.
  • PAGE_TOKEN: (Facoltativo) un token di pagina di una chiamata MetadataService.ListArtifacts precedente. Specifica questo token per ottenere la pagina successiva dei risultati.
  • FILTER: specifica le condizioni necessarie per includere un contesto nel set di risultati.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. CONTEXT_ID è l'ID del record del contesto.

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

Eliminare un contesto esistente

Utilizza REST o l'SDK Vertex AI per Python per eliminare un contesto.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID del repository dei metadati in cui viene creato il contesto. L'archivio dei metadati predefinito si chiama default.
  • CONTEXT_ID: (Facoltativo) L'ID del record del contesto.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. Puoi utilizzare OPERATION_ID nella risposta per ottenere lo stato dell'operazione.

{
  "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()

Eliminare definitivamente i contesti

Segui le istruzioni riportate di seguito per eliminare più contesti in base a una condizione di filtro.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE:l'ID del repository dei metadati in cui viene creato il contesto. L'archivio dei metadati predefinito si chiama default.
  • FILTER: specifica le condizioni richieste dai contesti da eliminare. Ad esempio:
    • Filtri per tutti i contesti che contengono example nel nome visualizzato: "display_name = \"*example*\"".
    • Filtri per tutti i contesti creati prima del 19-11-2020T11:30:00-04:00: "create_time < \"2020-11-19T11:30:00-04:00\"".
  • FORCE: indica se eseguire o meno l'eliminazione effettiva. Se il flag è impostato su false, il metodo restituirà un esempio di nomi di contesto che verranno eliminati.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. Puoi utilizzare OPERATION_ID nella risposta per ottenere lo stato dell'operazione.

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

Passaggi successivi