Rychlý start: Použití klientské knihovny Bingu pro vyhledávání entit

Upozornění

30. října 2020 se rozhraní API Vyhledávání Bingu přesunula ze služeb Azure AI na Vyhledávání Bingu Services. Tato dokumentace je k dispozici pouze pro referenci. Aktualizovanou dokumentaci najdete v dokumentaci k rozhraní API bingu pro vyhledávání. Pokyny k vytváření nových prostředků Azure pro vyhledávání Bingem najdete v tématu Vytvoření prostředku Vyhledávání Bingu prostřednictvím Azure Marketplace.

Pomocí tohoto rychlého startu můžete začít vyhledávat entity pomocí klientské knihovny Vyhledávání entit Bingu pro jazyk C#. Zatímco vyhledávání entit Bingu má rozhraní REST API kompatibilní s většinou programovacích jazyků, klientská knihovna poskytuje snadný způsob integrace služby do vašich aplikací. Zdrojový kód pro tuto ukázku najdete na GitHubu.

Požadavky

Pokud chcete přidat klientskou knihovnu Bingu pro vyhledávání entit do projektu sady Visual Studio, použijte možnost Spravovat balíčky NuGet z Průzkumník řešení a přidejte Microsoft.Azure.CognitiveServices.Search.EntitySearch balíček.

Vytvoření prostředku Azure

Začněte používat rozhraní API Bingu pro vyhledávání entit vytvořením jednoho z následujících prostředků Azure.

Prostředek Vyhledávání entit Bingu

  • Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
  • K vyzkoušení služby použijte bezplatnou cenovou úroveň a později upgradujte na placenou úroveň pro produkční prostředí.
  • Vyhledávání entit Bingu je také nabízeno na placených úrovních prostředku Vyhledávání Bingu v7.

Prostředek s více službami

  • Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
  • Pro aplikace používejte stejný klíč a koncový bod napříč několika službami Azure AI.

Vytvoření a inicializace aplikace

  1. v sadě Visual Studio vytvořte nové řešení konzoly jazyka C#. Pak do hlavního souboru kódu přidejte následující kód.

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

Vytvoření klienta a odeslání žádosti o hledání

  1. Vytvořte nového klienta vyhledávání. Přidejte klíč předplatného vytvořením nového ApiKeyServiceClientCredentials.

    var client = new EntitySearchClient(new ApiKeyServiceClientCredentials("YOUR-ACCESS-KEY"));
    
  2. K vyhledání dotazu použijte funkci klienta Entities.Search() :

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

Získání a tisk popisu entity

  1. Pokud rozhraní API vrátilo výsledky hledání, získejte hlavní entitu z entityData.

    var mainEntity = entityData.Entities.Value.Where(thing => thing.EntityPresentationInfo.EntityScenario == EntityScenario.DominantEntity).FirstOrDefault();
    
  2. Tisk popisu hlavní entity

    Console.WriteLine(mainEntity.Description);
    

Další kroky

Pomocí tohoto rychlého startu můžete začít vyhledávat entity pomocí klientské knihovny Bingu pro vyhledávání entit pro Javu. Zatímco vyhledávání entit Bingu má rozhraní REST API kompatibilní s většinou programovacích jazyků, klientská knihovna poskytuje snadný způsob integrace služby do vašich aplikací. Zdrojový kód pro tuto ukázku najdete na GitHubu.

Požadavky

Nainstalujte závislosti klientské knihovny Bingu pro vyhledávání entit pomocí Mavenu, Gradle nebo jiného systému pro správu závislostí. Soubor POM Mavenu vyžaduje deklaraci:

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

Vytvoření prostředku Azure

Začněte používat rozhraní API Bingu pro vyhledávání entit vytvořením jednoho z následujících prostředků Azure.

Prostředek Vyhledávání entit Bingu

  • Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
  • K vyzkoušení služby použijte bezplatnou cenovou úroveň a později upgradujte na placenou úroveň pro produkční prostředí.
  • Vyhledávání entit Bingu je také nabízeno na placených úrovních prostředku Vyhledávání Bingu v7.

Prostředek s více službami

  • Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
  • Pro aplikace používejte stejný klíč a koncový bod napříč několika službami Azure AI.

Vytvoření a inicializace projektu

  1. V oblíbeném integrovaném vývojovém prostředí nebo editoru vytvořte nový projekt Java a naimportujte následující knihovny.

    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. Vytvoření proměnné pro klíč předplatného

    String subscriptionKey = "your-key-here"
    

Vytvoření klienta vyhledávání

  1. dominantEntityLookup Implementujte klienta, který vyžaduje koncový bod rozhraní API, a instanci ServiceClientCredentials třídy. Můžete použít globální koncový bod níže nebo vlastní koncový bod subdomény zobrazený v Azure Portal pro váš prostředek.

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

    Pokud chcete implementovat ServiceClientCredentials, postupujte takto:

    1. applyCredentialsFilter() přepíše funkci s objektem OkHttpClient.Builder jako parametrem.

      //...
      new ServiceClientCredentials() {
              @Override
              public void applyCredentialsFilter(OkHttpClient.Builder builder) {
              //...
              }
      //...
      
    2. V rámci applyCredentialsFilter()volejte builder.addNetworkInterceptor(). Vytvořte nový Interceptor objekt a přepište jeho intercept() metodu tak, aby převzala Chain objekt interceptoru.

      //...
      builder.addNetworkInterceptor(
          new Interceptor() {
              @Override
              public Response intercept(Chain chain) throws IOException {
              //...    
              }
          });
      ///...
      
    3. V rámci intercept funkce vytvořte proměnné pro váš požadavek. Použijte Request.Builder() k sestavení vaší žádosti. Přidejte klíč předplatného do hlavičky Ocp-Apim-Subscription-Key a vraťte se chain.proceed() k objektu požadavku.

      //...
      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);
      }
      //...
      

