Guida introduttiva: Ottenere informazioni dettagliate sulle immagini usando l'API REST Ricerca visiva Bing e Python
Avviso
Il 30 ottobre 2020 le API di Ricerca Bing spostate dai servizi di intelligenza artificiale di Azure ai servizi Ricerca Bing. Questa documentazione viene fornita solo per informazioni di riferimento. Per la documentazione aggiornata, vedere la documentazione dell'API di ricerca Bing. Per istruzioni sulla creazione di nuove risorse di Azure per la ricerca Bing, vedere Creare una risorsa Ricerca Bing tramite la Azure Marketplace.
Usare questa guida di avvio rapido per effettuare la prima chiamata all'API Ricerca visiva Bing. Quest'applicazione Python carica un'immagine nell'API e visualizza le informazioni restituite. Anche se l'applicazione è scritta in Python, l'API è un servizio Web RESTful compatibile con la maggior parte dei linguaggi di programmazione.
Prerequisiti
Creare una risorsa di Azure
Per iniziare a usare l'API Ricerca visiva Bing, creare una delle seguenti risorse di Azure:
- disponibile tramite il portale di Azure fino a quando la risorsa non viene eliminata.
- Selezionare il piano tariffario
S9
.
- disponibile tramite il portale di Azure fino a quando la risorsa non viene eliminata.
- Usare la stessa chiave e l'endpoint per le applicazioni in più servizi di intelligenza artificiale di Azure.
Inizializzare l'applicazione
Creare un nuovo file Python nell'IDE o nell'editor preferito e aggiungere l'istruzione
import
seguente:import requests, json
Creare le variabili per la chiave di sottoscrizione, l'endpoint e il percorso dell'immagine da caricare. Per il valore di
BASE_URI
, è possibile usare l'endpoint globale nel codice seguente o l'endpoint del sottodominio personalizzato visualizzato nel portale di Azure per la risorsa.BASE_URI = 'https://api.cognitive.microsoft.com/bing/v7.0/images/visualsearch' SUBSCRIPTION_KEY = 'your-subscription-key' imagePath = 'your-image-path'
Quando si carica un'immagine locale, i dati del modulo devono includere l'intestazione
Content-Disposition
. Impostare il parametroname
su "image" e il parametrofilename
sul nome file dell'immagine. Il contenuto del modulo include i dati binari dell'immagine. La dimensione massima delle immagini che è possibile caricare è 1 MB.--boundary_1234-abcd Content-Disposition: form-data; name="image"; filename="myimagefile.jpg" ÿØÿà JFIF ÖÆ68g-¤CWŸþ29ÌÄøÖ‘º«™æ±èuZiÀ)"óÓß°Î= ØJ9á+*G¦... --boundary_1234-abcd--
Creare un oggetto dizionario per contenere le informazioni di intestazione della richiesta. Associare la chiave di sottoscrizione alla stringa
Ocp-Apim-Subscription-Key
.HEADERS = {'Ocp-Apim-Subscription-Key': SUBSCRIPTION_KEY}
Creare un altro dizionario per contenere l'immagine, che verrà aperta e caricata quando si invia la richiesta.
file = {'image' : ('myfile', open(imagePath, 'rb'))}
Analizzare la risposta JSON.
Creare un metodo denominato print_json()
per accettare la risposta dell'API e visualizzare il codice JSON.
def print_json(obj):
"""Print the object as json"""
print(json.dumps(obj, sort_keys=True, indent=2, separators=(',', ': ')))
Inviare la richiesta
Usare requests.post()
per inviare una richiesta all'API Ricerca visiva Bing. Includere la stringa per l'endpoint, l'intestazione e le informazioni sui file. Visualizzare response.json()
con 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