Szybki start: korzystanie z biblioteki klienta wyszukiwania jednostek Bing
Ostrzeżenie
30 października 2020 r. interfejsy API Wyszukiwanie Bing zostały przeniesione z usług Azure AI do usług Wyszukiwanie Bing Services. Ta dokumentacja jest dostarczana tylko do celów referencyjnych. Aby uzyskać zaktualizowaną dokumentację, zobacz dokumentację interfejsu API wyszukiwania Bing. Aby uzyskać instrukcje dotyczące tworzenia nowych zasobów platformy Azure na potrzeby wyszukiwania Bing, zobacz Tworzenie zasobu Wyszukiwanie Bing za pomocą Azure Marketplace.
Użyj tego przewodnika Szybki start, aby rozpocząć wyszukiwanie jednostek za pomocą biblioteki klienta wyszukiwania jednostek Bing dla języka C#. Chociaż wyszukiwanie jednostek Bing ma interfejs API REST zgodny z większością języków programowania, biblioteka kliencka zapewnia łatwy sposób integracji usługi z aplikacjami. Kod źródłowy tego przykładu można znaleźć w usłudze GitHub.
Wymagania wstępne
- Dowolna wersja programu Visual Studio 2017 lub nowsza.
- Struktura Json.NET dostępna jako pakiet NuGet.
- Jeśli używasz systemu Linux/MacOS, możesz uruchomić tę aplikację przy użyciu środowiska Mono.
-
Pakiet zestawu SDK wyszukiwania wiadomości Bing dla narzędzia NuGet. Zainstalowanie tego pakietu powoduje także zainstalowanie następujących elementów:
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Json
Aby dodać bibliotekę klienta wyszukiwania jednostek Bing do projektu programu Visual Studio, użyj opcji Zarządzaj pakietami NuGet z Eksplorator rozwiązań i dodaj Microsoft.Azure.CognitiveServices.Search.EntitySearch
pakiet.
Tworzenie zasobu platformy Azure
Zacznij korzystać z interfejsu API wyszukiwania jednostek Bing, tworząc jeden z następujących zasobów platformy Azure.
Zasób wyszukiwania jednostek Bing
- Dostępne za pośrednictwem Azure Portal do momentu usunięcia zasobu.
- Użyj warstwy cenowej Bezpłatna, aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.
- Wyszukiwanie jednostek Bing jest również oferowane w warstwach płatnych zasobu Wyszukiwanie Bing v7.
Zasób z wieloma usługami
- Dostępne za pośrednictwem Azure Portal do momentu usunięcia zasobu.
- Użyj tego samego klucza i punktu końcowego dla aplikacji w wielu usługach azure AI.
Tworzenie i inicjowanie aplikacji
Utwórz nowe rozwiązanie konsolowe dla języka C# w programie Visual Studio. Dodaj następujący kod do głównego pliku kodu.
using System; using System.Linq; using System.Text; using Microsoft.Azure.CognitiveServices.Search.EntitySearch; using Microsoft.Azure.CognitiveServices.Search.EntitySearch.Models; using Newtonsoft.Json;
Tworzenie klienta i wysyłanie żądania wyszukiwania
Utwórz nowego klienta wyszukiwania. Dodaj klucz subskrypcji, tworząc nowy obiekt
ApiKeyServiceClientCredentials
.var client = new EntitySearchClient(new ApiKeyServiceClientCredentials("YOUR-ACCESS-KEY"));
Użyj funkcji
Entities.Search()
klienta w celu wyszukania zapytania:var entityData = client.Entities.Search(query: "Satya Nadella");
Pobieranie i wyświetlanie opisu jednostki
Jeśli interfejs API zwrócił wyniki wyszukiwania, pobierz jednostkę główną z obiektu
entityData
.var mainEntity = entityData.Entities.Value.Where(thing => thing.EntityPresentationInfo.EntityScenario == EntityScenario.DominantEntity).FirstOrDefault();
Wyświetlanie opisu jednostki głównej
Console.WriteLine(mainEntity.Description);
Następne kroki
Użyj tego przewodnika Szybki start, aby rozpocząć wyszukiwanie jednostek za pomocą biblioteki klienta wyszukiwania jednostek Bing dla języka Java. Chociaż wyszukiwanie jednostek Bing ma interfejs API REST zgodny z większością języków programowania, biblioteka kliencka zapewnia łatwy sposób integracji usługi z aplikacjami. Kod źródłowy tego przykładu można znaleźć w usłudze GitHub.
Wymagania wstępne
Biblioteka klienta wyszukiwania jednostek Bing dla języka Java
Zainstaluj zależności biblioteki klienta wyszukiwania jednostek Bing przy użyciu programu Maven, Gradle lub innego systemu zarządzania zależnościami. Plik POM systemu Maven wymaga deklaracji:
<dependency>
<groupId>com.microsoft.azure.cognitiveservices</groupId>
<artifactId>azure-cognitiveservices-entitysearch</artifactId>
<version>1.0.2</version>
</dependency>
Tworzenie zasobu platformy Azure
Zacznij korzystać z interfejsu API wyszukiwania jednostek Bing, tworząc jeden z następujących zasobów platformy Azure.
Zasób wyszukiwania jednostek Bing
- Dostępne za pośrednictwem Azure Portal do momentu usunięcia zasobu.
- Użyj warstwy cenowej Bezpłatna, aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.
- Wyszukiwanie jednostek Bing jest również oferowane w warstwach płatnych zasobu Wyszukiwanie Bing v7.
Zasób z wieloma usługami
- Dostępne za pośrednictwem Azure Portal do momentu usunięcia zasobu.
- Użyj tego samego klucza i punktu końcowego dla aplikacji w wielu usługach azure AI.
Tworzenie i inicjowanie projektu
Utwórz nowy projekt w języku Java w ulubionym środowisku IDE lub edytorze i zaimportuj poniższe biblioteki.
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;
Tworzenie zmiennej dla klucza subskrypcji
String subscriptionKey = "your-key-here"
Tworzenie klienta wyszukiwania
Zaimplementuj klienta
dominantEntityLookup
, który wymaga punktu końcowego interfejsu API i wystąpienia klasyServiceClientCredentials
. Możesz użyć poniższego globalnego punktu końcowego lub niestandardowego punktu końcowego poddomeny wyświetlanego w Azure Portal dla zasobu.public static EntitySearchAPIImpl getClient(final String subscriptionKey) { return new EntitySearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/", new ServiceClientCredentials() { //... } )};
Aby zaimplementować klasę
ServiceClientCredentials
, wykonaj następujące kroki:Przesłoń funkcję
applyCredentialsFilter()
, używając obiektuOkHttpClient.Builder
jako parametru.//... new ServiceClientCredentials() { @Override public void applyCredentialsFilter(OkHttpClient.Builder builder) { //... } //...
W ramach funkcji
applyCredentialsFilter()
wywołaj funkcjębuilder.addNetworkInterceptor()
. Utwórz nowy obiektInterceptor
i przesłoń jego metodęintercept()
tak, aby przyjmowała obiekt interceptoraChain
.//... builder.addNetworkInterceptor( new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { //... } }); ///...
W funkcji
intercept
utwórz zmienne dla żądania. Użyj funkcjiRequest.Builder()
, aby utworzyć żądanie. Dodaj klucz subskrypcji do nagłówkaOcp-Apim-Subscription-Key
i zwróć funkcjęchain.proceed()
w obiekcie żądania.//... 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); } //...
Wysyłanie żądania i odbieranie odpowiedzi
Utwórz nowe wystąpienie klienta wyszukiwania z kluczem subskrypcji. Użyj funkcji
client.entities().search()
, aby wysłać żądanie wyszukiwania dla zapytania wyszukiwaniasatya nadella
i uzyskać odpowiedź.EntitySearchAPIImpl client = getClient(subscriptionKey); SearchResponseInner entityData = client.entities().search( "satya nadella", null, null, null, null, null, null, "en-us", null, null, SafeSearch.STRICT, null);
Jeśli zwrócono jakiekolwiek jednostki, przekonwertuj je na listę. Przeiteruj przez jednostki, a następnie wypisz dominującą jednostkę.
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; } } }
Następne kroki
Użyj tego przewodnika Szybki start, aby rozpocząć wyszukiwanie jednostek za pomocą biblioteki klienta wyszukiwania jednostek Bing dla języka JavaScript. Chociaż wyszukiwanie jednostek Bing ma interfejs API REST zgodny z większością języków programowania, biblioteka kliencka zapewnia łatwy sposób integracji usługi z aplikacjami. Kod źródłowy tego przykładu można znaleźć w usłudze GitHub.
Wymagania wstępne
- Najnowsza wersja środowiska Node.js.
- Zestaw SDK wyszukiwania jednostek Bing dla języka JavaScript
- Aby go zainstalować, uruchom polecenie
npm install @azure/cognitiveservices-entitysearch
- Aby go zainstalować, uruchom polecenie
- Klasa
CognitiveServicesCredentials
z@azure/ms-rest-azure-js
pakietu do uwierzytelniania klienta.- Aby go zainstalować, uruchom polecenie
npm install @azure/ms-rest-azure-js
- Aby go zainstalować, uruchom polecenie
Tworzenie zasobu platformy Azure
Zacznij korzystać z interfejsu API wyszukiwania jednostek Bing, tworząc jeden z następujących zasobów platformy Azure.
Zasób wyszukiwania jednostek Bing
- Dostępne za pośrednictwem Azure Portal do momentu usunięcia zasobu.
- Użyj warstwy cenowej Bezpłatna, aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.
- Wyszukiwanie jednostek Bing jest również oferowane w warstwach płatnych zasobu Wyszukiwanie Bing v7.
Zasób z wieloma usługami
- Dostępne za pośrednictwem Azure Portal do momentu usunięcia zasobu.
- Użyj tego samego klucza i punktu końcowego dla aplikacji w wielu usługach azure AI.
Tworzenie i inicjowanie aplikacji
Utwórz nowy plik w języku JavaScript w ulubionym środowisku IDE lub edytorze i dodaj następujące wymagania.
const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials; const EntitySearchAPIClient = require('@azure/cognitiveservices-entitysearch');
Utwórz wystąpienie obiektu
CognitiveServicesCredentials
przy użyciu klucza subskrypcji. Następnie za pomocą tego obiektu utwórz wystąpienie klienta wyszukiwania.let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY'); let entitySearchApiClient = new EntitySearchAPIClient(credentials);
Wysyłanie żądania i odbieranie odpowiedzi
Wyślij żądanie wyszukiwania jednostek za pomocą funkcji
entitiesOperations.search()
. Po otrzymaniu odpowiedzi wyświetl obiektqueryContext
, liczbę zwróconych wyników i opis pierwszego wyniku.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; });
Następne kroki
Użyj tego przewodnika Szybki start, aby rozpocząć wyszukiwanie jednostek za pomocą biblioteki klienta wyszukiwania jednostek Bing dla języka Python. Chociaż wyszukiwanie jednostek Bing ma interfejs API REST zgodny z większością języków programowania, biblioteka kliencka zapewnia łatwy sposób integracji usługi z aplikacjami. Kod źródłowy tego przykładu można znaleźć w usłudze GitHub.
Wymagania wstępne
Środowisko Python 2.x lub 3.x
Zaleca się używanie środowiska wirtualnego języka Python. Środowisko wirtualne możesz zainstalować i zainicjować przy użyciu modułu venv. Aplikację virtualenv można zainstalować za pomocą:
python -m venv mytestenv
Zainstaluj bibliotekę klienta wyszukiwania jednostek Bing przy użyciu następujących funkcji:
cd mytestenv
python -m pip install azure-cognitiveservices-search-entitysearch
Tworzenie zasobu platformy Azure
Zacznij korzystać z interfejsu API wyszukiwania jednostek Bing, tworząc jeden z następujących zasobów platformy Azure.
Zasób wyszukiwania jednostek Bing
- Dostępne za pośrednictwem Azure Portal do momentu usunięcia zasobu.
- Użyj warstwy cenowej Bezpłatna, aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.
- Wyszukiwanie jednostek Bing jest również oferowane w warstwach płatnych zasobu Wyszukiwanie Bing v7.
Zasób z wieloma usługami
- Dostępne za pośrednictwem Azure Portal do momentu usunięcia zasobu.
- Użyj tego samego klucza i punktu końcowego dla aplikacji w wielu usługach azure AI.
Tworzenie i inicjowanie aplikacji
Utwórz nowy plik w języku Python w ulubionym środowisku IDE lub edytorze i dodaj następujące instrukcje importu.
from azure.cognitiveservices.search.entitysearch import EntitySearchClient from azure.cognitiveservices.search.entitysearch.models import Place, ErrorResponseException from msrest.authentication import CognitiveServicesCredentials
Utwórz zmienną dla klucza subskrypcji i punktu końcowego. Utwórz wystąpienie klienta, tworząc nowy
CognitiveServicesCredentials
obiekt przy użyciu klucza.subscription_key = "YOUR-SUBSCRIPTION-KEY" endpoint = "YOUR-ENDPOINT" client = EntitySearchclient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
Wysyłanie żądania wyszukiwania i odbieranie odpowiedzi
Wyślij żądanie wyszukiwania do wyszukiwania jednostek Bing za pomocą funkcji
client.entities.search()
zapytania wyszukiwania.entity_data = client.entities.search(query="Gibralter")
Jeśli jednostki zostały zwrócone, przekonwertuj element
entity_data.entities.value
do listy, a następnie wyświetl pierwszy wynik.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)