Een semantisch antwoord retourneren in Azure AI Search

Wanneer u semantische rangschikking en onderschrift s aanroept, kunt u eventueel inhoud extraheren uit de meest overeenkomende documenten die de query rechtstreeks beantwoorden. Een of meer antwoorden kunnen worden opgenomen in het antwoord, dat u vervolgens kunt weergeven op een zoekpagina om de gebruikerservaring van uw app te verbeteren.

Een semantisch antwoord is exacte inhoud in uw zoekindex die een leesbegripmodel heeft herkend als antwoord op de query in de aanvraag. Het is geen gegenereerd antwoord. Zie RAG (Retrieval Augmented Generation) voor hulp bij een gebruikersinteractiemodel in chatstijl dat gebruikmaakt van generatieve AI om antwoorden op te stellen op basis van uw inhoud.

In dit artikel leert u hoe u een semantisch antwoord aanvraagt, het antwoord uitpakt en ontdekt welke inhoudskenmerken het meest verleidelijk zijn om antwoorden van hoge kwaliteit te produceren.

Vereisten

Alle vereisten die van toepassing zijn op semantische query's , zijn ook van toepassing op antwoorden, inclusief servicelaag en regio.

  • Querylogica moet de semantische queryparameters 'queryType=semantic' bevatten, plus de parameter 'answers'. Vereiste parameters worden in dit artikel besproken.

  • Queryreeksen die door de gebruiker zijn ingevoerd, moeten worden herkend als een vraag (waar, wanneer, hoe).

  • Zoekdocumenten in de index moeten tekst bevatten met de kenmerken van een antwoord en die tekst moet bestaan in een van de velden die worden vermeld in de semantische configuratie. Als bijvoorbeeld een query 'wat is een hash-tabel', als geen van de velden in de semantische configuratie passages bevat die 'Een hashtabel is ...', is het onwaarschijnlijk dat er een antwoord wordt geretourneerd.

Notitie

Vanaf 2021-04-30-Preview, in aanvragen voor maken of bijwerken van index (preview), is een "semanticConfiguration" vereiste voor het opgeven van invoervelden voor semantische rangschikking.

Wat is een semantisch antwoord?

Een semantisch antwoord is een substructuur van een semantisch queryantwoord. Het bestaat uit een of meer exacte passages uit een zoekdocument, geformuleerd als antwoord op een query die lijkt op een vraag. Als u een antwoord wilt retourneren, moeten woordgroepen of zinnen bestaan in een zoekdocument met de taalkenmerken van een antwoord en moet de query zelf worden gesteld als een vraag.

Azure AI Search maakt gebruik van een leesbegripmodel voor machines om het beste antwoord te herkennen en te kiezen. Het model produceert een set potentiële antwoorden op basis van de beschikbare inhoud en wanneer het een hoog vertrouwensniveau bereikt, stelt het een voor als antwoord.

Antwoorden worden geretourneerd als een onafhankelijk object op het hoogste niveau in de nettolading van het queryantwoord dat u kunt weergeven op zoekpagina's, samen met zoekresultaten aan de zijkant. Structureel is het een matrixelement in het antwoord dat bestaat uit tekst, een documentsleutel en een betrouwbaarheidsscore.

Formuleer een REST-query voor 'antwoorden'

Als u een semantisch antwoord wilt retourneren, moet de query de semantische "queryType", "queryLanguage"en "semanticConfiguration"de "answers" parameters hebben. Het opgeven van deze parameters garandeert geen antwoord, maar de aanvraag moet deze bevatten om de verwerking van antwoorden te kunnen verwerken.

{
    "search": "how do clouds form",
    "queryType": "semantic",
    "queryLanguage": "en-us",
    "semanticConfiguration": "my-semantic-config",
    "answers": "extractive|count-3",
    "captions": "extractive|highlight-true",
    "count": "true"
}
  • Een queryreeks mag niet null zijn en moet worden geformuleerd als vraag.

  • "queryType" moet worden ingesteld op 'semantisch.

  • "queryLanguage" moet een van de waarden uit de lijst met ondersteunde talen (REST API) zijn.

  • Een "semanticConfiguration" bepaalt welke tekenreeksvelden tokens leveren aan het extractiemodel. Dezelfde velden die onderschrift produceren, produceren ook antwoorden. Zie Een semantische configuratie maken voor meer informatie.

  • Voor "answers"parameterconstructie is "answers": "extractive", waarbij het standaardaantal geretourneerde antwoorden één is. U kunt het aantal antwoorden verhogen door een count toe te voegen zoals wordt weergegeven in het bovenstaande voorbeeld, tot maximaal 10. Of u meer dan één antwoord nodig hebt, is afhankelijk van de gebruikerservaring van uw app en hoe u resultaten wilt weergeven.

