Gestionar metadatos de Vertex ML

En esta guía se muestra cómo gestionar los metadatos de Vertex ML.

Antes de empezar

La primera vez que uses Vertex ML Metadata en unGoogle Cloud proyecto, Vertex AI creará el almacén de metadatos de tu proyecto.

Si quiere que sus metadatos se cifren con una clave de cifrado gestionada por el cliente (CMEK), debe crear su almacén de metadatos con una CMEK antes de usar Vertex ML Metadata para monitorizar o analizar metadatos. Sigue las instrucciones para crear un almacén de metadatos que use una CMEK y configura el almacén de metadatos de tu proyecto.

Gestión de artefactos

Crear un artefacto

Usa REST o el SDK de Vertex AI para Python para crear un artefacto.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: tu región.
  • PROJECT_ID: tu ID de proyecto.
  • METADATA_STORE: ID del almacén de metadatos en el que se crea el artefacto. El almacén de metadatos predeterminado se llama default.
  • ARTIFACT_ID: (Opcional) El ID del registro del artefacto. Si no se especifica el ID del artefacto, Vertex ML Metadata crea un identificador único para este artefacto.
  • DISPLAY_NAME: (opcional) nombre del artefacto definido por el usuario.
  • URI: (opcional) ubicación en la que se almacena el artefacto.
  • ARTIFACT_STATE: (Opcional) Un valor de la enumeración State que representa el estado actual del artefacto. Este campo lo gestionan las aplicaciones cliente. Vertex ML Metadata no comprueba la validez de las transiciones de estado.
  • METADATA_SCHEMA_TITLE: el título del esquema que describe el campo de metadatos. El título del esquema debe tener el formato `.`. El espacio de nombres debe empezar por una letra minúscula, puede contener caracteres en minúscula y números, y puede tener entre dos y veinte caracteres. El nombre del esquema debe empezar por una letra mayúscula, puede incluir letras y números, y puede tener entre dos y cuarenta y nueve caracteres.
  • METADATA_SCHEMA_VERSION: (opcional) Versión del esquema que describe el campo de metadatos. schema_version debe ser una cadena de tres números separados por puntos. Por ejemplo, 1.0.0 o 1.0.1. Este formato ayuda a ordenar y comparar versiones.
  • METADATA: (opcional). Propiedades que describen el artefacto, como el tipo de conjunto de datos.
  • DESCRIPTION: (Opcional) Cadena legible por humanos que describe el propósito de la ejecución que se va a crear.
  • LABELS:opcional. Metadatos definidos por el usuario para organizar los artefactos.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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: . Puedes encontrar estos IDs en la página de bienvenida de la Google Cloud consola.
  • location: consulta la lista de ubicaciones disponibles.
  • uri: (opcional) Identificador uniforme de recursos del archivo de artefacto, si existe. Puede estar vacío si no hay ningún archivo de artefacto.
  • artifact_id: (Opcional) El ID del registro del artefacto. Si no se especifica el ID del artefacto, Vertex ML Metadata crea un identificador único para este artefacto.
  • display_name: (opcional) nombre del artefacto definido por el usuario.
  • schema_version: versión del esquema que describe el campo de metadatos.
  • description: (Opcional) Cadena legible por humanos que describe el propósito del artefacto que se va a crear.
  • metadata: propiedades que describen el artefacto, como los parámetros del artefacto.

Buscar un artefacto

Los artefactos representan los datos que usa o genera tu flujo de trabajo de aprendizaje automático, como los conjuntos de datos y los modelos. Para buscar un artefacto, usa REST o el SDK de Vertex AI para Python.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: tu región.
  • PROJECT_ID: .
  • METADATA_STORE: ID del almacén de metadatos en el que se crea el artefacto. El almacén de metadatos predeterminado se llama default.
  • PAGE_SIZE: (opcional) Número máximo de artefactos que se devolverán. Si no se especifica este valor, el servicio devuelve un máximo de 100 registros.
  • PAGE_TOKEN: (Opcional) Un token de página de una llamada anterior a MetadataService.ListArtifacts. Especifica este token para obtener la siguiente página de resultados.
  • FILTER: especifica las condiciones necesarias para incluir un artefacto en el conjunto de resultados.

