Men-deploy dan mengelola endpoint indeks publik

Ada beberapa langkah yang diperlukan sebelum Anda dapat mengkueri indeks:

  1. Buat IndexEndpoint jika perlu, atau gunakan kembali IndexEndpoint yang sudah ada.
  2. Dapatkan ID IndexEndpoint.
  3. Deploy indeks ke IndexEndpoint.

Membuat IndexEndpoint

gcloud

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • INDEX_ENDPOINT_NAME: Nama tampilan endpoint indeks.
  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.

Jalankan perintah berikut:

Linux, macOS, atau Cloud Shell

gcloud ai index-endpoints create \
    --display-name=INDEX_ENDPOINT_NAME \
    --public-endpoint-enabled \
    --region=LOCATION \
    --project=PROJECT_ID

Windows (PowerShell)

gcloud ai index-endpoints create `
    --display-name=INDEX_ENDPOINT_NAME `
    --public-endpoint-enabled `
    --region=LOCATION `
    --project=PROJECT_ID

Windows (cmd.exe)

gcloud ai index-endpoints create ^
    --display-name=INDEX_ENDPOINT_NAME ^
    --public-endpoint-enabled ^
    --region=LOCATION ^
    --project=PROJECT_ID

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • INDEX_ENDPOINT_NAME: Nama tampilan endpoint indeks.
  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.
  • PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.

Metode HTTP dan URL:

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

Meminta isi JSON:

{
 "display_name": "INDEX_ENDPOINT_NAME",
 "publicEndpointEnabled": "true"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "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"
    }
  }
}
Anda dapat melakukan polling untuk status operasi hingga respons menyertakan "done": true.

Terraform

Contoh berikut menggunakan resource Terraform vertex_ai_index_endpoint untuk membuat endpoint indeks.

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

resource "google_vertex_ai_index_endpoint" "default" {
  display_name            = "sample-endpoint"
  description             = "A sample index endpoint with a public endpoint"
  region                  = "us-central1"
  public_endpoint_enabled = true
}

# Cloud Storage bucket name must be unique
resource "random_id" "default" {
  byte_length = 8
}

# Create a Cloud Storage bucket
resource "google_storage_bucket" "bucket" {
  name                        = "vertex-ai-index-bucket-${random_id.default.hex}"
  location                    = "us-central1"
  uniform_bucket_level_access = true
}

