Implementa y administra extremos de índice en una red de VPC

La implementación de un índice en un extremo incluye las siguientes tres tareas:

  1. Crea un IndexEndpoint, si es necesario, o reutiliza un IndexEndpoint existente.
  2. Obtén el ID de IndexEndpoint.
  3. Implementa el índice en IndexEndpoint.

Crea un IndexEndpoint dentro de tu red de VPC

Si implementas un Index en un IndexEndpoint existente, puedes omitir este paso.

Antes de usar un índice para entregar búsquedas de coincidencia de vectores en línea, debes IndexIndexEndpointimplementar dentro de tu red con intercambio de tráfico entre redes de VPC. El primer paso es crear un IndexEndpoint. Puedes implementar más de un índice en un IndexEndpoint que comparta la misma red de VPC.

gcloud

En el siguiente ejemplo, se usa el comando gcloud ai index-endpoints create.

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

  • INDEX_ENDPOINT_NAME: Nombre visible del extremo del índice.
  • VPC_NETWORK_NAME: Es el nombre de la red de Google Compute Engine con el que se debe intercambiar el extremo del índice.
  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud ai index-endpoints create \
    --display-name=INDEX_ENDPOINT_NAME \
    --network=VPC_NETWORK_NAME \
    --region=LOCATION \
    --project=PROJECT_ID

Windows (PowerShell)

gcloud ai index-endpoints create `
    --display-name=INDEX_ENDPOINT_NAME `
    --network=VPC_NETWORK_NAME `
    --region=LOCATION `
    --project=PROJECT_ID

Windows (cmd.exe)

gcloud ai index-endpoints create ^
    --display-name=INDEX_ENDPOINT_NAME ^
    --network=VPC_NETWORK_NAME ^
    --region=LOCATION ^
    --project=PROJECT_ID

Deberías recibir una respuesta similar a la que figura a continuación:

The Google Cloud CLI tool might take a few minutes to create the IndexEndpoint.

REST

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

  • INDEX_ENDPOINT_NAME: Nombre visible del extremo del índice.
  • VPC_NETWORK_NAME: Es el nombre de la red de Google Compute Engine con el que se debe intercambiar el extremo del índice.
  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.
  • PROJECT_NUMBER: el número de proyecto de tu proyecto generado de forma automática.

HTTP method and URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexEndpoints

Cuerpo JSON de la solicitud:

{
  "display_name": "INDEX_ENDPOINT_NAME",
  "network": "VPC_NETWORK_NAME"
}

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_NUMBER/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateIndexEndpointOperationMetadata",
    "genericMetadata": {
      "createTime": "2022-01-13T04:09:56.641107Z",
      "updateTime": "2022-01-13T04:09:56.641107Z"
    }
  }
}

Puedes sondear el estado de la operación hasta que la respuesta incluya "done": true.

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.

