Partager via


Démarrage rapide : Obtenir des insights sur les images à l’aide de l’API REST Recherche visuelle Bing et Java

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 uniquement pour référence. Pour obtenir la documentation mise à jour, consultez la documentation de l’API recherche Bing. Pour obtenir des instructions sur la création de ressources Azure pour la recherche Bing, consultez Créer une ressource Recherche Bing via la Place de marché Azure.

Utilisez ce guide de démarrage rapide pour effectuer votre premier appel à l’API Recherche visuelle Bing. Cette application Java charge une image dans l’API et affiche les informations qu’elle retourne. Bien que cette application soit écrite en Java, l’API est un service web RESTful compatible avec la plupart des langages de programmation.

Conditions préalables

Créer une ressource Azure

Commencez à utiliser l’API Recherche visuelle Bing en créant l’une des ressources Azure suivantes :

Ressource Recherche Bing v7

  • Disponible via le portail Azure jusqu’à ce que vous supprimiez la ressource.
  • Sélectionnez le niveau tarifaire S9.

Ressource multiservices

  • 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 IDE ou éditeur favori, puis importez les bibliothèques suivantes :

    import java.util.*;
    import java.io.*;
    import com.google.gson.Gson;
    import com.google.gson.GsonBuilder;
    import com.google.gson.JsonObject;
    import com.google.gson.JsonParser;
    
    // HttpClient libraries
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.ContentType;
    import org.apache.http.entity.mime.MultipartEntityBuilder;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClientBuilder;
    
  2. Créez des variables pour votre point de terminaison d’API, votre clé d’abonnement et le chemin d’accès à votre image. Pour la endpoint valeur, vous pouvez utiliser le point de terminaison global dans le code suivant ou utiliser le point de terminaison de sous-domaine personnalisé affiché dans le portail Azure pour votre ressource.

    static String endpoint = "https://api.cognitive.microsoft.com/bing/v7.0/images/visualsearch";
    static String subscriptionKey = "your-key-here";
    static String imagePath = "path-to-your-image";
    
  3. Lorsque vous chargez une image locale, les données de formulaire doivent inclure l’en-tête Content-Disposition. Définissez son name paramètre sur « image », puis définissez le filename paramètre sur le nom de fichier de l’image. Le contenu du formulaire inclut les données binaires de l’image. La taille maximale de l’image que vous pouvez charger est de 1 Mo.

    --boundary_1234-abcd
    Content-Disposition: form-data; name="image"; filename="myimagefile.jpg"
    
    ÿØÿà JFIF ÖÆ68g-¤CWŸþ29ÌÄøÖ‘º«™æ±èuZiÀ)"óÓß°Î= ØJ9á+*G¦...
    
    --boundary_1234-abcd--
    

Créer l’analyseur JSON

Créez une méthode pour rendre la réponse JSON de l’API plus lisible en utilisant JsonParser.

public static String prettify(String json_text) {
        JsonParser parser = new JsonParser();
        JsonObject json = parser.parse(json_text).getAsJsonObject();
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        return gson.toJson(json);
    }

Élaborer la demande de recherche et la requête

  1. Dans la méthode principale de votre application, créez un client HTTP à l’aide HttpClientBuilder.create().build();de .

    CloseableHttpClient httpClient = HttpClientBuilder.create().build();
    
  2. Créez un HttpEntity objet pour charger votre image dans l’API.

    HttpEntity entity = MultipartEntityBuilder
        .create()
        .addBinaryBody("image", new File(imagePath))
        .build();
    
  3. Créez un httpPost objet avec votre point de terminaison et définissez l’en-tête pour utiliser votre clé d’abonnement.

    HttpPost httpPost = new HttpPost(endpoint);
    httpPost.setHeader("Ocp-Apim-Subscription-Key", subscriptionKey);
    httpPost.setEntity(entity);
    

Recevoir et traiter la réponse JSON

  1. Utilisez la HttpClient.execute() méthode pour envoyer une requête à l’API et stocker la réponse dans un InputStream objet.

    HttpResponse response = httpClient.execute(httpPost);
    InputStream stream = response.getEntity().getContent();
    
  2. Stockez la chaîne JSON et imprimez la réponse.

    String json = new Scanner(stream).useDelimiter("\\A").next();
    System.out.println("\nJSON Response:\n");
    System.out.println(prettify(json));
    

Étapes suivantes