다음을 통해 공유


텍스트 검색 추상화가 필요한 이유는 무엇인가요?

채팅 기록에서 텍스트 프롬프트 또는 텍스트 콘텐츠를 처리할 때 일반적인 요구 사항은 이 텍스트와 관련된 추가 관련 정보를 제공하는 것입니다. 이렇게 하면 AI 모델에 보다 정확한 응답을 제공하는 데 도움이 되는 관련 컨텍스트가 제공됩니다. 이 요구 사항을 충족하기 위해 의미 체계 커널은 웹 검색 엔진, 벡터 저장소 등과 같은 다양한 원본의 텍스트 입력을 사용할 수 있는 텍스트 검색 추상화를 제공하고 몇 가지 표준화된 형식으로 결과를 제공합니다.

참고 항목

이미지 콘텐츠 또는 오디오 콘텐츠 검색은 현재 지원되지 않습니다.

텍스트 검색 추상화

의미 체계 커널 텍스트 검색 추상화는 다음 세 가지 메서드를 제공합니다.

  1. Search
  2. GetSearchResults
  3. GetTextSearchResults

지정된 쿼리와 관련된 콘텐츠에 대한 검색을 수행하고 검색 결과를 나타내는 문자열 값을 반환합니다. Search 는 검색 결과를 사용하여 서식 프롬프트 템플릿을 보강하는 경우와 같이 가장 기본적인 사용 사례에서 semantic-kernel 사용할 수 있습니다. Search 항상 검색 결과당 단일 문자열 값만 반환하므로 인용이 필요한 경우에는 적합하지 않습니다.

GetSearchResults

지정된 쿼리와 관련된 콘텐츠에 대한 검색을 수행하고 구현에서 정의한 형식으로 검색 결과를 반환합니다. GetSearchResults 는 기본 검색 서비스에서 정의한 대로 전체 검색 결과를 반환합니다. 이렇게 하면 코드를 특정 검색 서비스 구현에 연결하는 데 드는 비용에서 가장 다양한 기능을 제공합니다.

GetTextSearchResults

지정된 쿼리와 관련된 콘텐츠에 대한 검색을 수행하고 검색 결과를 나타내는 정규화된 데이터 모델을 반환합니다. 정규화된 이 데이터 모델에는 문자열 값과 선택적으로 이름 및 링크가 포함됩니다. GetTextSearchResults 에서는 코드를 특정 검색 서비스 구현에서 격리할 수 있으므로 여러 다른 검색 서비스에서 동일한 프롬프트를 사용할 수 있습니다.

이 페이지에 표시된 샘플을 실행하려면 GettingStartedWithTextSearch/Step1_Web_Search.cs 이동합니다.

아래 샘플 코드는 작동 중인 각 텍스트 검색 방법을 보여 줍니다.

using Microsoft.SemanticKernel.Data;
using Microsoft.SemanticKernel.Plugins.Web.Bing;

// Create an ITextSearch instance using Bing search
var textSearch = new BingTextSearch(apiKey: "<Your Bing API Key>");

var query = "What is the Semantic Kernel?";

// Search and return results
KernelSearchResults<string> searchResults = await textSearch.SearchAsync(query, new() { Top = 4 });
await foreach (string result in searchResults.Results)
{
    Console.WriteLine(result);
}

// Search and return results as BingWebPage items
KernelSearchResults<object> webPages = await textSearch.GetSearchResultsAsync(query, new() { Top = 4 });
await foreach (BingWebPage webPage in webPages.Results)
{
    Console.WriteLine($"Name:            {webPage.Name}");
    Console.WriteLine($"Snippet:         {webPage.Snippet}");
    Console.WriteLine($"Url:             {webPage.Url}");
    Console.WriteLine($"DisplayUrl:      {webPage.DisplayUrl}");
    Console.WriteLine($"DateLastCrawled: {webPage.DateLastCrawled}");
}

// Search and return results as TextSearchResult items
KernelSearchResults<TextSearchResult> textResults = await textSearch.GetTextSearchResultsAsync(query, new() { Top = 4 });
await foreach (TextSearchResult result in textResults.Results)
{
    Console.WriteLine($"Name:  {result.Name}");
    Console.WriteLine($"Value: {result.Value}");
    Console.WriteLine($"Link:  {result.Link}");
}

서비스 예정

더 곧 출시될 예정입니다.

서비스 예정

더 곧 출시될 예정입니다.

다음 단계