# Create index content
resource "google_storage_bucket_object" "data" {
  name    = "contents/data.json"
  bucket  = google_storage_bucket.bucket.name
  content = <<EOF
{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
{"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
EOF
}

resource "google_vertex_ai_index" "default" {
  region       = "us-central1"
  display_name = "sample-index-batch-update"
  description  = "A sample index for batch update"
  labels = {
    foo = "bar"
  }

  metadata {
    contents_delta_uri = "gs://${google_storage_bucket.bucket.name}/contents"
    config {
      dimensions                  = 2
      approximate_neighbors_count = 150
      distance_measure_type       = "DOT_PRODUCT_DISTANCE"
      algorithm_config {
        tree_ah_config {
          leaf_node_embedding_count    = 500
          leaf_nodes_to_search_percent = 7
        }
      }
    }
  }
  index_update_method = "BATCH_UPDATE"

  timeouts {
    create = "2h"
    update = "1h"
  }
}

Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.

def vector_search_create_index_endpoint(
    project: str, location: str, display_name: str
) -> None:
    """Create a vector search index endpoint.

    Args:
        project (str): Required. Project ID
        location (str): Required. The region name
        display_name (str): Required. The index endpoint display name
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location)

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

    print(index_endpoint.name)

Konsol

Gunakan petunjuk ini untuk membuat endpoint indeks.

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor

    Buka Cari Vektor

  2. Daftar indeks aktif Anda akan ditampilkan.
  3. Di bagian atas halaman, pilih tab Index endpoints. Endpoint indeks Anda akan ditampilkan.
  4. Klik Create new index endpoint. Panel Buat endpoint indeks baru akan terbuka.
  5. Masukkan nama tampilan untuk endpoint indeks.
  6. Di kolom Region, pilih region dari drop-down.
  7. Di kolom Access, pilih Standard.
  8. Klik Create.

Men-deploy indeks ke endpoint

gcloud

Contoh ini menggunakan perintah gcloud ai index-endpoints deploy-index.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • INDEX_ENDPOINT_ID: ID endpoint indeks.
  • DEPLOYED_INDEX_ID: String yang ditentukan pengguna untuk mengidentifikasi indeks yang di-deploy secara unik. Nama ini harus diawali dengan huruf dan hanya berisi huruf, angka, atau garis bawah. Lihat DeployedIndex.id untuk panduan format.
  • DEPLOYED_INDEX_ENDPOINT_NAME: Nama tampilan endpoint indeks yang di-deploy.
  • INDEX_ID: ID indeks.
  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.

Jalankan perintah berikut:

Linux, macOS, atau 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

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • INDEX_ENDPOINT_ID: ID endpoint indeks.
  • DEPLOYED_INDEX_ID: String yang ditentukan pengguna untuk mengidentifikasi indeks yang di-deploy secara unik. Nama ini harus diawali dengan huruf dan hanya berisi huruf, angka, atau garis bawah. Lihat DeployedIndex.id untuk panduan format.
  • DEPLOYED_INDEX_ENDPOINT_NAME: Nama tampilan endpoint indeks yang di-deploy.
  • INDEX_ID: ID indeks.
  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.
  • PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

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

Terraform

Contoh berikut menggunakan resource Terraform vertex_ai_index_endpoint_deployed_index untuk membuat endpoint indeks yang di-deploy.

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

provider "google" {
  region = "us-central1"
}

resource "google_vertex_ai_index_endpoint_deployed_index" "default" {
  depends_on        = [google_vertex_ai_index_endpoint.default]
  index_endpoint    = google_vertex_ai_index_endpoint.default.id
  index             = google_vertex_ai_index.default.id
  deployed_index_id = "deployed_index_id"
}

resource "google_vertex_ai_index_endpoint" "default" {
  display_name            = "sample-endpoint"
  description             = "A sample index endpoint with a public endpoint"
  region                  = "us-central1"
  public_endpoint_enabled = true
}

# Cloud Storage bucket name must be unique
resource "random_id" "default" {
  byte_length = 8
}

# Create a Cloud Storage bucket
resource "google_storage_bucket" "bucket" {
  name                        = "vertex-ai-index-bucket-${random_id.default.hex}"
  location                    = "us-central1"
  uniform_bucket_level_access = true
}

# Create index content
resource "google_storage_bucket_object" "data" {
  name    = "contents/data.json"
  bucket  = google_storage_bucket.bucket.name
  content = <<EOF
{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
{"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
EOF
}

resource "google_vertex_ai_index" "default" {
  region       = "us-central1"
  display_name = "sample-index-batch-update"
  description  = "A sample index for batch update"
  labels = {
    foo = "bar"
  }

  metadata {
    contents_delta_uri = "gs://${google_storage_bucket.bucket.name}/contents"
    config {
      dimensions                  = 2
      approximate_neighbors_count = 150
      distance_measure_type       = "DOT_PRODUCT_DISTANCE"
      algorithm_config {
        tree_ah_config {
          leaf_node_embedding_count    = 500
          leaf_nodes_to_search_percent = 7
        }
      }
    }
  }
  index_update_method = "BATCH_UPDATE"

  timeouts {
    create = "2h"
    update = "1h"
  }
}

Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.

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)

Konsol

Gunakan petunjuk ini untuk men-deploy indeks ke endpoint.

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor

    Buka Cari Vektor

  2. Daftar indeks aktif Anda akan ditampilkan.
  3. Pilih nama indeks yang ingin Anda deploy. Halaman detail indeks akan terbuka.
  4. Dari halaman detail indeks, klik Deploy ke endpoint. Panel deployment indeks akan terbuka.
  5. Masukkan nama tampilan - nama ini berfungsi sebagai ID dan tidak dapat diperbarui.
  6. Dari drop-down Endpoint, pilih endpoint tempat Anda ingin men-deploy indeks ini. Catatan: Endpoint tidak tersedia jika indeks sudah di-deploy ke endpoint tersebut.
  7. Opsional: Di kolom Jenis mesin, pilih memori standar atau memori tinggi.
  8. Opsional. Pilih Aktifkan penskalaan otomatis untuk mengubah ukuran jumlah node secara otomatis berdasarkan permintaan workload Anda. Jumlah default replika adalah 2 jika penskalaan otomatis dinonaktifkan.
  9. Klik Deploy untuk men-deploy indeks ke endpoint. Catatan: Perlu waktu sekitar 30 menit untuk di-deploy.

Mendapatkan nama domain indeks

Setelah indeks di-deploy, Anda memerlukan nama domain agar dapat menggunakan indeks untuk kueri online. Nilai tersedia di bagian publicEndpointDomainName.

curl -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`"  ${ENDPOINT}/v1/projects/${PROJECT_ID}/locations/${REGION}/indexEndpoints/${INDEX_ENDPOINT_ID}

Contoh Respons

{
  "name": "projects/181224308459/locations/us-central1/indexEndpoints/3370566089086861312",
  "displayName": "public-endpoint-test1",
  "deployedIndexes": [
    {
      "id": "test_index_public1",
      "index": "projects/181224308459/locations/us-central1/indexes/7733428228102029312",
      "displayName": "test_index_public1",
      "createTime": "2023-02-08T23:19:58.026843Z",
      "indexSyncTime": "2023-02-09T05:26:19.309417Z",
      "automaticResources": {
        "minReplicaCount": 2,
        "maxReplicaCount": 2
      },
      "deploymentGroup": "default"
    }
  ],
  "etag": "AMEw9yNkXQcSke8iqW9SYxfhj_hT9GCwPt1XlxVwJRSCxiXOYnG4CKrZM_X0oH-XN8tR",
  "createTime": "2023-02-08T22:44:20.285382Z",
  "updateTime": "2023-02-08T22:44:26.515162Z",
  "publicEndpointDomainName": "1957880287.us-central1-181224308459.vdb.vertexai.goog"
}

Mengaktifkan penskalaan otomatis

Vector Search mendukung penskalaan otomatis, yang dapat secara otomatis mengubah ukuran jumlah node berdasarkan permintaan workload Anda. Saat permintaan tinggi, node ditambahkan ke node pool, yang tidak akan melebihi ukuran maksimum yang Anda tetapkan. Jika permintaan rendah, node pool akan diskalakan kembali ke ukuran minimum yang Anda tentukan. Anda dapat memeriksa node aktual yang digunakan dan perubahannya dengan memantau replika saat ini.

Untuk mengaktifkan penskalaan otomatis, tentukan maxReplicaCount dan minReplicaCount saat men-deploy indeks Anda:

gcloud

Contoh berikut menggunakan perintah gcloud ai index-endpoints deploy-index.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • INDEX_ENDPOINT_ID: ID endpoint indeks.
  • DEPLOYED_INDEX_ID: String yang ditentukan pengguna untuk mengidentifikasi indeks yang di-deploy secara unik. Nama ini harus diawali dengan huruf dan hanya berisi huruf, angka, atau garis bawah. Lihat DeployedIndex.id untuk panduan format.
  • DEPLOYED_INDEX_NAME: Nama tampilan indeks yang di-deploy.
  • INDEX_ID: ID indeks.
  • MIN_REPLICA_COUNT: Jumlah minimum replika mesin tempat indeks yang di-deploy akan selalu di-deploy. Jika ditentukan, nilai harus sama dengan atau lebih besar dari 1.
  • MAX_REPLICA_COUNT: Jumlah maksimum replika mesin tempat indeks yang di-deploy dapat di-deploy.
  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.

Jalankan perintah berikut:

Linux, macOS, atau 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

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • INDEX_ENDPOINT_ID: ID endpoint indeks.
  • DEPLOYED_INDEX_ID: String yang ditentukan pengguna untuk mengidentifikasi indeks yang di-deploy secara unik. Nama ini harus diawali dengan huruf dan hanya berisi huruf, angka, atau garis bawah. Lihat DeployedIndex.id untuk panduan format.
  • DEPLOYED_INDEX_NAME: Nama tampilan indeks yang di-deploy.
  • INDEX_ID: ID indeks.
  • MIN_REPLICA_COUNT: Jumlah minimum replika mesin tempat indeks yang di-deploy akan selalu di-deploy. Jika ditentukan, nilai harus sama dengan atau lebih besar dari 1.
  • MAX_REPLICA_COUNT: Jumlah maksimum replika mesin tempat indeks yang di-deploy dapat di-deploy.
  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.
  • PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

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

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.

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

Konsol

Anda hanya dapat mengaktifkan penskalaan otomatis dari konsol selama deployment indeks.

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor

    Buka Cari Vektor

  2. Daftar indeks aktif Anda akan ditampilkan.
  3. Pilih nama indeks yang ingin Anda deploy. Halaman detail indeks akan terbuka.
  4. Dari halaman detail indeks, klik Deploy ke endpoint. Panel deployment indeks akan terbuka.
  5. Masukkan nama tampilan - nama ini berfungsi sebagai ID dan tidak dapat diperbarui.
  6. Dari drop-down Endpoint, pilih endpoint tempat Anda ingin men-deploy indeks ini. Catatan: Endpoint tidak tersedia jika indeks sudah di-deploy ke endpoint tersebut.
  7. Opsional: Di kolom Jenis mesin, pilih memori standar atau memori tinggi.
  8. Opsional. Pilih Aktifkan penskalaan otomatis untuk mengubah ukuran jumlah node secara otomatis berdasarkan permintaan workload Anda. Jumlah default replika adalah 2 jika penskalaan otomatis dinonaktifkan.
  • Jika minReplicaCount dan maxReplicaCount tidak ditetapkan, keduanya akan ditetapkan ke 2 secara default.
  • Jika hanya maxReplicaCount yang ditetapkan, minReplicaCount akan ditetapkan ke 2 secara default.
  • Jika hanya minReplicaCount yang ditetapkan, maxReplicaCount akan ditetapkan sama dengan minReplicaCount.

Mengubah DeployedIndex

Anda dapat menggunakan MutateDeployedIndex API untuk memperbarui resource deployment (misalnya, minReplicaCount dan maxReplicaCount) dari indeks yang sudah di-deploy.

  • Pengguna tidak diizinkan untuk mengubah machineType setelah indeks di-deploy.
  • Jika maxReplicaCount tidak ditentukan dalam permintaan, DeployedIndex akan tetap menggunakan maxReplicaCount yang ada.

gcloud

Contoh berikut menggunakan perintah gcloud ai index-endpoints mutate-deployed-index.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • INDEX_ENDPOINT_ID: ID endpoint indeks.
  • DEPLOYED_INDEX_ID: String yang ditentukan pengguna untuk mengidentifikasi indeks yang di-deploy secara unik. Nama ini harus diawali dengan huruf dan hanya berisi huruf, angka, atau garis bawah. Lihat DeployedIndex.id untuk panduan format.
  • MIN_REPLICA_COUNT: Jumlah minimum replika mesin tempat indeks yang di-deploy akan selalu di-deploy. Jika ditentukan, nilai harus sama dengan atau lebih besar dari 1.
  • MAX_REPLICA_COUNT: Jumlah maksimum replika mesin tempat indeks yang di-deploy dapat di-deploy.
  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.

Jalankan perintah berikut:

Linux, macOS, atau 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

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • INDEX_ENDPOINT_ID: ID endpoint indeks.
  • DEPLOYED_INDEX_ID: String yang ditentukan pengguna untuk mengidentifikasi indeks yang di-deploy secara unik. Nama ini harus diawali dengan huruf dan hanya berisi huruf, angka, atau garis bawah. Lihat DeployedIndex.id untuk panduan format.
  • MIN_REPLICA_COUNT: Jumlah minimum replika mesin tempat indeks yang di-deploy akan selalu di-deploy. Jika ditentukan, nilai harus sama dengan atau lebih besar dari 1.
  • MAX_REPLICA_COUNT: Jumlah maksimum replika mesin tempat indeks yang di-deploy dapat di-deploy.
  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.
  • PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

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

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi penyedia Terraform.

provider "google" {
  region = "us-central1"
}

resource "google_vertex_ai_index_endpoint_deployed_index" "default" {
  depends_on        = [google_vertex_ai_index_endpoint.default]
  index_endpoint    = google_vertex_ai_index_endpoint.default.id
  index             = google_vertex_ai_index.default.id
  deployed_index_id = "deployed_index_for_mutate"
  # This example assumes the deployed index endpoint's resources configuration
  # differs from the values specified below. Terraform will mutate the deployed
  # index endpoint's resource configuration to match.
  automatic_resources {
    min_replica_count = 3
    max_replica_count = 5
  }
}

resource "google_vertex_ai_index_endpoint" "default" {
  display_name            = "sample-endpoint"
  description             = "A sample index endpoint with a public endpoint"
  region                  = "us-central1"
  public_endpoint_enabled = true
}

# Cloud Storage bucket name must be unique
resource "random_id" "default" {
  byte_length = 8
}

# Create a Cloud Storage bucket
resource "google_storage_bucket" "bucket" {
  name                        = "vertex-ai-index-bucket-${random_id.default.hex}"
  location                    = "us-central1"
  uniform_bucket_level_access = true
}

# Create index content
resource "google_storage_bucket_object" "data" {
  name    = "contents/data.json"
  bucket  = google_storage_bucket.bucket.name
  content = <<EOF
{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
{"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
EOF
}

resource "google_vertex_ai_index" "default" {
  region       = "us-central1"
  display_name = "sample-index-batch-update"
  description  = "A sample index for batch update"
  labels = {
    foo = "bar"
  }

  metadata {
    contents_delta_uri = "gs://${google_storage_bucket.bucket.name}/contents"
    config {
      dimensions                  = 2
      approximate_neighbors_count = 150
      distance_measure_type       = "DOT_PRODUCT_DISTANCE"
      algorithm_config {
        tree_ah_config {
          leaf_node_embedding_count    = 500
          leaf_nodes_to_search_percent = 7
        }
      }
    }
  }
  index_update_method = "BATCH_UPDATE"

  timeouts {
    create = "2h"
    update = "1h"
  }
}

Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.

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

Setelan deployment yang memengaruhi performa

Setelan deployment berikut dapat memengaruhi latensi, ketersediaan, dan biaya saat menggunakan Vector Search. Panduan ini berlaku untuk sebagian besar kasus. Namun, selalu bereksperimen dengan konfigurasi untuk memastikan konfigurasi tersebut berfungsi untuk kasus penggunaan Anda.

Setelan Dampak performa
Jenis mesin

Pemilihan hardware memiliki interaksi langsung dengan ukuran shard yang dipilih. Bergantung pada pilihan shard yang Anda tentukan pada waktu pembuatan indeks, setiap jenis mesin menawarkan kompromi antara performa dan biaya.

Lihat halaman harga untuk menentukan hardware yang tersedia dan harganya. Secara umum, performa meningkat dalam urutan berikut:

  • E2 standard
  • E2 highmem
  • N1 standard
  • N2D standard
Jumlah replika minimum

minReplicaCount mencadangkan kapasitas minimum untuk ketersediaan dan latensi guna memastikan sistem tidak mengalami masalah cold start saat traffic diskalakan dengan cepat dari level rendah.

Jika Anda memiliki beban kerja yang turun ke level rendah, lalu meningkat dengan cepat ke level yang lebih tinggi, pertimbangkan untuk menetapkan minReplicaCount ke angka yang dapat mengakomodasi lonjakan traffic awal.

Jumlah replika maksimum maxReplicaCount terutama memungkinkan Anda mengontrol biaya penggunaan. Anda dapat memilih untuk mencegah peningkatan biaya di luar nilai minimum tertentu, dengan konsekuensi mengizinkan peningkatan latensi dan mengurangi ketersediaan.

Mencantumkan IndexEndpoints

Untuk mencantumkan resource IndexEndpoint dan melihat informasi instance DeployedIndex yang terkait, jalankan kode berikut:

gcloud

Contoh berikut menggunakan perintah gcloud ai index-endpoints list.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.

Jalankan perintah berikut:

Linux, macOS, atau 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

Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:

  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.
  • PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.

Metode HTTP dan URL:

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

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

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

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.

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

Konsol

Gunakan petunjuk ini untuk melihat daftar endpoint indeks Anda.

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor

    Buka Vector Search

  2. Di bagian atas halaman, pilih tab Endpoint indeks.
  3. Semua endpoint indeks yang ada akan ditampilkan.

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi untuk IndexEndpoint.

Membatalkan deployment indeks

Untuk membatalkan deployment indeks dari endpoint, jalankan kode berikut:

gcloud

Contoh berikut menggunakan perintah gcloud ai index-endpoints undeploy-index.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • INDEX_ENDPOINT_ID: ID endpoint indeks.
  • DEPLOYED_INDEX_ID: String yang ditentukan pengguna untuk mengidentifikasi indeks yang di-deploy secara unik. Nama ini harus diawali dengan huruf dan hanya berisi huruf, angka, atau garis bawah. Lihat DeployedIndex.id untuk panduan format.
  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.

Jalankan perintah berikut:

Linux, macOS, atau 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

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • INDEX_ENDPOINT_ID: ID endpoint indeks.
  • DEPLOYED_INDEX_ID: String yang ditentukan pengguna untuk mengidentifikasi indeks yang di-deploy secara unik. Nama ini harus diawali dengan huruf dan hanya berisi huruf, angka, atau garis bawah. Lihat DeployedIndex.id untuk panduan format.
  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.
  • PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.

Metode HTTP dan URL:

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

Meminta isi JSON:

{
 "deployed_index_id": "DEPLOYED_INDEX_ID"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

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

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.

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

Konsol

Gunakan petunjuk ini untuk membatalkan deployment indeks dari endpoint.

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor

    Buka Cari Vektor

  2. Daftar indeks aktif Anda akan ditampilkan.
  3. Pilih indeks yang ingin Anda batalkan deployment-nya. Halaman detail indeks akan terbuka.
  4. Di bagian Indeks yang di-deploy, tentukan versi indeks yang ingin dibatalkan deployment-nya.
  5. Klik menu opsi  yang berada di baris yang sama dengan indeks dan pilih Batalkan deployment.
  6. Layar konfirmasi akan terbuka. Klik Batalkan deployment. Catatan: Diperlukan waktu hingga 30 menit untuk membatalkan deployment.

Menghapus IndexEndpoint

Sebelum menghapus IndexEndpoint, Anda harus undeploy semua indeks yang di-deploy ke endpoint.

gcloud

Contoh berikut menggunakan perintah gcloud ai index-endpoints delete.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • INDEX_ENDPOINT_ID: ID endpoint indeks.
  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.

Jalankan perintah berikut:

Linux, macOS, atau 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

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • INDEX_ENDPOINT_ID: ID endpoint indeks.
  • LOCATION: Region tempat Anda menggunakan Vertex AI.
  • PROJECT_ID: project ID Google Cloud Anda.
  • PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.

Metode HTTP dan URL:

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

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

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

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.

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)

Konsol

Gunakan petunjuk ini untuk menghapus endpoint indeks.

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor

    Buka Vector Search

  2. Di bagian atas halaman, pilih tab Endpoint indeks.
  3. Semua endpoint indeks yang ada akan ditampilkan.
  4. Klik menu opsi  yang berada di baris yang sama dengan indeks yang ingin Anda hapus, lalu pilih Hapus.
  5. Layar konfirmasi akan terbuka. Klik Hapus. Endpoint indeks Anda sekarang dihapus.