Partager via


Ajouter un classement sémantique aux requêtes dans Recherche Azure AI

Vous pouvez appliquer le classement sémantique aux requêtes textuelles, aux requêtes hybrides et aux requêtes vectorielles si vos documents de recherche contiennent des champs de chaîne, et si la requête vectorielle a une représentation textuelle dans le document de recherche.

Cet article explique comment appeler le classeur sémantique sur les requêtes.

Prérequis

Remarque

Les légendes et réponses sont extraites du texte littéral du document de recherche. Le sous-système sémantique utilise la compréhension de la lecture automatique pour reconnaître le contenu ayant les caractéristiques d’une légende ou d’une réponse, mais il ne compose pas de nouvelles phrases ou expressions. Pour cette raison, le contenu qui comprend des explications ou des définitions est le mieux adapté au classement sémantique. Si vous voulez une interaction de type conversation avec des réponses générées, consultez RAG (Génération Augmentée de Récupération).

Choisissez un client

Vous pouvez utiliser l’un des outils et SDK suivants pour créer une requête qui utilise le classement sémantique :

Éviter les fonctionnalités qui ignorent le score de pertinence

Quelques interrogations des données par requête contournent le scoring de pertinence, ce qui les rend incompatibles avec le classement sémantique. Si la logique de votre requête comprend les fonctionnalités suivantes, vous ne pouvez pas classer sémantiquement vos résultats :

  • Une requête avec search=* ou une chaîne de recherche vide, comme une requête de filtrage uniquement, ne va pas fonctionner, car il n’y a rien à quoi mesurer la pertinence sémantique. Les scores de la recherche ont ainsi la valeur zéro. La requête doit contenir des expressions ou des termes pouvant être évalués au cours du traitement.

  • Le tri (clauses orderBy) sur des champs spécifiques l’emporte sur les scores de recherche et un score sémantique. Comme le score sémantique est censé fournir le classement, l’ajout d’une clause orderby entraîne une erreur HTTP 400 si vous appliquez le classement sémantique sur des résultats ordonnés.

Configurer la requête

Dans cette étape, ajoutez des paramètres à la demande de requête. Pour réussir, votre requête doit être une recherche en texte intégral (utilisant le paramètre search pour passer une chaîne) ou une requête vectorielle. L’index doit contenir des champs de texte avec un contenu sémantique riche et une configuration sémantique.

L’Explorateur de recherche inclut des options de classement sémantique.

  1. Connectez-vous au portail Azure.

  2. Ouvrez un index de recherche et sélectionnez Explorateur de recherche.

  3. Sélectionnez Options de requête. Si vous avez déjà défini une configuration sémantique, elle est sélectionnée par défaut. Si vous n’en avez pas, créez une configuration sémantique pour votre index.

    Capture d’écran montrant les options de requête dans l’Explorateur de recherche.

  4. Entrez une requête, telle que « hôtel historique avec une bonne nourriture », puis sélectionnez Rechercher.

  5. Vous pouvez également sélectionner Vue JSON et coller des définitions dans l’éditeur de requête :

    Capture d’écran montrant la syntaxe de requête JSON sur le Portail Azure.

    Voici un exemple JSON que vous pouvez coller dans l’affichage :

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

Évaluer la réponse

Seules les 50 premières correspondances des résultats initiaux peuvent être classées de façon sémantique. Comme pour toutes les requêtes, une réponse est composée de tous les champs marqués comme étant récupérables, ou uniquement des champs listés dans le paramètre select. Une réponse inclut le score de pertinence d’origine et peut également inclure un nombre, ou des résultats par lot, en fonction de la façon dont vous avez formulé la demande.

Dans le classement sémantique, la réponse comporte plus d’éléments : un nouveau score de pertinence classé sémantiquement, une légende facultative en texte brut et mise en évidence ainsi qu’une réponse facultative. Si vos résultats n’incluent pas ces éléments supplémentaires, votre requête peut être mal configurée. Pour résoudre le problème dans un premier temps, vérifiez la configuration sémantique pour vous assurer qu’elle est spécifiée dans la définition d’index et la requête.

Dans une application cliente, vous pouvez structurer la page de recherche pour inclure une légende comme description de la correspondance, plutôt que l’intégralité du contenu d’un champ spécifique. Cette approche est utile lorsque les champs individuels sont trop denses pour la page des résultats de la recherche.

La réponse pour l’exemple de requête ci-dessus (« interesting hotel with restaurant on site and cozy lobby or shared area » (hôtel intéressant avec restaurant sur place et hall d’entrée ou espace commun confortable)) retourne trois réponses ("answers": "extractive|count-e"). Les légendes sont retournées, car la propriété « captions » est définie, avec du texte brut et des versions en surbrillance. Si une réponse ne peut pas être déterminée, elle est omise de la réponse. Pour des raisons de concision, cet exemple montre seulement les trois réponses et les trois résultats de scoring les plus élevés de la requête.

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

Charges de travail attendues

Pour le classement sémantique, vous devez vous attendre à ce qu’un service de recherche prenne en charge jusqu’à 10 requêtes simultanées par réplica.

Le service limite les requêtes de classement sémantique si les volumes sont trop élevés. Un message d’erreur qui inclut ces expressions indique que le service a atteint sa capacité pour le classement sémantique :

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

Si vous prévoyez des exigences de débit cohérentes proches de ce niveau, à ce niveau ou supérieures à ce niveau, envoyez un ticket de support afin que nous puissions approvisionner votre charge de travail.

Étapes suivantes

Le classement sémantique peut être utilisé dans des requêtes hybrides qui combinent la recherche par mot clé et la recherche vectorielle dans une seule requête et une réponse unifiée.