Início Rápido: Usar a biblioteca de clientes da Pesquisa de Entidade do Bing

Aviso

Em 30 de outubro de 2020, as APIs de Pesquisa do Bing foram migradas dos serviços de IA do Azure para os Serviços de Pesquisa do Bing. Esta documentação é fornecida apenas para referência. Para obter a documentação atualizada, consulte a documentação da API de pesquisa do Bing. Para obter instruções sobre como criar novos recursos do Azure para a Pesquisa do Bing, consulte Criar um recurso de Pesquisa do Bing por meio do Azure Marketplace.

Use este início rápido para começar a pesquisar entidades com a biblioteca de clientes da Pesquisa de Entidade do Bing para o C#. Embora a Pesquisa de Entidade do Bing tenha uma API REST compatível com a maioria das linguagens de programação, a biblioteca de clientes é uma forma fácil de integrar o serviço aos seus aplicativos. O código-fonte desta amostra pode ser encontrado no GitHub.

Pré-requisitos

Para adicionar a biblioteca de clientes da Pesquisa de Entidade do Bing ao projeto do Visual Studio, use a opção Gerenciar Pacotes NuGet no Gerenciador de Soluções e, em seguida, adicione o pacote Microsoft.Azure.CognitiveServices.Search.EntitySearch.

Criar um recurso do Azure

Comece a usar a API de Pesquisa de Entidade do Bing criando um dos recursos do Azure a seguir.

Recurso de Pesquisa de Entidade do Bing

  • Disponível por meio do portal do Azure até que você exclua o recurso.
  • Use o tipo de preço gratuito para experimentar o serviço e atualize mais tarde para uma camada paga para produção.
  • A Pesquisa de Entidade do Bing também é oferecida em camadas pagas do recurso Pesquisa do Bing v7.

Recurso de vários serviços

  • Disponível por meio do portal do Azure até que você exclua o recurso.
  • Use a mesma chave e ponto de extremidade para seus aplicativos nos vários serviços de IA do Azure.

Criar e inicializar um aplicativo

  1. crie uma solução de console C# no Visual Studio. Em seguida, adicione os itens a seguir ao arquivo de código principal.

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

Criar um cliente e enviar uma solicitação de pesquisa

  1. Crie um cliente de pesquisa. Adicione a chave de assinatura criando ApiKeyServiceClientCredentials.

    var client = new EntitySearchClient(new ApiKeyServiceClientCredentials("YOUR-ACCESS-KEY"));
    
  2. Use a função Entities.Search() do cliente para pesquisar na consulta:

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

Obter e imprimir uma descrição de entidade

  1. Se a API retornou os resultados da pesquisa, obtenha a entidade principal em entityData.

    var mainEntity = entityData.Entities.Value.Where(thing => thing.EntityPresentationInfo.EntityScenario == EntityScenario.DominantEntity).FirstOrDefault();
    
  2. Imprimir a descrição da entidade principal

    Console.WriteLine(mainEntity.Description);
    

Próximas etapas

Use este início rápido para começar a pesquisar entidades com a biblioteca de clientes da Pesquisa de Entidade do Bing para o Java. Embora a Pesquisa de Entidade do Bing tenha uma API REST compatível com a maioria das linguagens de programação, a biblioteca de clientes é uma forma fácil de integrar o serviço aos seus aplicativos. O código-fonte desta amostra pode ser encontrado no GitHub.

Pré-requisitos

Instale as dependências da biblioteca de clientes da Pesquisa de Entidade do Bing usando Maven, Gradle ou outro sistema de gerenciamento de dependência. O arquivo POM Maven requer a declaração:

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

Criar um recurso do Azure

Comece a usar a API de Pesquisa de Entidade do Bing criando um dos recursos do Azure a seguir.

Recurso de Pesquisa de Entidade do Bing

  • Disponível por meio do portal do Azure até que você exclua o recurso.
  • Use o tipo de preço gratuito para experimentar o serviço e atualize mais tarde para uma camada paga para produção.
  • A Pesquisa de Entidade do Bing também é oferecida em camadas pagas do recurso Pesquisa do Bing v7.

Recurso de vários serviços

  • Disponível por meio do portal do Azure até que você exclua o recurso.
  • Use a mesma chave e ponto de extremidade para seus aplicativos nos vários serviços de IA do Azure.

Criar e inicializar um projeto

  1. Crie um novo projeto Java em seu IDE ou editor favorito e importe as bibliotecas a seguir.

    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. Criar uma variável para a chave de assinatura

    String subscriptionKey = "your-key-here"
    