def vector_search_create_index_endpoint_vpc(
    project: str, location: str, display_name: str, network: str
) -> aiplatform.MatchingEngineIndexEndpoint:
    """Create a vector search index endpoint within a VPC network.

    Args:
        project (str): Required. Project ID
        location (str): Required. The region name
        display_name (str): Required. The index endpoint display name
        network(str): Required. The VPC network name, in the format of
            projects/{project number}/global/networks/{network name}.

    Returns:
        aiplatform.MatchingEngineIndexEndpoint - The created index endpoint.
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location)

    # Create Index Endpoint
    index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
        display_name=display_name,
        network=network,
        description="Matching Engine VPC Index Endpoint",
    )

    return index_endpoint

Console

Usa estas instrucciones para crear un extremo de índice.

  1. En la sección de Vertex AI de la consola de Google Cloud, ve a la sección Implementación y uso. Elige Vector Search

    Ir a Búsqueda de vectores

  2. Aparecerá una lista de los índices activos.
  3. En la parte superior de la página, selecciona la pestaña Extremo de índice. Se muestran tus extremos de índice.
  4. Haz clic en Crear un extremo de índice nuevo. Se abrirá el panel Crear un extremo de índice nuevo.
  5. Escribe un nombre visible para el extremo de índice.
  6. En el campo Región, elige una región del menú desplegable.
  7. En el campo Acceso, elige Privado.
  8. Escribe los detalles de tu red de VPC con intercambio de tráfico. Ingresa el nombre completo de la red de Compute Engine con la que el trabajo debe intercambiar tráfico. El formato debe ser projects/{project_num}/global/networks/{network_id}
  9. Haz clic en Crear.

Implementa un índice

gcloud

En este ejemplo, se usa el comando gcloud ai index-endpoints deploy-index.

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

  • INDEX_ENDPOINT_ID: Es el ID del extremo del índice.
  • DEPLOYED_INDEX_ID: Una cadena especificada por el usuario para identificar de forma inequívoca el índice implementado. Debe comenzar con una letra y contener solo letras, números o guiones bajos. Consulta DeployedIndex.id para obtener lineamientos de formato.
  • DEPLOYED_INDEX_ENDPOINT_NAME: nombre visible del extremo de índice implementado.
  • INDEX_ID: Es el ID del índice.
  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID \
    --deployed-index-id=DEPLOYED_INDEX_ID \
    --display-name=DEPLOYED_INDEX_ENDPOINT_NAME \
    --index=INDEX_ID \
    --region=LOCATION \
    --project=PROJECT_ID

Windows (PowerShell)

gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID `
    --deployed-index-id=DEPLOYED_INDEX_ID `
    --display-name=DEPLOYED_INDEX_ENDPOINT_NAME `
    --index=INDEX_ID `
    --region=LOCATION `
    --project=PROJECT_ID

Windows (cmd.exe)

gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID ^
    --deployed-index-id=DEPLOYED_INDEX_ID ^
    --display-name=DEPLOYED_INDEX_ENDPOINT_NAME ^
    --index=INDEX_ID ^
    --region=LOCATION ^
    --project=PROJECT_ID

Deberías recibir una respuesta similar a la que figura a continuación:

The Google Cloud CLI tool might take a few minutes to create the IndexEndpoint.

REST

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

  • INDEX_ENDPOINT_ID: Es el ID del extremo del índice.
  • DEPLOYED_INDEX_ID: Una cadena especificada por el usuario para identificar de forma inequívoca el índice implementado. Debe comenzar con una letra y contener solo letras, números o guiones bajos. Consulta DeployedIndex.id para obtener lineamientos de formato.
  • DEPLOYED_INDEX_ENDPOINT_NAME: nombre visible del extremo de índice implementado.
  • INDEX_ID: Es el ID del índice.
  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.
  • PROJECT_NUMBER: el número de proyecto de tu proyecto generado de forma automática.

HTTP method and URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex

Cuerpo JSON de la solicitud:

{
 "deployedIndex": {
   "id": "DEPLOYED_INDEX_ID",
   "index": "projects/PROJECT_ID/locations/LOCATION/indexes/INDEX_ID",
   "displayName": "DEPLOYED_INDEX_ENDPOINT_NAME"
 }
}

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_NUMBER/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID",
 "metadata": {
   "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployIndexOperationMetadata",
   "genericMetadata": {
     "createTime": "2022-10-19T17:53:16.502088Z",
     "updateTime": "2022-10-19T17:53:16.502088Z"
   },
   "deployedIndexId": "DEPLOYED_INDEX_ID"
 }
}

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.

def vector_search_deploy_index(
    project: str,
    location: str,
    index_name: str,
    index_endpoint_name: str,
    deployed_index_id: str,
) -> None:
    """Deploy a vector search index to a vector search index endpoint.

    Args:
        project (str): Required. Project ID
        location (str): Required. The region name
        index_name (str): Required. The index to update. A fully-qualified index
          resource name or a index ID.  Example:
          "projects/123/locations/us-central1/indexes/my_index_id" or
          "my_index_id".
        index_endpoint_name (str): Required. Index endpoint to deploy the index
          to.
        deployed_index_id (str): Required. The user specified ID of the
          DeployedIndex.
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location)

    # Create the index instance from an existing index
    index = aiplatform.MatchingEngineIndex(index_name=index_name)

    # Create the index endpoint instance from an existing endpoint.
    index_endpoint = aiplatform.MatchingEngineIndexEndpoint(
        index_endpoint_name=index_endpoint_name
    )

    # Deploy Index to Endpoint
    index_endpoint = index_endpoint.deploy_index(
        index=index, deployed_index_id=deployed_index_id
    )

    print(index_endpoint.deployed_indexes)

