Přidání sémantického řazení do dotazů v Azure AI Vyhledávač

Poznámka

Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.

Sémantické řazení můžete použít u textových dotazů, hybridních dotazů a vektorových dotazů, pokud vaše hledané dokumenty obsahují řetězcová pole a vektorový dotaz má v vyhledávacím dokumentu textovou reprezentaci .

Tento článek vysvětluje, jak vyvolat sémantický ranker u dotazů. Předpokládá se, že používáte nejnovější stabilní rozhraní API nebo rozhraní API ve verzi Preview. Nápovědu ke starším verzím najdete v tématu Migrace sémantického kódu řazení.

Požadavky

Poznámka

Titulky a odpovědi se extrahují doslovně z textu ve vyhledávacím dokumentu. Sémantický subsystém používá strojové čtení k rozpoznávání obsahu, který má vlastnosti titulku nebo odpovědi, ale nevytváí nové věty nebo fráze s výjimkou případu přepsání dotazu (Preview). Z tohoto důvodu je nejvhodnější obsah, který obsahuje vysvětlení nebo definice pro sémantické řazení. Pokud chcete komunikovat ve stylu chatu s vygenerovanými odpověďmi, podívejte se na Agentní vyhledávání nebo Vyhledávání rozšířené generace (RAG).

Volba klienta

K vytvoření dotazu, který používá sémantické řazení, můžete použít kterýkoli z následujících nástrojů a sad SDK:

Vyhněte se funkcím, které obcházejí vyhodnocování relevance

Několik možností dotazů obchází vyhodnocování relevance, což z nich dělá nekompatibilní sémantické hodnocení. Pokud logika dotazu obsahuje následující funkce, nemůžete výsledky seřadit sémanticky:

  • Dotaz s search=* nebo prázdným vyhledávacím řetězcem, jako je čistě filtrující dotaz, nebude fungovat, protože není nic, podle čeho by bylo možné měřit sémantickou relevanci, a výsledkem jsou nulová skóre hledání. Dotaz musí obsahovat termíny nebo fráze, které se dají vyhodnotit během zpracování a které vytváří hledané dokumenty, které jsou vyhodnoceny jako relevantní. Výsledky hodnocení jsou vstupem do sémantického hodnotitele.

  • Řazení (klauzule orderBy) u konkrétních polí přepíše skóre hledání a sémantické skóre. Vzhledem k tomu, že sémantické skóre má poskytnout pořadí, přidání klauzule orderby má za následek chybu HTTP 400, pokud použijete sémantické řazení u seřazených výsledků.

Nastavení dotazu

Ve výchozím nastavení dotazy nepoužívají sémantické řazení. K použití sémantického řazení je možné použít dva různé parametry. Každý parametr podporuje jinou sadu formátů dotazů.

Všechny sémantické dotazy, ať už zadané pomocí search plus queryType, nebo prostřednictvím semanticQuery, musí být prostý text a nemohou být prázdné. Jak vidíte v následující tabulce, queryType-semantic parametr podporuje podmnožinu formátů dotazů.

Parametr Hledání ve formátu prostého textu Syntaxe jednoduchého vyhledávání textu Syntaxe fulltextového vyhledávání Vektorové vyhledávání Hybridní vyhledávání Sémantické odpovědi a titulky
queryType-semantic 1
semanticQuery="<your plain text query>" 2

1queryType=semantic nemůže podporovat explicitní simple hodnoty nebo full hodnoty, protože queryType parametr se používá pro semantic. Efektivní chování dotazů je výchozím nastavením jednoduchého analyzátoru.

2 Parametr semanticQuery lze použít pro všechny typy dotazů. V portálu Azure ale není podporováno Search Explorer.

Bez ohledu na zvolený parametr by index měl obsahovat textová pole s bohatým sémantickým obsahem a sémantickou konfigurací.

