Démarrage rapide : Utiliser la bibliothèque de client Recherche d’entités Bing

Avertissement

Le 30 octobre 2020, les API de recherche Bing sont passées des services Azure AI aux services de recherche Bing. Cette documentation est fournie à des fins de référence uniquement. Pour accéder à la documentation mise à jour, consultez la documentation de l’API Recherche Bing. Pour obtenir des instructions sur la création de nouvelles ressources Azure pour Recherche Bing, consultez Créer une ressource Recherche Bing à l’aide de Place de marché Azure.

Utilisez ce guide de démarrage rapide pour commencer à rechercher des entités avec la bibliothèque de client Recherche d’entités Bing pour C#. Si l’outil Recherche d’entités Bing a une API REST compatible avec la plupart des langages de programmation, la bibliothèque de client offre quant à elle un moyen facile d’intégrer le service à vos applications. Le code source de cet exemple est disponible sur GitHub.

Prérequis

Pour ajouter la bibliothèque de client Recherche d’entités Bing à votre projet Visual Studio, utilisez l’option Gérer les packages NuGet à partir de l’Explorateur de solutions, puis ajoutez le package Microsoft.Azure.CognitiveServices.Search.EntitySearch.

Créer une ressource Azure

Commencez à utiliser l’API Recherche d’entités Bing en créant une des ressources Azure suivantes.

Ressource Recherche d’entités Bing

  • Disponible via le portail Azure jusqu’à ce que vous supprimiez la ressource.
  • Utilisez le niveau tarifaire Gratuit pour tester le service, puis effectuez par la suite une mise à niveau vers un niveau payant pour la production.
  • L’API Recherche d’entités Bing est aussi proposée à certains niveaux de la ressource Recherche Bing v7.

Ressource multiservice

  • Disponible via le portail Azure jusqu’à ce que vous supprimiez la ressource.
  • Utilisez la même clé et le même point de terminaison pour vos applications, sur plusieurs services Azure AI.

Créer et lancer une application

  1. Créez une solution console en C# dans Visual Studio. Ajoutez ensuite les éléments suivants dans le fichier de code principal.

    using System;
    using System.Linq;
    using System.Text;
    using Microsoft.Azure.CognitiveServices.Search.EntitySearch;
    using Microsoft.Azure.CognitiveServices.Search.EntitySearch.Models;
    using Newtonsoft.Json;
    

Créer un client et envoyer une requête de recherche

  1. Créez un client de recherche. Ajoutez votre clé d’abonnement en créant un ApiKeyServiceClientCredentials.

    var client = new EntitySearchClient(new ApiKeyServiceClientCredentials("YOUR-ACCESS-KEY"));
    
  2. Utilisez la fonction Entities.Search() du client pour rechercher votre requête :

    var entityData = client.Entities.Search(query: "Satya Nadella");
    

Obtenir et imprimer une description d’entité

  1. Si l’API a retourné des résultats de recherche, obtenez l’entité principale à partir de entityData.

    var mainEntity = entityData.Entities.Value.Where(thing => thing.EntityPresentationInfo.EntityScenario == EntityScenario.DominantEntity).FirstOrDefault();
    
  2. Imprimer la description de l’entité principale

    Console.WriteLine(mainEntity.Description);
    

Étapes suivantes

Utilisez ce guide de démarrage rapide pour commencer à rechercher des entités avec la bibliothèque de client Recherche d’entités Bing pour Java. Si l’outil Recherche d’entités Bing a une API REST compatible avec la plupart des langages de programmation, la bibliothèque de client offre quant à elle un moyen facile d’intégrer le service à vos applications. Le code source de cet exemple est disponible sur GitHub.

Prérequis

Installez les dépendances de bibliothèque de client Recherche d’entités Bing en utilisant Maven, Gradle ou un autre système de gestion des dépendances. Le fichier POM Maven nécessite la déclaration suivante :

<dependency>
  <groupId>com.microsoft.azure.cognitiveservices</groupId>
  <artifactId>azure-cognitiveservices-entitysearch</artifactId>
  <version>1.0.2</version>
</dependency>

Créer une ressource Azure

Commencez à utiliser l’API Recherche d’entités Bing en créant une des ressources Azure suivantes.

Ressource Recherche d’entités Bing

  • Disponible via le portail Azure jusqu’à ce que vous supprimiez la ressource.
  • Utilisez le niveau tarifaire Gratuit pour tester le service, puis effectuez par la suite une mise à niveau vers un niveau payant pour la production.
  • L’API Recherche d’entités Bing est aussi proposée à certains niveaux de la ressource Recherche Bing v7.

