Administra Vertex ML Metadata

En esta guía, se muestra cómo administrar Vertex ML Metadata.

Antes de comenzar

La primera vez que usas metadatos del AA de Vertex en un proyecto de Google Cloud, Vertex AI crea el almacén de metadatos de tu proyecto.

Si deseas que se encripten tus metadatos mediante una clave de encriptación administrada por el cliente (CMEK), debes crear tu almacén de metadatos mediante una CMEK antes de usar Vertex ML Metadata para hacer un seguimiento de los metadatos o analizarlos. Usa la creación de un almacén de metadatos que use una CMEK para configurar el almacén de metadatos de tu proyecto.

Administración de artefactos

Crear artefactos

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

REST

Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:

  • LOCATION_ID: Tu región.
  • PROJECT_ID: El ID del proyecto.
  • METADATA_STORE: Es el 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) Es el nombre definido por el usuario del artefacto.
  • URI: (Opcional) Es la ubicación en la que se almacena el artefacto
  • ARTIFACT_STATE: (Opcional) Es un valor de la enumeración de estado que representa el estado actual del artefacto. Las aplicaciones cliente administran este campo. Vertex ML Metadata no verifica la validez de las transiciones de estado.
  • METADATA_SCHEMA_TITLE: Es el título del esquema que describe el campo de metadatos. El título del esquema debe cumplir con el formato “.”. El espacio de nombres debe comenzar con una letra minúscula, puede contener caracteres minúsculas y números, y puede tener entre dos y veinte caracteres. El nombre del esquema debe comenzar con una letra mayúscula, puede incluir letras y números, y tener entre 2 y 49 caracteres.
  • METADATA_SCHEMA_VERSION: (Opcional) Es la versión del esquema que describe el campo de metadatos. schema_version debe ser una string de 3 números separados por puntos, por ejemplo, 1.0.0, 1.0.1. Este formato ayuda a ordenar y comparar versiones.
  • METADATA: Son las propiedades que describen el artefacto, como el tipo de conjunto de datos.
  • DESCRIPTION: (Opcional) Una string legible que describe el propósito de la ejecución que se creará.
  • LABELS: Opcional. Metadatos definidos por el usuario para organizar los artefactos.

Método HTTP y URL:

POST http://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, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.
  • location: Consulta Lista de ubicaciones disponibles.
  • uri: (Opcional) El identificador de recursos uniforme para el archivo de artefactos, si existe uno. Puede estar vacío si no hay un archivo de artefactos real.
  • 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) Es el nombre definido por el usuario del artefacto.
  • schema_version: Es la versión del esquema que describe el campo de metadatos.
  • description: (Opcional) Una string legible que describe el propósito del artefacto que se creará.
  • metadata: Propiedades que describen el artefacto, como los parámetros del artefacto.

Buscar un artefacto existente

Los artefactos representan los datos que tu flujo de trabajo de AA usa o produce, como conjuntos de datos y modelos. Si deseas buscar un artefacto existente, usa REST o el SDK de Vertex AI para Python.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:

  • LOCATION_ID: Tu región.
  • PROJECT_ID: El ID del proyecto.
  • METADATA_STORE: Es el 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) Es el número máximo de artefactos que se mostrarán. Si no se especifica este valor, el servicio muestra un máximo de 100 registros.
  • PAGE_TOKEN: (Opcional) Es 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 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

Para enviar tu solicitud, expande una de estas opciones:

Deberías ver un resultado similar al siguiente. ARTIFACT_ID: 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

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: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.
  • location: Consulta Lista de ubicaciones disponibles.
  • display_name_filter: Filtro que se aplicará al nombre visible mientras se enumeran los recursos con el formato "display_name=\"my_filter\"" .
  • create_date_filter: Filtro que se aplicará al nombre de create_date mientras se enumeran los recursos con el formato "create_time>\"2022-06-11T12:30:00-08:00\"",.

Borrar un artefacto existente

Usa REST o el SDK de Vertex AI para Python a fin de borrar un artefacto.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:

  • LOCATION_ID: Tu región.
  • PROJECT_ID: El ID del proyecto.
  • METADATA_STORE: Es el ID del almacén de metadatos en el que se crea el artefacto. El almacén de metadatos predeterminado se llama default.
  • ARTIFACT_ID: Es el ID del registro de artefactos que se borrará.

Método HTTP y URL:

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

Para enviar tu solicitud, expande una de estas opciones:

Deberías ver un resultado similar al siguiente. Puedes usar el OPERATION_ID en 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

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

Borrar definitivamente los artefactos