Odeslání požadavku a přijetí odpovědi

  1. Vytvořte novou instanci klienta vyhledávání pomocí klíče předplatného. pomocí client.entities().search() odešlete žádost o hledání pro vyhledávací dotaz satya nadellaa získejte odpověď.

    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. Pokud byly vráceny nějaké entity, převeďte je na seznam. Iterujte je a vytiskněte dominantní entitu.

    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;
            }
        }
    }
    

Další kroky

Pomocí tohoto rychlého startu můžete začít hledat entity pomocí klientské knihovny Vyhledávání entit Bingu pro JavaScript. Zatímco vyhledávání entit Bingu má rozhraní REST API kompatibilní s většinou programovacích jazyků, klientská knihovna poskytuje snadný způsob integrace služby do vašich aplikací. Zdrojový kód pro tuto ukázku najdete na GitHubu.

Požadavky

  • Nejnovější verze Node.js
  • Sada SDK Bingu pro vyhledávání entit pro JavaScript
    • Pokud chcete nainstalovat, spusťte příkaz npm install @azure/cognitiveservices-entitysearch
  • Třída CognitiveServicesCredentials z @azure/ms-rest-azure-js balíčku k ověření klienta.
    • Pokud chcete nainstalovat, spusťte příkaz npm install @azure/ms-rest-azure-js

Vytvoření prostředku Azure

Začněte používat rozhraní API Bingu pro vyhledávání entit vytvořením jednoho z následujících prostředků Azure.

Prostředek Vyhledávání entit Bingu

  • Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
  • K vyzkoušení služby použijte bezplatnou cenovou úroveň a později upgradujte na placenou úroveň pro produkční prostředí.
  • Vyhledávání entit Bingu je také nabízeno na placených úrovních prostředku Vyhledávání Bingu v7.

Prostředek s více službami

  • Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
  • Pro aplikace používejte stejný klíč a koncový bod napříč několika službami Azure AI.

Vytvoření a inicializace aplikace

  1. Ve svém oblíbeném integrovaném vývojovém prostředí nebo editoru vytvořte nový javascriptový soubor a přidejte následující požadavky.

    const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials;
    const EntitySearchAPIClient = require('@azure/cognitiveservices-entitysearch');
    
  2. Vytvořte instanci pomocí CognitiveServicesCredentials klíče předplatného. Pak s ním vytvořte instanci vyhledávacího klienta.

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

Odeslání požadavku a přijetí odpovědi

  1. Odeslání požadavku na vyhledávání entit pomocí entitiesOperations.search(). Po přijetí odpovědi vytiskněte queryContexthodnotu , počet vrácených výsledků a popis prvního výsledku.

    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;
    });
    

Další kroky

Pomocí tohoto rychlého startu můžete začít hledat entity pomocí klientské knihovny Bingu pro vyhledávání entit pro Python. Zatímco vyhledávání entit Bingu má rozhraní REST API kompatibilní s většinou programovacích jazyků, klientská knihovna poskytuje snadný způsob integrace služby do vašich aplikací. Zdrojový kód pro tuto ukázku najdete na GitHubu.

Požadavky

Doporučuje se používat virtuální prostředí Pythonu. Virtuální prostředí můžete nainstalovat a inicializovat pomocí modulu venv. Virtualenv můžete nainstalovat pomocí:

python -m venv mytestenv

Nainstalujte klientskou knihovnu Bingu pro vyhledávání entit pomocí:

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

Vytvoření prostředku Azure

Začněte používat rozhraní API Bingu pro vyhledávání entit vytvořením jednoho z následujících prostředků Azure.

Prostředek Vyhledávání entit Bingu

  • Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
  • K vyzkoušení služby použijte bezplatnou cenovou úroveň a později upgradujte na placenou úroveň pro produkční prostředí.
  • Vyhledávání entit Bingu je také nabízeno na placených úrovních prostředku Vyhledávání Bingu v7.

Prostředek s více službami

  • Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
  • Pro aplikace používejte stejný klíč a koncový bod napříč několika službami Azure AI.

Vytvoření a inicializace aplikace

  1. Ve svém oblíbeném integrovaném vývojovém prostředí nebo editoru vytvořte nový soubor Pythonu a přidejte následující příkazy pro import.

    from azure.cognitiveservices.search.entitysearch import EntitySearchClient
    from azure.cognitiveservices.search.entitysearch.models import Place, ErrorResponseException
    from msrest.authentication import CognitiveServicesCredentials
    
  2. Vytvořte proměnnou pro klíč předplatného a koncový bod. Vytvořte instanci klienta vytvořením nového CognitiveServicesCredentials objektu s klíčem.

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

Odeslání žádosti o hledání a přijetí odpovědi

  1. Odešlete žádost o hledání do vyhledávání entit Bingu pomocí client.entities.search() a vyhledávací dotaz.

    entity_data = client.entities.search(query="Gibralter")
    
  2. Pokud byly entity vráceny, převeďte entity_data.entities.value na seznam a vytiskněte první výsledek.

    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)
    

Další kroky