Краткое руководство. Получение аналитических сведений об изображении с помощью REST API и Python Визуального поиска Bing
Предупреждение
30 октября 2020 г. API Поиск Bing перенесены из служб ИИ Azure в Поиск Bing Services. Эта документация приводится только для справки. Обновленную информацию см. в документации по API Поиска Bing. Инструкции по созданию ресурсов Azure для Поиска Bing приведены в статье Создание ресурса для Поиска Bing с помощью Azure Marketplace.
Используйте это краткое руководство, чтобы выполнить вызов к API Визуального поиска Bing. Это приложение Python отправляет изображение в API и отображает возвращенные данные о нем. Это приложение создано на языке Python. Но API представляет собой веб-службу на основе REST, совместимую с большинством языков программирования.
Предварительные требования
Создание ресурса Azure
Чтобы начать работу с API Визуального поиска Bing, создайте один из следующих ресурсов Azure.
- доступен на портале Azure до удаления.
- Выберите ценовую категорию
S9
.
- доступен на портале Azure до удаления.
- Используйте один ключ и конечную точку для приложений в нескольких службах ИИ Azure.
Инициализация приложения
Создайте файл Python в избранной интегрированной среде разработки или редакторе и добавьте следующую инструкцию
import
:import requests, json
Создайте переменные для ключа подписки, конечной точки и путь к отправляемому изображению. Для значения
BASE_URI
можно использовать глобальную конечную точку в следующем коде или конечную точку личного поддомена, отображаемую на портале Azure для вашего ресурса.BASE_URI = 'https://api.cognitive.microsoft.com/bing/v7.0/images/visualsearch' SUBSCRIPTION_KEY = 'your-subscription-key' imagePath = 'your-image-path'
При отправке локального изображения данные формы должны содержать заголовок
Content-Disposition
. Задайте для его параметраname
значение "image", а для параметраfilename
— имя файла с изображением. Форма содержит двоичные данные изображения. Максимально допустимый размер отправляемого изображения — 1 МБ.--boundary_1234-abcd Content-Disposition: form-data; name="image"; filename="myimagefile.jpg" ÿØÿà JFIF ÖÆ68g-¤CWŸþ29ÌÄøÖ‘º«™æ±èuZiÀ)"óÓß°Î= ØJ9á+*G¦... --boundary_1234-abcd--
Создайте объект словаря для хранения информации о заголовке запроса. Привяжите ключ подписки к строке
Ocp-Apim-Subscription-Key
.HEADERS = {'Ocp-Apim-Subscription-Key': SUBSCRIPTION_KEY}
Создайте еще один словарь, содержащий изображение, которое будет открываться и загружаться при отправке запроса.
file = {'image' : ('myfile', open(imagePath, 'rb'))}
Проанализируйте ответ JSON.
Создайте метод print_json()
для получения ответа API и выведите на экран код JSON.
def print_json(obj):
"""Print the object as json"""
print(json.dumps(obj, sort_keys=True, indent=2, separators=(',', ': ')))
Отправка запроса
Используйте requests.post()
для отправки запроса в Визуальный поиск Bing. Включите строку для конечной точки, заголовка и сведений о файле. Выведите на экран response.json()
с помощью 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
Дальнейшие действия
Create a Visual Search single-page web app (Создание одностраничного веб-приложения Визуального поиска)