Inicio rápido: Uso de la biblioteca cliente de Bing Entity Search

Advertencia

El 30 de octubre de 2020, las API de Bing Search se trasladaron de los servicios de Azure AI a los servicios de Bing Search. Esta documentación se proporciona solo como referencia. Para obtener documentación actualizada, consulte la documentación de Bing Search API. Para obtener instrucciones sobre cómo crear nuevos recursos de Azure para Bing Search, consulte el artículo sobre la creación de un recurso de Bing Search a través de Azure Marketplace.

Use este inicio rápido para empezar a buscar entidades con la biblioteca cliente para C# de Bing Entity Search. Aunque Bing Entity Search tiene una API REST compatible con la mayoría de los lenguajes de programación, la biblioteca cliente proporciona una forma sencilla de integrar el servicio en sus aplicaciones. El código fuente de este ejemplo está disponible en GitHub.

Prerrequisitos

Para añadir la biblioteca cliente de Bing Entity Search al proyecto de Visual Studio, use la opción Administrar paquetes de NuGet del Explorador de soluciones y agregue el paquete Microsoft.Azure.CognitiveServices.Search.EntitySearch.

Creación de un recurso de Azure

Comience a usar Bing Entity Search API mediante la creación de uno de los recursos de Azure que se indican a continuación.

Recurso de Bing Entity Search

  • Disponible en Azure Portal hasta que lo elimine.
  • Use el plan de tarifa gratuito para probar el servicio y actualícelo más adelante a un nivel de pago para producción.
  • Bing Entity Search también se ofrece en los niveles de pago del recurso Bing Search, versión 7.

Recurso de varios servicios

  • Disponible en Azure Portal hasta que lo elimine.
  • Utilice la misma clave y el mismo punto de conexión para sus aplicaciones en varios servicios de Azure AI.

Creación e inicialización de una aplicación

  1. Cree una solución de consola de C# en Visual Studio. Después, agregue lo siguiente en el archivo 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;
    

Creación de un cliente y envío de una solicitud de búsqueda

  1. Cree un cliente de búsqueda. Agregue su clave de suscripción mediante la creación de un nuevo ApiKeyServiceClientCredentials.

    var client = new EntitySearchClient(new ApiKeyServiceClientCredentials("YOUR-ACCESS-KEY"));
    
  2. Use la función Entities.Search() del cliente para buscar la consulta:

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

Obtención e impresión de una descripción de entidad

  1. Si la API devolvió los resultados de la búsqueda, obtenga la entidad principal de entityData.

    var mainEntity = entityData.Entities.Value.Where(thing => thing.EntityPresentationInfo.EntityScenario == EntityScenario.DominantEntity).FirstOrDefault();
    
  2. Impresión de la descripción de la entidad principal

    Console.WriteLine(mainEntity.Description);
    

Pasos siguientes

Use este inicio rápido para empezar a buscar entidades con la biblioteca cliente para Java de Bing Entity Search. Aunque Bing Entity Search tiene una API REST compatible con la mayoría de los lenguajes de programación, la biblioteca cliente proporciona una forma sencilla de integrar el servicio en sus aplicaciones. El código fuente de este ejemplo está disponible en GitHub.

Prerrequisitos

Instale las dependencias de la biblioteca cliente de Bing Entity Search con Maven, Gradle u otro sistema de administración de dependencias. El archivo POM de Maven requiere la declaración:

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

Creación de un recurso de Azure

Comience a usar Bing Entity Search API mediante la creación de uno de los recursos de Azure que se indican a continuación.

Recurso de Bing Entity Search

  • Disponible en Azure Portal hasta que lo elimine.
  • Use el plan de tarifa gratuito para probar el servicio y actualícelo más adelante a un nivel de pago para producción.
  • Bing Entity Search también se ofrece en los niveles de pago del recurso Bing Search, versión 7.

Recurso de varios servicios

  • Disponible en Azure Portal hasta que lo elimine.
  • Utilice la misma clave y el mismo punto de conexión para sus aplicaciones en varios servicios de Azure AI.

Creación e inicialización de un proyecto

  1. Cree un proyecto de Java en su IDE o editor favorito e importe las bibliotecas siguientes.

    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. Creación de una variable para la clave de suscripción

    String subscriptionKey = "your-key-here"
    

Creación de un cliente de búsqueda

  1. Implemente el cliente dominantEntityLookup, lo que requiere un punto de conexión de API y una instancia de la clase ServiceClientCredentials. Puede usar el punto de conexión global siguiente o el punto de conexión del subdominio personalizado que se muestra en Azure Portal para el recurso.

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

    Para implementar ServiceClientCredentials, siga estos pasos:

    1. Reemplace la función applyCredentialsFilter() por un objeto OkHttpClient.Builder como parámetro.

      //...
      new ServiceClientCredentials() {
              @Override
              public void applyCredentialsFilter(OkHttpClient.Builder builder) {
              //...
              }
      //...
      
    2. Dentro de applyCredentialsFilter(), llame a builder.addNetworkInterceptor(). Cree un nuevo objeto Interceptor e invalide su método intercept() para tomar un objeto interceptor Chain.

      //...
      builder.addNetworkInterceptor(
          new Interceptor() {
              @Override
              public Response intercept(Chain chain) throws IOException {
              //...    
              }
          });
      ///...
      
    3. Dentro de la función intercept, cree variables para su solicitud. Use Request.Builder() para compilar su solicitud. Agregue su clave de suscripción al encabezado Ocp-Apim-Subscription-Key y devuelva chain.proceed() en el objeto de solicitud.

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

Envío de una solicitud y recepción de la respuesta

  1. Cree una nueva instancia del cliente de búsqueda con la clave de suscripción. Use client.entities().search() para enviar una solicitud de búsqueda para la consulta de búsqueda satya nadella y obtener una respuesta.

    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. Si se ha devuelto alguna entidad, convertirla en una lista. Recórralas e imprima la entidad 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;
            }
        }
    }
    

