Gestisci i metadati Vertex ML

Questa guida illustra 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 tuoi metadati vengano criptati utilizzando una chiave di crittografia gestita dal cliente (CMEK), devi creare l'archivio di metadati utilizzando una CMEK prima di utilizzare Vertex ML Metadata per monitorare o analizzare i metadati. Utilizza le istruzioni per creare un archivio di metadati che utilizza una CMEK per configurare l'archivio di metadati del progetto.

Gestione degli artefatti

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, effettua le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio di metadati in cui viene creato l'artefatto. L'archivio di metadati predefinito è denominato default.
  • ARTIFACT_ID: (facoltativo) l'ID del record di artefatto. Se l'ID artefatto non è specificato, Vertex ML Metadata crea un identificatore univoco per questo artefatto.
  • DISPLAY_NAME: (facoltativo) il nome dell'elemento definito dall'utente.
  • URI: (facoltativo) la posizione in cui è archiviato l'elemento
  • ARTIFACT_STATE: (facoltativo) un valore dell'enumerazione dello stato che rappresenta lo stato attuale dell'artefatto. Questo campo è gestito dalle applicazioni client. Vertex ML Metadata non verifica la validità delle transizioni di stato.
  • METADATA_SCHEMA_TITLE: il titolo dello schema che descrive il campo dei metadati. Il titolo dello schema deve rispettare il formato ".". Lo spazio dei nomi deve iniziare con una lettera minuscola, può contenere caratteri minuscoli e numeri e può avere una lunghezza compresa tra 2 e venti caratteri. Il nome dello schema deve iniziare con una lettera maiuscola, può includere lettere e numeri e può contenere da due a quaranta caratteri.
  • (Facoltativo) METADATA_SCHEMA_VERSION: 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'artefatto, 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 l'organizzazione degli artefatti.

Metodo HTTP e URL:

POST http://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

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 di risorsa uniforme per il file dell'artefatto, se esistente. Può essere vuoto se non è presente alcun file dell'artefatto effettivo.
  • artifact_id: (facoltativo) l'ID del record di artefatto. Se l'ID artefatto non è specificato, Vertex ML Metadata crea un identificatore univoco per questo artefatto.
  • display_name: (facoltativo) il nome dell'elemento definito dall'utente.
  • schema_version: la versione dello schema che descrive il campo dei metadati.
  • description: (facoltativo) una stringa leggibile da una persona, che descrive lo scopo dell'artefatto da creare.
  • metadata: proprietà che descrivono l'artefatto, ad esempio i relativi parametri.

Cerca un artefatto esistente

Gli artefatti rappresentano i dati utilizzati o prodotti dal flusso di lavoro ML, come 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, effettua le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio di metadati in cui viene creato l'artefatto. L'archivio di metadati predefinito è denominato 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 precedente chiamata a MetadataService.ListArtifacts. Specifica questo token per visualizzare la pagina dei risultati successiva.
  • FILTER: specifica le condizioni necessarie per includere un artefatto nel set di risultati.

Metodo HTTP e URL:

GET http://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 di artefatto.

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

Python

Python

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

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

  • project: 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 di create_date mentre elenchi le risorse con il formato "create_time>\"2022-06-11T12:30:00-08:00\"",.

Elimina un artefatto esistente

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

REST

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

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

Metodo HTTP e URL:

DELETE http://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 recuperare 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

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

Elimina definitivamente artefatti

Utilizza le seguenti istruzioni per eliminare più artefatti in base a una condizione del filtro.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio di metadati in cui viene creato l'artefatto. L'archivio di metadati predefinito è denominato default.
  • FILTER: specifica le condizioni necessarie per l'eliminazione degli artefatti. Ad esempio:
    • Filtri per tutti gli artefatti che contengono example nel nome visualizzato: "display_name = \"*example*\"".
    • Filtri per tutti gli artefatti 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 definitiva. Se il flag è impostato su false, il metodo restituirà un campione di nomi degli artefatti che verrebbe eliminato.

Metodo HTTP e URL:

