共用方式為


為什麼需要文字搜尋抽象概念?

處理聊天記錄中的文字提示或文字內容時,常見的需求是提供與此文字相關的其他相關信息。 這會提供 AI 模型的相關內容,以協助其提供更精確的回應。 為了符合此需求,語意核心提供文字搜尋抽象概念,允許使用來自各種來源的文字輸入,例如 Web 搜尋引擎、向量存放區等,並提供一些標準化格式的結果。

注意

目前不支援搜尋影像內容或音訊內容。

文字搜尋抽象概念

語意核心文字搜尋抽象概念提供三種方法:

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

即將推出

更多即將推出。

即將推出

更多即將推出。

下一步