Proč jsou potřeba abstrakce hledání textu?
Při zpracování textových výzev nebo textového obsahu v historii chatu je běžným požadavkem poskytnutí dalších relevantních informací souvisejících s tímto textem. To poskytuje model AI s relevantním kontextem, který mu pomáhá poskytovat přesnější odpovědi. Pro splnění tohoto požadavku poskytuje sémantické jádro abstrakci vyhledávání textu, která umožňuje použití textových vstupů z různých zdrojů, například webových vyhledávacích webů, vektorových úložišť atd., a poskytuje výsledky v několika standardizovaných formátech.
Poznámka:
Hledání obsahu obrázku nebo zvukového obsahu se v současné době nepodporuje.
Abstrakce hledání textu
Abstrakce vyhledávání textu sémantického jádra poskytují tři metody:
Search
GetSearchResults
GetTextSearchResults
Search
Provede vyhledávání obsahu souvisejícího se zadaným dotazem a vrátí řetězcové hodnoty představující výsledky hledání. Search
lze použít v nejzásadnějších případech použití, například při rozšiřování semantic-kernel
šablony výzvy k formátování s výsledky hledání. Search
vždy vrátí pouze jednu řetězcovou hodnotu na výsledek hledání, takže není vhodná, pokud jsou citace požadovány.
GetSearchResults
Provede vyhledávání obsahu souvisejícího se zadaným dotazem a vrátí výsledky hledání ve formátu definovaném implementací. GetSearchResults
vrátí úplný výsledek hledání definovaný podkladovou vyhledávací službou. To poskytuje největší všestrannost za cenu vázání kódu na konkrétní implementaci vyhledávací služby.
GetTextSearchResults
Provede vyhledávání obsahu souvisejícího se zadaným dotazem a vrátí normalizovaný datový model představující výsledky hledání. Tento normalizovaný datový model obsahuje řetězcovou hodnotu a volitelně název a propojení. GetTextSearchResults
umožňuje izolaci kódu od konkrétní implementace vyhledávací služby, takže stejnou výzvu můžete použít s několika různými vyhledávacími službami.
Tip
Pokud chcete spustit ukázky uvedené na této stránce, přejděte na GettingStartedWithTextSearch/Step1_Web_Search.cs.
Následující ukázkový kód ukazuje jednotlivé metody hledání textu v akci.
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}");
}
Již brzy
Další připravujeme.
Již brzy
Další připravujeme.