Поделиться через


Краткое руководство. Получение аналитических сведений об изображениях с помощью 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.

Ресурс Поиска Bing версии 7

  • доступен на портале Azure до удаления.
  • Выберите ценовую категорию S9.

Ресурс для нескольких служб

  • доступен на портале Azure до удаления.
  • Используйте один и тот же ключ и конечную точку для приложений в нескольких службах ИИ Azure.

Инициализация приложения

  1. Создайте файл JavaScript в избранной интегрированной среде разработки или редакторе и установите следующие требования:

    var request = require('request');
    var FormData = require('form-data');
    var fs = require('fs');
    
  2. Создайте переменные для конечной точки 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";
    
  3. Создайте функцию с именем requestCallback(), чтобы выводить полученный от API ответ.

    function requestCallback(err, res, body) {
        console.log(JSON.stringify(JSON.parse(body), null, '  '))
    }
    

Создание и отправка поискового запроса

  1. При отправке локального изображения данные формы должны содержать заголовок 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--
    
  2. Создайте новый объект FormData с помощью FormData() и добавьте к нему путь к изображению с помощью fs.createReadStream().

    var form = new FormData();
    form.append("image", fs.createReadStream(imagePath));
    
  3. Используйте библиотеку запросов, чтобы отправить изображение, и вызовите 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 (Создание одностраничного веб-приложения Визуального поиска)