Método HTTP y 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

Para enviar tu solicitud, despliega una de estas opciones:

Debería ver un resultado similar al siguiente. ARTIFACT_ID es el ID del registro del artefacto.

{
  "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: . Puedes encontrar estos IDs en la página de bienvenida de la Google Cloud consola.
  • location: consulta la lista de ubicaciones disponibles.
  • display_name_filter: filtro que se aplicará al nombre visible al enumerar los recursos con el formato "display_name=\"mi_filtro\"" .
  • create_date_filter: filtro que se aplicará al nombre de create_date al enumerar los recursos con el formato "create_time>\"2022-06-11T12:30:00-08:00\"",.

Eliminar un artefacto

Usa REST o el SDK de Vertex AI para Python para eliminar un artefacto.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: tu región.
  • PROJECT_ID: .
  • METADATA_STORE: ID del almacén de metadatos en el que se crea el artefacto. El almacén de metadatos predeterminado se llama default.
  • ARTIFACT_ID: el ID del registro de artefacto que se va a eliminar.

Método HTTP y URL:

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

Para enviar tu solicitud, despliega una de estas opciones:

Debería ver un resultado similar al siguiente. Puedes usar el OPERATION_ID de la respuesta para obtener el estado de la operación.

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

Purgar artefactos

Siga estas instrucciones para eliminar varios artefactos en función de una condición de filtro.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: tu región.
  • PROJECT_ID: .
  • METADATA_STORE: ID del almacén de metadatos en el que se crea el artefacto. El almacén de metadatos predeterminado se llama default.
  • FILTER: especifica las condiciones que deben cumplir los artefactos para eliminarse. Por ejemplo:
    • Filtra todos los artefactos que contengan example en el nombre visible: "display_name = \"*example*\"".
    • Filtros de todos los artefactos creados antes del 19-11-2020 a las 11:30:00 -04:00: "create_time < \"2020-11-19T11:30:00-04:00\"".
  • FORCE: indica si se debe realizar la purga o no. Si la marca tiene el valor false, el método devolverá una muestra de los nombres de los artefactos que se eliminarían.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, despliega una de estas opciones:

Debería ver un resultado similar al siguiente. Puedes usar el OPERATION_ID de la respuesta para obtener el estado de la operación.

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

Gestión de la ejecución

Crear ejecución

Las ejecuciones representan un paso en tu flujo de trabajo de aprendizaje automático. Usa REST o el SDK de Vertex AI para Python para crear una ejecución.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: tu región.
  • PROJECT_ID: .
  • METADATA_STORE: ID del almacén de metadatos en el que se crea la ejecución. El almacén de metadatos predeterminado se llama default.
  • EXECUTION_ID: ID del registro de ejecución. Si no se especifica el ID de ejecución, Vertex ML Metadata crea un identificador único para esta ejecución.
  • DISPLAY_NAME: el nombre visible de la ejecución. Este campo puede contener hasta 128 caracteres Unicode.
  • EXECUTION_STATE: (Opcional) Un valor de la enumeración State que representa el estado actual de la ejecución. Este campo lo gestionan las aplicaciones cliente. Vertex ML Metadata no comprueba la validez de las transiciones de estado.
  • METADATA_SCHEMA_TITLE: el título del esquema que describe el campo de metadatos. El título del esquema debe tener el formato `.`. El espacio de nombres debe empezar por una letra minúscula, puede contener caracteres en minúscula y números, y puede tener entre dos y veinte caracteres. El nombre del esquema debe empezar por una letra mayúscula, puede incluir letras y números, y puede tener entre dos y cuarenta y nueve caracteres.
  • METADATA_SCHEMA_VERSION: (opcional) Versión del esquema que describe el campo de metadatos. schema_version debe ser una cadena de tres números separados por puntos. Por ejemplo, 1.0.0 o 1.0.1. Este formato ayuda a ordenar y comparar versiones.
  • METADATA: (Opcional) Propiedades que describen la ejecución, como los parámetros de ejecución.
  • DESCRIPTION: (Opcional) Cadena legible por humanos que describe el propósito de la ejecución que se va a crear.
  • LABELS: opcional. Metadatos definidos por el usuario para organizar las ejecuciones.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

}

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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: el nombre visible de la ejecución. Este campo puede contener hasta 128 caracteres Unicode.
  • input_artifacts: lista de una o varias instancias de aiplatform.Artifact que representan un artefacto de entrada.
  • output_artifacts: lista de una o varias instancias de aiplatform.Artifact que representan un artefacto de salida.
  • project: . Puedes encontrar estos IDs en la página de bienvenida de la Google Cloud consola.
  • location: consulta la lista de ubicaciones disponibles.
  • execution_id: ID del registro de ejecución. Si no se especifica el ID de ejecución, Vertex ML Metadata crea un identificador único para esta ejecución.
  • metadata: propiedades que describen la ejecución, como los parámetros de ejecución.
  • schema_version:versión del esquema que describe el campo de metadatos.
  • description: (Opcional) Cadena legible por humanos que describe el propósito de la ejecución que se va a crear.

