Warum sind Textsuche-Abstraktionen erforderlich?
Beim Umgang mit Textaufforderungen oder Textinhalten im Chatverlauf besteht eine häufige Anforderung darin, zusätzliche relevante Informationen zu diesem Text bereitzustellen. Dadurch erhält das KI-Modell relevante Kontexte, mit denen es präzisere Antworten liefern kann. Um diese Anforderung zu erfüllen, bietet der semantische Kernel eine Textsuche-Abstraktion, die die Verwendung von Texteingaben aus verschiedenen Quellen ermöglicht, z. B. Websuchmaschinen, Vektorspeicher usw., und liefert Ergebnisse in einigen standardisierten Formaten.
Hinweis
Die Suche nach Bildinhalten oder Audioinhalten wird derzeit nicht unterstützt.
Textsuche Abstraktion
Die Semantik-Kernel-Textsuchabstraktionen bieten drei Methoden:
Search
GetSearchResults
GetTextSearchResults
Search
Führt eine Suche nach Inhalten im Zusammenhang mit der angegebenen Abfrage aus und gibt Zeichenfolgenwerte zurück, die die Suchergebnisse darstellen. Search
kann in den einfachsten Anwendungsfällen verwendet werden, z. B. beim Erweitern einer semantic-kernel
Formataufforderungsvorlage mit Suchergebnissen. Search
gibt immer nur einen einzelnen Zeichenfolgenwert pro Suchergebnis zurück, daher ist dies nicht geeignet, wenn Zitate erforderlich sind.
GetSearchResults
Führt eine Suche nach Inhalten im Zusammenhang mit der angegebenen Abfrage aus und gibt Suchergebnisse im von der Implementierung definierten Format zurück. GetSearchResults
gibt das vollständige Suchergebnis gemäß Definition des zugrunde liegenden Suchdiensts zurück. Dies bietet die größte Vielseitigkeit bei den Kosten, den Code mit einer bestimmten Suchdienstimplementierung zu binden.
GetTextSearchResults
Führt eine Suche nach Inhalten im Zusammenhang mit der angegebenen Abfrage aus und gibt ein normalisiertes Datenmodell zurück, das die Suchergebnisse darstellt. Dieses normalisierte Datenmodell enthält einen Zeichenfolgenwert und optional einen Namen und eine Verknüpfung. GetTextSearchResults
ermöglicht es Ihrem Code, von einer bestimmten Suchdienstimplementierung isoliert zu werden, sodass dieselbe Eingabeaufforderung mit mehreren verschiedenen Suchdiensten verwendet werden kann.
Tipp
Um die auf dieser Seite gezeigten Beispiele auszuführen, wechseln Sie zu GettingStartedWithTextSearch/Step1_Web_Search.cs.
Der folgende Beispielcode zeigt die einzelnen Textsuchmethoden in Aktion.
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}");
}
In Kürze verfügbar
Mehr in Kürze verfügbar.
In Kürze verfügbar
Mehr in Kürze verfügbar.