Een antwoord uitpakken uit het antwoord

Antwoorden worden gegeven in de "@search.answers" matrix, die eerst in het queryantwoord wordt weergegeven. Elk antwoord in de matrix bevat:

  • Documentsleutel
  • Tekst of inhoud van het antwoord, in tekst zonder opmaak of met opmaak
  • Betrouwbaarheidsscore

Als een antwoord onbepaald is, wordt het antwoord weergegeven als "@search.answers": []. De antwoordenmatrix wordt gevolgd door de waardematrix. Dit is het standaardantwoord in een semantische query.

Gezien de query 'hoe vormen clouds', wordt in het volgende voorbeeld een antwoord weergegeven:

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

Wanneer u een pagina met zoekresultaten ontwerpt die antwoorden bevat, moet u zaken afhandelen waarin geen antwoorden worden gevonden.

Binnen @search.answers:

  • 'sleutel' is de documentsleutel of id van de overeenkomst. Met een documentsleutel kunt u opzoekdocument-API gebruiken om een of alle delen van het zoekdocument op te halen die moeten worden opgenomen op de zoekpagina of op een detailpagina.

  • 'tekst' en 'markeringen' bieden identieke inhoud, zowel in tekst zonder opmaak als met markeringen.

    Markeringen worden standaard gestijld als <em>, die u kunt overschrijven met behulp van de bestaande parameters highlightPreTag en highlightPostTag. Zoals elders vermeld, is de inhoud van een antwoord exacte inhoud uit een zoekdocument. Het extractiemodel zoekt naar kenmerken van een antwoord om de juiste inhoud te vinden, maar bevat geen nieuwe taal in het antwoord.

  • 'score' is een betrouwbaarheidsscore die de sterkte van het antwoord weerspiegelt. Als er meerdere antwoorden in het antwoord staan, wordt deze score gebruikt om de volgorde te bepalen. De belangrijkste antwoorden en de belangrijkste onderschrift s kunnen worden afgeleid van verschillende zoekdocumenten, waarbij het belangrijkste antwoord afkomstig is van één document en de bovenste onderschrift van een ander, maar in het algemeen worden dezelfde documenten weergegeven in de bovenste posities binnen elke matrix.

Antwoorden worden gevolgd door de matrix 'waarde', die altijd scores, onderschrift s en velden bevat die standaard kunnen worden opgehaald. Als u de selectieparameter hebt opgegeven, is de matrix 'waarde' beperkt tot de velden die u hebt opgegeven. Zie Semantische rangschikking configureren voor meer informatie.

Tips voor het produceren van antwoorden van hoge kwaliteit

Voor de beste resultaten retourneert u semantische antwoorden op een documentinhoud met de volgende kenmerken:

  • De 'semanticConfiguration' moet velden bevatten die voldoende tekst bieden waarin waarschijnlijk een antwoord wordt gevonden. Velden die waarschijnlijker antwoorden bevatten, moeten eerst worden vermeld in 'prioritizedContentFields'. Alleen exacte tekst uit een document kan als antwoord worden weergegeven.

  • Queryreeksen mogen niet null zijn (search=*) en de tekenreeks moet de kenmerken van een vraag hebben, zoals 'wat is' of 'hoe', in plaats van een trefwoordzoekopdracht die bestaat uit termen of woordgroepen in willekeurige volgorde. Als de querytekenreeks geen vraag lijkt te zijn, wordt de antwoordverwerking overgeslagen, zelfs als de aanvraag 'antwoorden' opgeeft als queryparameter.

  • Semantische extractie en samenvatting hebben limieten voor het aantal tokens per document dat tijdig kan worden geanalyseerd. Als u grote documenten hebt die honderden pagina's bevatten, kunt u de inhoud eerst opsplitsen in kleinere documenten.

Volgende stappen