Halaman ini menjelaskan cara memberi peringkat atau skor pada hasil penelusuran untuk aplikasi menggunakan endpoint model peringkat Vertex AI yang terdaftar di pengelolaan endpoint Model.
Vertex AI ranking API mengambil daftar dokumen dan memberi peringkat
pada dokumen tersebut berdasarkan relevansi dokumen dengan kueri tertentu (string penelusuran). Saat Anda menggunakan fungsi ai.rank()
, fungsi ini akan menampilkan skor untuk mengukur tingkat ketepatan dokumen dalam menjawab kueri tertentu.
Untuk menggunakan petunjuk di halaman ini, Anda harus memiliki pemahaman tentang AlloyDB untuk PostgreSQL dan memahami konsep AI generatif.
AlloyDB mencadangkan skema ai
, dan mencoba membuat skema ini saat Anda menginstal ekstensi google_ml_integration
. Jika pembuatan skema gagal, gunakan fungsi dengan nama yang sama dalam skema google_ml
.
Sebelum memulai
Minta akses untuk mengurutkan hasil penelusuran Anda menggunakan model peringkat dan tunggu hingga Anda menerima konfirmasi pengaktifan sebelum mengikuti petunjuk di halaman ini.
Pastikan model peringkat Vertex AI terdaftar. Untuk mengetahui informasi selengkapnya, lihat Model peringkat Vertex AI.
Mengurutkan hasil penelusuran
Kueri SQL berikut menunjukkan cara memberi peringkat pada hasil penelusuran Anda :
SELECT
ai.rank(
model_id => 'MODEL_ID',
search_string => 'SEARCH_STRING',
documents => ARRAY['DOCUMENT_1', 'DOCUMENT_2', 'DOCUMENT_3']);
Ganti kode berikut:
Parameter | Deskripsi |
---|---|
MODEL_ID |
ID unik untuk endpoint model yang Anda tentukan. |
SEARCH_STRING |
String penelusuran yang digunakan untuk menentukan peringkat atau skor data. |
DOCUMENTS |
String unik yang mengidentifikasi data. |
Contoh
Untuk memberi peringkat pada hasil penelusuran menggunakan endpoint peringkat terdaftar, jalankan kueri berikut:
SELECT index, score
FROM
ai.rank(
model_id => 'semantic-ranker-512-002',
search_string => 'AlloyDB is a PostgreSQL compatible AI database that is ready for production.',
documents =>
ARRAY[
'Alloys are made from combination of metals',
'The best enterprise-ready PostgreSQL database.',
'You can feel the heat in Alloy apartments.']);
Responsnya adalah tabel yang menampilkan setiap dokumen dan skor berdasarkan relevansinya dengan kueri penelusuran.Berikut adalah contoh responsnya:
index | score
-------+------------
2 | 0.33
1 | 0.28
3 | 0.16
(3 rows)
Pertimbangkan contoh database AlloyDB dengan daftar deskripsi ulasan yang dikonversi menjadi penyematan. Contoh cuplikan kode berikut menunjukkan cara menggunakan model peringkat untuk mengambil nama produk berperingkat teratas berdasarkan kemiripan semantik deskripsi ulasan dengan kueri. Ini mengasumsikan bahwa endpoint model text-embedding-005
dan semantic-ranker-512@002
terdaftar.
WITH
initial_results AS (
SELECT product_id, name, review, review_id,
ROW_NUMBER() OVER () AS ref_number
FROM user_reviews
ORDER BY
review_desc_embedding <=> google_ml.embedding(
'text-embedding-005', 'good desserts')
LIMIT 100
),
reranked AS (
SELECT
ai.rank(
model_id => 'semantic-ranker-512@002',
search_string => 'good desserts',
documents => ARRAY_AGG(review ORDER BY ref_number))
FROM initial_results
)
SELECT product_id, name
FROM initial_results, reranked
WHERE initial_results.ref_number = reranked.index
ORDER BY reranked.score;