Agent Retrieval (sebelumnya Penelusuran Vektor 2.0) menyediakan VertexRanker untuk pengurutan ulang semantik, yang didukung oleh Ranking API.
Setelah Pengambilan Agen mengambil dan menggabungkan hasil kandidat (menggunakan Reciprocal Rank Fusion (RRF)), VertexRanker akan memberi skor ulang pada kandidat yang digabungkan berdasarkan kueri bahasa alami Anda menggunakan model semantik khusus.
Hal ini meningkatkan relevansi hasil k-teratas, terutama untuk kueri yang hanya penelusuran saja tidak dapat menemukan nuansa. Pengurutan ulang terjadi di sisi server dengan panggilan ke BatchSearchDataObjects. Tidak diperlukan koneksi sisi klien tambahan atau perjalanan pulang pergi tambahan.
VertexRanker
VertexRanker dikonfigurasi sebagai pengurut ulang untuk kolom combine.ranker objek BatchSearchDataObjectsRequest. Anda harus mengonfigurasi pengurut utama (hanya RRF yang didukung). Pengurut ulang berjalan setelah langkah penggabungan RRF dan mengganti output dengan daftar yang diberi skor ulang secara semantik.
Tabel berikut mencantumkan kolom konfigurasi pengurut.
| Kolom | Diperlukan | Deskripsi |
|---|---|---|
combine.ranker.rrf.weights |
Ya | Bobot untuk penggabungan RRF dari hasil penelusuran yang mendasarinya. |
combine.ranker.vertex_ranker.model |
Ya | Nama model peringkat. Nilai yang didukung: semantic-ranker-fast@latest, semantic-ranker-default@latest, semantic-ranker-fast-004, semantic-ranker-default-004. Lihat model Ranking API untuk mengetahui detail setiap model. |
combine.ranker.vertex_ranker.top_n |
Ya | Jumlah maksimum kandidat dari daftar gabungan yang akan dikirim ke pengurut. Nilai yang valid adalah dari 1 hingga 1000. |
combine.ranker.vertex_ranker.text_record_spec.query |
Ya | Kueri bahasa alami yang digunakan oleh pengurut untuk memberi skor pada data. |
combine.ranker.vertex_ranker.text_record_spec.title_template |
Ya | String template, misalnya, {title}, yang menentukan cara mengekstrak (membuat) judul untuk setiap data. Gunakan jalur titik untuk menentukan kolom data. |
combine.ranker.vertex_ranker.text_record_spec.content_template |
Ya | String template, misalnya, {body.text}, yang menentukan cara mengekstrak (membuat) konten utama untuk setiap data. Gunakan jalur titik untuk menentukan kolom data. |
combine.top_k |
Opsional | Jumlah akhir hasil yang akan ditampilkan setelah pengurutan ulang. Jumlah ini harus kurang dari atau sama dengan vertex_ranker.top_n dan kurang dari atau sama dengan 1000. |
Contoh berikut menunjukkan isi permintaan.
{
"searches": [
{ "semantic_search": { "search_text": "running shoes", "search_field": "embedding", "task_type": "RETRIEVAL_QUERY", "top_k": 50 } },
{ "text_search": { "search_text": "running shoes", "data_field_names": ["title"], "top_k": 50 } }
],
"combine": {
"top_k": 10,
"ranker": {
"rrf": { "weights": [1.0, 1.0] },
"vertex_ranker": {
"model": "semantic-ranker-fast@latest",
"top_n": 50,
"text_record_spec": {
"query": "running shoes",
"title_template": "{title}",
"content_template": "{body.text}"
}
}
}
}
}
Template menggunakan jalur titik ke kolom data Objek Data, misalnya, {title} atau {nested.field}. Kolom ini harus ada dalam skema Koleksi. Jika tidak, permintaan akan ditolak selama validasi. Jika Objek Data tidak memiliki kolom yang disediakan, server akan mengambil ulang data lengkap dari penyimpanan secara transparan sehingga template masih dapat diisi.
Kuota dan harga
VertexRanker di Pengambilan Agen menggunakan batas paket gratis dengan penagihan kelebihan berbasis penggunaan. Setiap project menerima batas penggunaan peringkat gratis per periode 30 hari. Penggunaan dalam batas ini tidak dikenai biaya. Harga Ranking API standar berlaku untuk project konsumen untuk penggunaan apa pun di luar batas ini.
Tabel berikut mencantumkan nilai kuota.
| Item | Nilai |
|---|---|
| Batas paket gratis | 80.000 unit peringkat per project konsumen per periode 30 hari. |
| Kelebihan | Ditagih dengan harga Ranking API standar di project konsumen. |
| Data maksimum per panggilan pengurutan ulang | 1000 (top_n harus berada dalam rentang [1, 1000] dan top_k <= top_n). |
Mencapai batas paket gratis tidak akan menyebabkan permintaan Anda gagal. Setelah batas 80.000 unit peringkat habis, penggunaan VertexRanker berikutnya akan terus berhasil dan ditagih sebagai kelebihan. Batas akan direset 30 hari sejak waktu penggunaan pertama Anda.
Unit peringkat dihitung dari jumlah data yang dikirim ke pengurut dan ukuran template judul serta kontennya, menggunakan akuntansi yang sama dengan Ranking API mandiri. Lihat harga Ranking API untuk mengetahui detail selengkapnya.
Sebelum dapat menggunakan VertexRanker, Discovery Engine harus diaktifkan di project konsumen. Untuk mengetahui informasi selengkapnya, lihat Kondisi kegagalan.
Penanganan kegagalan dan peringatan
VertexRanker adalah pengurut ulang upaya terbaik. Jika panggilan peringkat gagal, RPC BatchSearchDataObjects akan tetap berhasil dan menampilkan hasil gabungan RRF yang dipangkas ke top_k. Kegagalan dilaporkan di kolom search_response_metadata.warnings dalam respons. Kode status lengkap dari Ranking API akan dipertahankan. Kode peringatan untuk status yang tidak terduga adalah
UNAVAILABLE dengan pesan peringatan:
"Reranking is temporarily unavailable. Returning fused (RRF) results without
semantic reranking."
Kondisi kegagalan
Seluruh RPC BatchSearchDataObjects gagal dengan FAILED_PRECONDITION (tidak ada penggantian ke RRF) dalam kasus berikut.
- Discovery Engine API tidak diaktifkan — Ranking API menampilkan
FAILED_PRECONDITIONdengan pesanDiscovery Engine API is not enabled for the consumer project /<N/>. Please enable the API and try again."Perbaikan: aktifkan Discovery Engine API di project konsumen.
Pelanggan harus mengaktifkan Discovery Engine untuk project konsumen agar pengurutan ulang dapat dilakukan.
Tabel berikut mencantumkan kode peringatan, penyebab umum yang menghasilkan peringatan, dan pesan yang menjelaskan peringatan.
| Kode Peringatan | Penyebab Umum | Pesan Peringatan |
|---|---|---|
RESOURCE_EXHAUSTED |
Melebihi kuota Ranking API di project konsumen. Catatan: melebihi batas 80.000 unit peringkat tidak akan menyebabkan peringatan ini; kelebihan akan ditagih. | <Quota exceeded message>; RankService.Rank call failed for consumer project <N> with request query: <query> and <model>: semantic-ranker-fast@latest number of records: <N> |
DEADLINE_EXCEEDED |
Ranker.Rank tidak selesai dalam batas waktu permintaan. |
<deadline-exceeded message from Ranker.Rank>; RankService.Rank call failed for consumer project <N> with request query: <query> and <model>: semantic-ranker-fast@latest number of records: <N> |
UNAVAILABLE |
Ranker.Rank menampilkan UNAVAILABLE, atau menampilkan kode yang tidak dipertahankan (misalnya, INTERNAL) yang diciutkan ke UNAVAILABLE. |
Jika kode yang mendasarinya adalah UNAVAILABLE: "RankService.Rank call failed for consumer project... Jika tidak: "Reranking is temporarily unavailable. Returning fused (RRF) results without semantic reranking." |
FAILED_PRECONDITION |
FAILED_PRECONDITION apa pun yang ditampilkan oleh Ranking API. |
RankService.Rank call failed for consumer project <N> with request query: <query> and <model>: semantic-ranker-fast@latest number of records: <N> |
CANCELLED |
Pemanggil membatalkan RPC BatchSearchDataObjects sebelum pengurutan ulang selesai. |
<cancellation message from the cancelled RankService.Rank RPC>; RankService.Rank call failed for consumer project <N> with request query: <query> and <model>: semantic-ranker-fast@latest number of records: <N> |