Console

Usa estas instrucciones para implementar el índice en un extremo.

  1. En la sección de Vertex AI de la consola de Google Cloud, ve a la sección Implementación y uso. Elige Vector Search

    Ir a Búsqueda de vectores

  2. Aparecerá una lista de los índices activos.
  3. Selecciona el nombre del índice que deseas implementar. Se abrirá la página de detalles del índice.
  4. En la página de detalles del índice, haz clic en Implementar en el extremo. Se abrirá el panel de implementación de índices.
  5. Ingresa un nombre visible. Este nombre actúa como un ID y no se puede actualizar.
  6. En el menú desplegable Extremo, selecciona el extremo en el que deseas implementar este índice. Nota: El extremo no estará disponible si el índice ya se implementó en él.
  7. Opcional: en el campo Tipo de máquina, selecciona estándar o capacidad de memoria alta.
  8. Opcional. Selecciona Habilitar ajuste de escala automático para cambiar el tamaño de la cantidad de nodos automáticamente según las demandas de tus cargas de trabajo. La cantidad predeterminada de réplicas es 2 si el ajuste de escala automático está inhabilitado.
  9. Haz clic en Implementar para implementar el modelo en el extremo. Nota: La implementación demora alrededor de 30 minutos.

Habilitar ajuste de escala automático

Vector Search admite el ajuste de escala automático, que puede cambiar el tamaño de la cantidad de nodos automáticamente según las demandas de tus cargas de trabajo. Cuando la demanda es alta, se agregan nodos al grupo de nodos, y estos no superarán el tamaño máximo que designes. Cuando la demanda es baja, el grupo de nodos reduce su escala hasta el tamaño mínimo que designes. Puedes verificar los nodos reales en uso y los cambios si supervisas las réplicas actuales.

Para habilitar el ajuste de escala automático, especifica maxReplicaCount y minReplicaCount cuando implementes el índice:

gcloud

En el siguiente ejemplo, se usa el comando gcloud ai index-endpoints deploy-index.

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

  • INDEX_ENDPOINT_ID: Es el ID del extremo del índice.
  • DEPLOYED_INDEX_ID: Una cadena especificada por el usuario para identificar de forma inequívoca el índice implementado. Debe comenzar con una letra y contener solo letras, números o guiones bajos. Consulta DeployedIndex.id para obtener lineamientos de formato.
  • DEPLOYED_INDEX_NAME: Nombre visible del índice implementado.
  • INDEX_ID: Es el ID del índice.
  • MIN_REPLICA_COUNT: la cantidad mínima de réplicas de máquinas en las que siempre se implementará el índice implementado. Si se especifica, el valor debe ser igual o mayor que 1.
  • MAX_REPLICA_COUNT: la cantidad máxima de réplicas de máquinas en las que se puede implementar el índice implementado.
  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID \
    --deployed-index-id=DEPLOYED_INDEX_ID \
    --display-name=DEPLOYED_INDEX_NAME \
    --index=INDEX_ID \
    --min-replica-count=MIN_REPLICA_COUNT \
    --max-replica-count=MAX_REPLICA_COUNT \
    --region=LOCATION \
    --project=PROJECT_ID

Windows (PowerShell)

gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID `
    --deployed-index-id=DEPLOYED_INDEX_ID `
    --display-name=DEPLOYED_INDEX_NAME `
    --index=INDEX_ID `
    --min-replica-count=MIN_REPLICA_COUNT `
    --max-replica-count=MAX_REPLICA_COUNT `
    --region=LOCATION `
    --project=PROJECT_ID

Windows (cmd.exe)

gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID ^
    --deployed-index-id=DEPLOYED_INDEX_ID ^
    --display-name=DEPLOYED_INDEX_NAME ^
    --index=INDEX_ID ^
    --min-replica-count=MIN_REPLICA_COUNT ^
    --max-replica-count=MAX_REPLICA_COUNT ^
    --region=LOCATION ^
    --project=PROJECT_ID

REST

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

  • INDEX_ENDPOINT_ID: Es el ID del extremo del índice.
  • DEPLOYED_INDEX_ID: Una cadena especificada por el usuario para identificar de forma inequívoca el índice implementado. Debe comenzar con una letra y contener solo letras, números o guiones bajos. Consulta DeployedIndex.id para obtener lineamientos de formato.
  • DEPLOYED_INDEX_NAME: Nombre visible del índice implementado.
  • INDEX_ID: Es el ID del índice.
  • MIN_REPLICA_COUNT: la cantidad mínima de réplicas de máquinas en las que siempre se implementará el índice implementado. Si se especifica, el valor debe ser igual o mayor que 1.
  • MAX_REPLICA_COUNT: la cantidad máxima de réplicas de máquinas en las que se puede implementar el índice implementado.
  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.
  • PROJECT_NUMBER: el número de proyecto de tu proyecto generado de forma automática.

HTTP method and URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex

Cuerpo JSON de la solicitud:

{
 "deployedIndex": {
   "id": "DEPLOYED_INDEX_ID",
   "index": "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID",
   "displayName": "DEPLOYED_INDEX_NAME",
   "automaticResources": {
     "minReplicaCount": MIN_REPLICA_COUNT,
     "maxReplicaCount": MAX_REPLICA_COUNT
   }
 }
}

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_NUMBER/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID",
 "metadata": {
   "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployIndexOperationMetadata",
   "genericMetadata": {
     "createTime": "2023-10-19T17:53:16.502088Z",
     "updateTime": "2023-10-19T17:53:16.502088Z"
   },
   "deployedIndexId": "DEPLOYED_INDEX_ID"
 }
}

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.

def vector_search_deploy_autoscaling_index(
    project: str,
    location: str,
    index_name: str,
    index_endpoint_name: str,
    deployed_index_id: str,
    min_replica_count: int,
    max_replica_count: int,
) -> None:
    """Deploy a vector search index to a vector search index endpoint.

    Args:
        project (str): Required. Project ID
        location (str): Required. The region name
        index_name (str): Required. The index to update. A fully-qualified index
          resource name or a index ID.  Example:
          "projects/123/locations/us-central1/indexes/my_index_id" or
          "my_index_id".
        index_endpoint_name (str): Required. Index endpoint to deploy the index
          to.
        deployed_index_id (str): Required. The user specified ID of the
          DeployedIndex.
        min_replica_count (int): Required. The minimum number of replicas to
          deploy.
        max_replica_count (int): Required. The maximum number of replicas to
          deploy.
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location)

    # Create the index instance from an existing index
    index = aiplatform.MatchingEngineIndex(index_name=index_name)

    # Create the index endpoint instance from an existing endpoint.
    index_endpoint = aiplatform.MatchingEngineIndexEndpoint(
        index_endpoint_name=index_endpoint_name
    )

    # Deploy Index to Endpoint. Specifying min and max replica counts will
    # enable autoscaling.
    index_endpoint.deploy_index(
        index=index,
        deployed_index_id=deployed_index_id,
        min_replica_count=min_replica_count,
        max_replica_count=max_replica_count,
    )

Console

Solo puedes habilitar el ajuste de escala automático desde la consola durante la implementación del índice.

  1. En la sección de Vertex AI de la consola de Google Cloud, ve a la sección Implementación y uso. Elige Vector Search

    Ir a Búsqueda de vectores

  2. Aparecerá una lista de los índices activos.
  3. Selecciona el nombre del índice que deseas implementar. Se abrirá la página de detalles del índice.
  4. En la página de detalles del índice, haz clic en Implementar en el extremo. Se abrirá el panel de implementación de índices.
  5. Ingresa un nombre visible. Este nombre actúa como un ID y no se puede actualizar.
  6. En el menú desplegable Extremo, selecciona el extremo en el que deseas implementar este índice. Nota: El extremo no estará disponible si el índice ya se implementó en él.
  7. Opcional: en el campo Tipo de máquina, selecciona estándar o capacidad de memoria alta.
  8. Opcional. Selecciona Habilitar ajuste de escala automático para cambiar el tamaño de la cantidad de nodos automáticamente según las demandas de tus cargas de trabajo. La cantidad predeterminada de réplicas es 2 si el ajuste de escala automático está inhabilitado.
  • Si minReplicaCount y maxReplicaCount no están configurados, se configuran como 2 de forma predeterminada.
  • Si solo se establece maxReplicaCount, minReplicaCount se establece en 2 de forma predeterminada.
  • Si solo se establece minReplicaCount, maxReplicaCount se configura como igual a minReplicaCount.

Muta un DeployedIndex

Puedes usar la API de MutateDeployedIndex para actualizar los recursos de implementación (por ejemplo, minReplicaCount y maxReplicaCount) de un índice ya implementado.

  • Los usuarios no pueden cambiar el machineType después de implementar el índice.
  • Si no se especifica maxReplicaCount en la solicitud, DeployedIndex seguirá usando el maxReplicaCount existente.

gcloud

En el siguiente ejemplo, se usa el comando gcloud ai index-endpoints mutate-deployed-index.

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

  • INDEX_ENDPOINT_ID: Es el ID del extremo del índice.
  • DEPLOYED_INDEX_ID: Una cadena especificada por el usuario para identificar de forma inequívoca el índice implementado. Debe comenzar con una letra y contener solo letras, números o guiones bajos. Consulta DeployedIndex.id para obtener lineamientos de formato.
  • MIN_REPLICA_COUNT: la cantidad mínima de réplicas de máquinas en las que siempre se implementará el índice implementado. Si se especifica, el valor debe ser igual o mayor que 1.
  • MAX_REPLICA_COUNT: la cantidad máxima de réplicas de máquinas en las que se puede implementar el índice implementado.
  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud ai index-endpoints mutate-deployed-index INDEX_ENDPOINT_ID \
    --deployed-index-id=DEPLOYED_INDEX_ID \
    --min-replica-count=MIN_REPLICA_COUNT \
    --max-replica-count=MAX_REPLICA_COUNT \
    --region=LOCATION \
    --project=PROJECT_ID

Windows (PowerShell)

gcloud ai index-endpoints mutate-deployed-index INDEX_ENDPOINT_ID `
    --deployed-index-id=DEPLOYED_INDEX_ID `
    --min-replica-count=MIN_REPLICA_COUNT `
    --max-replica-count=MAX_REPLICA_COUNT `
    --region=LOCATION `
    --project=PROJECT_ID

