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ň.
- 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
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
Vytvořte proměnné pro klíč předplatného, koncový bod a cestu k nahrání image. Pro hodnotu
BASE_URI
můž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'
Při nahrávání místního obrázku musí data formuláře obsahovat
Content-Disposition
záhlaví. Nastavte jehoname
parametr na image a nastavtefilename
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--
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}
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