Schnellstart: Verwenden der Clientbibliothek für die Bing-Entitätssuche
Warnung
Am 30. Oktober 2020 wurden die Bing-Suche-APIs aus den Azure KI Services in die Bing-Suchdienste verschoben. Diese Dokumentation wird nur zu Referenzzwecken bereitgestellt. Eine aktualisierte Dokumentation finden Sie in der Dokumentation zu den Bing-Suche-APIs. Anweisungen zum Erstellen neuer Azure-Ressourcen für die Bing-Suche finden Sie unter Erstellen einer Ressource für die Bing-Suche über Azure Marketplace.
Verwenden Sie diese Schnellstartanleitung, um unter Verwendung der Bing-Entitätssuche-Clientbibliothek für C# mit der Suche nach Entitäten zu beginnen. Die Bing-Entitätssuche verfügt zwar über eine REST-API, die mit den meisten Programmiersprachen kompatibel ist, die Clientbibliothek ist jedoch eine einfache Möglichkeit, den Dienst in Ihre Anwendungen zu integrieren. Den Quellcode für dieses Beispiel finden Sie auf GitHub.
Voraussetzungen
- Eine beliebige Edition von Visual Studio 2017 oder höher.
- Das Json.NET-Framework, das als NuGet-Paket verfügbar ist
- Unter Linux/macOS kann diese Anwendung mit Mono ausgeführt werden
- Das NuGet-Paket mit dem SDK für die Bing-News-Suche. Bei der Installation dieses Pakets wird auch Folgendes installiert:
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Json
Verwenden Sie die Option NuGet-Pakete verwalten im Projektmappen-Explorer, und fügen Sie das Paket Microsoft.Azure.CognitiveServices.Search.EntitySearch
hinzu, um Ihrem Visual Studio-Projekt die Clientbibliothek für die Bing-Entitätssuche hinzuzufügen.
Erstellen einer Azure-Ressource
Beginnen Sie mit der Verwendung der Bing-Entitätssuche-API, indem Sie eine der folgenden Azure-Ressourcen erstellen.
Ressource für die Bing-Entitätssuche
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- Verwenden Sie den Tarif „Free“, um den Dienst zu testen, und führen Sie später für die Produktion ein Upgrade auf einen kostenpflichtigen Tarif durch.
- Die Bing-Entitätssuche wird auch in kostenpflichtigen Tarifen der Bing-Suche v7-Ressource angeboten.
Ressource für mehrere Dienste
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- Verwenden Sie in allen Azure KI Services-Instanzen denselben Schlüssel und Endpunkt für Ihre Anwendungen.
Erstellen und Initialisieren einer Anwendung
Erstellen Sie eine neue C#-Konsolenprojektmappe in Visual Studio. Fügen Sie dann Folgendes in die Hauptcodedatei ein:
using System; using System.Linq; using System.Text; using Microsoft.Azure.CognitiveServices.Search.EntitySearch; using Microsoft.Azure.CognitiveServices.Search.EntitySearch.Models; using Newtonsoft.Json;
Erstellen eines Clients und Senden einer Suchanforderung
Erstellen Sie einen neuen Suchclient. Erstellen Sie ein neues Element vom Typ
ApiKeyServiceClientCredentials
, um Ihren Abonnementschlüssel hinzuzufügen.var client = new EntitySearchClient(new ApiKeyServiceClientCredentials("YOUR-ACCESS-KEY"));
Verwenden Sie die Funktion
Entities.Search()
des Clients, um nach Ihrer Abfrage zu suchen:var entityData = client.Entities.Search(query: "Satya Nadella");
Abrufen und Ausgeben einer Entitätsbeschreibung
Falls die API Suchergebnisse zurückgegeben hat, rufen Sie die Hauptentität aus
entityData
ab.var mainEntity = entityData.Entities.Value.Where(thing => thing.EntityPresentationInfo.EntityScenario == EntityScenario.DominantEntity).FirstOrDefault();
Ausgeben der Beschreibung der Hauptentität
Console.WriteLine(mainEntity.Description);
Nächste Schritte
Verwenden Sie diese Schnellstartanleitung, um unter Verwendung der Bing-Entitätssuche-Clientbibliothek für Java mit der Suche nach Entitäten zu beginnen. Die Bing-Entitätssuche verfügt zwar über eine REST-API, die mit den meisten Programmiersprachen kompatibel ist, die Clientbibliothek ist jedoch eine einfache Möglichkeit, den Dienst in Ihre Anwendungen zu integrieren. Den Quellcode für dieses Beispiel finden Sie auf GitHub.
Voraussetzungen
Die Bing-Entitätssuche-Clientbibliothek für Java
Installieren Sie die Abhängigkeit für die Bing-Entitätssuche-Clientbibliothek mithilfe von Maven, Gradle oder einem anderen Abhängigkeitsverwaltungssystem. Die POM-Datei für Maven erfordert die folgende Deklaration:
<dependency>
<groupId>com.microsoft.azure.cognitiveservices</groupId>
<artifactId>azure-cognitiveservices-entitysearch</artifactId>
<version>1.0.2</version>
</dependency>
Erstellen einer Azure-Ressource
Beginnen Sie mit der Verwendung der Bing-Entitätssuche-API, indem Sie eine der folgenden Azure-Ressourcen erstellen.
Ressource für die Bing-Entitätssuche
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- Verwenden Sie den Tarif „Free“, um den Dienst zu testen, und führen Sie später für die Produktion ein Upgrade auf einen kostenpflichtigen Tarif durch.
- Die Bing-Entitätssuche wird auch in kostenpflichtigen Tarifen der Bing-Suche v7-Ressource angeboten.
Ressource für mehrere Dienste
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- Verwenden Sie in allen Azure KI Services-Instanzen denselben Schlüssel und Endpunkt für Ihre Anwendungen.
Erstellen und Initialisieren eines Projekts
Erstellen Sie in Ihrer bevorzugten IDE oder in Ihrem bevorzugten Editor ein neues Java-Projekt, und importieren Sie die folgenden Bibliotheken.
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;
Erstellen Sie eine Variable für Ihren Abonnementschlüssel.
String subscriptionKey = "your-key-here"
Erstellen eines Suchclients
Implementieren Sie den
dominantEntityLookup
-Client, der Ihren API-Endpunkt und eine Instanz derServiceClientCredentials
-Klasse erfordert. Sie können den unten angegebenen globalen Endpunkt oder den Endpunkt der benutzerdefinierten Unterdomäne verwenden, der im Azure-Portal für Ihre Ressource angezeigt wird.public static EntitySearchAPIImpl getClient(final String subscriptionKey) { return new EntitySearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/", new ServiceClientCredentials() { //... } )};
Führen Sie zum Implementieren von
ServiceClientCredentials
die folgenden Schritte aus:Überschreiben Sie die Funktion
applyCredentialsFilter()
mit einemOkHttpClient.Builder
-Objekt als Parameter.//... new ServiceClientCredentials() { @Override public void applyCredentialsFilter(OkHttpClient.Builder builder) { //... } //...
Rufen Sie
builder.addNetworkInterceptor()
inapplyCredentialsFilter()
auf. Erstellen Sie ein neuesInterceptor
-Objekt, und überschreiben Sie seineintercept()
-Methode, um ein Interceptor-Objekt vom TypChain
zu übernehmen.//... builder.addNetworkInterceptor( new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { //... } }); ///...
Erstellen Sie in der Funktion
intercept
Variablen für Ihre Anforderung. Verwenden SieRequest.Builder()
zum Erstellen Ihrer Anforderung. Fügen Sie dem HeaderOcp-Apim-Subscription-Key
Ihren Abonnementschlüssel hinzu, und geben Siechain.proceed()
für das Anforderungsobjekt zurück.//... 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); } //...
Senden einer Anforderung und Erhalten einer Antwort
Erstellen Sie eine neue Instanz des Suchclients mit Ihrem Abonnementschlüssel. Verwenden Sie
client.entities().search()
, um eine Suchanforderung für die Suchabfragesatya nadella
zu senden und eine Antwort zu erhalten.EntitySearchAPIImpl client = getClient(subscriptionKey); SearchResponseInner entityData = client.entities().search( "satya nadella", null, null, null, null, null, null, "en-us", null, null, SafeSearch.STRICT, null);
Wenn Entitäten zurückgegeben wurden, konvertieren Sie sie in eine Liste. Durchlaufen Sie sie, und geben Sie die dominante Entität aus.
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; } } }
Nächste Schritte
Verwenden Sie diese Schnellstartanleitung, um unter Verwendung der Bing-Entitätssuche-Clientbibliothek für JavaScript mit der Suche nach Entitäten zu beginnen. Die Bing-Entitätssuche verfügt zwar über eine REST-API, die mit den meisten Programmiersprachen kompatibel ist, die Clientbibliothek ist jedoch eine einfache Möglichkeit, den Dienst in Ihre Anwendungen zu integrieren. Den Quellcode für dieses Beispiel finden Sie auf GitHub.
Voraussetzungen
- Die aktuelle Version von Node.js
- Das Bing Entitätssuche-SDK für JavaScript
- Führen Sie zum Installieren
npm install @azure/cognitiveservices-entitysearch
aus.
- Führen Sie zum Installieren
- Die
CognitiveServicesCredentials
-Klasse aus dem Paket@azure/ms-rest-azure-js
zum Authentifizieren des Clients.- Führen Sie zum Installieren
npm install @azure/ms-rest-azure-js
aus.
- Führen Sie zum Installieren
Erstellen einer Azure-Ressource
Beginnen Sie mit der Verwendung der Bing-Entitätssuche-API, indem Sie eine der folgenden Azure-Ressourcen erstellen.
Ressource für die Bing-Entitätssuche
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- Verwenden Sie den Tarif „Free“, um den Dienst zu testen, und führen Sie später für die Produktion ein Upgrade auf einen kostenpflichtigen Tarif durch.
- Die Bing-Entitätssuche wird auch in kostenpflichtigen Tarifen der Bing-Suche v7-Ressource angeboten.
Ressource für mehrere Dienste
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- Verwenden Sie in allen Azure KI Services-Instanzen denselben Schlüssel und Endpunkt für Ihre Anwendungen.
Erstellen und Initialisieren der Anwendung
Erstellen Sie eine neue JavaScript-Datei in Ihrer bevorzugten IDE oder Ihrem bevorzugten Editor, und fügen Sie die folgenden Anforderungen hinzu.
const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials; const EntitySearchAPIClient = require('@azure/cognitiveservices-entitysearch');
Erstellen Sie mithilfe Ihres Abonnementschlüssels eine Instanz von
CognitiveServicesCredentials
. Dann erstellen Sie damit eine Instanz des Suchclients.let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY'); let entitySearchApiClient = new EntitySearchAPIClient(credentials);
Senden einer Anforderung und Erhalten einer Antwort
Senden Sie mit
entitiesOperations.search()
eine Suchanforderung für Entitäten. Nach dem Empfang einer Antwort geben Sie dasqueryContext
-Element, die Anzahl der zurückgegebenen Ergebnisse, und die Beschreibung des ersten Ergebnisses aus.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; });
Nächste Schritte
Verwenden Sie diese Schnellstartanleitung, um unter Verwendung der Bing-Entitätssuche-Clientbibliothek für Python mit der Suche nach Entitäten zu beginnen. Die Bing-Entitätssuche verfügt zwar über eine REST-API, die mit den meisten Programmiersprachen kompatibel ist, die Clientbibliothek ist jedoch eine einfache Möglichkeit, den Dienst in Ihre Anwendungen zu integrieren. Den Quellcode für dieses Beispiel finden Sie auf GitHub.
Voraussetzungen
Python 2.x oder 3.x
Es wird empfohlen, eine virtuelle Python-Umgebung zu verwenden. Sie können eine virtuelle Umgebung mit dem venv-Modul installieren und initialisieren. virtualenv kann wie folgt installiert werden:
python -m venv mytestenv
Installieren Sie die Clientbibliothek für die Bing-Entitätssuche mit:
cd mytestenv
python -m pip install azure-cognitiveservices-search-entitysearch
Erstellen einer Azure-Ressource
Beginnen Sie mit der Verwendung der Bing-Entitätssuche-API, indem Sie eine der folgenden Azure-Ressourcen erstellen.
Ressource für die Bing-Entitätssuche
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- Verwenden Sie den Tarif „Free“, um den Dienst zu testen, und führen Sie später für die Produktion ein Upgrade auf einen kostenpflichtigen Tarif durch.
- Die Bing-Entitätssuche wird auch in kostenpflichtigen Tarifen der Bing-Suche v7-Ressource angeboten.
Ressource für mehrere Dienste
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- Verwenden Sie in allen Azure KI Services-Instanzen denselben Schlüssel und Endpunkt für Ihre Anwendungen.
Erstellen und Initialisieren der Anwendung
Erstellen Sie in Ihrer bevorzugten IDE bzw. in einem Editor eine neue Python-Datei, und fügen Sie die folgenden Importanweisungen hinzu.
from azure.cognitiveservices.search.entitysearch import EntitySearchClient from azure.cognitiveservices.search.entitysearch.models import Place, ErrorResponseException from msrest.authentication import CognitiveServicesCredentials
Erstellen Sie eine Variable für Ihren Abonnementschlüssel und den Endpunkt. Instanziieren Sie den Client, indem Sie ein neues
CognitiveServicesCredentials
-Objekt mit Ihrem Schlüssel erstellen.subscription_key = "YOUR-SUBSCRIPTION-KEY" endpoint = "YOUR-ENDPOINT" client = EntitySearchclient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
Senden einer Suchanforderung und Erhalten einer Antwort
Senden Sie an die Bing-Entitätssuche eine Suchanforderung mit
client.entities.search()
und einer Suchabfrage.entity_data = client.entities.search(query="Gibralter")
Falls Entitäten zurückgegeben wurden, konvertieren Sie
entity_data.entities.value
in eine Liste, und geben Sie das erste Ergebnis aus.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)