Быстрый старт: Использование клиентской библиотеки поиска сущностей Bing

Предупреждение

30 октября 2020 г. API поиска Bing перемещены из служб ИИ Azure в службы поиска Bing. Эта документация предоставляется только для справки. Обновленную информацию см. в документации по API Поиска Bing. Инструкции по созданию ресурсов Azure для Поиска Bing приведены в статье Создание ресурса для Поиска Bing с помощью Azure Marketplace.

Используйте это краткое руководство, чтобы начать поиск сущностей с клиентской библиотекой поиска сущностей Bing для C#. Хотя поиск сущностей Bing поддерживает REST API, совместимый с большинством языков программирования, клиентская библиотека предоставляет простой способ интеграции службы в приложения. Исходный код для этого шаблона можно найти на портале GitHub.

Предпосылки

  • Любой выпуск Visual Studio 2017 или более поздняя версия.
  • Платформа Json.NET, доступная в виде пакета NuGet.
  • Если вы используете Linux или MacOS, это приложение можно запустить с помощью Mono.
  • Пакет NuGet SDK для поиска новостей Bing . Установка этого пакета также устанавливает следующее:
    • Microsoft.Rest.ClientRuntime
    • Microsoft.Rest.ClientRuntime.Azure
    • Newtonsoft.Json

Чтобы добавить клиентную библиотеку поиска сущностей Bing в проект Visual Studio, используйте параметр "Управление пакетами NuGet" из обозревателя решенийи добавьте пакет Microsoft.Azure.CognitiveServices.Search.EntitySearch.

Создание ресурса Azure

Начните использовать API поиска сущностей Bing, создав один из следующих ресурсов Azure.

ресурс поиска сущностей Bing

  • Доступно на портале Azure до удаления ресурса.
  • Используйте бесплатный тарифный план, чтобы попробовать услугу, и перейдите на платный тариф для использования в работе.
  • Поиск сущностей Bing также предлагается на платных уровнях ресурса Bing Search версии 7.

многофункциональный ресурс

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

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

  1. создайте новое консольное решение C# в Visual Studio. Затем добавьте следующий код в основной файл кода.

    using System;
    using System.Linq;
    using System.Text;
    using Microsoft.Azure.CognitiveServices.Search.EntitySearch;
    using Microsoft.Azure.CognitiveServices.Search.EntitySearch.Models;
    using Newtonsoft.Json;
    

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

  1. Создайте новый клиент поиска. Добавьте ключ подписки, создав новый ApiKeyServiceClientCredentials.

    var client = new EntitySearchClient(new ApiKeyServiceClientCredentials("YOUR-ACCESS-KEY"));
    
  2. Используйте функцию Entities.Search() клиента для поиска запроса:

    var entityData = client.Entities.Search(query: "Satya Nadella");
    

Получите и распечатайте описание сущности

  1. Если API вернул результаты поиска, получите основную сущность из entityData.

    var mainEntity = entityData.Entities.Value.Where(thing => thing.EntityPresentationInfo.EntityScenario == EntityScenario.DominantEntity).FirstOrDefault();
    
  2. Распечатать описание основной сущности

    Console.WriteLine(mainEntity.Description);
    

Дальнейшие действия

Используйте это краткое руководство, чтобы начать поиск сущностей с клиентской библиотекой поиска сущностей Bing для Java. Хотя поиск сущностей Bing поддерживает REST API, совместимый с большинством языков программирования, клиентская библиотека предоставляет простой способ интеграции службы в приложения. Исходный код для этого шаблона можно найти на портале GitHub.

Предпосылки

Установите зависимости клиентской библиотеки поиска сущностей Bing с помощью Maven, Gradle или другой системы управления зависимостями. Для файла POM Maven требуется объявление:

<dependency>
  <groupId>com.microsoft.azure.cognitiveservices</groupId>
  <artifactId>azure-cognitiveservices-entitysearch</artifactId>
  <version>1.0.2</version>
</dependency>

Создание ресурса Azure

Начните использовать API поиска сущностей Bing, создав один из следующих ресурсов Azure.

