Esegui il deployment e gestisci gli endpoint dell'indice in una rete VPC

Il deployment di un indice in un endpoint include le seguenti tre attività:

  1. Se necessario, crea un IndexEndpoint o riutilizzane uno esistente.IndexEndpoint
  2. Recupera l'ID IndexEndpoint.
  3. Esegui il deployment dell'indice in IndexEndpoint.

Crea un IndexEndpoint all'interno della rete VPC

Se stai eseguendo il deployment di un Index in un IndexEndpoint esistente, puoi saltare questo passaggio.

Prima di utilizzare un indice per eseguire query di corrispondenza di vettori online, devi eseguire il deployment del Index in un IndexEndpoint all'interno della tua rete VPC con peering di rete. Il primo passaggio consiste nel creare un IndexEndpoint. Puoi implementare più di un indice in un IndexEndpoint che condivide la stessa rete VPC.

gcloud

L'esempio seguente utilizza il comando gcloud ai index-endpoints create.

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • INDEX_ENDPOINT_NAME: nome visualizzato dell'endpoint dell'indice.
  • VPC_NETWORK_NAME: il nome della rete Google Compute Engine a cui deve essere associato l'endpoint dell'indice.
  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.

Esegui il seguente 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

Dovresti ricevere una risposta simile alla seguente:

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

REST

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

  • INDEX_ENDPOINT_NAME: nome visualizzato dell'endpoint dell'indice.
  • VPC_NETWORK_NAME: il nome della rete Google Compute Engine a cui deve essere associato l'endpoint dell'indice.
  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • PROJECT_NUMBER: il numero del progetto generato automaticamente.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Puoi eseguire il polling per lo stato dell'operazione finché la risposta non include "done": true.

Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API 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

Segui queste istruzioni per creare un endpoint indice.

  1. Nella sezione Vertex AI della console Google Cloud, vai alla sezione Esegui il deployment e utilizza. Seleziona Ricerca vettoriale.

    Vai a Ricerca vettoriale

  2. Viene visualizzato un elenco degli indici attivi.
  3. Nella parte superiore della pagina, seleziona la scheda Endpoint dell'indice. Vengono visualizzati gli endpoint dell'indice.
  4. Fai clic su Crea nuovo endpoint indice. Viene visualizzato il riquadro Crea un nuovo endpoint indice.
  5. Inserisci un nome visualizzato per l'endpoint indice.
  6. Nel campo Regione, seleziona una regione dal menu a discesa.
  7. Nel campo Accesso, seleziona Privato.
  8. Inserisci i dettagli della rete VPC in peering. Inserisci il nome completo della rete Compute Engine verso cui deve essere eseguito il peering del job. Il formato deve essere projects/{project_num}/global/networks/{network_id}
  9. Fai clic su Crea.

Esegui il deployment di un indice

gcloud

In questo esempio viene utilizzato il comando gcloud ai index-endpoints deploy-index.

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • INDEX_ENDPOINT_ID: l'ID dell'endpoint dell'indice.
  • DEPLOYED_INDEX_ID: una stringa specificata dall'utente per identificare in modo univoco l'indice di cui è stato eseguito il deployment. Deve iniziare con una lettera e contenere solo lettere, numeri o trattini bassi. Consulta DeployedIndex.id per le linee guida sul formato.
  • DEPLOYED_INDEX_ENDPOINT_NAME: nome visualizzato dell'endpoint dell'indice di cui è stato eseguito il deployment.
  • INDEX_ID: l'ID dell'indice.
  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.

Esegui il seguente 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

Dovresti ricevere una risposta simile alla seguente:

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

REST

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

  • INDEX_ENDPOINT_ID: l'ID dell'endpoint dell'indice.
  • DEPLOYED_INDEX_ID: una stringa specificata dall'utente per identificare in modo univoco l'indice di cui è stato eseguito il deployment. Deve iniziare con una lettera e contenere solo lettere, numeri o trattini bassi. Consulta DeployedIndex.id per le linee guida sul formato.
  • DEPLOYED_INDEX_ENDPOINT_NAME: nome visualizzato dell'endpoint dell'indice di cui è stato eseguito il deployment.
  • INDEX_ID: l'ID dell'indice.
  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • PROJECT_NUMBER: il numero del progetto generato automaticamente.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API 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

