Udostępnij za pośrednictwem


Dlaczego potrzebne są abstrakcje wyszukiwania tekstu?

W przypadku obsługi monitów tekstowych lub zawartości tekstowej w historii czatów często wymagane jest podanie dodatkowych istotnych informacji związanych z tym tekstem. Zapewnia to model sztucznej inteligencji z odpowiednim kontekstem, który pomaga mu zapewnić dokładniejsze odpowiedzi. Aby spełnić to wymaganie, jądro semantyczne zapewnia abstrakcję wyszukiwania tekstu, która umożliwia używanie danych wejściowych tekstu z różnych źródeł, np. aparatów wyszukiwania w sieci Web, magazynów wektorów itp., i zapewnia wyniki w kilku standardowych formatach.

Uwaga

Wyszukiwanie zawartości obrazu lub zawartości audio nie jest obecnie obsługiwane.

Abstrakcja wyszukiwania tekstu

Semantyczne abstrakcje wyszukiwania tekstu jądra udostępniają trzy metody:

  1. Search
  2. GetSearchResults
  3. GetTextSearchResults

Wykonuje wyszukiwanie zawartości powiązanej z określonym zapytaniem i zwraca wartości ciągu reprezentujące wyniki wyszukiwania. Search można używać w najbardziej podstawowych przypadkach użycia, np. podczas rozszerzania semantic-kernel szablonu monitu o format z wynikami wyszukiwania. Search zawsze zwraca tylko jedną wartość ciągu na wynik wyszukiwania, więc nie jest odpowiedni, jeśli wymagane są cytaty.

GetSearchResults

Wykonuje wyszukiwanie zawartości powiązanej z określonym zapytaniem i zwraca wyniki wyszukiwania w formacie zdefiniowanym przez implementację. GetSearchResults Zwraca pełny wynik wyszukiwania zdefiniowany przez podstawową usługę wyszukiwania. Zapewnia to najbardziej wszechstronność kosztu wiązania kodu z określoną implementacją usługi wyszukiwania.

GetTextSearchResults

Wykonuje wyszukiwanie zawartości powiązanej z określonym zapytaniem i zwraca znormalizowany model danych reprezentujący wyniki wyszukiwania. Ten znormalizowany model danych zawiera wartość ciągu i opcjonalnie nazwę i link. GetTextSearchResults umożliwia odizolowanie kodu od określonej implementacji usługi wyszukiwania, więc ten sam monit może być używany z wieloma różnymi usługami wyszukiwania.

Napiwek

Aby uruchomić przykłady wyświetlane na tej stronie, przejdź do pozycji GettingStartedWithTextSearch/Step1_Web_Search.cs.

Poniższy przykładowy kod przedstawia każdą z metod wyszukiwania tekstu w akcji.

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

Wkrótce

Wkrótce pojawi się więcej.

Wkrótce

Wkrótce pojawi się więcej.

Następne kroki