Průzkumník služby Search obsahuje možnosti pro sémantické řazení. Vzpomeňte si, že na portálu Azure nemůžete nastavit parametr semanticQuery.

  1. Přejděte do vyhledávací služby na portálu Azure.

  2. Otevřete vyhledávací index a vyberte Průzkumníka služby Search.

  3. Vyberte možnosti dotazu. Pokud jste už definovali sémantickou konfiguraci, je ve výchozím nastavení vybraná. Pokud ho nemáte, vytvořte pro svůj index sémantickou konfiguraci .

    Snímek obrazovky s možnostmi dotazu v Průzkumníku služby Search

  4. Zadejte dotaz, například "historický hotel s dobrým jídlem", a vyberte Hledat.

  5. Alternativně vyberte zobrazení JSON a vložte definice do editoru dotazů. Portál Azure nepodporuje použití semanticQuery, takže je vyžadováno nastavení queryType na "semantic":

    Snímek obrazovky zobrazující syntax dotazu JSON v portálu Azure.

    Příklad JSON pro nastavení typu dotazu na sémantiku, kterou můžete vložit do zobrazení:

    {
      "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",
      "highlightPreTag": "<strong>",
      "highlightPostTag": "</strong>",
      "select": "HotelId,HotelName,Description,Category"
    }
    

Vyhodnocení odpovědi

Pouze prvních 50 shod z původních výsledků může být seřazeno sémanticky. Stejně jako u všech dotazů, odpověď se skládá ze všech polí označených jako retrievable nebo jen z těch polí, která jsou uvedena v parametru select. Odpověď zahrnuje původní skóre relevance a může také obsahovat počet nebo dávkové výsledky v závislosti na tom, jak jste žádost formulovali.

V sémantickém řazení má odpověď více prvků: nové sémanticky seřazené skóre relevance, volitelný titulek ve formátu prostého textu a zvýraznění a volitelná odpověď. Pokud vaše výsledky neobsahují tyto nadbytečné prvky, může být váš dotaz nesprávně nakonfigurovaný. Jako první krok k řešení potíží zkontrolujte sémantickou konfiguraci a ujistěte se, že je zadaná v definici indexu i dotazu.

V klientské aplikaci můžete vytvořit strukturu vyhledávací stránky tak, aby obsahovala titulek jako popis shody, a ne celý obsah konkrétního pole. Tento přístup je užitečný, když jsou jednotlivá pole pro stránku výsledků hledání příliš hustá.

Odpověď na výše uvedený příklad dotazu ("zajímavý hotel s restaurací na místě a útulná lobby nebo sdílená oblast") vrátí tři odpovědi ("answers": "extractive|count-e"). Titulky jsou vráceny, protože je nastavena vlastnost "titulky", a to jak ve verzi s prostým textem, tak ve verzích se zvýrazněním. Pokud odpověď nelze určit, je z odpovědi vynechána. V případě stručnosti ukazuje tento příklad pouze tři odpovědi a tři nejvyšší výsledky bodování z dotazu.

{
  "@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"
    },
   . . .
  ]
}

Očekávané úlohy

Pro sémantické řazení byste měli očekávat, že vyhledávací služba bude podporovat až 10 souběžných dotazů na repliku.

Služba omezuje požadavky na sémantické hodnocení, pokud jsou objemy příliš vysoké. Chybová zpráva, která obsahuje tyto fráze, značí, že služba má kapacitu pro sémantické řazení:

Error in search query: Operation returned an invalid status 'Partial Content'`
@search.semanticPartialResponseReason`
CapacityOverloaded

Pokud očekáváte stabilní požadavky na propustnost blízko či nad touto úrovní, otevřete prosím tiket podpory, abychom mohli vaši pracovní zátěž zajistit.

Další kroky

Sémantické řazení lze použít v hybridních dotazech, které kombinují vyhledávání klíčových slov a vektorové vyhledávání do jednoho požadavku a jednotné odpovědi.