Pasos siguientes

Use este inicio rápido para empezar a buscar entidades con la biblioteca cliente para JavaScript de Bing Entity Search. Aunque Bing Entity Search tiene una API REST compatible con la mayoría de los lenguajes de programación, la biblioteca cliente proporciona una forma sencilla de integrar el servicio en sus aplicaciones. El código fuente de este ejemplo está disponible en GitHub.

Prerrequisitos

  • La última versión de Node.js.
  • El SDK de Bing Entity Search para JavaScript.
    • Para instalarlo, ejecute npm install @azure/cognitiveservices-entitysearch.
  • La clase CognitiveServicesCredentials del paquete @azure/ms-rest-azure-js para autenticar el cliente.
    • Para instalarlo, ejecute npm install @azure/ms-rest-azure-js.

Creación de un recurso de Azure

Comience a usar Bing Entity Search API mediante la creación de uno de los recursos de Azure que se indican a continuación.

Recurso de Bing Entity Search

  • Disponible en Azure Portal hasta que lo elimine.
  • Use el plan de tarifa gratuito para probar el servicio y actualícelo más adelante a un nivel de pago para producción.
  • Bing Entity Search también se ofrece en los niveles de pago del recurso Bing Search, versión 7.

Recurso de varios servicios

  • Disponible en Azure Portal hasta que lo elimine.
  • Utilice la misma clave y el mismo punto de conexión para sus aplicaciones en varios servicios de Azure AI.

Creación e inicialización de la aplicación

  1. Cree un archivo JavaScript en el editor o el IDE que prefiera y agregue los siguientes requisitos.

    const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials;
    const EntitySearchAPIClient = require('@azure/cognitiveservices-entitysearch');
    
  2. Cree una instancia de CognitiveServicesCredentials mediante su clave de suscripción. Luego, cree una instancia del cliente de búsqueda con ella.

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

Envío de una solicitud y recepción de la respuesta

  1. Envíe una solicitud de búsqueda de entidades con entitiesOperations.search(). Después de recibir una respuesta, imprima el queryContext, el número de resultados devueltos y la descripción del primer 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;
    });
    

Pasos siguientes

Use este inicio rápido para empezar a buscar entidades con la biblioteca cliente para Python de Bing Entity Search. Aunque Bing Entity Search tiene una API REST compatible con la mayoría de los lenguajes de programación, la biblioteca cliente proporciona una forma sencilla de integrar el servicio en sus aplicaciones. El código fuente de este ejemplo está disponible en GitHub.

Prerrequisitos

Se recomienda utilizar un entorno virtual de Python. Puede instalar e inicializar un entorno virtual con el módulo venv. Puede instalar virtualenv con:

python -m venv mytestenv

Instale la biblioteca cliente de Bing Entity Search mediante:

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

Creación de un recurso de Azure

Comience a usar Bing Entity Search API mediante la creación de uno de los recursos de Azure que se indican a continuación.

Recurso de Bing Entity Search

  • Disponible en Azure Portal hasta que lo elimine.
  • Use el plan de tarifa gratuito para probar el servicio y actualícelo más adelante a un nivel de pago para producción.
  • Bing Entity Search también se ofrece en los niveles de pago del recurso Bing Search, versión 7.

Recurso de varios servicios

  • Disponible en Azure Portal hasta que lo elimine.
  • Utilice la misma clave y el mismo punto de conexión para sus aplicaciones en varios servicios de Azure AI.

Creación e inicialización de la aplicación

  1. Cree un archivo de Python en el IDE o editor que prefiera y agregue las siguientes instrucciones de importación.

    from azure.cognitiveservices.search.entitysearch import EntitySearchClient
    from azure.cognitiveservices.search.entitysearch.models import Place, ErrorResponseException
    from msrest.authentication import CognitiveServicesCredentials
    
  2. Cree una variable para la clave y el punto de conexión de la suscripción. Cree una instancia del cliente mediante la creación de un objeto CognitiveServicesCredentials con la clave.

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

Envío de una solicitud de búsqueda y recepción de la respuesta

  1. Envíe una solicitud de búsqueda a Bing Entity Search con client.entities.search() y una consulta de búsqueda.

    entity_data = client.entities.search(query="Gibralter")
    
  2. Si se devuelven entidades, convierta entity_data.entities.value en una lista e imprima el primer 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)
    

Pasos siguientes