Bagikan melalui


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

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:

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.

  1. Masuk ke portal Azure.

  2. Buka indeks pencarian dan pilih Penjelajah pencarian.

  3. Pilih Opsi kueri. Jika Anda sudah menentukan konfigurasi semantik, konfigurasi tersebut dipilih secara default. Jika Anda tidak memilikinya, buat konfigurasi semantik untuk indeks Anda.

    Cuplikan layar memperlihatkan opsi kueri di Penjelajah pencarian.

  4. Masukkan kueri, seperti "hotel bersejarah dengan makanan enak", dan pilih Cari.

  5. Atau, pilih tampilan JSON dan tempel definisi ke editor kueri:

    Cuplikan layar memperlihatkan sintaks kueri JSON dalam portal Azure.

    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.