POST http://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 recuperare 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 nel flusso di lavoro ML. Usa REST o l'SDK Vertex AI per Python per creare un'esecuzione.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio di metadati in cui viene creata l'esecuzione. L'archivio di metadati predefinito è denominato 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 dello stato che rappresenta lo stato attuale 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 rispettare il formato ".". Lo spazio dei nomi deve iniziare con una lettera minuscola, può contenere caratteri minuscoli e numeri e può avere una lunghezza compresa tra 2 e venti caratteri. Il nome dello schema deve iniziare con una lettera maiuscola, può includere lettere e numeri e può contenere da due a quaranta caratteri.
  • (Facoltativo) METADATA_SCHEMA_VERSION: 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 relativi parametri.
  • DESCRIPTION: (facoltativo) una stringa leggibile che descrive lo scopo dell'esecuzione da creare.
  • LABELS: facoltativo. Metadati definiti dall'utente per l'organizzazione delle esecuzioni.

Metodo HTTP e URL:

POST http://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

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 artefatto di input.
  • output_artifacts: un elenco di una o più istanze di aiplatform.Artifact che rappresentano un artefatto 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 relativi parametri.
  • 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.

Cerca un'esecuzione esistente

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

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio di metadati in cui viene creata l'esecuzione. L'archivio di metadati predefinito è denominato 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 precedente chiamata a MetadataService.ListArtifacts. Specifica questo token per visualizzare la pagina dei risultati successiva.
  • FILTER: specifica le condizioni necessarie per includere un'esecuzione nel set di risultati.

Metodo HTTP e URL:

GET http://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

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

Elimina un'esecuzione esistente

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

REST

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

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

Metodo HTTP e URL:

DELETE http://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 recuperare 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

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 basate su un filtro, segui le istruzioni riportate di seguito.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio di metadati in cui viene creata l'esecuzione. L'archivio di metadati predefinito è denominato default.
  • FILTER: specifica le condizioni richieste dalle 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 definitiva. Se il flag è impostato su false, il metodo restituirà un campione di nomi degli artefatti che verrebbe eliminato.

Metodo HTTP e URL:

POST http://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 recuperare 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

Crea un contesto

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

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE:l'ID dell'archivio di metadati in cui viene creata l'esecuzione. L'archivio di metadati predefinito è denominato default.
  • (Facoltativo) CONTEXT_ID: l'ID del record di 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 tutti i contesti padre. 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 rispettare il formato ".". Lo spazio dei nomi deve iniziare con una lettera minuscola, può contenere caratteri minuscoli e numeri e può avere una lunghezza compresa tra 2 e venti caratteri. Il nome dello schema deve iniziare con una lettera maiuscola, può includere lettere e numeri e può contenere da due a quaranta caratteri.
  • (Facoltativo) METADATA_SCHEMA_VERSION: 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 da una persona che descrive lo scopo dell'esecuzione da creare.
  • LABELS: facoltativo. Metadati definiti dall'utente per organizzare i contesti.

Metodo HTTP e URL:

POST http://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 di 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

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.
  • (Facoltativo) context_id: l'ID del record di 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

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

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio di metadati in cui viene creato il contesto. L'archivio di metadati predefinito è denominato 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 precedente chiamata a MetadataService.ListArtifacts. Specifica questo token per visualizzare la pagina dei risultati successiva.
  • FILTER: specifica le condizioni necessarie per includere un contesto nel set di risultati.

Metodo HTTP e URL:

GET http://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 di 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

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, effettua le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio di metadati in cui viene creato il contesto. L'archivio di metadati predefinito è denominato default.
  • (Facoltativo) CONTEXT_ID: l'ID del record di contesto.

Metodo HTTP e URL:

DELETE http://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 recuperare 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

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

Elimina 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, effettua le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE:l'ID dell'archivio di metadati in cui viene creato il contesto. L'archivio di metadati predefinito è denominato default.
  • FILTER: specifica le condizioni richieste dai contesti da eliminare. Ad esempio:
    • Filtri per tutti i contesti che contengono esempio 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 definitiva. Se il flag è impostato su false, il metodo restituirà un campione di nomi di contesto che verrebbe eliminato.

Metodo HTTP e URL:

POST http://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 recuperare 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