Ressource multiservice

  • Disponible via le portail Azure jusqu’à ce que vous supprimiez la ressource.
  • Utilisez la même clé et le même point de terminaison pour vos applications, sur plusieurs services Azure AI.

Créer et initialiser un projet

  1. Créez un projet Java dans votre éditeur ou IDE favori, puis importez les bibliothèques suivantes.

    import com.microsoft.azure.cognitiveservices.entitysearch.*;
    import com.microsoft.azure.cognitiveservices.entitysearch.implementation.EntitySearchAPIImpl;
    import com.microsoft.azure.cognitiveservices.entitysearch.implementation.SearchResponseInner;
    import com.microsoft.rest.credentials.ServiceClientCredentials;
    import okhttp3.Interceptor;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
  2. Créer une variable pour votre clé d’abonnement

    String subscriptionKey = "your-key-here"
    

Créer un client de recherche

  1. Implémentez le client dominantEntityLookup, qui nécessite votre point de terminaison d’API et une instance de la classe ServiceClientCredentials. Vous pouvez utiliser le point de terminaison global ci-dessous, ou le point de terminaison de sous-domaine personnalisé affiché dans le portail Azure pour votre ressource.

    public static EntitySearchAPIImpl getClient(final String subscriptionKey) {
        return new EntitySearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/",
                new ServiceClientCredentials() {
                //...
                }
    )};
    

    Pour implémenter ServiceClientCredentials, effectuez les étapes suivantes :

    1. Remplacez la fonction applyCredentialsFilter() avec un objet OkHttpClient.Builder en tant que paramètre.

      //...
      new ServiceClientCredentials() {
              @Override
              public void applyCredentialsFilter(OkHttpClient.Builder builder) {
              //...
              }
      //...
      
    2. Au sein de applyCredentialsFilter(), appelez builder.addNetworkInterceptor(). Créez un objet Interceptor et remplacez sa méthode intercept() pour prendre un objet intercepteur Chain.

      //...
      builder.addNetworkInterceptor(
          new Interceptor() {
              @Override
              public Response intercept(Chain chain) throws IOException {
              //...    
              }
          });
      ///...
      
    3. Au sein de la fonction intercept, créez des variables pour votre requête. Utilisez Request.Builder() pour générer votre requête. Ajoutez votre clé d’abonnement à l’en-tête Ocp-Apim-Subscription-Key et retournez chain.proceed() sur l’objet de requête.

      //...
      public Response intercept(Chain chain) throws IOException {
          Request request = null;
          Request original = chain.request();
          Request.Builder requestBuilder = original.newBuilder()
                  .addHeader("Ocp-Apim-Subscription-Key", subscriptionKey);
          request = requestBuilder.build();
          return chain.proceed(request);
      }
      //...
      

Envoyer une requête et recevoir une réponse

  1. Créez une instance du client de recherche avec votre clé d’abonnement. Utilisez client.entities().search() pour envoyer une demande pour la requête de recherche satya nadella et obtenir une réponse.

    EntitySearchAPIImpl client = getClient(subscriptionKey);
    SearchResponseInner entityData = client.entities().search(
            "satya nadella", null, null, null, null, null, null, "en-us", null, null, SafeSearch.STRICT, null);
    
  2. Si des entités sont retournées, convertissez-les en liste. Itérez en leur sein et affichez l’entité dominante.

    if (entityData.entities().value().size() > 0){
        // Find the entity that represents the dominant entity
        List<Thing> entries = entityData.entities().value();
        Thing dominateEntry = null;
        for(Thing thing : entries) {
            if(thing.entityPresentationInfo().entityScenario() == EntityScenario.DOMINANT_ENTITY) {
                System.out.println("\r\nSearched for \"Satya Nadella\" and found a dominant entity with this description:");
                System.out.println(thing.description());
                break;
            }
        }
    }
    

Étapes suivantes

Utilisez ce guide de démarrage rapide pour commencer à rechercher des entités avec la bibliothèque de client Recherche d’entités Bing pour JavaScript. Si l’outil Recherche d’entités Bing a une API REST compatible avec la plupart des langages de programmation, la bibliothèque de client offre quant à elle un moyen facile d’intégrer le service à vos applications. Le code source de cet exemple est disponible sur GitHub.

Prérequis

  • La dernière version de Node.js.
  • Le SDK Recherche d’entités Bing pour JavaScript
    • Pour l’installer, exécutez npm install @azure/cognitiveservices-entitysearch
  • La classe CognitiveServicesCredentials du package @azure/ms-rest-azure-js pour authentifier le client.
    • Pour l’installer, exécutez npm install @azure/ms-rest-azure-js

Créer une ressource Azure

Commencez à utiliser l’API Recherche d’entités Bing en créant une des ressources Azure suivantes.

Ressource Recherche d’entités Bing

  • Disponible via le portail Azure jusqu’à ce que vous supprimiez la ressource.
  • Utilisez le niveau tarifaire Gratuit pour tester le service, puis effectuez par la suite une mise à niveau vers un niveau payant pour la production.
  • L’API Recherche d’entités Bing est aussi proposée à certains niveaux de la ressource Recherche Bing v7.

Ressource multiservice

  • Disponible via le portail Azure jusqu’à ce que vous supprimiez la ressource.
  • Utilisez la même clé et le même point de terminaison pour vos applications, sur plusieurs services Azure AI.

Créer et initialiser l’application

  1. Créez un fichier JavaScript dans votre éditeur ou IDE favori, puis ajoutez les exigences suivantes.

    const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials;
    const EntitySearchAPIClient = require('@azure/cognitiveservices-entitysearch');
    
  2. Créez une instance de CognitiveServicesCredentials à l’aide de votre clé d’abonnement. Ensuite, créez une instance du client de recherche avec cette dernière.

    let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY');
    let entitySearchApiClient = new EntitySearchAPIClient(credentials);
    

Envoyer une requête et recevoir une réponse

  1. Envoyez une requête de recherche d’entités avec entitiesOperations.search(). Après avoir reçu une réponse, imprimez le queryContext, le nombre de résultats retournés et la description du premier résultat.

    entitySearchApiClient.entitiesOperations.search('seahawks').then((result) => {
        console.log(result.queryContext);
        console.log(result.entities.value);
        console.log(result.entities.value[0].description);
    }).catch((err) => {
        throw err;
    });
    

Étapes suivantes

Utilisez ce guide de démarrage rapide pour commencer à rechercher des entités avec la bibliothèque de client Recherche d’entités Bing pour Python. Si l’outil Recherche d’entités Bing a une API REST compatible avec la plupart des langages de programmation, la bibliothèque de client offre quant à elle un moyen facile d’intégrer le service à vos applications. Le code source de cet exemple est disponible sur GitHub.

Prérequis

Nous vous recommandons d’utiliser un environnement virtuel Python. Vous pouvez installer et lancer un environnement virtuel avec le module venv. Vous pouvez installer virtualenv avec :

python -m venv mytestenv

Installez la bibliothèque de client Recherche d’entités Bing avec :

cd mytestenv
python -m pip install azure-cognitiveservices-search-entitysearch

Créer une ressource Azure

Commencez à utiliser l’API Recherche d’entités Bing en créant une des ressources Azure suivantes.

Ressource Recherche d’entités Bing

  • Disponible via le portail Azure jusqu’à ce que vous supprimiez la ressource.
  • Utilisez le niveau tarifaire Gratuit pour tester le service, puis effectuez par la suite une mise à niveau vers un niveau payant pour la production.
  • L’API Recherche d’entités Bing est aussi proposée à certains niveaux de la ressource Recherche Bing v7.

Ressource multiservice

  • Disponible via le portail Azure jusqu’à ce que vous supprimiez la ressource.
  • Utilisez la même clé et le même point de terminaison pour vos applications, sur plusieurs services Azure AI.

Créer et initialiser l’application

  1. Créez un fichier Python dans votre éditeur ou IDE favori, puis ajoutez les instructions d’importation suivantes.

    from azure.cognitiveservices.search.entitysearch import EntitySearchClient
    from azure.cognitiveservices.search.entitysearch.models import Place, ErrorResponseException
    from msrest.authentication import CognitiveServicesCredentials
    
  2. Créez une variable pour votre clé d’abonnement et votre point de terminaison. Instanciez le client en créant un objet CognitiveServicesCredentials avec votre clé.

    subscription_key = "YOUR-SUBSCRIPTION-KEY"
    endpoint = "YOUR-ENDPOINT"
    client = EntitySearchclient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
    

Envoyer une requête de recherche et recevoir une réponse

  1. Envoyez une requête de recherche à Recherche d’entités Bing avec client.entities.search() et ladite requête.

    entity_data = client.entities.search(query="Gibralter")
    
  2. Si des entités sont retournées, convertissez entity_data.entities.value en liste et imprimez le premier résultat.

    if entity_data.entities.value:
    
        main_entities = [entity for entity in entity_data.entities.value
                         if entity.entity_presentation_info.entity_scenario == "DominantEntity"]
    
        if main_entities:
            print(main_entities[0].description)
    

Étapes suivantes