Windows (cmd.exe)

gcloud ai index-endpoints mutate-deployed-index INDEX_ENDPOINT_ID ^
    --deployed-index-id=DEPLOYED_INDEX_ID ^
    --min-replica-count=MIN_REPLICA_COUNT ^
    --max-replica-count=MAX_REPLICA_COUNT ^
    --region=LOCATION ^
    --project=PROJECT_ID

REST

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

  • INDEX_ENDPOINT_ID: Es el ID del extremo del índice.
  • DEPLOYED_INDEX_ID: Una cadena especificada por el usuario para identificar de forma inequívoca el índice implementado. Debe comenzar con una letra y contener solo letras, números o guiones bajos. Consulta DeployedIndex.id para obtener lineamientos de formato.
  • MIN_REPLICA_COUNT: la cantidad mínima de réplicas de máquinas en las que siempre se implementará el índice implementado. Si se especifica, el valor debe ser igual o mayor que 1.
  • MAX_REPLICA_COUNT: la cantidad máxima de réplicas de máquinas en las que se puede implementar el índice implementado.
  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.
  • PROJECT_NUMBER: el número de proyecto de tu proyecto generado de forma automática.

HTTP method and URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID:mutateDeployedIndex

Cuerpo JSON de la solicitud:

{
  "deployedIndex": {
    "id": "DEPLOYED_INDEX_ID",
    "index": "projects/PROJECT_ID/locations/LOCATION/indexes/INDEX_ID",
    "displayName": "DEPLOYED_INDEX_NAME",
    "min_replica_count": "MIN_REPLICA_COUNT",
    "max_replica_count": "MAX_REPLICA_COUNT"
  }
}

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_NUMBER/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID",
"metadata": {
  "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployIndexOperationMetadata",
  "genericMetadata": {
    "createTime": "2020-10-19T17:53:16.502088Z",
    "updateTime": "2020-10-19T17:53:16.502088Z"
  },
  "deployedIndexId": "DEPLOYED_INDEX_ID"
}
}

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.

