Vrácení sémantické odpovědi ve službě Azure AI Search

Při vyvolání sémantického řazení a popis můžete volitelně extrahovat obsah z dokumentů odpovídajících nejvyšším výsledkům, které dotaz "odpoví" přímo. Do odpovědi můžete zahrnout jednu nebo více odpovědí, které pak můžete vykreslit na vyhledávací stránce, aby se zlepšilo uživatelské prostředí vaší aplikace.

Sémantická odpověď je doslovný obsah v indexu vyhledávání, který model porozumění čtení rozpoznal jako odpověď na dotaz v požadavku. Není to vygenerovaná odpověď. Pokyny k modelu interakce uživatelů ve stylu chatu, který používá k vytváření odpovědí z obsahu generující AI, najdete v tématu Načítání rozšířené generace (RAG).

V tomto článku se dozvíte, jak požádat o sémantickou odpověď, rozbalit odpověď a zjistit, jaké charakteristiky obsahu jsou pro vytváření vysoce kvalitních odpovědí nejpříznivější.

Požadavky

Všechny požadavky, které platí pro sémantické dotazy , platí také pro odpovědi, včetně úrovně služby a oblasti.

  • Logika dotazu musí obsahovat sémantické parametry dotazu "queryType=sémantic", plus parametr "answers". Požadované parametry jsou popsány v tomto článku.

  • Řetězce dotazu zadané uživatelem musí být rozpoznatelné jako otázka (co, kde, kdy, jak).

  • Vyhledávací dokumenty v indexu musí obsahovat text s vlastnostmi odpovědi a tento text musí existovat v jednom z polí uvedených v sémantické konfiguraci. Pokud například žádný z polí v sémantické konfiguraci neobsahuje pasáže, které obsahují "Tabulka hash A je...", je nepravděpodobné, že by se vrátila odpověď.

Poznámka:

Od verze 2021-04-30-Preview se v žádostech "semanticConfiguration" o vytvoření nebo aktualizaci indexu (Preview) vyžaduje zadání vstupních polí pro sémantické řazení.

Co je sémantická odpověď?

Sémantická odpověď je podstruktura sémantické odpovědi dotazu. Skládá se z jednoho nebo několika doslovných pasáží z vyhledávacího dokumentu, který je formulován jako odpověď na dotaz, který vypadá jako otázka. Aby bylo možné vrátit odpověď, musí ve vyhledávacím dokumentu existovat fráze nebo věty, které mají vlastnosti jazyka odpovědi, a samotný dotaz musí být položen jako otázka.

Azure AI Search používá model porozumění strojovému čtení k rozpoznávání a výběru nejlepší odpovědi. Model vytvoří sadu potenciálních odpovědí z dostupného obsahu a když dosáhne vysoké úrovně spolehlivosti, navrhne jednu jako odpověď.

Odpovědi se vrátí jako nezávislý objekt nejvyšší úrovně v datové části odpovědi dotazu, který se dá vykreslit na stránkách hledání vedle výsledků hledání. Strukturálně se jedná o prvek pole v odpovědi skládající se z textu, klíče dokumentu a skóre spolehlivosti.

Formulace dotazu REST pro odpovědi

Chcete-li vrátit sémantickou odpověď, musí mít dotaz sémantický "queryType", "semanticConfiguration""queryLanguage"a "answers" parametry. Zadání těchto parametrů nezaručuje odpověď, ale požadavek musí obsahovat pro zpracování odpovědí.

{
    "search": "how do clouds form",
    "queryType": "semantic",
    "queryLanguage": "en-us",
    "semanticConfiguration": "my-semantic-config",
    "answers": "extractive|count-3",
    "captions": "extractive|highlight-true",
    "count": "true"
}
  • Řetězec dotazu nesmí být null a měl by být formulován jako otázka.

  • "queryType" musí být nastavena na sémantickou.

  • "queryLanguage"musí být jednou z hodnot ze seznamu podporovaných jazyků (REST API).

  • Určuje "semanticConfiguration" , která řetězcová pole poskytují tokeny modelu extrakce. Stejná pole, která vytvářejí popis, také vytvářejí odpovědi. Podrobnosti najdete v tématu Vytvoření sémantické konfigurace .

  • Pro "answers", parametr konstrukce je "answers": "extractive", kde výchozí počet vrácených odpovědí je jeden. Počet odpovědí můžete zvýšit tak, že přidáte číslo count , jak je znázorněno v předchozím příkladu, maximálně 10. To, jestli potřebujete více než jednu odpověď, závisí na uživatelském prostředí aplikace a na tom, jak chcete vykreslit výsledky.

