Delen via


Semantische classificatie toevoegen aan query's in Azure AI Search

U kunt semantische classificatie toepassen op tekstquery's, hybride query's en vectorquery's als uw zoekdocumenten tekenreeksvelden bevatten en de vectorquery een tekstweergave heeft in het zoekdocument.

In dit artikel wordt uitgelegd hoe u de semantische ranker aanroept voor query's.

Vereisten

Notitie

Bijschriften en antwoorden worden letterlijk geëxtraheerd uit tekst in het zoekdocument. Het semantische subsysteem maakt gebruik van leesbegrip van machines om inhoud te herkennen die de kenmerken van een bijschrift of antwoord heeft, maar geen nieuwe zinnen of woordgroepen opstelt. Daarom werkt inhoud met uitleg of definities het beste voor semantische rangschikking. Zie Rag (Retrieval Augmented Generation) als u interactie in chatstijl met gegenereerde antwoorden wilt.

Een client kiezen

U kunt een van de volgende hulpprogramma's en SDK's gebruiken om een query te maken die gebruikmaakt van semantische classificatie:

Vermijd functies die relevantiescores omzeilen

Een paar querymogelijkheden omzeilen relevantiescores, waardoor ze niet compatibel zijn met semantische rangschikking. Als uw querylogica de volgende functies bevat, kunt u uw resultaten niet semantisch rangschikken:

  • Een query met search=* of een lege zoekreeks, zoals een pure filterquery, werkt niet omdat er niets is om de semantische relevantie te meten, zodat de zoekscores nul zijn. De query moet termen of woordgroepen bevatten die tijdens de verwerking kunnen worden geëvalueerd.

  • Als u sorteert (orderBy-componenten) voor specifieke velden, worden zoekscores en een semantische score overschreven. Aangezien de semantische score de classificatie moet leveren, resulteert het toevoegen van een orderby-component in een HTTP 400-fout als u semantische classificatie toepast op geordende resultaten.

De query instellen

Voeg in deze stap parameters toe aan de queryaanvraag. Als u wilt slagen, moet uw query zoeken in volledige tekst (met behulp van de search parameter om een tekenreeks door te geven) of een vectorquery. De index moet tekstvelden bevatten met uitgebreide semantische inhoud en een semantische configuratie.

Search Explorer bevat opties voor semantische rangschikking.

  1. Meld u aan bij het Azure-portaal.

  2. Open een zoekindex en selecteer Search Explorer.

  3. Selecteer Queryopties. Als u al een semantische configuratie hebt gedefinieerd, wordt deze standaard geselecteerd. Als u er nog geen hebt, maakt u een semantische configuratie voor uw index.

    Schermopname van queryopties in Search Explorer.

  4. Voer een query in, zoals 'historisch hotel met goed eten' en selecteer Zoeken.

  5. U kunt ook JSON-weergave selecteren en definities in de query-editor plakken:

    Schermopname van de syntaxis van JSON-query's in Azure Portal.

    Hier volgt een JSON-voorbeeld dat u in de weergave kunt plakken:

    {
      "search": "historic hotel with good food",
      "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"
    }
    

Het antwoord evalueren

Alleen de top 50 overeenkomsten uit de eerste resultaten kunnen semantisch worden gerangschikt. Net als bij alle query's bestaat een antwoord uit alle velden die zijn gemarkeerd als ophaalbaar of alleen die velden die in de select parameter worden vermeld. Een antwoord bevat de oorspronkelijke relevantiescore en kan ook een telling of batchresultaten bevatten, afhankelijk van de wijze waarop u de aanvraag hebt geformuleerd.

In semantische rangschikking heeft het antwoord meer elementen: een nieuwe semantisch gerangschikte relevantiescore, een optioneel bijschrift in tekst zonder opmaak en met markeringen en een optioneel antwoord. Als uw resultaten deze extra elementen niet bevatten, is uw query mogelijk onjuist geconfigureerd. Als eerste stap voor het oplossen van het probleem controleert u de semantische configuratie om ervoor te zorgen dat deze is opgegeven in zowel de indexdefinitie als de query.

In een client-app kunt u de zoekpagina structuren om een bijschrift op te nemen als de beschrijving van de overeenkomst, in plaats van de volledige inhoud van een specifiek veld. Deze methode is handig wanneer afzonderlijke velden te dicht zijn voor de pagina met zoekresultaten.

Het antwoord voor de bovenstaande voorbeeldquery retourneert de volgende overeenkomst als de bovenste selectie. Bijschriften worden geretourneerd omdat de eigenschap 'bijschriften' is ingesteld, met tekst zonder opmaak en gemarkeerde versies. Antwoorden worden weggelaten uit het voorbeeld, omdat er geen kan worden bepaald voor deze specifieke query en corpus.

"@odata.count": 35,
"@search.answers": [],
"value": [
    {
        "@search.score": 1.8810667,
        "@search.rerankerScore": 1.1446577133610845,
        "@search.captions": [
            {
                "text": "Oceanside Resort. Luxury. New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
                "highlights": "<strong>Oceanside Resort.</strong> Luxury. New Luxury Hotel. Be the first to stay.<strong> Bay</strong> views from every room, location near the pier, rooftop pool, waterfront dining & more."
            }
        ],
        "HotelName": "Oceanside Resort",
        "Description": "New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
        "Category": "Luxury"
    },
  ...
]

Verwachte workloads

Voor semantische classificatie moet u verwachten dat een zoekservice maximaal 10 gelijktijdige query's per replica ondersteunt.

De service beperkt semantische classificatieaanvragen als volumes te hoog zijn. Een foutbericht met deze woordgroepen geeft aan dat de service capaciteit heeft voor semantische rangschikking:

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

Als u verwacht dat de vereisten voor consistente doorvoer bijna, op of hoger dan dit niveau zijn, dient u een ondersteuningsticket in, zodat we uw workload kunnen inrichten.

Volgende stappen

Semantische classificatie kan worden gebruikt in hybride query's die trefwoordzoekopdrachten en vectorzoekopdrachten combineren in één aanvraag en een uniform antwoord.