Returnera ett semantiskt svar i Azure AI Search
När du anropar semantisk rangordning och undertexter kan du eventuellt extrahera innehåll från de mest matchande dokumenten som "besvarar" frågan direkt. Ett eller flera svar kan ingå i svaret, som du sedan kan rendera på en söksida för att förbättra användarupplevelsen i din app.
Ett semantiskt svar är ordagrant innehåll i ditt sökindex som en läsförståelsemodell har identifierat som ett svar på frågan som ställs i begäran. Det är inte ett genererat svar. Vägledning om en användarinteraktionsmodell i chattstil som använder generativ AI för att skapa svar från ditt innehåll finns i Hämta förhöjd generation (RAG).
I den här artikeln får du lära dig hur du begär ett semantiskt svar, packar upp svaret och tar reda på vilka innehållsegenskaper som är mest gynnsamma för att skapa högkvalitativa svar.
Förutsättningar
Alla krav som gäller för semantiska frågor gäller även för svar, inklusive tjänstnivå och region.
Frågelogik måste innehålla de semantiska frågeparametrarna "queryType=semantic" plus parametern "answers". Obligatoriska parametrar beskrivs i den här artikeln.
Frågesträngar som angetts av användaren måste kännas igen som en fråga (vad, var, när, hur).
Sökdokument i indexet måste innehålla text med egenskaperna för ett svar, och den texten måste finnas i något av fälten som anges i semantisk konfiguration. Om till exempel en fråga "vad är en hash-tabell", om inget av fälten i den semantiska konfigurationen innehåller passager som innehåller "En hashtabell är ...", är det osannolikt att ett svar returneras.
Kommentar
Från och med 2021-04-30-Preview började begäranden om skapa eller uppdatera index att skapa ett "semanticConfiguration"
krav för att ange indatafält som används i semantisk rangordning.
Vad är ett semantiskt svar?
Ett semantiskt svar är en understruktur av ett semantiskt frågesvar. Den består av ett eller flera ordagrant avsnitt från ett sökdokument, formulerat som ett svar på en fråga som ser ut som en fråga. För att returnera ett svar måste fraser eller meningar finnas i ett sökdokument som har språkegenskaperna för ett svar, och själva frågan måste ställas som en fråga.
Azure AI Search använder en datorläsningsförståelsemodell för att identifiera och välja det bästa svaret. Modellen genererar en uppsättning potentiella svar från det tillgängliga innehållet, och när den når en tillräckligt hög konfidensnivå föreslår den en som ett svar.
Svaren returneras som ett oberoende objekt på den översta nivån i nyttolasten för frågesvar som du kan välja att rendera på söksidor, längs sökresultaten. Strukturellt är det ett matriselement i svaret som består av text, en dokumentnyckel och en konfidenspoäng.
Formulera en REST-fråga för "svar"
För att returnera ett semantiskt svar måste frågan ha parametrarna "answers"
semantisk "queryType"
, "queryLanguage"
, "semanticConfiguration"
och . Att ange dessa parametrar garanterar inte något svar, men begäran måste innehålla dem för att svarsbearbetning ska ske.
{
"search": "how do clouds form",
"queryType": "semantic",
"queryLanguage": "en-us",
"semanticConfiguration": "my-semantic-config",
"answers": "extractive|count-3",
"captions": "extractive|highlight-true",
"count": "true"
}
En frågesträng får inte vara null och ska formuleras som en fråga.
"queryType"
måste vara inställt på "semantisk."queryLanguage"
måste vara ett av värdena från listan över språk som stöds (REST API).A
"semanticConfiguration"
avgör vilka strängfält som ger token till extraheringsmodellen. Samma fält som skapar undertexter ger också svar. Mer information finns i Skapa en semantisk konfiguration .För
"answers"
är"answers": "extractive"
parameterkonstruktion , där standardantalet svar som returneras är ett. Du kan öka antalet svar genom att lägga till ettcount
som visas i exemplet ovan, upp till högst 10. Om du behöver mer än ett svar beror på appens användarupplevelse och hur du vill återge resultat.
Packa upp ett "svar" från svaret
Svar tillhandahålls i matrisen "@search.answers"
, som visas först i frågesvaret. Varje svar i matrisen innehåller:
- Dokumentnyckel
- Text eller innehåll i svaret, i oformaterad text eller med formatering
- Konfidenspoäng
Om ett svar är obestämt visas svaret som "@search.answers": []
. Svarsmatrisen följs av värdematrisen, som är standardsvaret i en semantisk fråga.
Med frågan "hur bildas moln" illustrerar följande exempel ett svar:
{
"@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"
]
}
]
}
När du utformar en sökresultatsida som innehåller svar bör du hantera fall där svar inte hittas.
Inom @search.answers:
"key" är dokumentnyckeln eller ID:t för matchningen. Med en dokumentnyckel kan du använda API:et för uppslagsdokument för att hämta alla delar av sökdokumentet som ska inkluderas på söksidan eller på en detaljsida.
"text" och "highlights" ger identiskt innehåll, både i oformaterad text och med markeringar.
Som standard är markeringar formaterade som
<em>
, som du kan åsidosätta med hjälp av de befintliga parametrarna highlightPreTag och highlightPostTag. Som nämnts på andra håll är innehållet i ett svar ordagrant innehåll från ett sökdokument. Extraheringsmodellen söker efter egenskaper hos ett svar för att hitta rätt innehåll, men skriver inte nytt språk i svaret."score" är en förtroendepoäng som återspeglar svarets styrka. Om det finns flera svar i svaret används den här poängen för att fastställa ordningen. De vanligaste svaren och topptexterna kan härledas från olika sökdokument, där det översta svaret kommer från ett dokument och den översta bildtexten från ett annat, men i allmänhet visas samma dokument i de översta positionerna i varje matris.
Svaren följs av matrisen "värde", som alltid innehåller poäng, undertexter och alla fält som kan hämtas som standard. Om du har angett parametern select begränsas matrisen "value" till de fält som du har angett. Mer information finns i Konfigurera semantisk ranker .
Tips för att skapa högkvalitativa svar
För bästa resultat returnerar du semantiska svar på en dokument corpus med följande egenskaper:
"SemanticConfiguration" måste innehålla fält som erbjuder tillräckligt med text där ett svar sannolikt kommer att hittas. Fält som är mer benägna att innehålla svar bör anges först i "prioritizedContentFields". Endast ordagrann text från ett dokument kan visas som ett svar.
Frågesträngar får inte vara null (search=
*
) och strängen ska ha egenskaperna för en fråga, till exempel "vad är" eller "hur", i stället för en nyckelordssökning som består av termer eller fraser i godtycklig ordning. Om frågesträngen inte verkar vara en fråga hoppas svarsbearbetningen över, även om begäran anger "svar" som en frågeparameter.Semantisk extrahering och sammanfattning har gränser för hur många token per dokument som kan analyseras i tid. Om du har stora dokument som körs på hundratals sidor kan du försöka dela upp innehållet i mindre dokument först.