Rozbalte odpověď z odpovědi.

Odpovědi jsou uvedeny v "@search.answers" poli, které se zobrazí jako první v odpovědi dotazu. Každá odpověď v poli zahrnuje:

  • Klíč dokumentu
  • Text nebo obsah odpovědi, ve formátu prostého textu nebo s formátováním
  • Skóre spolehlivosti

Pokud je odpověď neurčitá, zobrazí se odpověď jako "@search.answers": []. Za polem odpovědí následuje pole hodnot, což je standardní odpověď v sémantickém dotazu.

Vzhledem k dotazu "how do clouds form" (jak se cloudy formují) znázorňuje odpověď v následujícím příkladu:

{
    "@search.answers": [
        {
            "key": "4123",
            "text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the   atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case),   but not where it is descending (over the river).",
            "highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the   atmosphere until it cools and condenses into water droplets. Clouds generally form<em> where air is ascending</em> (over land in this case),   but not where it is<em> descending</em> (over the river).",
            "score": 0.94639826
        }
    ],
    "value": [
        {
            "@search.score": 0.5479723,
            "@search.rerankerScore": 1.0321671911515296,
            "@search.captions": [
                {
                    "text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.",
                    "highlights": "Like all<em> clouds</em>, it<em> forms</em> when the air reaches its dew point—the temperature at    which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley<em> fog</em>, which is common in the Pacific Northwest of North America."
                }
            ],
            "title": "Earth Atmosphere",
            "content": "Fog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at  \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n",
            "locations": [
                "Pacific Northwest",
                "North America",
                "Vancouver"
            ]
        }
    ]
}

Při navrhování stránky výsledků hledání, která obsahuje odpovědi, nezapomeňte zpracovat případy, kdy se odpovědi nenašly.

V @search.answers:

  • "key" je klíč dokumentu nebo ID shody. Vzhledem k klíči dokumentu můžete pomocí rozhraní API vyhledávacího dokumentu načíst libovolné nebo všechny části vyhledávacího dokumentu, které chcete zahrnout na vyhledávací stránku nebo na stránku podrobností.

  • Text a zvýraznění poskytují stejný obsah ve formátu prostého textu i zvýraznění.

    Ve výchozím nastavení jsou zvýraznění ve stylu <em>, které můžete přepsat pomocí stávajících parametrů highlightPreTag a highlightPostTag. Jak je uvedeno jinde, podstata odpovědi je doslovný obsah z hledaného dokumentu. Model extrakce hledá charakteristiky odpovědi, aby našel příslušný obsah, ale nevytváí v odpovědi nový jazyk.

  • "score" je skóre spolehlivosti, které odráží sílu odpovědi. Pokud odpověď obsahuje více odpovědí, použije se toto skóre k určení pořadí. Nejlepší odpovědi a nejlepší popis mohou být odvozeny z různých vyhledávacích dokumentů, kde hlavní odpověď pochází z jednoho dokumentu a horní popis z druhého, ale obecně stejné dokumenty se zobrazují v horních pozicích v jednotlivých polích.

Za odpověďmi následuje pole "hodnota", které vždy zahrnuje skóre, popis a všechna pole, která se ve výchozím nastavení dají načíst. Pokud jste zadali parametr select, pole "value" je omezeno na pole, která jste zadali. Podrobnosti najdete v tématu Konfigurace sémantického řazení .

Tipy pro vytváření vysoce kvalitních odpovědí

Nejlepších výsledků dosáhnete tak, že vrátíte sémantické odpovědi na korpus dokumentu s následujícími vlastnostmi:

  • SémanticConfiguration musí obsahovat pole, která nabízejí dostatečný text, ve kterém se pravděpodobně najde odpověď. Pole, která budou pravděpodobně obsahovat odpovědi, by měla být uvedena jako první v poli PrioritizedContentFields. Jako odpověď se může zobrazit pouze doslovný text z dokumentu.

  • Řetězce dotazu nesmí mít hodnotu null (search=*) a řetězec by měl mít charakteristiky otázky, například "what is" nebo "how to" (co je) nebo "how to" (jak) na rozdíl od hledání klíčových slov sestávajících z termínů nebo frází v libovolném pořadí. Pokud se řetězec dotazu zdá být otázkou, zpracování odpovědí se přeskočí, i když požadavek jako parametr dotazu určuje "odpovědi".

  • Sémantická extrakce a shrnutí mají omezení počtu tokenů na dokument, které je možné včas analyzovat. V praxi platí, že pokud máte velké dokumenty, které narazí na stovky stránek, zkuste nejprve rozdělit obsah do menších dokumentů.

Další kroky