Criar um cliente de pesquisa

  1. Implemente o cliente dominantEntityLookup, que exige o ponto de extremidade de API e uma instância da classe ServiceClientCredentials. Você pode usar o ponto de extremidade global abaixo ou o ponto de extremidade de subdomínio personalizado exibido no portal do Azure para seu recurso.

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

    Para implementar as ServiceClientCredentials, siga estas etapas:

    1. substitua a função applyCredentialsFilter() por um objeto OkHttpClient.Builder como parâmetro.

      //...
      new ServiceClientCredentials() {
              @Override
              public void applyCredentialsFilter(OkHttpClient.Builder builder) {
              //...
              }
      //...
      
    2. Em applyCredentialsFilter(), chame builder.addNetworkInterceptor(). Crie um objeto Interceptor e substitua seu método intercept() para usar um objeto interceptor Chain.

      //...
      builder.addNetworkInterceptor(
          new Interceptor() {
              @Override
              public Response intercept(Chain chain) throws IOException {
              //...    
              }
          });
      ///...
      
    3. Na função intercept, crie variáveis para sua solicitação. Use Request.Builder() para criar sua solicitação. Adicione a chave de assinatura ao cabeçalho Ocp-Apim-Subscription-Key e retorne chain.proceed() no objeto de solicitação.

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

Enviar uma solicitação e receber uma resposta

  1. Crie uma instância do cliente de pesquisa com a chave de assinatura. use client.entities().search() para enviar uma solicitação de pesquisa para a consulta de pesquisa satya nadella e obter uma resposta.

    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. Se alguma entidade for retornada, você deverá convertê-la em uma lista. Itere por ela e imprima a entidade dominante.

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

Próximas etapas

Use este início rápido para começar a pesquisar entidades com a biblioteca de clientes da Pesquisa de Entidade do Bing para o JavaScript. Embora a Pesquisa de Entidade do Bing tenha uma API REST compatível com a maioria das linguagens de programação, a biblioteca de clientes é uma forma fácil de integrar o serviço aos seus aplicativos. O código-fonte desta amostra pode ser encontrado no GitHub.

Pré-requisitos

  • A versão mais recente do Node.js.
  • O SDK da Pesquisa de Entidade do Bing para JavaScript
    • Para instalar, execute npm install @azure/cognitiveservices-entitysearch
  • A classe CognitiveServicesCredentials do pacote @azure/ms-rest-azure-js para autenticar o cliente.
    • Para instalar, execute npm install @azure/ms-rest-azure-js

Criar um recurso do Azure

Comece a usar a API de Pesquisa de Entidade do Bing criando um dos recursos do Azure a seguir.

Recurso de Pesquisa de Entidade do Bing

  • Disponível por meio do portal do Azure até que você exclua o recurso.
  • Use o tipo de preço gratuito para experimentar o serviço e atualize mais tarde para uma camada paga para produção.
  • A Pesquisa de Entidade do Bing também é oferecida em camadas pagas do recurso Pesquisa do Bing v7.

Recurso de vários serviços

  • Disponível por meio do portal do Azure até que você exclua o recurso.
  • Use a mesma chave e ponto de extremidade para seus aplicativos nos vários serviços de IA do Azure.

Criar e inicializar o aplicativo

  1. Crie um novo arquivo JavaScript em seu IDE ou editor favorito e adicione os seguintes requisitos.

    const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials;
    const EntitySearchAPIClient = require('@azure/cognitiveservices-entitysearch');
    
  2. Crie uma instância de CognitiveServicesCredentials usando a chave de assinatura. Em seguida, crie uma instância do cliente de pesquisa com ela.

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

Enviar uma solicitação e receber uma resposta

  1. Envie uma solicitação de pesquisa de entidades com entitiesOperations.search(). Depois de receber uma resposta, imprima o queryContext, o número de resultados retornados e a descrição do primeiro resultado.

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

Próximas etapas

Use este início rápido para começar a pesquisar entidades com a biblioteca de clientes da Pesquisa de Entidade do Bing para o Python. Embora a Pesquisa de Entidade do Bing tenha uma API REST compatível com a maioria das linguagens de programação, a biblioteca de clientes é uma forma fácil de integrar o serviço aos seus aplicativos. O código-fonte desta amostra pode ser encontrado no GitHub.

Pré-requisitos

É recomendável usar um ambiente virtual do Python. Instale e inicialize o ambiente virtual com o módulo venv. Você pode instalar o virtualenv com:

python -m venv mytestenv

Instalar a biblioteca de clientes da Pesquisa de Entidade do Bing com:

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

Criar um recurso do Azure

Comece a usar a API de Pesquisa de Entidade do Bing criando um dos recursos do Azure a seguir.

Recurso de Pesquisa de Entidade do Bing

  • Disponível por meio do portal do Azure até que você exclua o recurso.
  • Use o tipo de preço gratuito para experimentar o serviço e atualize mais tarde para uma camada paga para produção.
  • A Pesquisa de Entidade do Bing também é oferecida em camadas pagas do recurso Pesquisa do Bing v7.

Recurso de vários serviços

  • Disponível por meio do portal do Azure até que você exclua o recurso.
  • Use a mesma chave e ponto de extremidade para seus aplicativos nos vários serviços de IA do Azure.

Criar e inicializar o aplicativo

  1. Crie um novo arquivo Python em seu IDE ou o editor favorito e adicione as seguintes instruções de importação.

    from azure.cognitiveservices.search.entitysearch import EntitySearchClient
    from azure.cognitiveservices.search.entitysearch.models import Place, ErrorResponseException
    from msrest.authentication import CognitiveServicesCredentials
    
  2. Crie uma variável para a chave de assinatura e o ponto de extremidade. Crie uma instância do cliente criando um objeto CognitiveServicesCredentials com a chave.

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

Enviar uma solicitação de pesquisa e receber uma resposta

  1. Envie uma solicitação de pesquisa para a Pesquisa de Entidade do Bing com client.entities.search() e uma consulta de pesquisa.

    entity_data = client.entities.search(query="Gibralter")
    
  2. Se alguma entidade for retornada, converta entity_data.entities.value em uma lista e imprima o primeiro resultado.

    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)
    

Próximas etapas