Usa las siguientes instrucciones para borrar varios artefactos según una condición de filtro.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:

  • LOCATION_ID: Tu región.
  • PROJECT_ID: El ID del proyecto.
  • METADATA_STORE: Es el 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 requieren que se borren los artefactos. Por ejemplo:
    • Filtros para todos los artefactos que contengan example en el nombre visible: "display_name = \"*example*\"".
    • Filtros para todos los artefactos creados antes del 2020-11-19T11:30:00-04:00: "create_time < \"2020-11-19T11:30:00-04:00\"".
  • FORCE: Indica si se debe realizar la eliminación definitiva real o no. Si la marca se establece como falsa, el método mostrará una muestra de los nombres de los artefactos que se borrarían.

Método HTTP y URL:

POST http://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, expande una de estas opciones:

Deberías ver un resultado similar al siguiente. Puedes usar el OPERATION_ID en 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"
  }
}

Administración de la ejecución

Crear una ejecución

Las ejecuciones representan un paso en tu flujo de trabajo del AA. Usa REST o el SDK de Vertex AI para Python a fin de crear una ejecución.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:

  • LOCATION_ID: Tu región.
  • PROJECT_ID: El ID del proyecto.
  • METADATA_STORE: Es el 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: Es el 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: Es el nombre visible de la ejecución. Este campo puede contener hasta 128 caracteres Unicode.
  • EXECUTION_STATE: (Opcional) Es un valor de la enumeración de estado que representa el estado actual de la ejecución. Las aplicaciones cliente administran este campo. Vertex ML Metadata no verifica la validez de las transiciones de estado.
  • METADATA_SCHEMA_TITLE: Es el título del esquema que describe el campo de metadatos. El título del esquema debe cumplir con el formato “.”. El espacio de nombres debe comenzar con una letra minúscula, puede contener caracteres minúsculas y números, y puede tener entre dos y veinte caracteres. El nombre del esquema debe comenzar con una letra mayúscula, puede incluir letras y números, y tener entre 2 y 49 caracteres.
  • METADATA_SCHEMA_VERSION: (Opcional) Es la versión del esquema que describe el campo de metadatos. schema_version debe ser una string de 3 números separados por puntos, por ejemplo, 1.0.0, 1.0.1. Este formato ayuda a ordenar y comparar versiones.
  • METADATA: (Opcional) Son las propiedades que describen la ejecución, como los parámetros de ejecución.
  • DESCRIPTION: (Opcional) Una string legible que describe el propósito de la ejecución que se creará.
  • LABELS: Opcional Metadatos definidos por el usuario para organizar tus ejecuciones.

Método HTTP y URL:

POST http://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, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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: Es el nombre visible de la ejecución. Este campo puede contener hasta 128 caracteres Unicode.
  • input_artifacts: Una lista de una o más instancias de aiplatform.Artifact que representan un artefacto de entrada.
  • output_artifacts: Una lista de una o más instancias de aiplatform.Artifact que representan un artefacto de salida.
  • project: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.
  • location: Consulta Lista de ubicaciones disponibles.
  • execution_id: Es el 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: Son las propiedades que describen la ejecución, como los parámetros de ejecución.
  • schema_version: Es la versión del esquema que describe el campo de metadatos.
  • description: (Opcional) Una string legible que describe el propósito de la ejecución que se creará.

Buscar una ejecución existente

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

REST

Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:

  • LOCATION_ID: Tu región.
  • PROJECT_ID: El ID del proyecto.
  • METADATA_STORE: Es el 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) Es el número máximo de artefactos que se mostrarán. Si no se especifica este valor, el servicio muestra un máximo de 100 registros.
  • PAGE_TOKEN: (Opcional) Es 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 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

Para enviar tu solicitud, expande una de estas opciones:

Deberías 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

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

Borrar una ejecución existente

Usa REST o el SDK de Vertex AI para Python a fin de borrar una ejecución.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:

  • LOCATION_ID: Tu región.
  • PROJECT_ID: El ID del proyecto.
  • METADATA_STORE: Es el 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: Es el ID del registro de ejecución que se borrará.

Método HTTP y URL:

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

Para enviar tu solicitud, expande una de estas opciones:

Deberías ver un resultado similar al siguiente. Puedes usar el OPERATION_ID en 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

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

Borrar definitivamente las ejecuciones

