Hızlı Başlangıç: Bing Görsel Arama REST API'sini ve Python'ı kullanarak görüntü içgörüleri alma

Uyarı

30 Ekim 2020'de Bing Arama API'leri Azure yapay zeka hizmetlerinden Bing Arama Hizmetlerine taşındı. Bu belgeler yalnızca başvuru için sağlanır. Güncelleştirilmiş belgeler için Bing arama API'sinin belgelerine bakın. Bing araması için yeni Azure kaynakları oluşturma yönergeleri için bkz. Azure Market aracılığıyla Bing Arama kaynağı oluşturma.

Bing Görsel Arama API'sine ilk çağrınızı yapmak için bu hızlı başlangıcı kullanın. Bu Python uygulaması API'ye bir görüntü yükler ve döndürdüğü bilgileri görüntüler. Bu uygulama Python'da yazılmış olsa da, API çoğu programlama diliyle uyumlu bir RESTful Web hizmetidir.

Önkoşullar

Azure kaynağı oluşturma

Aşağıdaki Azure kaynaklarından birini oluşturarak Bing Görsel Arama API'sini kullanmaya başlayın:

Bing Arama v7 kaynağı

  • Kaynağı silene kadar Azure portal aracılığıyla kullanılabilir.
  • Fiyatlandırma katmanını S9 seçin.

Çok hizmetli kaynak

  • Kaynağı silene kadar Azure portal aracılığıyla kullanılabilir.
  • Birden çok Azure AI hizmeti genelinde uygulamalarınız için aynı anahtarı ve uç noktayı kullanın.

Uygulamayı başlatma

  1. Sık kullandığınız IDE veya düzenleyicide yeni bir Python dosyası oluşturun ve aşağıdaki import deyimi ekleyin:

    import requests, json
    
  2. Abonelik anahtarınız, uç noktanız ve karşıya yüklediğiniz görüntünün yolu için değişkenler oluşturun. değeri BASE_URIiçin aşağıdaki kodda genel uç noktayı kullanabilir veya kaynağınızın Azure portal görüntülenen özel alt etki alanı uç noktasını kullanabilirsiniz.

    
    BASE_URI = 'https://api.cognitive.microsoft.com/bing/v7.0/images/visualsearch'
    SUBSCRIPTION_KEY = 'your-subscription-key'
    imagePath = 'your-image-path'
    
  3. Yerel bir görüntüyü karşıya yüklediğinizde, form verilerinin üst bilgiyi içermesi Content-Disposition gerekir. parametresini name "image" olarak, parametresini filename ise görüntünüzün dosya adına ayarlayın. Formun içeriği görüntünün ikili verilerini içerir. Karşıya yükleyebileceğiniz en büyük görüntü boyutu 1 MB'tır.

    --boundary_1234-abcd
    Content-Disposition: form-data; name="image"; filename="myimagefile.jpg"
    
    ÿØÿà JFIF ÖÆ68g-¤CWŸþ29ÌÄøÖ‘º«™æ±èuZiÀ)"óÓß°Î= ØJ9á+*G¦...
    
    --boundary_1234-abcd--
    
  4. İsteğinizin üst bilgi bilgilerini tutmak için bir sözlük nesnesi oluşturun. Abonelik anahtarınızı dizesine bağlayın Ocp-Apim-Subscription-Key.

    HEADERS = {'Ocp-Apim-Subscription-Key': SUBSCRIPTION_KEY}
    
  5. İsteği gönderdiğinizde açılan ve karşıya yüklenen görüntünüzü içerecek başka bir sözlük oluşturun.

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

JSON yanıtını ayrıştırma

API yanıtını kabul etmek için adlı print_json() bir yöntem oluşturun ve JSON'u yazdırın.

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

İsteği gönderme

Bing Görsel Arama API'sine istek göndermek için kullanın requests.post() . Uç noktanız, üst bilginiz ve dosya bilgileriniz için dizeyi ekleyin. ile print_json()yazdırınresponse.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

Sonraki adımlar