Segui queste istruzioni per eseguire il deployment dell'indice in un endpoint.

  1. Nella sezione Vertex AI della console Google Cloud, vai alla sezione Esegui il deployment e utilizza. Seleziona Ricerca vettoriale.

    Vai a Ricerca vettoriale

  2. Viene visualizzato un elenco degli indici attivi.
  3. Seleziona il nome dell'indice di cui vuoi eseguire il deployment. Viene visualizzata la pagina dei dettagli dell'indice.
  4. Nella pagina dei dettagli dell'indice, fai clic su Esegui il deployment nell'endpoint. Viene visualizzato il riquadro di implementazione dell'indice.
  5. Inserisci un nome visualizzato. Questo nome funge da ID e non può essere aggiornato.
  6. Dal menu a discesa Endpoint, seleziona l'endpoint in cui vuoi eseguire il deployment di questo indice. Nota: l'endpoint non è disponibile se l'indice è già stato implementato.
  7. (Facoltativo) Nel campo Tipo di macchina, seleziona standard o memoria elevata.
  8. Facoltativo. Seleziona Attiva la scalabilità automatica per ridimensionare automaticamente il numero di nodi in base alle esigenze dei tuoi carichi di lavoro. Il numero predefinito di repliche è 2 se la scalabilità automatica è disabilitata.
  9. Fai clic su Esegui il deployment per eseguire il deployment dell'indice nell'endpoint. Nota: il deployment richiede circa 30 minuti.

Abilita scalabilità automatica

Ricerca di vettori supporta la scalabilità automatica, che può ridimensionare automaticamente il numero di nodi in base alle esigenze dei carichi di lavoro. Quando la domanda è elevata, vengono aggiunti nodi al pool di nodi, che non supereranno la dimensione massima che hai specificato. Quando la domanda è bassa, il pool di nodi si riduce nuovamente a una dimensione minima che hai specificato. Puoi controllare i nodi effettivamente in uso e le modifiche monitorando le repliche correnti.

Per attivare la scalabilità automatica, specifica maxReplicaCount e minReplicaCount quando esegui il deployment dell'indice:

gcloud

L'esempio seguente utilizza il comando gcloud ai index-endpoints deploy-index.

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • INDEX_ENDPOINT_ID: l'ID dell'endpoint dell'indice.
  • DEPLOYED_INDEX_ID: una stringa specificata dall'utente per identificare in modo univoco l'indice di cui è stato eseguito il deployment. Deve iniziare con una lettera e contenere solo lettere, numeri o trattini bassi. Consulta DeployedIndex.id per le linee guida sul formato.
  • DEPLOYED_INDEX_NAME: nome visualizzato dell'indice di cui è stato eseguito il deployment.
  • INDEX_ID: l'ID dell'indice.
  • MIN_REPLICA_COUNT: numero minimo di repliche della macchina in cui verrà sempre eseguito il deployment dell'indice. Se specificato, il valore deve essere maggiore o uguale a 1.
  • MAX_REPLICA_COUNT: numero massimo di repliche della macchina in cui è possibile eseguire il deployment dell'indice.
  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.

Esegui il seguente 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

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

  • INDEX_ENDPOINT_ID: l'ID dell'endpoint dell'indice.
  • DEPLOYED_INDEX_ID: una stringa specificata dall'utente per identificare in modo univoco l'indice di cui è stato eseguito il deployment. Deve iniziare con una lettera e contenere solo lettere, numeri o trattini bassi. Consulta DeployedIndex.id per le linee guida sul formato.
  • DEPLOYED_INDEX_NAME: nome visualizzato dell'indice di cui è stato eseguito il deployment.
  • INDEX_ID: l'ID dell'indice.
  • MIN_REPLICA_COUNT: numero minimo di repliche della macchina in cui verrà sempre eseguito il deployment dell'indice. Se specificato, il valore deve essere maggiore o uguale a 1.
  • MAX_REPLICA_COUNT: numero massimo di repliche della macchina in cui è possibile eseguire il deployment dell'indice.
  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • PROJECT_NUMBER: il numero del progetto generato automaticamente.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API 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

