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

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

  1. 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

  1. Utwórz nowego klienta wyszukiwania. Dodaj klucz subskrypcji, tworząc nowy obiekt ApiKeyServiceClientCredentials.

    var client = new EntitySearchClient(new ApiKeyServiceClientCredentials("YOUR-ACCESS-KEY"));
    
  2. Użyj funkcji Entities.Search() klienta w celu wyszukania zapytania:

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

Pobieranie i wyświetlanie opisu jednostki

  1. 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();
    
  2. 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

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

  1. 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;
    
  2. Tworzenie zmiennej dla klucza subskrypcji

    String subscriptionKey = "your-key-here"
    

Tworzenie klienta wyszukiwania

  1. Zaimplementuj klienta dominantEntityLookup, który wymaga punktu końcowego interfejsu API i wystąpienia klasy ServiceClientCredentials. 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:

    1. Przesłoń funkcję applyCredentialsFilter(), używając obiektu OkHttpClient.Builder jako parametru.

      //...
      new ServiceClientCredentials() {
              @Override
              public void applyCredentialsFilter(OkHttpClient.Builder builder) {
              //...
              }
      //...
      
    2. W ramach funkcji applyCredentialsFilter() wywołaj funkcję builder.addNetworkInterceptor(). Utwórz nowy obiekt Interceptor i przesłoń jego metodę intercept() tak, aby przyjmowała obiekt interceptora Chain.

      //...
      builder.addNetworkInterceptor(
          new Interceptor() {
              @Override
              public Response intercept(Chain chain) throws IOException {
              //...    
              }
          });
      ///...
      
    3. W funkcji intercept utwórz zmienne dla żądania. Użyj funkcji Request.Builder(), aby utworzyć żądanie. Dodaj klucz subskrypcji do nagłówka Ocp-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

  1. Utwórz nowe wystąpienie klienta wyszukiwania z kluczem subskrypcji. Użyj funkcji client.entities().search(), aby wysłać żądanie wyszukiwania dla zapytania wyszukiwania satya 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);
    
  2. 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
  • Klasa CognitiveServicesCredentials z @azure/ms-rest-azure-js pakietu do uwierzytelniania klienta.
    • Aby go zainstalować, uruchom polecenie npm install @azure/ms-rest-azure-js

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

  1. 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');
    
  2. 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

  1. Wyślij żądanie wyszukiwania jednostek za pomocą funkcji entitiesOperations.search(). Po otrzymaniu odpowiedzi wyświetl obiekt queryContext, 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

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

  1. 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
    
  2. 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

  1. Wyślij żądanie wyszukiwania do wyszukiwania jednostek Bing za pomocą funkcji client.entities.search() zapytania wyszukiwania.

    entity_data = client.entities.search(query="Gibralter")
    
  2. 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)
    

Następne kroki