Sebagai bagian dari pengalaman Retrieval Augmented Generation (RAG) di Aplikasi AI, Anda dapat memberi peringkat pada sekumpulan dokumen berdasarkan kueri.
Ranking API mengambil daftar dokumen dan mengurutkan ulang dokumen tersebut berdasarkan relevansi dokumen dengan kueri. Dibandingkan dengan embedding, yang hanya melihat kemiripan semantik dokumen dan kueri, Ranking API dapat memberikan skor yang presisi tentang seberapa baik dokumen menjawab kueri tertentu. API peringkat dapat digunakan untuk meningkatkan kualitas hasil penelusuran setelah mengambil kumpulan awal dokumen kandidat.
Ranking API tidak memiliki status sehingga tidak perlu mengindeks dokumen sebelum memanggil API. Yang perlu Anda lakukan adalah meneruskan kueri dan dokumen. Hal ini membuat API cocok untuk mengurutkan ulang dokumen dari Penelusuran Vektor dan solusi penelusuran lainnya.
Halaman ini menjelaskan cara menggunakan ranking API untuk memberi peringkat sekumpulan dokumen berdasarkan kueri.
Kasus penggunaan
Kasus penggunaan utama API peringkat adalah untuk meningkatkan kualitas hasil penelusuran.
Namun, Ranking API dapat berguna untuk skenario apa pun saat Anda perlu menemukan potongan konten yang paling relevan dengan kueri pengguna. Misalnya, Ranking API dapat membantu Anda dalam hal berikut:
Menemukan konten yang tepat untuk memberikan perujukan pada LLM
Meningkatkan relevansi pengalaman penelusuran yang ada
Mengidentifikasi bagian dokumen yang relevan
Alur berikut menguraikan cara Anda dapat menggunakan API peringkat untuk meningkatkan kualitas hasil untuk dokumen yang dipecah-pecah:
Gunakan Document AI Layout Parser API untuk membagi sekumpulan dokumen menjadi beberapa bagian.
Gunakan API embedding untuk membuat embedding untuk setiap potongan.
Muat embedding ke Vector Search atau solusi penelusuran lainnya.
Buat kueri indeks penelusuran Anda dan ambil potongan yang paling relevan.
Urutkan ulang potongan yang relevan menggunakan API peringkat.
Data input
Ranking API memerlukan input berikut:
Kueri yang digunakan untuk memberi peringkat data.
Contoh:
"query": "Why is the sky blue?"
Kumpulan data yang relevan dengan kueri. Data disediakan sebagai array objek. Setiap catatan dapat mencakup ID unik, judul, dan konten dokumen. Untuk setiap rekaman, sertakan judul, konten, atau keduanya. Jumlah maksimum token yang didukung per rekaman bergantung pada versi model yang digunakan. Misalnya, model hingga versi
003
mendukung 512 token, sedangkan versi004
mendukung 1024 token. Jika panjang gabungan judul dan konten melebihi batas token model, konten tambahan akan dipotong. Anda dapat menyertakan hingga 200 data per permintaan.Misalnya, array rekaman terlihat seperti ini. Pada kenyataannya, akan ada lebih banyak catatan yang disertakan dalam array dan kontennya akan jauh lebih panjang:
"records": [ { "id": "1", "title": "The Color of the Sky: A Poem", "content": "A canvas stretched across the day,\nWhere sunlight learns to dance and play.\nBlue, a hue of scattered light,\nA gentle whisper, soft and bright." }, { "id": "2", "title": "The Science of a Blue Sky", "content": "The sky appears blue due to a phenomenon called Rayleigh scattering. Sunlight is comprised of all the colors of the rainbow. Blue light has shorter wavelengths than other colors, and is thus scattered more easily." } ]
Opsional: Jumlah maksimum data yang ingin Anda ditampilkan oleh ranking API. Secara default, semua data akan ditampilkan; namun, Anda dapat menggunakan kolom
topN
untuk menampilkan lebih sedikit data. Semua rekaman diberi peringkat, terlepas dari nilai yang ditetapkan.Misalnya, kode ini menampilkan 10 data teratas yang diberi peringkat:
"topN": 10,
Opsional: Setelan yang menentukan apakah Anda hanya ingin ID rekaman yang ditampilkan oleh API atau apakah Anda ingin judul dan konten rekaman ditampilkan juga. Secara default, seluruh data akan ditampilkan. Alasan utama untuk menyetel ini adalah jika Anda ingin mengurangi ukuran payload respons.
Misalnya, menyetel ke
true
hanya akan menampilkan ID rekaman, bukan judul atau konten:"ignoreRecordDetailsInResponse": true,
Opsional: Nama model. Parameter ini menentukan model yang akan digunakan untuk memberi peringkat dokumen. Jika tidak ada model yang ditentukan,
semantic-ranker-default@latest
akan digunakan, yang secara otomatis mengarah ke model terbaru yang tersedia. Untuk menunjuk ke model tertentu, tentukan salah satu nama model yang tercantum dalam Model yang didukung, misalnyasemantic-ranker-512-003
.Dalam contoh berikut,
model
disetel kesemantic-ranker-default@latest
. Artinya, API peringkat akan selalu menggunakan model terbaru yang tersedia."model": "semantic-ranker-default@latest"
Data output
Ranking API menampilkan daftar peringkat rekaman dengan output berikut:
Skor: nilai float antara 0 dan 1 yang menunjukkan relevansi rekaman.
ID: ID unik data.
Jika diminta, objek lengkap: ID, judul, dan konten.
Contoh:
{
"records": [
{
"id": "2",
"score": 0.98,
"title": "The Science of a Blue Sky",
"content": "The sky appears blue due to a phenomenon called Rayleigh scattering. Sunlight is comprised of all the colors of the rainbow. Blue light has shorter wavelengths than other colors, and is thus scattered more easily."
},
{
"id": "1",
"score": 0.64,
"title": "The Color of the Sky: A Poem",
"content": "A canvas stretched across the day,\nWhere sunlight learns to dance and play.\nBlue, a hue of scattered light,\nA gentle whisper, soft and bright."
}
]
}
Memberi peringkat (atau memberi peringkat ulang) sekumpulan data sesuai dengan kueri
Biasanya, Anda akan memberikan kueri dan sekumpulan data yang relevan dengan kueri tersebut ke API peringkat dan telah diberi peringkat dengan metode lain seperti penelusuran kata kunci atau penelusuran vektor. Kemudian, Anda menggunakan API peringkat untuk meningkatkan kualitas peringkat dan menentukan skor yang menunjukkan relevansi setiap data dengan kueri.
Dapatkan kueri dan hasil rekaman. Pastikan setiap data memiliki ID dan judul, konten, atau keduanya.
Jumlah maksimum token yang didukung per rekaman bergantung pada versi model. Model hingga versi
003
, sepertisemantic-ranker-512-003
, mendukung 512 token per rekaman. Mulai dari versi004
, batas ini meningkat menjadi 1.024 token. Jika panjang gabungan judul dan konten melebihi batas token model, konten tambahan akan dipangkas.Panggil metode
rankingConfigs.rank
menggunakan kode berikut:
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/rankingConfigs/default_ranking_config:rank" \
-d '{
"model": "semantic-ranker-default@latest",
"query": "QUERY",
"records": [
{
"id": "RECORD_ID_1",
"title": "TITLE_1",
"content": "CONTENT_1"
},
{
"id": "RECORD_ID_2",
"title": "TITLE_2",
"content": "CONTENT_2"
},
{
"id": "RECORD_ID_3",
"title": "TITLE_3",
"content": "CONTENT_3"
}
]
}'
Ganti kode berikut:
PROJECT_ID
: ID Google Cloud project Anda.QUERY
: kueri yang digunakan untuk memberi peringkat dan skor pada kumpulan data.RECORD_ID_n
: string unik yang mengidentifikasi data.TITLE_n
: judul rekaman.CONTENT_n
: konten data.
Untuk mengetahui informasi umum tentang metode ini, lihat rankingConfigs.rank
.
Klik untuk melihat contoh perintah dan respons curl.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: my-project-123" \ "https://discoveryengine.googleapis.com/v1/projects/my-project-123/locations/global/rankingConfigs/default_ranking_config:rank" \ -d '{ "model": "semantic-ranker-default@latest", "query": "what is Google gemini?", "records": [ { "id": "1", "title": "Gemini", "content": "The Gemini zodiac symbol often depicts two figures standing side-by-side." }, { "id": "2", "title": "Gemini", "content": "Gemini is a cutting edge large language model created by Google." }, { "id": "3", "title": "Gemini Constellation", "content": "Gemini is a constellation that can be seen in the night sky." } ] }'
{ "records": [ { "id": "2", "title": "Gemini", "content": "Gemini is a cutting edge large language model created by Google.", "score": 0.97 }, { "id": "3", "title": "Gemini Constellation", "content": "Gemini is a constellation that can be seen in the night sky.", "score": 0.18 }, { "id": "1", "title": "Gemini", "content": "The Gemini zodiac symbol often depicts two figures standing side-by-side.", "score": 0.05 } ] }
Python
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Aplikasi AI.
Untuk melakukan autentikasi ke Aplikasi AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Model yang didukung
Model berikut tersedia.
Nama model | Model terbaru (semantic-ranker-default@latest ) |
Input | Jendela konteks | Tanggal rilis | Tanggal penghentian |
---|---|---|---|---|---|
semantic-ranker-default-004 |
Ya | Teks (25 bahasa) | 1024 | 9 April 2025 | Belum ditentukan |
semantic-ranker-fast-004 |
Tidak | Teks (25 bahasa) | 1024 | 9 April 2025 | Belum ditentukan |
semantic-ranker-default-003 |
Tidak | Teks (25 bahasa) | 512 | 10 September 2024 | Belum ditentukan |
semantic-ranker-default-002 |
Tidak | Teks (hanya dalam bahasa Inggris) | 512 | 3 Juni 2024 | Belum ditentukan |
Langkah berikutnya
Pelajari cara menggunakan metode peringkat dengan API RAG lainnya untuk membuat jawaban berbasis data dari data tidak terstruktur.