Puoi attivare la scalabilità automatica dalla console solo durante il deployment dell'indice.

  1. Nella sezione Vertex AI della console Google Cloud, vai alla sezione Esegui il deployment e utilizza. Seleziona Ricerca vettoriale.

    Vai a Ricerca vettoriale

  2. Viene visualizzato un elenco degli indici attivi.
  3. Seleziona il nome dell'indice di cui vuoi eseguire il deployment. Viene visualizzata la pagina dei dettagli dell'indice.
  4. Nella pagina dei dettagli dell'indice, fai clic su Esegui il deployment nell'endpoint. Viene visualizzato il riquadro di implementazione dell'indice.
  5. Inserisci un nome visualizzato. Questo nome funge da ID e non può essere aggiornato.
  6. Dal menu a discesa Endpoint, seleziona l'endpoint in cui vuoi eseguire il deployment di questo indice. Nota: l'endpoint non è disponibile se l'indice è già stato implementato.
  7. (Facoltativo) Nel campo Tipo di macchina, seleziona standard o memoria elevata.
  8. Facoltativo. Seleziona Attiva la scalabilità automatica per ridimensionare automaticamente il numero di nodi in base alle esigenze dei tuoi carichi di lavoro. Il numero predefinito di repliche è 2 se la scalabilità automatica è disabilitata.
  • Se non vengono impostati né minReplicaCountmaxReplicaCount, per impostazione predefinita vengono impostati su 2.
  • Se è impostato solo maxReplicaCount, minReplicaCount viene impostato su 2 per impostazione predefinita.
  • Se è impostato solo minReplicaCount, maxReplicaCount viene impostato su minReplicaCount.

Mutare un DeployedIndex

Puoi utilizzare l'API MutateDeployedIndex per aggiornare le risorse di deployment (ad es. minReplicaCount e maxReplicaCount) di un indice già di cui è stato eseguito il deployment.

  • Gli utenti non sono autorizzati a modificare machineType dopo il deployment dell'indice.
  • Se maxReplicaCount non è specificato nella richiesta, DeployedIndex continuerà a utilizzare il valore maxReplicaCount esistente.

gcloud

L'esempio seguente utilizza il comando gcloud ai index-endpoints mutate-deployed-index.

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • INDEX_ENDPOINT_ID: l'ID dell'endpoint dell'indice.
  • DEPLOYED_INDEX_ID: una stringa specificata dall'utente per identificare in modo univoco l'indice di cui è stato eseguito il deployment. Deve iniziare con una lettera e contenere solo lettere, numeri o trattini bassi. Consulta DeployedIndex.id per le linee guida sul formato.
  • MIN_REPLICA_COUNT: numero minimo di repliche della macchina in cui verrà sempre eseguito il deployment dell'indice. Se specificato, il valore deve essere maggiore o uguale a 1.
  • MAX_REPLICA_COUNT: numero massimo di repliche della macchina in cui è possibile eseguire il deployment dell'indice.
  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.

Esegui il seguente 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

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

  • INDEX_ENDPOINT_ID: l'ID dell'endpoint dell'indice.
  • DEPLOYED_INDEX_ID: una stringa specificata dall'utente per identificare in modo univoco l'indice di cui è stato eseguito il deployment. Deve iniziare con una lettera e contenere solo lettere, numeri o trattini bassi. Consulta DeployedIndex.id per le linee guida sul formato.
  • MIN_REPLICA_COUNT: numero minimo di repliche della macchina in cui verrà sempre eseguito il deployment dell'indice. Se specificato, il valore deve essere maggiore o uguale a 1.
  • MAX_REPLICA_COUNT: numero massimo di repliche della macchina in cui è possibile eseguire il deployment dell'indice.
  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • PROJECT_NUMBER: il numero del progetto generato automaticamente.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API 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,
    )

Impostazioni di deployment che influiscono sul rendimento

Le seguenti impostazioni di deployment possono influire su latenza, disponibilità e costo quando utilizzi la ricerca vettoriale. Queste indicazioni si applicano alla maggior parte dei casi. Tuttavia, fai sempre esperimenti con le configurazioni per assicurarti che funzionino per il tuo caso d'uso.

Impostazione Impatto sulle prestazioni
Tipo di macchina

La selezione dell'hardware ha un'interazione diretta con le dimensioni del frammento selezionate. A seconda delle scelte di shard specificate al momento della creazione dell'indice, ogni tipo di macchina offre un compromesso tra prestazioni e costi.

Consulta la pagina dei prezzi per determinare l'hardware disponibile e i prezzi. In generale, il rendimento aumenta nel seguente ordine:

  • Standard E2
  • E2 highmem
  • Standard N1
  • Standard N2D
Numero minimo di repliche

minReplicaCount riserva una capacità minima per la disponibilità e la latenza per garantire che il sistema non abbia problemi di avvio a freddo quando il traffico aumenta rapidamente da livelli bassi.

Se i tuoi carichi di lavoro scendono a livelli ridotti e poi aumentano rapidamente a livelli più elevati, ti consigliamo di impostare minReplicaCount su un numero che possa gestire le esplosioni iniziali di traffico.

