Schnellstart: Abrufen von Bildeinsichten mithilfe der Bing Visual Search-REST-API und Python

Warnung

Am 30. Oktober 2020 wurden die Bing Search-APIs von Azure AI-Diensten zu Bing Search Services verschoben. Diese Dokumentation wird nur zur Referenz bereitgestellt. Eine aktualisierte Dokumentation finden Sie in der Dokumentation zu den Bing-Suche-APIs. Anweisungen zum Erstellen neuer Azure-Ressourcen für die Bing-Suche finden Sie unter Erstellen einer Ressource für die Bing-Suche über Azure Marketplace.

Verwenden Sie diese Schnellstartanleitung, um Ihren ersten Aufruf an die Bing Visual Search-API durchzuführen. Diese Python-Anwendung lädt ein Bild in die API hoch und zeigt die zurückgegebenen Informationen an. Obwohl diese Anwendung in Python geschrieben ist, ist die API ein RESTful-Webdienst, der mit den meisten Programmiersprachen kompatibel ist.

Voraussetzungen

Erstellen einer Azure-Ressource

Beginnen Sie mit der Verwendung der API für die visuelle Bing-Suche, indem Sie eine der folgenden Azure-Ressourcen erstellen:

Ressource für Bing-Suche v7

  • Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
  • Wählen Sie den S9-Tarif aus.

Ressource für mehrere Dienste

  • Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
  • Verwenden Sie denselben Schlüssel und Endpunkt für Ihre Anwendungen in mehreren Azure AI-Diensten.

Initialisieren der Anwendung

  1. Erstellen Sie eine neue Python-Datei in Ihrer bevorzugten IDE oder Ihrem Bevorzugten Editor, und fügen Sie die folgende import Anweisung hinzu:

    import requests, json
    
  2. Erstellen Sie Variablen für Ihren Abonnementschlüssel, Endpunkt und den Pfad zum Bild, das Sie hochladen. Für den Wert von BASE_URIkönnen Sie den globalen Endpunkt im folgenden Code verwenden oder den benutzerdefinierten Unterdomänenendpunkt verwenden, der im Azure-Portal für Ihre Ressource angezeigt wird.

    
    BASE_URI = 'https://api.cognitive.microsoft.com/bing/v7.0/images/visualsearch'
    SUBSCRIPTION_KEY = 'your-subscription-key'
    imagePath = 'your-image-path'
    
  3. Wenn Sie ein lokales Bild hochladen, müssen die Formulardaten die Content-Disposition Kopfzeile enthalten. Legen Sie den name Parameter auf "image" fest, und legen Sie den filename Parameter auf den Dateinamen Ihres Bilds fest. Der Inhalt des Formulars enthält die Binärdaten des Bilds. Die maximale Bildgröße, die Sie hochladen können, beträgt 1 MB.

    --boundary_1234-abcd
    Content-Disposition: form-data; name="image"; filename="myimagefile.jpg"
    
    ÿØÿà JFIF ÖÆ68g-¤CWŸþ29ÌÄøÖ‘º«™æ±èuZiÀ)"óÓß°Î= ØJ9á+*G¦...
    
    --boundary_1234-abcd--
    
  4. Erstellen Sie ein Wörterbuchobjekt, um die Kopfzeileninformationen Ihrer Anforderung zu speichern. Binden Sie Ihren Abonnementschlüssel an die Zeichenfolge Ocp-Apim-Subscription-Key.

    HEADERS = {'Ocp-Apim-Subscription-Key': SUBSCRIPTION_KEY}
    
  5. Erstellen Sie ein weiteres Wörterbuch, das Ihr Bild enthält, das beim Senden der Anforderung geöffnet und hochgeladen wird.

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

Analysieren der JSON-Antwort

Erstellen Sie eine Methode namens print_json(), um die API-Antwort zu akzeptieren und den JSON auszugeben.

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

Senden der Anforderung

Verwenden Sie requests.post(), um eine Anforderung an die Bing Visual Search API zu senden. Schließen Sie die Zeichenfolge für Den Endpunkt, die Kopfzeile und die Dateiinformationen ein. Drucken response.json() mit 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

Nächste Schritte