Melakukan penelusuran menggunakan embedding

Untuk instance toko online yang dibuat untuk Penyaluran online yang dioptimalkan, Anda dapat melakukan penelusuran kesamaan vektor untuk mengambil daftar entity yang serupa atau terkait secara semantik, yang juga disebut sebagai perkiraan terdekat. Anda dapat menelusuri berdasarkan ID entity atau embedding.

Untuk mencari perkiraan terdekat, Anda harus melakukan langkah-langkah berikut terlebih dahulu:

Halaman ini menjelaskan cara melakukan tindakan berikut:

Sebelum memulai

Lakukan autentikasi ke Vertex AI, kecuali jika Anda telah melakukannya.

Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

    Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.

Mengambil nama domain endpoint publik untuk toko online

Saat Anda membuat instance penyimpanan online untuk Penyaluran online yang dioptimalkan, Vertex AI Feature Store akan membuat nama domain endpoint publik untuk penyimpanan online. Sebelum dapat mulai menelusuri tetangga terdekat dari tampilan fitur di toko online, Anda harus mengambil nama domain endpoint publik dari detail toko online.

Gunakan contoh berikut untuk mengambil detail instance toko online.

REST

Untuk mengambil detail resource FeatureOnlineStore di project Anda, kirim permintaan GET menggunakan metode featureOnlineStores.get.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION_ID: Region tempat toko online berada, seperti us-central1.
  • PROJECT_ID: Project ID Anda.
  • FEATUREONLINESTORE_NAME: Nama instance toko online.

Metode HTTP dan URL:

GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME"

PowerShell

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME" | Select-Object -Expand Content

Anda akan melihat respons JSON seperti berikut:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME_1",
  "createTime": "2023-09-06T23:25:04.256314Z",
  "updateTime": "2023-09-06T23:25:04.256314Z",
  "etag": "AMEw9yMgoV0bAsYuKwVxz4Y7lOmxV7riNVHg217KaQAKORqvdqGCrQ1DIt8yHgoGXf8=",
  "state": "STABLE",
  "dedicatedServingEndpoint": {
    "publicEndpointDomainName": "PUBLIC_ENDPOINT_DOMAIN_NAME"
  },
  "optimized": {}
}

Anda memerlukan PUBLIC_ENDPOINT_DOMAIN_NAME dari respons untuk mengambil perkiraan tetangga terdekat di langkah berikut.

Mengambil perkiraan embedding terdekat

Gunakan contoh berikut agar dapat menggunakan embedding untuk melakukan penelusuran entity yang terkait secara semantik dengan menentukan embedding.

REST

Untuk menelusuri embedding terdekat, kirim permintaan POST menggunakan metode featureViews.searchNearestEntities.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PUBLIC_ENDPOINT_DOMAIN_NAME: Nama domain endpoint publik untuk instance toko online yang Anda ambil menggunakan metode featureOnlineStores.get.
  • PROJECT_ID: Project ID Anda.
  • LOCATION_ID: Region tempat instance toko online berada, seperti us-central1.
  • FEATUREONLINESTORE_NAME: Nama instance toko online yang berisi tampilan fitur, tempat Anda ingin menelusuri perkiraan kecocokan terdekat.
  • FEATUREVIEW_NAME: Nama tampilan fitur tempat Anda ingin menelusuri perkiraan kecocokan terdekat.
  • EMBEDDING: Embedding yang ingin Anda ambil perkiraan kecocokan terdekatnya. Embedding diwakili oleh array nilai double.
  • RETURN_FULL_ENTITY: Opsional: Tentukan apakah Anda ingin menyertakan atau mengecualikan fitur untuk entity dalam respons. Untuk menyertakan fitur serta entity dalam respons, masukkan true. Nilai defaultnya adalah false.
  • NEIGHBOR_COUNT: Jumlah perkiraan terdekat yang ingin Anda ambil.

Metode HTTP dan URL:

POST https://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities

Isi JSON permintaan:

{
  "query": {
    "embedding": {
      "value": EMBEDDING
    },
    "neighbor_count": NEIGHBOR_COUNT
  },
  "return_full_entity": RETURN_FULL_ENTITY
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities" | Select-Object -Expand Content

Anda akan menerima respons JSON yang mirip dengan berikut ini:

{
  "nearestNeighbors": {
    "neighbors": [
    {
      "entityId": "305281",
      "distance": -41.115459442138672
    },
    {
      "entityId": "80280",
      "distance": -38.703567504882812
    },
    {
      "entityId": "80280",
      "distance":-38.703567504882812
    },
    {
      "entityId": "903779",
      "distance": -38.214759826660156
    },
    {
      "entityId": "1008145",
      "distance": -36.271354675292969
    },
    {
      "entityId": "606431",
      "distance": -34.791431427001953
    } ]
  }
}

Mengambil perkiraan entity terdekat

Gunakan contoh berikut agar dapat menggunakan embedding untuk melakukan penelusuran entity yang terkait secara semantik dengan menentukan ID entity.

REST

Untuk menelusuri ID entity terdekat, kirim permintaan POST menggunakan metode featureViews.searchNearestEntities.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PUBLIC_ENDPOINT_DOMAIN_NAME: Nama domain endpoint publik untuk instance toko online yang Anda ambil menggunakan metode featureOnlineStores.get.
  • PROJECT_ID: Project ID Anda.
  • LOCATION_ID: Region tempat instance toko online berada, seperti us-central1.
  • FEATUREONLINESTORE_NAME: Nama instance toko online yang berisi tampilan fitur, tempat Anda ingin menelusuri perkiraan kecocokan terdekat.
  • FEATUREVIEW_NAME: Nama tampilan fitur tempat Anda ingin menelusuri perkiraan kecocokan terdekat.
  • ENTITY_ID: ID entity dari entity yang ingin Anda ambil perkiraan kecocokan terdekatnya.
  • RETURN_FULL_ENTITY: Opsional: Tentukan apakah Anda ingin menyertakan atau mengecualikan fitur untuk entity dalam respons. Untuk menyertakan fitur serta entity dalam respons, masukkan true. Nilai defaultnya adalah false.
  • NEIGHBOR_COUNT: Jumlah perkiraan terdekat yang ingin Anda ambil.

Metode HTTP dan URL:

POST https://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities

Isi JSON permintaan:

{
  "query": {
    "entity_id": ENTITY_ID,
    "neighbor_count": NEIGHBOR_COUNT
  },
  "return_full_entity": RETURN_FULL_ENTITY
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities" | Select-Object -Expand Content

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

{
  "nearestNeighbors": {
    "neighbors": [
    {
      "entityId": "305281",
      "distance": -41.115459442138672
    },
    {
      "entityId": "80280",
      "distance": -38.703567504882812
    },
    {
      "entityId": "80280",
      "distance":-38.703567504882812
    },
    {
      "entityId": "903779",
      "distance": -38.214759826660156
    },
    {
      "entityId": "1008145",
      "distance": -36.271354675292969
    },
    {
      "entityId": "606431",
      "distance": -34.791431427001953
    } ]
  }
}