Краткое руководство. Использование клиентской библиотеки Поиска сущностей Bing
Предупреждение
30 октября 2020 г. API-интерфейсы Поиск Bing перемещены из служб ИИ Azure в службы Поиск Bing. Эта документация приводится только для справки. Обновленную информацию см. в документации по API Поиска Bing. Инструкции по созданию ресурсов Azure для Поиска Bing приведены в статье Создание ресурса для Поиска Bing с помощью Azure Marketplace.
Используйте это краткое руководство, чтобы начать поиск сущностей с помощью клиентской библиотеки Поиска сущностей Bing для C#. Поскольку REST API Поиска сущностей Bing совместим с большинством языков программирования, клиентская библиотека обеспечивает простой способ интеграции службы в ваши приложения. Исходный код для этого шаблона можно найти на портале GitHub.
Предварительные требования
- Любой выпуск Visual Studio 2017 или более поздней версии.
- Платформа Json.NET, доступная в виде пакета NuGet.
- Если вы используете Linux или MacOS, это приложение можно запустить с помощью Mono.
- Пакет SDK Поиска новостей Bing для NuGet. При установке этого пакета также устанавливаются следующие компоненты:
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Json.
Чтобы добавить клиентскую библиотеку для API "Поиск сущностей Bing" в проект Visual Studio, используйте параметр Управление пакетами NuGet в обозревателе решений и добавьте пакет Microsoft.Azure.CognitiveServices.Search.EntitySearch
.
Создание ресурса Azure
Чтобы начать работу с API Поиска сущностей Bing, создайте один из следующих ресурсов Azure.
Ресурс Поиска сущностей Bing
- доступен на портале Azure до удаления.
- Используйте бесплатную ценовую категорию, чтобы опробовать службу, а затем выполните обновление до платного уровня для рабочей среды.
- Поиск сущностей Bing также предлагается на платных уровнях ресурса поиска Bing версии 7.
Ресурс для нескольких служб
- доступен на портале Azure до удаления.
- Используйте один и тот же ключ и конечную точку для приложений в нескольких службах ИИ Azure.
Создание и инициализация приложения
Создайте консольное приложение 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;
Создайте клиент и отправьте поисковый запрос.
Создайте клиент для поиска. Добавьте ключ подписки, создав новый
ApiKeyServiceClientCredentials
.var client = new EntitySearchClient(new ApiKeyServiceClientCredentials("YOUR-ACCESS-KEY"));
Используйте клиентскую функцию
Entities.Search()
для поиска запроса.var entityData = client.Entities.Search(query: "Satya Nadella");
Получение и печать описания сущности
Если API вернул результаты поиска, получите основную сущность из
entityData
.var mainEntity = entityData.Entities.Value.Where(thing => thing.EntityPresentationInfo.EntityScenario == EntityScenario.DominantEntity).FirstOrDefault();
Напечатайте описания основной сущности
Console.WriteLine(mainEntity.Description);
Дальнейшие действия
Используйте это краткое руководство, чтобы начать поиск сущностей с помощью клиентской библиотеки Поиска сущностей Bing для Java. Поскольку REST API Поиска сущностей Bing совместим с большинством языков программирования, клиентская библиотека обеспечивает простой способ интеграции службы в ваши приложения. Исходный код для этого шаблона можно найти на портале GitHub.
Предварительные требования
Клиентская библиотека Поиска сущностей Bing для Java
Установите зависимости клиентской библиотеки Поиска сущностей 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 версии 7.
Ресурс для нескольких служб
- доступен на портале Azure до удаления.
- Используйте один и тот же ключ и конечную точку для приложений в нескольких службах ИИ Azure.
Создание и инициализация проекта
Создайте проект 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;
Создайте переменную для ключа подписки.
String subscriptionKey = "your-key-here"
Создание клиента для поиска
Реализуйте клиент
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
, выполните следующие действия.Переопределите функцию
applyCredentialsFilter()
, указав в качестве параметра объектOkHttpClient.Builder
.//... new ServiceClientCredentials() { @Override public void applyCredentialsFilter(OkHttpClient.Builder builder) { //... } //...
В рамках
applyCredentialsFilter()
вызовитеbuilder.addNetworkInterceptor()
. Создайте новый объектInterceptor
и переопределите его методintercept()
, чтобы получить объект-перехватчикChain
.//... builder.addNetworkInterceptor( new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { //... } }); ///...
В рамках функции
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); } //...
Отправка запроса и получение ответа
Создайте новый экземпляр клиента для поиска с помощью ключа подписки. Используйте
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);
Если возвращены все сущности, преобразуйте их в список. Выполните итерацию и напечатайте главную сущность.
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. Поскольку REST API Поиска сущностей Bing совместим с большинством языков программирования, клиентская библиотека обеспечивает простой способ интеграции службы в ваши приложения. Исходный код для этого шаблона можно найти на портале 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 версии 7.
Ресурс для нескольких служб
- доступен на портале Azure до удаления.
- Используйте один и тот же ключ и конечную точку для приложений в нескольких службах ИИ Azure.
Создание и инициализация приложения
Создайте файл JavaScript в избранной интегрированной среде разработки или редакторе и добавьте следующие требования.
const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials; const EntitySearchAPIClient = require('@azure/cognitiveservices-entitysearch');
Создайте экземпляр
CognitiveServicesCredentials
с помощью ключа подписки. Затем создайте с его помощью экземпляр клиента для поиска.let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY'); let entitySearchApiClient = new EntitySearchAPIClient(credentials);
Отправка запроса и получение ответа
Отправьте запрос на поиск сущности с помощью
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. Поскольку REST API Поиска сущностей Bing совместим с большинством языков программирования, клиентская библиотека обеспечивает простой способ интеграции службы в ваши приложения. Исходный код для этого шаблона можно найти на портале GitHub.
Предварительные требования
Python версии 2.x или 3.x
Рекомендуется использовать виртуальное окружение 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 версии 7.
Ресурс для нескольких служб
- доступен на портале Azure до удаления.
- Используйте один и тот же ключ и конечную точку для приложений в нескольких службах ИИ Azure.
Создание и инициализация приложения
Создайте файл Python в любой интегрированной среде разработки или редакторе и добавьте следующие инструкции импорта.
from azure.cognitiveservices.search.entitysearch import EntitySearchClient from azure.cognitiveservices.search.entitysearch.models import Place, ErrorResponseException from msrest.authentication import CognitiveServicesCredentials
Создайте переменную для ключа подписки и конечной точки. Создайте экземпляр клиента, создав новый объект
CognitiveServicesCredentials
с помощью ключа.subscription_key = "YOUR-SUBSCRIPTION-KEY" endpoint = "YOUR-ENDPOINT" client = EntitySearchclient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
Отправка поискового запроса и получение ответа
Отправьте поисковой запрос в Поиск сущностей Bing с помощью
client.entities.search()
и поискового запроса.entity_data = client.entities.search(query="Gibralter")
Если возвращены сущности, преобразуйте
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)