Panduan ini memberikan informasi tentang metadata opsional untuk penyematan vektor. Vector Search memungkinkan Anda menentukan metadata untuk setiap embedding.
Metadata adalah informasi arbitrer yang tidak dapat difilter yang dapat disimpan Vector Search untuk setiap embedding. Hal ini dapat memberikan embedding dengan konteks yang berguna seperti:
Detail produk, seperti nama, harga, dan URL gambar.
Deskripsi, cuplikan, tanggal, dan atribusi untuk penyematan teks.
Informasi pengguna untuk penyematan pengguna.
Koordinat untuk penyematan tempat.
Fitur dan manfaat utama
Fitur dan manfaat penggunaan metadata meliputi:
Konteks dengan hasil: Informasi dapat diberikan langsung di hasil penelusuran Anda, sehingga tidak perlu melakukan penelusuran terpisah dan mengurangi latensi.
Struktur fleksibel: Metadata disediakan sebagai objek JSON, yang memungkinkan metadata ditentukan sebagai data bertingkat yang kompleks.
Tidak Dapat Difilter: Metadata penyematan vektor adalah untuk menyimpan dan mengambil informasi yang tidak dapat difilter yang berbeda dari
restricts
dannumeric_restricts
.Update yang efisien: Kolom
update_mask
memungkinkan Anda menentukan bahwa API hanya memperbarui metadata untuk menghindari pengiriman ulang vektor sematan.Informasi yang Tidak Terkait: Informasi yang tidak dapat difilter dapat dipisahkan dari atribut yang dapat difilter seperti
restricts
.Pengembangan yang disederhanakan: Respons penelusuran mencakup metadata yang terkait dengan penyematan vektor, sekaligus mengurangi kompleksitas yang diperlukan untuk fitur seperti menampilkan hasil penelusuran multimedia dan melakukan pasca-pemrosesan berbasis konteks.
Format data
Kolom embedding_metadata
opsional menyimpan objek JSON yang secara fleksibel mengaitkan informasi lengkap yang tidak dapat difilter dengan penyematan dalam Penelusuran Vektor. Hal ini dapat menyederhanakan aplikasi dengan menampilkan konteks bersama hasil dan memungkinkan update hanya metadata yang efisien menggunakan update_mask
untuk upsertDatapoints
API.
Contoh struktur titik data:
{
"id": "movie_001",
"embedding": [0.1, 0.2, ..., 0.3],
"sparse_embedding": {
"values": [-0.4, 0.2, -1.3],
"dimensions": [10, 20, 30]
},
"numeric_restricts": [{'namespace': 'year', 'value_int': 2022}],
"restricts": [{'namespace': 'genre', 'allow': ['action', 'comedy']}],
# --- New embedding_metadata field ---
"embedding_metadata": {
"title": "Ballet Train",
"runtime": {
"hours": 2,
"minutes": 6
},
"review_info": {
"review": "This movie is fun and...",
"rotten_potatoes_rating": 76
}
}
# ------------------------------------
},
# ... other data points
Menyerap data dengan embedding_metadata
Saat menambahkan titik data, Anda dapat menyertakan embedding_metadata
saat salah satu
tindakan berikut terjadi:
- Mengupload file (Cloud Storage):
- Gunakan format JSON atau AVRO.
CSV tidak didukung untuk
embedding_metadata
.
- Gunakan format JSON atau AVRO.
CSV tidak didukung untuk
- Menggunakan
upsertDatapoints
API:- Teruskan objek titik data (termasuk
embedding_metadata
) dalam payload permintaan API.
- Teruskan objek titik data (termasuk
Mengambil embedding_metadata
selama kueri
Saat melakukan penelusuran tetangga terdekat standar menggunakan
findNeighbors
API, kolom embedding_metadata
untuk setiap tetangga akan
disertakan secara otomatis dalam respons jika returnFullDatapoint
disetel ke True
.
curl
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://${PUBLIC_ENDPOINT_DOMAIN}/v1/projects/${PROJECT_ID}/locations/${LOCATION}/indexEndpoints/${INDEX_ENDPOINT_ID}:findNeighbors" \
-d '{deployedIndexId:"${DEPLOYED_INDEX_ID}", "queries":[{datapoint:{"featureVector":"<FEATURE_VECTOR>"}}], returnFullDatapoint:true}'
Mengupdate embedding_metadata
Perbarui metadata menggunakan upsertDatapoints
API dan update_mask
menggunakan nilai embedding_metadata
. Kolom update_mask
juga dapat
mencakup nilai mask tambahan. Untuk penggunaan mask kolom, lihat
Memperbarui metadata penyematan.
Kolom update_mask
membantu memastikan bahwa hanya embedding_metadata
yang diperbarui,
sehingga tidak perlu mengirim ulang kolom pembatasan dan penyematan.
Contoh berikut menunjukkan cara menentukan dan memperbarui metadata untuk membuat
IndexDatapoint
yang ditargetkan, menentukan update_mask
, dan memanggil
upsertDatapoints
.
curl
curl -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/indexes/${INDEX_ID}:upsertDatapoints \
-d '{
datapoints:[
{
datapoint_id: "'${DATAPOINT_ID_1}'",
feature_vector: [...],
embedding_metadata:{"title": "updated title", "rating": 4.5, "tags": ["updated", "reviewed"]
}, update_mask: "embedding_metadata"}'