Partager via


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

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 effectuer votre premier appel à l’API Recherche visuelle Bing. Cette application Python charge une image dans l’API et affiche les informations qu’elle retourne. Bien que cette application soit écrite en Python, l’API est un service web RESTful compatible avec la plupart des langages de programmation.

Prérequis

Créer une ressource Azure

Commencez à utiliser l’API Recherche visuelle Bing en créant 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 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.

Initialiser l’application

  1. Créez un fichier Python dans votre IDE ou votre éditeur favori, puis ajoutez l’instruction import suivante :

    import requests, json
    
  2. Créez les variables pour votre clé d’abonnement, le point de terminaison et le chemin de l’image que vous chargez. Pour la valeur de BASE_URI, 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.

    
    BASE_URI = 'https://api.cognitive.microsoft.com/bing/v7.0/images/visualsearch'
    SUBSCRIPTION_KEY = 'your-subscription-key'
    imagePath = 'your-image-path'
    
  3. Quand vous chargez une image locale, les données de formulaire doivent inclure l’en-tête Content-Disposition. Définissez son paramètre name sur « image » et le paramètre filename sur le nom de fichier de votre image. Le contenu du formulaire inclut les données binaires de l’image. La taille maximale de l’image que vous chargez 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--
    
  4. Créez un objet de dictionnaire pour stocker les informations d’en-tête de votre demande. Liez votre clé d’abonnement à la chaîne Ocp-Apim-Subscription-Key.

    HEADERS = {'Ocp-Apim-Subscription-Key': SUBSCRIPTION_KEY}
    
  5. Créez un autre dictionnaire destiné à contenir votre image, qui est ouverte et chargée quand vous envoyez la demande.

    file = {'image' : ('myfile', open(imagePath, 'rb'))}
    

Analyser la réponse JSON

Créez une méthode appelée print_json() pour accepter la réponse de l’API et l’afficher au format JSON.

def print_json(obj):
    """Print the object as json"""
    print(json.dumps(obj, sort_keys=True, indent=2, separators=(',', ': ')))

Envoyer la demande

Utilisez requests.post() pour envoyer une demande à l’API Recherche visuelle Bing. Incluez la chaîne indiquant les informations relatives au point de terminaison, à l’en-tête et au fichier. Affichez response.json() avec print_json().

try:
    response = requests.post(BASE_URI, headers=HEADERS, files=file)
    response.raise_for_status()
    print_json(response.json())
    
except Exception as ex:
    raise ex

Étapes suivantes