Condividi tramite


Perché sono necessarie astrazioni di Ricerca testo?

Quando si gestiscono richieste di testo o contenuto di testo nella cronologia delle chat, un requisito comune consiste nel fornire informazioni pertinenti aggiuntive correlate a questo testo. Questo fornisce al modello di intelligenza artificiale il contesto pertinente che consente di fornire risposte più accurate. Per soddisfare questo requisito, il kernel semantico fornisce un'astrazione di Ricerca testo che consente l'uso di input di testo da varie origini, ad esempio motori di ricerca Web, archivi vettoriali e così via, e fornire risultati in alcuni formati standardizzati.

Nota

La ricerca di contenuto immagine o contenuto audio non è attualmente supportata.

Astrazione della ricerca di testo

Le astrazioni di ricerca di testo del kernel semantico forniscono tre metodi:

  1. Search
  2. GetSearchResults
  3. GetTextSearchResults

Esegue una ricerca di contenuto correlato alla query specificata e restituisce valori stringa che rappresentano i risultati della ricerca. Search può essere usato nei casi d'uso più semplici, ad esempio quando si aumenta un semantic-kernel modello di richiesta di formato con i risultati della ricerca. Search restituisce sempre solo un singolo valore stringa per ogni risultato della ricerca, quindi non è adatto se sono necessarie citazioni.

GetSearchResults

Esegue una ricerca di contenuto correlato alla query specificata e restituisce i risultati della ricerca nel formato definito dall'implementazione. GetSearchResults restituisce il risultato completo della ricerca come definito dal servizio di ricerca sottostante. Ciò offre la massima versatilità al costo di collegare il codice a un'implementazione specifica del servizio di ricerca.

GetTextSearchResults

Esegue una ricerca di contenuto correlato alla query specificata e restituisce un modello di dati normalizzato che rappresenta i risultati della ricerca. Questo modello di dati normalizzato include un valore stringa e, facoltativamente, un nome e un collegamento. GetTextSearchResults consente di isolare il codice dall'implementazione di un servizio di ricerca specifico, in modo che la stessa richiesta possa essere usata con più servizi di ricerca diversi.

Suggerimento

Per eseguire gli esempi visualizzati in questa pagina, passare a GettingStartedWithTextSearch/Step1_Web_Search.cs.

Il codice di esempio seguente mostra ognuno dei metodi di ricerca del testo in azione.

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

Presto disponibile

Altre informazioni saranno presto disponibili.

Presto disponibile

Altre informazioni saranno presto disponibili.

Passaggi successivi