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:
Menyiapkan sumber data BigQuery untuk mendukung embedding dengan menyertakan kolom
embedding
. Atau, sertakan kolom pemfilteran dan kepadatan. Untuk informasi selengkapnya, lihat Panduan persiapan sumber data.Buat instance toko online untuk Penyaluran online yang dioptimalkan.
Buat tampilan fitur yang mendukung penyematan dengan mengaitkan langsung sumber data BigQuery. Saat membuat tampilan fitur, Anda dapat menggunakan konfigurasi akun layanan default atau menentukan konfigurasi akun layanan (pratinjau).
Anda juga harus menentukan kolom
embedding
untuk tampilan fitur. Untuk mengetahui informasi selengkapnya tentang cara membuat tampilan fitur yang mendukung embedding, lihat Mengonfigurasi pengambilan vektor untuk tampilan fitur.
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 adalahfalse
. - 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 adalahfalse
. - 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 } ] } }