빠른 시작: Bing Entity Search 클라이언트 라이브러리 사용
경고
2020년 10월 30일에 Bing Search API가 Azure AI 서비스에서 Bing Search Services로 이동되었습니다. 이 문서는 참조용으로만 제공됩니다. 업데이트된 문서는 Bing search API 문서를 참조하세요. Bing 검색을 위한 새 Azure 리소스 만들기에 대한 지침은 Azure Marketplace를 통해 Bing Search 리소스 만들기를 참조하세요.
C#용 Bing Entity Search 클라이언트 라이브러리를 통해 엔터티 검색을 시작하려면 이 빠른 시작을 사용하세요. Bing Entity Search에는 대부분의 프로그래밍 언어와 호환되는 REST API가 있는 반면, 클라이언트 라이브러리를 사용하면 서비스를 애플리케이션에 쉽게 통합할 수 있습니다. 이 샘플의 소스 코드는 GitHub에서 확인할 수 있습니다.
사전 요구 사항
- Visual Studio 2017 이상의 모든 버전.
- NuGet 패키지로 사용 가능한 Json.NET 프레임워크.
- Linux/MacOS를 사용하는 경우 이 애플리케이션은 Mono를 사용하여 실행할 수 있습니다.
-
Bing News Search SDK NuGet 패키지 이 패키지를 설치하면 다음도 설치됩니다.
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Json
Bing Entity Search 클라이언트 라이브러리를 Visual Studio 프로젝트에 추가하려면 솔루션 탐색기에서 NuGet 패키지 관리 옵션을 사용하고 Microsoft.Azure.CognitiveServices.Search.EntitySearch
패키지를 추가합니다.
Azure 리소스 만들기
다음 Azure 리소스 중 하나를 만들어 Bing Entity Search API 사용을 시작합니다.
Bing Entity Search 리소스
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.
- Bing Entity Search는 Bing Search v7 리소스의 유료 계층에서도 제공됩니다.
다중 서비스 리소스
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.
애플리케이션 만들기 및 초기화
Visual Studio에서 새 C# 콘솔 솔루션을 만듭니다. 그런 다음, 주 코드 파일에 다음을 추가합니다.
using System; using System.Linq; using System.Text; using Microsoft.Azure.CognitiveServices.Search.EntitySearch; using Microsoft.Azure.CognitiveServices.Search.EntitySearch.Models; using Newtonsoft.Json;
클라이언트를 만들고 검색 요청 보내기
새 검색 클라이언트를 만듭니다. 새
ApiKeyServiceClientCredentials
를 만들어서 구독 키를 추가합니다.var client = new EntitySearchClient(new ApiKeyServiceClientCredentials("YOUR-ACCESS-KEY"));
클라이언트의
Entities.Search()
함수를 사용하여 쿼리를 검색합니다.var entityData = client.Entities.Search(query: "Satya Nadella");
엔터티 설명을 가져와서 인쇄
API에서 검색 결과가 반환된 경우
entityData
에서 기본 엔터티를 가져옵니다.var mainEntity = entityData.Entities.Value.Where(thing => thing.EntityPresentationInfo.EntityScenario == EntityScenario.DominantEntity).FirstOrDefault();
기본 엔터티에 대한 설명 인쇄
Console.WriteLine(mainEntity.Description);
다음 단계
Java용 Bing Entity Search 클라이언트 라이브러리를 통해 엔터티 검색을 시작하려면 이 빠른 시작을 사용하세요. Bing Entity Search에는 대부분의 프로그래밍 언어와 호환되는 REST API가 있는 반면, 클라이언트 라이브러리를 사용하면 서비스를 애플리케이션에 쉽게 통합할 수 있습니다. 이 샘플의 소스 코드는 GitHub에서 확인할 수 있습니다.
사전 요구 사항
Java용 Bing Entity Search 클라이언트 라이브러리
Maven, Gradle 또는 기타 종속성 관리 시스템을 사용하여 Bing Entity Search 클라이언트 라이브러리 종속성을 설치합니다. Maven POM 파일에는 다음 선언이 필요합니다.
<dependency>
<groupId>com.microsoft.azure.cognitiveservices</groupId>
<artifactId>azure-cognitiveservices-entitysearch</artifactId>
<version>1.0.2</version>
</dependency>
Azure 리소스 만들기
다음 Azure 리소스 중 하나를 만들어 Bing Entity Search API 사용을 시작합니다.
Bing Entity Search 리소스
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.
- Bing Entity Search는 Bing Search v7 리소스의 유료 계층에서도 제공됩니다.
다중 서비스 리소스
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.
프로젝트 만들기 및 초기화
즐겨 찾는 IDE 또는 편집기에서 새 Java 프로젝트를 만들고 다음 라이브러리를 가져옵니다.
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;
구독 키에 대한 변수 만들기
String subscriptionKey = "your-key-here"
검색 클라이언트 만들기
dominantEntityLookup
클라이언트를 구현합니다. 그러려면 API 엔드포인트와ServiceClientCredentials
클래스의 인스턴스가 필요합니다. 아래의 글로벌 엔드포인트를 사용하거나 리소스의 Azure Portal에 표시되는 사용자 지정 하위 도메인 엔드포인트를 사용할 수 있습니다.public static EntitySearchAPIImpl getClient(final String subscriptionKey) { return new EntitySearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/", new ServiceClientCredentials() { //... } )};
ServiceClientCredentials
를 구현하려면 다음 단계를 수행합니다.OkHttpClient.Builder
개체를 매개 변수로 사용하여applyCredentialsFilter()
함수를 재정의합니다.//... new ServiceClientCredentials() { @Override public void applyCredentialsFilter(OkHttpClient.Builder builder) { //... } //...
applyCredentialsFilter()
내에서builder.addNetworkInterceptor()
를 호출합니다. 새Interceptor
개체를 만들고,Chain
인터셉터 개체를 사용하도록intercept()
메서드를 재정의합니다.//... builder.addNetworkInterceptor( new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { //... } }); ///...
intercept
함수 내에서 요청에 대한 변수를 만듭니다.Request.Builder()
를 사용하여 요청을 빌드합니다.Ocp-Apim-Subscription-Key
헤더에 구독 키를 추가하고, 요청 개체에서chain.proceed()
를 반환합니다.//... 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); } //...
요청을 보내고 응답 수신
구독 키를 사용하여 검색 클라이언트의 새 인스턴스를 만듭니다.
client.entities().search()
를 사용하여 검색 쿼리satya nadella
에 대한 검색 요청을 보내고, 응답을 받습니다.EntitySearchAPIImpl client = getClient(subscriptionKey); SearchResponseInner entityData = client.entities().search( "satya nadella", null, null, null, null, null, null, "en-us", null, null, SafeSearch.STRICT, null);
엔터티가 반환되면 목록으로 변환합니다. 이 절차를 반복하고, 기준 엔터티를 인쇄합니다.
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; } } }
다음 단계
JavaScript용 Bing Entity Search 클라이언트 라이브러리를 통해 엔터티 검색을 시작하려면 이 빠른 시작을 사용하세요. Bing Entity Search에는 대부분의 프로그래밍 언어와 호환되는 REST API가 있는 반면, 클라이언트 라이브러리를 사용하면 서비스를 애플리케이션에 쉽게 통합할 수 있습니다. 이 샘플의 소스 코드는 GitHub에서 확인할 수 있습니다.
사전 요구 사항
- 최신 버전의 Node.js.
-
JavaScript용 Bing Entity Search SDK
- 설치하려면
npm install @azure/cognitiveservices-entitysearch
를 실행합니다.
- 설치하려면
- 클라이언트를 인증하는
@azure/ms-rest-azure-js
패키지의CognitiveServicesCredentials
클래스입니다.- 설치하려면
npm install @azure/ms-rest-azure-js
를 실행합니다.
- 설치하려면
Azure 리소스 만들기
다음 Azure 리소스 중 하나를 만들어 Bing Entity Search API 사용을 시작합니다.
Bing Entity Search 리소스
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.
- Bing Entity Search는 Bing Search v7 리소스의 유료 계층에서도 제공됩니다.
다중 서비스 리소스
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.
애플리케이션 만들기 및 초기화
선호하는 IDE 또는 편집기에서 새 JavaScript 파일을 만들고, 다음 요구 사항을 추가합니다.
const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials; const EntitySearchAPIClient = require('@azure/cognitiveservices-entitysearch');
구독 키를 사용하여
CognitiveServicesCredentials
인스턴스를 만듭니다. 그 후 해당 인스턴스를 사용하여 검색 클라이언트의 인스턴스를 만듭니다.let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY'); let entitySearchApiClient = new EntitySearchAPIClient(credentials);
요청을 보내고 응답 수신
entitiesOperations.search()
를 사용하여 엔터티 검색 요청을 보냅니다. 응답을 받은 후queryContext
, 반환된 결과 수, 첫 번째 결과에 대한 설명을 인쇄합니다.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; });
다음 단계
Python용 Bing Entity Search 클라이언트 라이브러리를 통해 엔터티 검색을 시작하려면 이 빠른 시작을 사용하세요. Bing Entity Search에는 대부분의 프로그래밍 언어와 호환되는 REST API가 있는 반면, 클라이언트 라이브러리를 사용하면 서비스를 애플리케이션에 쉽게 통합할 수 있습니다. 이 샘플의 소스 코드는 GitHub에서 확인할 수 있습니다.
사전 요구 사항
Python 가상 환경을 사용하는 것이 좋습니다. venv 모듈을 사용하여 가상 환경을 설치하고 초기화할 수 있습니다. 다음을 사용하여 virtualenv를 설치할 수 있습니다.
python -m venv mytestenv
다음을 사용하여 Bing Entity Search 클라이언트 라이브러리를 설치합니다.
cd mytestenv
python -m pip install azure-cognitiveservices-search-entitysearch
Azure 리소스 만들기
다음 Azure 리소스 중 하나를 만들어 Bing Entity Search API 사용을 시작합니다.
Bing Entity Search 리소스
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.
- Bing Entity Search는 Bing Search v7 리소스의 유료 계층에서도 제공됩니다.
다중 서비스 리소스
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.
애플리케이션 만들기 및 초기화
선호하는 IDE 또는 편집기에서 새 Python 파일을 만들고, 다음 import 문을 추가합니다.
from azure.cognitiveservices.search.entitysearch import EntitySearchClient from azure.cognitiveservices.search.entitysearch.models import Place, ErrorResponseException from msrest.authentication import CognitiveServicesCredentials
구독 키 및 엔드포인트에 대한 변수를 만듭니다. 키를 사용하여 새
CognitiveServicesCredentials
개체를 만들어서 클라이언트를 인스턴스화합니다.subscription_key = "YOUR-SUBSCRIPTION-KEY" endpoint = "YOUR-ENDPOINT" client = EntitySearchclient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
검색 요청을 보내고 응답 수신
client.entities.search()
및 검색 쿼리를 사용하여 Bing Entity Search에 검색 요청을 보냅니다.entity_data = client.entities.search(query="Gibralter")
엔터티가 반환되는 경우
entity_data.entities.value
를 목록으로 변환하고 첫 번째 결과를 인쇄합니다.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)