Menambahkan peringkat semantik ke kueri di Azure AI Search
Anda dapat menerapkan peringkat semantik ke kueri teks, kueri hibrid, dan kueri vektor jika dokumen pencarian Anda berisi bidang string dan kueri vektor memiliki representasi teks dalam dokumen pencarian.
Artikel ini menjelaskan cara memanggil pemeringkat semantik pada kueri.
Prasyarat
Layanan pencarian, Tingkat dasar atau lebih tinggi, dengan peringkat semantik diaktifkan.
Indeks pencarian yang ada dengan konfigurasi semantik dan konten teks kaya.
Tinjau peringkat semantik jika Anda memerlukan pengenalan fitur.
Catatan
Keterangan dan jawaban diekstrak verbatim dari teks dalam dokumen pencarian. Subsistem semantik menggunakan pemahaman membaca mesin untuk mengenali konten yang memiliki karakteristik keterangan atau jawaban, tetapi tidak menyusun kalimat atau frasa baru. Untuk alasan ini, konten yang mencakup penjelasan atau definisi berfungsi paling baik untuk peringkat semantik. Jika Anda ingin interaksi gaya obrolan dengan respons yang dihasilkan, lihat Pengambilan Augmented Generation (RAG).
Memilih klien
Anda bisa menggunakan salah satu alat dan SDK berikut untuk membuat kueri yang menggunakan peringkat semantik:
- portal Azure, menggunakan perancang indeks untuk menambahkan konfigurasi semantik.
- Visual Studio Code dengan klien REST
- Azure SDK untuk .Net
- Azure SDK untuk Python
- Azure SDK untuk Java
- Azure SDK untuk JavaScript
Hindari fitur yang melewati penilaian relevansi
Beberapa kemampuan kueri melewati penilaian relevansi, yang membuatnya tidak kompatibel dengan peringkat semantik. Jika logika kueri Anda menyertakan fitur berikut, Anda tidak dapat memberi peringkat hasil Anda secara semantik:
Kueri dengan
search=*
atau string pencarian kosong, seperti kueri khusus filter murni, tidak akan berfungsi karena tidak ada yang mengukur relevansi semantik dan sehingga skor pencarian adalah nol. Kueri harus menyediakan istilah atau frasa yang dapat dievaluasi selama pemrosesan.Pengurutan (klausa orderBy) pada bidang tertentu mengambil alih skor pencarian dan skor semantik. Mengingat bahwa skor semantik seharusnya memberikan peringkat, menambahkan klausa orderby menghasilkan kesalahan HTTP 400 jika Anda menerapkan peringkat semantik atas hasil yang diurutkan.
Menyiapkan kueri
Dalam langkah ini, tambahkan parameter ke permintaan kueri. Agar berhasil, kueri Anda harus berupa pencarian teks lengkap (menggunakan search
parameter untuk meneruskan string) atau kueri vektor, dan indeks harus berisi bidang teks dengan konten semantik yang kaya dan konfigurasi semantik.
Penjelajah pencarian menyertakan opsi untuk peringkat semantik.
Masuk ke portal Azure.
Buka indeks pencarian dan pilih Penjelajah pencarian.
Pilih Opsi kueri. Jika Anda sudah menentukan konfigurasi semantik, konfigurasi tersebut dipilih secara default. Jika Anda tidak memilikinya, buat konfigurasi semantik untuk indeks Anda.
Masukkan kueri, seperti "hotel bersejarah dengan makanan enak", dan pilih Cari.
Atau, pilih tampilan JSON dan tempel definisi ke editor kueri:
Berikut adalah contoh JSON yang dapat Anda tempelkan ke dalam tampilan:
{ "search": "funky or interesting hotel with good food on site", "count": true, "queryType": "semantic", "semanticConfiguration": "my-semantic-config", "captions": "extractive|highlight-true", "answers": "extractive|count-3", "queryLanguage": "en-us", "highlightPreTag": "<strong>", "highlightPostTag": "</strong>", "select": "HotelId,HotelName,Description,Category" }
Mengevaluasi respons
Hanya 50 pertandingan teratas dari hasil awal yang dapat diberi peringkat semantik. Seperti semua kueri, respons terdiri dari semua bidang yang ditandai sebagai dapat diambil, atau hanya bidang yang tercantum dalam select
parameter. Respons mencakup skor relevansi asli, dan mungkin juga menyertakan hitungan, atau hasil batch, tergantung pada cara Anda merumuskan permintaan.
Dalam peringkat semantik, respons memiliki lebih banyak elemen: skor relevansi peringkat semantik baru, keterangan opsional dalam teks biasa dan dengan sorotan, dan jawaban opsional. Jika hasil Anda tidak menyertakan elemen tambahan ini, maka kueri Anda mungkin salah dikonfigurasi. Sebagai langkah pertama untuk memecahkan masalah, periksa konfigurasi semantik untuk memastikannya ditentukan dalam definisi indeks dan kueri.
Di aplikasi klien, Anda dapat menyusun halaman pencarian untuk menyertakan keterangan sebagai deskripsi kecocokan, daripada seluruh konten bidang tertentu. Pendekatan ini berguna ketika bidang individual terlalu padat untuk halaman hasil pencarian.
Respons untuk contoh kueri di atas ("hotel menarik dengan restoran di situs dan lobi yang nyaman atau area bersama") mengembalikan tiga jawaban ("answers": "extractive|count-e"
). Keterangan dikembalikan karena properti "keterangan" diatur, dengan teks biasa dan versi yang disorot. Jika jawaban tidak dapat ditentukan, jawaban tersebut dihilangkan dari respons. Untuk brevity, contoh ini hanya menunjukkan tiga jawaban dan tiga hasil penilaian tertinggi dari kueri.
{
"@odata.count": 29,
"@search.answers": [
{
"key": "24",
"text": "Chic hotel near the city. High-rise hotel in downtown, within walking distance to theaters, art galleries, restaurants and shops. Visit Seattle Art Museum by day, and then head over to Benaroya Hall to catch the evening's concert performance.",
"highlights": "Chic hotel near the city. <strong>High-rise hotel in downtown, </strong>within<strong> walking distance to </strong>theaters, art<strong> galleries, restaurants and shops.</strong> Visit Seattle Art Museum by day, and then head over to Benaroya Hall to catch the evening's concert performance.",
"score": 0.9340000152587891
},
{
"key": "40",
"text": "Only 8 miles from Downtown. On-site bar/restaurant, Free hot breakfast buffet, Free wireless internet, All non-smoking hotel. Only 15 miles from airport.",
"highlights": "Only 8 miles from Downtown. <strong>On-site bar/restaurant, Free hot breakfast buffet, Free wireless internet, </strong>All non-smoking<strong> hotel.</strong> Only 15 miles from airport.",
"score": 0.9210000038146973
},
{
"key": "38",
"text": "Nature is Home on the beach. Explore the shore by day, and then come home to our shared living space to relax around a stone fireplace, sip something warm, and explore the library by night. Save up to 30 percent. Valid Now through the end of the year. Restrictions and blackouts may apply.",
"highlights": "Nature is Home on the beach. Explore the shore by day, and then come home to our<strong> shared living space </strong>to relax around a stone fireplace, sip something warm, and explore the library by night. Save up to 30 percent. Valid Now through the end of the year. Restrictions and blackouts may apply.",
"score": 0.9200000166893005
}
],
"value": [
{
"@search.score": 3.2328331,
"@search.rerankerScore": 2.575303316116333,
"@search.captions": [
{
"text": "The best of old town hospitality combined with views of the river and cool breezes off the prairie. Our penthouse suites offer views for miles and the rooftop plaza is open to all guests from sunset to 10 p.m. Enjoy a complimentary continental breakfast in the lobby, and free Wi-Fi throughout the hotel.",
"highlights": "The best of old town hospitality combined with views of the river and cool breezes off the prairie. Our<strong> penthouse </strong>suites offer views for miles and the rooftop<strong> plaza </strong>is open to all guests from sunset to 10 p.m. Enjoy a<strong> complimentary continental breakfast in the lobby, </strong>and free Wi-Fi<strong> throughout </strong>the hotel."
}
],
"HotelId": "50",
"HotelName": "Head Wind Resort",
"Description": "The best of old town hospitality combined with views of the river and cool breezes off the prairie. Our penthouse suites offer views for miles and the rooftop plaza is open to all guests from sunset to 10 p.m. Enjoy a complimentary continental breakfast in the lobby, and free Wi-Fi throughout the hotel.",
"Category": "Suite"
},
{
"@search.score": 0.632956,
"@search.rerankerScore": 2.5425150394439697,
"@search.captions": [
{
"text": "Every stay starts with a warm cookie. Amenities like the Counting Sheep sleep experience, our Wake-up glorious breakfast buffet and spacious workout facilities await.",
"highlights": "Every stay starts with a warm cookie. Amenities like the<strong> Counting Sheep sleep experience, </strong>our<strong> Wake-up glorious breakfast buffet and spacious workout facilities </strong>await."
}
],
"HotelId": "34",
"HotelName": "Lakefront Captain Inn",
"Description": "Every stay starts with a warm cookie. Amenities like the Counting Sheep sleep experience, our Wake-up glorious breakfast buffet and spacious workout facilities await.",
"Category": "Budget"
},
{
"@search.score": 3.7076726,
"@search.rerankerScore": 2.4554927349090576,
"@search.captions": [
{
"text": "Chic hotel near the city. High-rise hotel in downtown, within walking distance to theaters, art galleries, restaurants and shops. Visit Seattle Art Museum by day, and then head over to Benaroya Hall to catch the evening's concert performance.",
"highlights": "Chic hotel near the city. <strong>High-rise hotel in downtown, </strong>within<strong> walking distance to </strong>theaters, art<strong> galleries, restaurants and shops.</strong> Visit Seattle Art Museum by day, and then head over to Benaroya Hall to catch the evening's concert performance."
}
],
"HotelId": "24",
"HotelName": "Uptown Chic Hotel",
"Description": "Chic hotel near the city. High-rise hotel in downtown, within walking distance to theaters, art galleries, restaurants and shops. Visit Seattle Art Museum by day, and then head over to Benaroya Hall to catch the evening's concert performance.",
"Category": "Suite"
},
. . .
]
}
Beban kerja yang diharapkan
Untuk peringkat semantik, Anda harus mengharapkan layanan pencarian untuk mendukung hingga 10 kueri bersamaan per replika.
Layanan ini membatasi permintaan peringkat semantik jika volume terlalu tinggi. Pesan kesalahan yang menyertakan frasa ini menunjukkan bahwa layanan berada pada kapasitas untuk peringkat semantik:
Error in search query: Operation returned an invalid status 'Partial Content'`
@search.semanticPartialResponseReason`
CapacityOverloaded
Jika Anda mengantisipasi persyaratan throughput yang konsisten di dekat, pada, atau lebih tinggi dari tingkat ini, silakan ajukan tiket dukungan sehingga kami dapat menyediakan untuk beban kerja Anda.
Langkah berikutnya
Peringkat semantik dapat digunakan dalam kueri hibrid yang menggabungkan pencarian kata kunci dan pencarian vektor ke dalam satu permintaan dan respons terpadu.