def vector_search_mutate_deployed_index(
    project: str,
    location: str,
    index_endpoint_name: str,
    deployed_index_id: str,
    min_replica_count: int,
    max_replica_count: int,
) -> None:
    """Mutate the deployment resources of an already deployed index.

    Args:
        project (str): Required. Project ID
        location (str): Required. The region name
        index_endpoint_name (str): Required. Index endpoint to run the query
          against.
        deployed_index_id (str): Required. The ID of the DeployedIndex to run
          the queries against.
        min_replica_count (int): Required. The minimum number of replicas to
          deploy.
        max_replica_count (int): Required. The maximum number of replicas to
          deploy.
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location)

    # Create the index endpoint instance from an existing endpoint
    index_endpoint = aiplatform.MatchingEngineIndexEndpoint(
        index_endpoint_name=index_endpoint_name
    )

    # Mutate the deployed index
    index_endpoint.mutate_deployed_index(
        deployed_index_id=deployed_index_id,
        min_replica_count=min_replica_count,
        max_replica_count=max_replica_count,
    )

Configuración de implementación que afecta el rendimiento

La siguiente configuración de implementación puede afectar la latencia, la disponibilidad y el costo cuando se usa Vector Search. Esta guía se aplica en la mayoría de los casos. Sin embargo, siempre experimenta con tus opciones de configuración a fin de asegurarte de que funcionen para tu caso de uso.

Configuración Impacto en el rendimiento
Tipo de máquina

La selección de hardware tiene una interacción directa con el tamaño de fragmento seleccionado. Según las opciones de fragmentos que especificaste en el momento de la creación del índice, cada tipo de máquina ofrece una compensación entre el rendimiento y el costo.

Consulta la página de precios para determinar el hardware disponible y los precios. En general, el rendimiento aumenta en el siguiente orden:

  • E2 estándar
  • E2 highmem
  • N1 estándar
  • N2D estándar
Recuento mínimo de réplicas

minReplicaCount reserva una capacidad mínima para la disponibilidad y la latencia a fin de garantizar que el sistema no tenga problemas de inicio en frío cuando el tráfico escala verticalmente desde niveles bajos con rapidez.

Si tienes cargas de trabajo que disminuyen a niveles bajos y, luego, aumentan rápidamente a niveles más altos, considera configurar minReplicaCount en un número que pueda adaptarse a los aumentos de actividad de tráfico iniciales.

Recuento máximo de réplicas maxReplicaCount te permite controlar principalmente el costo de uso. Puedes optar por evitar que se aumenten los costos por encima de un límite determinado, con la compensación de permitir una mayor latencia y reducir la disponibilidad.

Enumera IndexEndpoints

Para ver una lista de tus recursos IndexEndpoint y ver la información de las instancias DeployedIndex asociadas, ejecuta el siguiente código:

gcloud

En el siguiente ejemplo, se usa el comando gcloud ai index-endpoints list.

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

  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud ai index-endpoints list \
    --region=LOCATION \
    --project=PROJECT_ID

Windows (PowerShell)

gcloud ai index-endpoints list `
    --region=LOCATION `
    --project=PROJECT_ID

Windows (cmd.exe)

gcloud ai index-endpoints list ^
    --region=LOCATION ^
    --project=PROJECT_ID

REST

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

  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.
  • PROJECT_NUMBER: el número de proyecto de tu proyecto generado de forma automática.

HTTP method and URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexEndpoints

Para enviar tu solicitud, expande una de estas opciones:

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

{
 "indexEndpoints": [
   {
     "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID",
     "displayName": "INDEX_ENDPOINT_DISPLAY_NAME",
     "deployedIndexes": [
       {
         "id": "DEPLOYED_INDEX_ID",
         "index": "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID",
         "displayName": "DEPLOYED_INDEX_DISPLAY_NAME",
         "createTime": "2021-06-04T02:23:40.178286Z",
         "privateEndpoints": {
           "matchGrpcAddress": "GRPC_ADDRESS"
         },
         "indexSyncTime": "2022-01-13T04:22:00.151916Z",
         "automaticResources": {
           "minReplicaCount": 2,
           "maxReplicaCount": 10
         }
       }
     ],
     "etag": "AMEw9yP367UitPkLo-khZ1OQvqIK8Q0vLAzZVF7QjdZ5O3l7Zow-mzBo2l6xmiuuMljV",
     "createTime": "2021-03-17T04:47:28.460373Z",
     "updateTime": "2021-06-04T02:23:40.930513Z",
     "network": "VPC_NETWORK_NAME"
   }
 ]
}

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.

def vector_search_list_index_endpoint(
    project: str, location: str
) -> List[aiplatform.MatchingEngineIndexEndpoint]:
    """List vector search index endpoints.

    Args:
        project (str): Required. Project ID
        location (str): Required. The region name

    Returns:
        List of aiplatform.MatchingEngineIndexEndpoint
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location)

    # List Index Endpoints
    return aiplatform.MatchingEngineIndexEndpoint.list()

