Delen via


Waarom zijn tekstzoekopdrachten nodig?

Wanneer u te maken hebt met tekstprompts of tekstinhoud in de chatgeschiedenis, moet u aanvullende relevante informatie met betrekking tot deze tekst opgeven. Dit biedt het AI-model relevante context waarmee het nauwkeurigere antwoorden kan bieden. Om aan deze vereiste te voldoen, biedt de Semantische kernel een abstractie voor tekstzoekopdrachten waarmee tekstinvoer uit verschillende bronnen kan worden gebruikt, zoals webzoekprogramma's, vectorarchieven, enzovoort, en resultaten in een aantal gestandaardiseerde indelingen kunnen leveren.

Notitie

Zoeken naar afbeeldingsinhoud of audio-inhoud wordt momenteel niet ondersteund.

Abstractie van tekstzoekopdrachten

De Semantische kernel tekst zoeken abstracties biedt drie methoden:

  1. Search
  2. GetSearchResults
  3. GetTextSearchResults

Voert een zoekopdracht uit naar inhoud met betrekking tot de opgegeven query en retourneert tekenreekswaarden die de zoekresultaten vertegenwoordigen. Search kan worden gebruikt in de meest eenvoudige gebruiksvoorbeelden, bijvoorbeeld bij het uitbreiden van een semantic-kernel opmaakpromptsjabloon met zoekresultaten. Search retourneert altijd slechts één tekenreekswaarde per zoekresultaat, dus is niet geschikt als bronvermeldingen vereist zijn.

GetSearchResults

Voert een zoekopdracht uit naar inhoud met betrekking tot de opgegeven query en retourneert zoekresultaten in de indeling die is gedefinieerd door de implementatie. GetSearchResults retourneert het volledige zoekresultaat zoals gedefinieerd door de onderliggende zoekservice. Dit biedt de meeste veelzijdigheid ten koste van het koppelen van uw code aan een specifieke implementatie van een zoekservice.

GetTextSearchResults

Voert een zoekopdracht uit naar inhoud met betrekking tot de opgegeven query en retourneert een genormaliseerd gegevensmodel dat de zoekresultaten vertegenwoordigt. Dit genormaliseerde gegevensmodel bevat een tekenreekswaarde en optioneel een naam en koppeling. GetTextSearchResults staat toe dat uw code wordt geïsoleerd van de specifieke implementatie van een zoekservice, zodat dezelfde prompt kan worden gebruikt met meerdere verschillende zoekservices.

Tip

Als u de voorbeelden wilt uitvoeren die op deze pagina worden weergegeven, gaat u naar GettingStartedWithTextSearch/Step1_Web_Search.cs.

In de onderstaande voorbeeldcode ziet u elk van de zoekmethoden voor tekst in actie.

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

Binnenkort beschikbaar

Binnenkort meer beschikbaar.

Binnenkort beschikbaar

Binnenkort meer beschikbaar.

Volgende stappen