Numero massimo di repliche maxReplicaCount ti consente principalmente di controllare il costo di utilizzo. Puoi scegliere di impedire l'aumento dei costi oltre una determinata soglia, con il compromesso di consentire un aumento della latenza e una riduzione della disponibilità.

Elenco IndexEndpoints

Per elencare le risorse IndexEndpoint e visualizzare le informazioni di eventuali istanze DeployedIndex associate, esegui il seguente codice:

gcloud

L'esempio seguente utilizza il comando gcloud ai index-endpoints list.

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.

Esegui il seguente 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

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

  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • PROJECT_NUMBER: il numero del progetto generato automaticamente.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API 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

Segui queste istruzioni per visualizzare un elenco dei tuoi endpoint indice.

  1. Nella sezione Vertex AI della console Google Cloud, vai alla sezione Esegui il deployment e utilizza. Seleziona Ricerca vettoriale.

    Vai a Ricerca vettoriale

  2. Nella parte superiore della pagina, seleziona la scheda Endpoint dell'indice.
  3. Vengono visualizzati tutti gli endpoint dell'indice esistenti.

Per saperne di più, consulta la documentazione di riferimento per IndexEndpoint.

Annullare il deployment di un indice

Per annullare il deployment di un indice, esegui il seguente codice:

gcloud

L'esempio seguente utilizza il comando gcloud ai index-endpoints undeploy-index.

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • INDEX_ENDPOINT_ID: l'ID dell'endpoint dell'indice.
  • DEPLOYED_INDEX_ID: una stringa specificata dall'utente per identificare in modo univoco l'indice di cui è stato eseguito il deployment. Deve iniziare con una lettera e contenere solo lettere, numeri o trattini bassi. Consulta DeployedIndex.id per le linee guida sul formato.
  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.

Esegui il seguente 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

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

  • INDEX_ENDPOINT_ID: l'ID dell'endpoint dell'indice.
  • DEPLOYED_INDEX_ID: una stringa specificata dall'utente per identificare in modo univoco l'indice di cui è stato eseguito il deployment. Deve iniziare con una lettera e contenere solo lettere, numeri o trattini bassi. Consulta DeployedIndex.id per le linee guida sul formato.
  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • PROJECT_NUMBER: il numero del progetto generato automaticamente.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
 "deployed_index_id": "DEPLOYED_INDEX_ID"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API 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

Segui queste istruzioni per annullare il deployment di un indice.

  1. Nella sezione Vertex AI della console Google Cloud, vai alla sezione Esegui il deployment e utilizza. Seleziona Ricerca vettoriale.

    Vai a Ricerca vettoriale

  2. Viene visualizzato un elenco degli indici attivi.
  3. Seleziona l'indice di cui vuoi annullare il deployment. Viene visualizzata la pagina dei dettagli dell'indice.
  4. Nella sezione Indici di cui è stato eseguito il deployment, identifica l'endpoint dell'indice di cui vuoi annullare il deployment.
  5. Fai clic sul menu delle opzioni nella stessa riga dell'endpoint dell'indice e seleziona Annulla deployment.
  6. Si apre una schermata di conferma. Fai clic su Annulla il deployment. Nota: il rollback può richiedere fino a 30 minuti.

Eliminare un IndexEndpoint

Prima di eliminare un IndexEndpoint, devi annullare il deployment di tutti gli annunci nell'endpoint.

gcloud

L'esempio seguente utilizza il comando gcloud ai index-endpoints delete.

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • INDEX_ENDPOINT_ID: l'ID dell'endpoint dell'indice.
  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.

Esegui il seguente 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

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

  • INDEX_ENDPOINT_ID: l'ID dell'endpoint dell'indice.
  • LOCATION: la regione in cui utilizzi Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • PROJECT_NUMBER: il numero del progetto generato automaticamente.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API 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

Segui queste istruzioni per eliminare un endpoint indice.

  1. Nella sezione Vertex AI della console Google Cloud, vai alla sezione Esegui il deployment e utilizza. Seleziona Ricerca vettoriale.

    Vai a Ricerca vettoriale

  2. Nella parte superiore della pagina, seleziona la scheda Endpoint dell'indice.
  3. Vengono visualizzati tutti gli endpoint dell'indice esistenti.
  4. Fai clic sul menu  Opzioni nella stessa riga dell'endpoint dell'indice che vuoi eliminare e seleziona Elimina.
  5. Si apre una schermata di conferma. Fai clic su Elimina. L'endpoint indice è stato eliminato.