Para borrar varias ejecuciones basadas en un filtro, sigue las siguientes instrucciones.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:

  • LOCATION_ID: Tu región.
  • PROJECT_ID: El ID del proyecto.
  • METADATA_STORE: Es el 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 requieren las ejecuciones que se borrarán. Por ejemplo:
    • Filtros para todas las ejecuciones que contienen example en el nombre visible: "display_name = \"*example*\"".
    • Filtros para todas las ejecuciones creadas antes de l2020-11-19T11:30:00-04:00: "create_time < \"2020-11-19T11:30:00-04:00\"".
  • FORCE: Indica si se debe realizar la eliminación definitiva real o no. Si la marca se establece como falsa, el método mostrará una muestra de los nombres de los artefactos que se borrarían.

Método HTTP y URL:

POST http://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, expande una de estas opciones:

Deberías ver un resultado similar al siguiente. Puedes usar el OPERATION_ID en 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"
  }
}

Administración del contexto

Crea un contexto

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

REST

Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:

  • LOCATION_ID: Tu región.
  • PROJECT_ID: El ID del proyecto.
  • METADATA_STORE: Es el 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 crear un identificador único para este contexto.
  • DISPLAY_NAME: Es el nombre visible del contexto. Este campo puede contener hasta 128 caracteres Unicode.
  • PARENT_CONTEXT: Especifica el nombre del recurso para los contextos superiores. Un contexto no puede tener más de 10 contextos superiores.
  • METADATA_SCHEMA_TITLE: Es el título del esquema que describe el campo de metadatos. El título del esquema debe cumplir con el formato “.”. El espacio de nombres debe comenzar con una letra minúscula, puede contener caracteres minúsculas y números, y puede tener entre dos y veinte caracteres. El nombre del esquema debe comenzar con una letra mayúscula, puede incluir letras y números, y tener entre 2 y 49 caracteres.
  • METADATA_SCHEMA_VERSION: (Opcional) Es la versión del esquema que describe el campo de metadatos. schema_version debe ser una string de 3 números separados por puntos, por ejemplo, 1.0.0, 1.0.1. Este formato ayuda a ordenar y comparar versiones.
  • METADATA: Propiedades que describen el contexto, como los parámetros del contexto.
  • DESCRIPTION: (Opcional) Una string legible que describe el propósito de la ejecución que se creará.
  • LABELS: Opcional Metadatos definidos por el usuario para organizar tus contextos.

Método HTTP y URL:

POST http://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, expande una de estas opciones:

Deberías ver un resultado similar al siguiente. CONTEXT_ID: 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

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: Es el nombre visible del contexto. Este campo puede contener hasta 128 caracteres Unicode.
  • project: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.
  • location: Consulta Lista de ubicaciones disponibles.
  • context_id: (Opcional) El ID del registro de contexto.
  • metadata: Propiedades que describen el contexto, como los parámetros del contexto.
  • schema_version: Es la versión del esquema que describe el campo de metadatos.
  • description: (Opcional) Una string legible que describe el propósito de la ejecución que se creará.

Buscar un contexto existente

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

REST

Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:

  • LOCATION_ID: Tu región.
  • PROJECT_ID: El ID del proyecto.
  • METADATA_STORE: Es el 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) Es el número máximo de artefactos que se mostrarán. Si no se especifica este valor, el servicio muestra un máximo de 100 registros.
  • PAGE_TOKEN: (Opcional) Es 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 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

Para enviar tu solicitud, expande una de estas opciones:

Deberías ver un resultado similar al siguiente. CONTEXT_ID: 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

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

Borrar un contexto existente

Usa REST o el SDK de Vertex AI para Python a fin de borrar un contexto.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:

  • LOCATION_ID: Tu región.
  • PROJECT_ID: El ID del proyecto.
  • METADATA_STORE: Es el 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.

HTTP method and URL:

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

Para enviar tu solicitud, expande una de estas opciones:

Deberías ver un resultado similar al siguiente. Puedes usar el OPERATION_ID en 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

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

Borrar definitivamente contextos

Usa las siguientes instrucciones para borrar varios contextos según una condición de filtro.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:

  • LOCATION_ID: Tu región.
  • PROJECT_ID: El ID del proyecto.
  • METADATA_STORE: Es el 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 requieren los contextos que se borrarán. Por ejemplo:
    • Filtra todos los contextos que contienen example en el nombre visible: "display_name = \"*example*\"".
    • Filtros para todos los contextos creados antes del 2020-11-19T11:30:00-04:00: "create_time < \"2020-11-19T11:30:00-04:00\"".
  • FORCE: Indica si se debe realizar la eliminación definitiva real o no. Si la marca se configura como falsa, el método mostrará una muestra de los nombres de contexto que se borrarían.

Método HTTP y URL:

POST http://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, expande una de estas opciones:

Deberías ver un resultado similar al siguiente. Puedes usar el OPERATION_ID en 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"
  }
}

¿Qué sigue?