Sdílet prostřednictvím


Rychlý start: Získání přehledů obrázků pomocí rozhraní REST API bingu pro vizuální vyhledávání a Pythonu

Upozornění

30. října 2020 se rozhraní API Vyhledávání Bingu přesunula ze služeb Azure AI na Vyhledávání Bingu Services. Tato dokumentace je k dispozici pouze pro referenci. Aktualizovanou dokumentaci najdete v dokumentaci k rozhraní API bingu pro vyhledávání. Pokyny k vytváření nových prostředků Azure pro vyhledávání Bingem najdete v tématu Vytvoření prostředku Vyhledávání Bingu prostřednictvím Azure Marketplace.

Pomocí tohoto rychlého startu můžete provést první volání rozhraní API Pro vizuální vyhledávání Bingu. Tato aplikace Pythonu nahraje do rozhraní API obrázek a zobrazí informace, které vrací. I když je tato aplikace napsaná v Pythonu, rozhraní API je webová služba RESTful kompatibilní s většinou programovacích jazyků.

Požadavky

Vytvoření prostředku Azure

Začněte používat rozhraní API Bingu pro vizuální vyhledávání vytvořením jednoho z následujících prostředků Azure:

prostředek Vyhledávání Bingu v7

  • Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
  • Vyberte cenovou S9 úroveň.

Prostředek s více službami

  • Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
  • Pro aplikace používejte stejný klíč a koncový bod napříč několika službami Azure AI.

Inicializace aplikace

  1. Ve svém oblíbeném integrovaném vývojovém prostředí nebo editoru vytvořte nový soubor Pythonu a přidejte následující import příkaz:

    import requests, json
    
  2. Vytvořte proměnné pro klíč předplatného, koncový bod a cestu k nahrání image. Pro hodnotu BASE_URImůžete použít globální koncový bod v následujícím kódu nebo vlastní koncový bod subdomény zobrazený v Azure Portal pro váš prostředek.

    
    BASE_URI = 'https://api.cognitive.microsoft.com/bing/v7.0/images/visualsearch'
    SUBSCRIPTION_KEY = 'your-subscription-key'
    imagePath = 'your-image-path'
    
  3. Při nahrávání místního obrázku musí data formuláře obsahovat Content-Disposition záhlaví. Nastavte jeho name parametr na image a nastavte filename parametr na název souboru obrázku. Obsah formuláře zahrnuje binární data obrázku. Maximální velikost obrázku, který můžete nahrát, je 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. Vytvořte objekt slovníku, který bude obsahovat informace o hlavičce vaší žádosti. Vytvořte vazbu klíče předplatného na řetězec Ocp-Apim-Subscription-Key.

    HEADERS = {'Ocp-Apim-Subscription-Key': SUBSCRIPTION_KEY}
    
  5. Vytvořte další slovník, který bude obsahovat váš obrázek, který se otevře a nahraje při odeslání žádosti.

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

Parsovat odpověď JSON

Vytvořte metodu s názvem print_json() pro přijetí odpovědi rozhraní API a vytiskněte json.

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

Odeslání žádosti

Slouží requests.post() k odeslání požadavku do rozhraní API Bingu pro vizuální vyhledávání. Zahrňte řetězec pro váš koncový bod, hlavičku a informace o souboru. Tisk response.json() pomocí 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

Další kroky