Buscar una ejecución

Usa REST o el SDK de Vertex AI para Python para buscar una ejecución.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: tu región.
  • PROJECT_ID: .
  • METADATA_STORE: ID del almacén de metadatos en el que se crea la ejecución. El almacén de metadatos predeterminado se llama default.
  • PAGE_SIZE: (opcional) Número máximo de artefactos que se devolverán. Si no se especifica este valor, el servicio devuelve un máximo de 100 registros.
  • PAGE_TOKEN: (Opcional) Un token de página de una llamada anterior a MetadataService.ListArtifacts. Especifica este token para obtener la siguiente página de resultados.
  • FILTER: especifica las condiciones necesarias para incluir una ejecución en el conjunto de resultados.

Método HTTP y 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

Para enviar tu solicitud, despliega una de estas opciones:

Debería ver un resultado similar al siguiente. EXECUTION_ID es el ID del registro de ejecución.

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

Eliminar una ejecución

Usa REST o el SDK de Vertex AI para Python para eliminar una ejecución.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: tu región.
  • PROJECT_ID: .
  • METADATA_STORE: ID del almacén de metadatos en el que se crea la ejecución. El almacén de metadatos predeterminado se llama default.
  • EXECUTION_ID: ID del registro de ejecución que se va a eliminar.

Método HTTP y URL:

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

Para enviar tu solicitud, despliega una de estas opciones:

Debería ver un resultado similar al siguiente. Puedes usar el OPERATION_ID de la respuesta para obtener el estado de la operación.

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

Purgar ejecuciones

Para eliminar varias ejecuciones en función de un filtro, siga estas instrucciones.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: tu región.
  • PROJECT_ID: .
  • METADATA_STORE: ID del almacén de metadatos en el que se crea la ejecución. El almacén de metadatos predeterminado se llama default.
  • FILTER: especifica las condiciones que deben cumplir las ejecuciones para eliminarse. Por ejemplo:
    • Filtra todas las ejecuciones que contengan example en el nombre visible: "display_name = \"*example*\"".
    • Filtros de todas las ejecuciones creadas antes del 19-11-2020 a las 11:30:00 (GMT-4): "create_time < \"2020-11-19T11:30:00-04:00\"".
  • FORCE: indica si se debe realizar la purga o no. Si la marca tiene el valor false, el método devolverá una muestra de los nombres de los artefactos que se eliminarían.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, despliega una de estas opciones:

Debería ver un resultado similar al siguiente. Puedes usar el OPERATION_ID de la respuesta para obtener el estado de la operación.

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

Gestión del contexto

Crear un contexto