ресурс поиска сущностей Bing

  • Доступно на портале Azure до удаления ресурса.
  • Используйте бесплатный тарифный план, чтобы попробовать услугу, и перейдите на платный тариф для использования в работе.
  • Поиск сущностей Bing также предлагается на платных уровнях ресурса Bing Search версии 7.

многофункциональный ресурс

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

Создание и инициализация проекта

  1. Создайте проект Java в любимой интегрированной среде разработки или редакторе и импортируйте следующие библиотеки.

    import com.microsoft.azure.cognitiveservices.entitysearch.*;
    import com.microsoft.azure.cognitiveservices.entitysearch.implementation.EntitySearchAPIImpl;
    import com.microsoft.azure.cognitiveservices.entitysearch.implementation.SearchResponseInner;
    import com.microsoft.rest.credentials.ServiceClientCredentials;
    import okhttp3.Interceptor;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
  2. Создание переменной для ключа подписки

    String subscriptionKey = "your-key-here"
    

Создание клиента для поиска

  1. Реализуйте клиент dominantEntityLookup, который требует ваш конечный API-адрес и экземпляр класса ServiceClientCredentials. Вы можете использовать глобальную конечную точку ниже или конечную точку пользовательского поддомена , отображаемую на портале Azure для ресурса.

    public static EntitySearchAPIImpl getClient(final String subscriptionKey) {
        return new EntitySearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/",
                new ServiceClientCredentials() {
                //...
                }
    )};
    

    Чтобы реализовать ServiceClientCredentials, выполните следующие действия.

    1. переопределите функцию applyCredentialsFilter() с объектом OkHttpClient.Builder в качестве параметра.

      //...
      new ServiceClientCredentials() {
              @Override
              public void applyCredentialsFilter(OkHttpClient.Builder builder) {
              //...
              }
      //...
      
    2. В applyCredentialsFilter()совершите вызов builder.addNetworkInterceptor(). Создайте новый объект Interceptor и переопределите его метод intercept() для принятия объекта перехватчика Chain.

      //...
      builder.addNetworkInterceptor(
          new Interceptor() {
              @Override
              public Response intercept(Chain chain) throws IOException {
              //...    
              }
          });
      ///...
      
    3. В функции intercept создайте переменные для запроса. Используйте Request.Builder() для создания запроса. Добавьте ключ подписки в заголовок Ocp-Apim-Subscription-Key и верните chain.proceed() в объекте запроса.

      //...
      public Response intercept(Chain chain) throws IOException {
          Request request = null;
          Request original = chain.request();
          Request.Builder requestBuilder = original.newBuilder()
                  .addHeader("Ocp-Apim-Subscription-Key", subscriptionKey);
          request = requestBuilder.build();
          return chain.proceed(request);
      }
      //...
      

Отправка запроса и получение ответа

  1. Создайте новый экземпляр клиента поиска с ключом подписки. используйте client.entities().search() для отправки поискового запроса satya nadellaи получения ответа.

    EntitySearchAPIImpl client = getClient(subscriptionKey);
    SearchResponseInner entityData = client.entities().search(
            "satya nadella", null, null, null, null, null, null, "en-us", null, null, SafeSearch.STRICT, null);
    
  2. Если были возвращены какие-либо сущности, преобразуйте их в список. Выполните итерацию по ним и распечатайте доминирующую сущность.

    if (entityData.entities().value().size() > 0){
        // Find the entity that represents the dominant entity
        List<Thing> entries = entityData.entities().value();
        Thing dominateEntry = null;
        for(Thing thing : entries) {
            if(thing.entityPresentationInfo().entityScenario() == EntityScenario.DOMINANT_ENTITY) {
                System.out.println("\r\nSearched for \"Satya Nadella\" and found a dominant entity with this description:");
                System.out.println(thing.description());
                break;
            }
        }
    }
    

Дальнейшие действия

Используйте это краткое руководство, чтобы начать поиск сущностей с клиентской библиотекой поиска сущностей Bing для JavaScript. Хотя поиск сущностей Bing поддерживает REST API, совместимый с большинством языков программирования, клиентская библиотека предоставляет простой способ интеграции службы в приложения. Исходный код для этого шаблона можно найти на портале GitHub.

Предпосылки

  • Последняя версия Node.js.
  • Пакет SDK поиска сущностей Bing для JavaScript
    • Чтобы установить его, выполните такую команду. npm install @azure/cognitiveservices-entitysearch
  • Класс CognitiveServicesCredentials из пакета @azure/ms-rest-azure-js для проверки подлинности клиента.
    • Чтобы установить его, выполните такую команду. npm install @azure/ms-rest-azure-js

Создание ресурса Azure

Начните использовать API поиска сущностей Bing, создав один из следующих ресурсов Azure.

ресурс поиска сущностей Bing

  • Доступно на портале Azure до удаления ресурса.
  • Используйте бесплатный тарифный план, чтобы попробовать услугу, и перейдите на платный тариф для использования в работе.
  • Поиск сущностей Bing также предлагается на платных уровнях ресурса Bing Search версии 7.

многофункциональный ресурс

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

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

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

    const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials;
    const EntitySearchAPIClient = require('@azure/cognitiveservices-entitysearch');
    
  2. Создайте экземпляр CognitiveServicesCredentials с помощью ключа подписки. Затем создайте экземпляр клиента поиска с ним.

    let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY');
    let entitySearchApiClient = new EntitySearchAPIClient(credentials);
    

Отправка запроса и получение ответа

  1. Отправьте запрос на поиск сущностей с помощью entitiesOperations.search(). После получения ответа выведите queryContext, число возвращаемых результатов и описание первого результата.

    entitySearchApiClient.entitiesOperations.search('seahawks').then((result) => {
        console.log(result.queryContext);
        console.log(result.entities.value);
        console.log(result.entities.value[0].description);
    }).catch((err) => {
        throw err;
    });
    

Дальнейшие действия

Используйте это краткое руководство, чтобы начать поиск сущностей с клиентской библиотекой поиска сущностей Bing для Python. Хотя поиск сущностей Bing поддерживает REST API, совместимый с большинством языков программирования, клиентская библиотека предоставляет простой способ интеграции службы в приложения. Исходный код для этого шаблона можно найти на портале GitHub.

Предпосылки

Рекомендуется использовать виртуальную среду Python. Вы можете установить и инициализировать виртуальную среду с помощью модуля venv. Вы можете установить virtualenv с помощью:

python -m venv mytestenv

Установите клиентную библиотеку поиска сущностей Bing с помощью следующих компонентов:

cd mytestenv
python -m pip install azure-cognitiveservices-search-entitysearch

Создание ресурса Azure

Начните использовать API поиска сущностей Bing, создав один из следующих ресурсов Azure.

ресурс поиска сущностей Bing

  • Доступно на портале Azure до удаления ресурса.
  • Используйте бесплатный тарифный план, чтобы попробовать услугу, и перейдите на платный тариф для использования в работе.
  • Поиск сущностей Bing также предлагается на платных уровнях ресурса Bing Search версии 7.

многофункциональный ресурс

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

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

  1. Создайте файл Python в избранной интегрированной среде разработки или редакторе и добавьте следующие инструкции импорта.

    from azure.cognitiveservices.search.entitysearch import EntitySearchClient
    from azure.cognitiveservices.search.entitysearch.models import Place, ErrorResponseException
    from msrest.authentication import CognitiveServicesCredentials
    
  2. Создайте переменную для ключа подписки и конечной точки. Создайте экземпляр клиента, создав новый объект CognitiveServicesCredentials с вашим ключом.

    subscription_key = "YOUR-SUBSCRIPTION-KEY"
    endpoint = "YOUR-ENDPOINT"
    client = EntitySearchclient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
    

Отправка поискового запроса и получение ответа

  1. Отправьте запрос поиска в поиск сущностей Bing с client.entities.search() и поисковым запросом.

    entity_data = client.entities.search(query="Gibralter")
    
  2. Если сущности были возвращены, преобразуйте entity_data.entities.value в список и распечатайте первый результат.

    if entity_data.entities.value:
    
        main_entities = [entity for entity in entity_data.entities.value
                         if entity.entity_presentation_info.entity_scenario == "DominantEntity"]
    
        if main_entities:
            print(main_entities[0].description)
    

Дальнейшие действия