Краткое руководство. Получение аналитических сведений об изображениях с помощью REST API Визуального поиска Bing и Node.js
Предупреждение
30 октября 2020 г. API-интерфейсы Поиск Bing перемещены из служб ИИ Azure в службы Поиск Bing. Эта документация приводится только для справки. Обновленную информацию см. в документации по API Поиска Bing. Инструкции по созданию ресурсов Azure для Поиска Bing приведены в статье Создание ресурса для Поиска Bing с помощью Azure Marketplace.
Используйте это краткое руководство, чтобы выполнить вызов API Визуального поиска Bing. Это простое приложение JavaScript отправляет изображение в API и отображает данные о нем. Хотя приложение написано на JavaScript, API представляет собой веб-службу RESTful и совместим с большинством языков программирования.
Предварительные требования
- Node.js
- Модуль запросов для JavaScript. Вы можете использовать команду
npm install request
, чтобы установить модуль. - Модуль данных формы. Вы можете использовать команду
npm install form-data
, чтобы установить модуль.
Создание ресурса Azure
Чтобы начать работу с API Визуального поиска Bing, создайте один из следующих ресурсов Azure.
- доступен на портале Azure до удаления.
- Выберите ценовую категорию
S9
.
- доступен на портале Azure до удаления.
- Используйте один и тот же ключ и конечную точку для приложений в нескольких службах ИИ Azure.
Инициализация приложения
Создайте файл JavaScript в избранной интегрированной среде разработки или редакторе и установите следующие требования:
var request = require('request'); var FormData = require('form-data'); var fs = require('fs');
Создайте переменные для конечной точки API, ключ подписки и путь к изображению. Для значения
baseUri
вы можете использовать глобальную конечную точку, указанную в коде ниже, или конечную точку личного поддомена, которая отображается на портале Azure для вашего ресурса.var baseUri = 'https://api.cognitive.microsoft.com/bing/v7.0/images/visualsearch'; var subscriptionKey = 'your-api-key'; var imagePath = "path-to-your-image";
Создайте функцию с именем
requestCallback()
, чтобы выводить полученный от API ответ.function requestCallback(err, res, body) { console.log(JSON.stringify(JSON.parse(body), null, ' ')) }
Создание и отправка поискового запроса
При отправке локального изображения данные формы должны содержать заголовок
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--
Создайте новый объект
FormData
с помощьюFormData()
и добавьте к нему путь к изображению с помощьюfs.createReadStream()
.var form = new FormData(); form.append("image", fs.createReadStream(imagePath));
Используйте библиотеку запросов, чтобы отправить изображение, и вызовите
requestCallback()
для вывода ответа. Добавьте ключ подписки в заголовок запроса.form.getLength(function(err, length){ if (err) { return requestCallback(err); } var r = request.post(baseUri, requestCallback); r._form = form; r.setHeader('Ocp-Apim-Subscription-Key', subscriptionKey); });
Дальнейшие действия
Build a Visual Search single-page web app (Создание одностраничного веб-приложения Визуального поиска)