Console

Usa estas instrucciones para ver una lista de tus extremos de índice.

  1. En la sección de Vertex AI de la consola de Google Cloud, ve a la sección Implementación y uso. Elige Vector Search

    Ir a Búsqueda de vectores

  2. En la parte superior de la página, selecciona la pestaña Extremo de índice.
  3. Se muestran todos los extremos de índice existentes.

Para obtener más información, consulta la documentación de referencia de IndexEndpoint.

Anula la implementación de un índice

Para anular la implementación de un índice, ejecuta el siguiente código:

gcloud

En el siguiente ejemplo, se usa el comando gcloud ai index-endpoints undeploy-index.

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

  • INDEX_ENDPOINT_ID: Es el ID del extremo del índice.
  • DEPLOYED_INDEX_ID: Una cadena especificada por el usuario para identificar de forma inequívoca el índice implementado. Debe comenzar con una letra y contener solo letras, números o guiones bajos. Consulta DeployedIndex.id para obtener lineamientos de formato.
  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud ai index-endpoints undeploy-index INDEX_ENDPOINT_ID \
    --deployed-index-id=DEPLOYED_INDEX_ID \
    --region=LOCATION \
    --project=PROJECT_ID

Windows (PowerShell)

gcloud ai index-endpoints undeploy-index INDEX_ENDPOINT_ID `
    --deployed-index-id=DEPLOYED_INDEX_ID `
    --region=LOCATION `
    --project=PROJECT_ID

Windows (cmd.exe)

gcloud ai index-endpoints undeploy-index INDEX_ENDPOINT_ID ^
    --deployed-index-id=DEPLOYED_INDEX_ID ^
    --region=LOCATION ^
    --project=PROJECT_ID

REST

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

  • INDEX_ENDPOINT_ID: Es el ID del extremo del índice.
  • DEPLOYED_INDEX_ID: Una cadena especificada por el usuario para identificar de forma inequívoca el índice implementado. Debe comenzar con una letra y contener solo letras, números o guiones bajos. Consulta DeployedIndex.id para obtener lineamientos de formato.
  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.
  • PROJECT_NUMBER: el número de proyecto de tu proyecto generado de forma automática.

HTTP method and URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID:undeployIndex

Cuerpo JSON de la solicitud:

{
 "deployed_index_id": "DEPLOYED_INDEX_ID"
}

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_NUMBER/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID",
 "metadata": {
   "@type": "type.googleapis.com/google.cloud.aiplatform.v1.UndeployIndexOperationMetadata",
   "genericMetadata": {
     "createTime": "2022-01-13T04:09:56.641107Z",
     "updateTime": "2022-01-13T04:09:56.641107Z"
   }
 }
}

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.

def vector_search_undeploy_index(
    project: str,
    location: str,
    index_endpoint_name: str,
    deployed_index_id: str,
) -> None:
    """Mutate the deployment resources of an already deployed index.

    Args:
        project (str): Required. Project ID
        location (str): Required. The region name
        index_endpoint_name (str): Required. Index endpoint to run the query
          against.
        deployed_index_id (str): Required. The ID of the DeployedIndex to run
          the queries against.
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location)

    # Create the index endpoint instance from an existing endpoint
    index_endpoint = aiplatform.MatchingEngineIndexEndpoint(
        index_endpoint_name=index_endpoint_name
    )

    # Undeploy the index
    index_endpoint.undeploy_index(
        deployed_index_id=deployed_index_id,
    )

Console

Usa estas instrucciones para anular la implementación de un índice.

  1. En la sección de Vertex AI de la consola de Google Cloud, ve a la sección Implementación y uso. Elige Vector Search

    Ir a Búsqueda de vectores

  2. Aparecerá una lista de los índices activos.
  3. Elige el índice del que deseas anular la implementación. Se abrirá la página de detalles del índice.
  4. En la sección Índices implementados, identifica el extremo de índice en el que deseas anular la implementación.
  5. Haz clic en el menú de opciones que se encuentra en la misma fila que el extremo de índice y selecciona Anular la implementación.
  6. Se abrirá una pantalla de confirmación. Haz clic en Anular la implementación. Nota: La implementación puede tardar hasta 30 minutos en anularse.

Borra un IndexEndpoint

Antes de borrar un IndexEndpoint, debes anular la implementación de todos los índices en el extremo.

gcloud

En el siguiente ejemplo, se usa el comando gcloud ai index-endpoints delete.

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

  • INDEX_ENDPOINT_ID: Es el ID del extremo del índice.
  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud ai index-endpoints delete INDEX_ENDPOINT_ID \
    --region=LOCATION \
    --project=PROJECT_ID

Windows (PowerShell)

gcloud ai index-endpoints delete INDEX_ENDPOINT_ID `
    --region=LOCATION `
    --project=PROJECT_ID

Windows (cmd.exe)

gcloud ai index-endpoints delete INDEX_ENDPOINT_ID ^
    --region=LOCATION ^
    --project=PROJECT_ID

REST

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

  • INDEX_ENDPOINT_ID: Es el ID del extremo del índice.
  • LOCATION: la región en la que usas Vertex AI.
  • PROJECT_ID: El ID del proyecto de Google Cloud.
  • PROJECT_NUMBER: el número de proyecto de tu proyecto generado de forma automática.

HTTP method and URL:

DELETE https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID

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_NUMBER/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID",
 "metadata": {
   "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeleteOperationMetadata",
   "genericMetadata": {
     "createTime": "2022-01-13T04:36:19.142203Z",
     "updateTime": "2022-01-13T04:36:19.142203Z"
   }
 },
 "done": true,
 "response": {
   "@type": "type.googleapis.com/google.protobuf.Empty"
 }
}

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.

def vector_search_delete_index_endpoint(
    project: str, location: str, index_endpoint_name: str, force: bool = False
) -> None:
    """Delete a vector search index endpoint.

    Args:
        project (str): Required. Project ID
        location (str): Required. The region name
        index_endpoint_name (str): Required. Index endpoint to run the query
          against.
        force (bool): Required. If true, undeploy any deployed indexes on this
          endpoint before deletion.
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location)

    # Create the index endpoint instance from an existing endpoint
    index_endpoint = aiplatform.MatchingEngineIndexEndpoint(
        index_endpoint_name=index_endpoint_name
    )

    # Delete the index endpoint
    index_endpoint.delete(force=force)

Console

Usa estas instrucciones para borrar un extremo de índice.

  1. En la sección de Vertex AI de la consola de Google Cloud, ve a la sección Implementación y uso. Elige Vector Search

    Ir a Búsqueda de vectores

  2. En la parte superior de la página, selecciona la pestaña Extremo de índice.
  3. Se muestran todos los extremos de índice existentes.
  4. Haz clic en el menú de opciones que se encuentra en la misma fila que el extremo de índice que deseas borrar y selecciona Borrar.
  5. Se abrirá una pantalla de confirmación. Haz clic en Borrar. Tu extremo de índice se borró.