Los contextos le permiten agrupar conjuntos de artefactos y ejecuciones. Usa REST o el SDK de Vertex AI para Python para crear un contexto.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: tu región.
  • PROJECT_ID: .
  • METADATA_STORE:ID del almacén de metadatos en el que se crea la ejecución. El almacén de metadatos predeterminado se llama default.
  • CONTEXT_ID: (Opcional) El ID del registro de contexto. Si no se especifica el ID de contexto, Vertex ML Metadata ha creado un identificador único para este contexto.
  • DISPLAY_NAME: el nombre visible del contexto. Este campo puede contener hasta 128 caracteres Unicode.
  • PARENT_CONTEXT: especifica el nombre del recurso de los contextos superiores. Un contexto no puede tener más de 10 contextos superiores.
  • METADATA_SCHEMA_TITLE: el título del esquema que describe el campo de metadatos. El título del esquema debe tener el formato `.`. El espacio de nombres debe empezar por una letra minúscula, puede contener caracteres en minúscula y números, y puede tener entre dos y veinte caracteres. El nombre del esquema debe empezar por una letra mayúscula, puede incluir letras y números, y puede tener entre dos y cuarenta y nueve caracteres.
  • METADATA_SCHEMA_VERSION: (opcional) Versión del esquema que describe el campo de metadatos. schema_version debe ser una cadena de tres números separados por puntos. Por ejemplo, 1.0.0 o 1.0.1. Este formato ayuda a ordenar y comparar versiones.
  • METADATA: propiedades que describen el contexto, como los parámetros de contexto.
  • DESCRIPTION:(Opcional) Cadena legible por humanos que describe el propósito de la ejecución que se va a crear.
  • LABELS: opcional. Metadatos definidos por el usuario para organizar los contextos.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

}

Para enviar tu solicitud, despliega una de estas opciones:

Debería ver un resultado similar al siguiente. CONTEXT_ID es el ID del registro de contexto.

{
  "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: el nombre visible del contexto. Este campo puede contener hasta 128 caracteres Unicode.
  • project: . Puedes encontrar estos IDs en la página de bienvenida de la Google Cloud consola.
  • location: consulta la lista de ubicaciones disponibles.
  • context_id: (Opcional) El ID del registro de contexto.
  • metadata: propiedades que describen el contexto, como los parámetros de contexto.
  • schema_version: versión del esquema que describe el campo de metadatos.
  • description: (Opcional) Cadena legible por humanos que describe el propósito del contexto que se va a crear.

Buscar un contexto

Usa REST o el SDK de Vertex AI para Python para buscar un contexto.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: tu región.
  • PROJECT_ID: .
  • METADATA_STORE: ID del almacén de metadatos en el que se crea el contexto. El almacén de metadatos predeterminado se llama default.
  • PAGE_SIZE: (opcional) Número máximo de artefactos que se devolverán. Si no se especifica este valor, el servicio devuelve un máximo de 100 registros.
  • PAGE_TOKEN: (Opcional) Un token de página de una llamada anterior a MetadataService.ListArtifacts. Especifica este token para obtener la siguiente página de resultados.
  • FILTER: especifica las condiciones necesarias para incluir un contexto en el conjunto de resultados.

Método HTTP y 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

Para enviar tu solicitud, despliega una de estas opciones:

Debería ver un resultado similar al siguiente. CONTEXT_ID es el ID del registro de contexto.

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

Eliminar un contexto

Usa REST o el SDK de Vertex AI para Python para eliminar un contexto.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: tu región.
  • PROJECT_ID: .
  • METADATA_STORE: ID del almacén de metadatos en el que se crea el contexto. El almacén de metadatos predeterminado se llama default.
  • CONTEXT_ID: (Opcional) El ID del registro de contexto.

Método HTTP y URL:

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

Para enviar tu solicitud, despliega una de estas opciones:

Debería ver un resultado similar al siguiente. Puedes usar el OPERATION_ID de la respuesta para obtener el estado de la operación.

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

Eliminar contextos

Sigue estas instrucciones para eliminar varios contextos en función de una condición de filtro.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: tu región.
  • PROJECT_ID: .
  • METADATA_STORE:ID del almacén de metadatos en el que se crea el contexto. El almacén de metadatos predeterminado se llama default.
  • FILTER: especifica las condiciones que deben cumplir los contextos que se van a eliminar. Por ejemplo:
    • Filtra todos los contextos que contengan example en el nombre visible: "display_name = \"*example*\"".
    • Filtros de todos los contextos creados antes del 19/11/2020 a las 11:30:00 (GMT-4): "create_time < \"2020-11-19T11:30:00-04:00\"".
  • FORCE: indica si se debe realizar la purga o no. Si la marca se define como false, el método devolverá una muestra de los nombres de contexto que se eliminarían.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, despliega una de estas opciones:

Debería ver un resultado similar al siguiente. Puedes usar el OPERATION_ID de la respuesta para obtener el estado de la operación.

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

Siguientes pasos