Pourquoi les abstractions de recherche de texte sont-elles nécessaires ?
Lorsque vous traitez d’invites de texte ou de contenu texte dans l’historique des conversations, une exigence courante consiste à fournir des informations pertinentes supplémentaires relatives à ce texte. Cela fournit au modèle IA un contexte pertinent qui lui permet de fournir des réponses plus précises. Pour répondre à cette exigence, le noyau sémantique fournit une abstraction de recherche de texte qui permet d’utiliser des entrées de texte provenant de différentes sources, par exemple des moteurs de recherche web, des magasins vectoriels, etc., et fournit des résultats dans quelques formats standardisés.
Remarque
La recherche de contenu d’image ou de contenu audio n’est actuellement pas prise en charge.
Abstraction de recherche de texte
Les abstractions de recherche de texte du noyau sémantique fournissent trois méthodes :
Search
GetSearchResults
GetTextSearchResults
Search
Effectue une recherche de contenu lié à la requête spécifiée et retourne des valeurs de chaîne représentant les résultats de la recherche. Search
peut être utilisé dans les cas d’usage les plus élémentaires, par exemple, lors de l’augmentation d’un semantic-kernel
modèle d’invite de format avec des résultats de recherche. Search
retourne toujours une seule valeur de chaîne par résultat de recherche. Par conséquent, elle ne convient pas si des citations sont requises.
GetSearchResults
Effectue une recherche de contenu lié à la requête spécifiée et retourne les résultats de recherche au format défini par l’implémentation. GetSearchResults
retourne le résultat de recherche complet tel que défini par le service de recherche sous-jacent. Cela offre la plus grande polyvalence au coût de lier votre code à une implémentation de service de recherche spécifique.
GetTextSearchResults
Effectue une recherche de contenu lié à la requête spécifiée et retourne un modèle de données normalisé représentant les résultats de la recherche. Ce modèle de données normalisé inclut une valeur de chaîne et éventuellement un nom et un lien. GetTextSearchResults
permet à votre code d’être isolé de l’implémentation d’un service de recherche spécifique, de sorte que la même invite peut être utilisée avec plusieurs services de recherche différents.
Conseil
Pour exécuter les exemples affichés sur cette page, accédez à GettingStartedWithTextSearch/Step1_Web_Search.cs.
L’exemple de code ci-dessous montre chacune des méthodes de recherche de texte en action.
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}");
}
Bientôt disponible
Plus bientôt.
Bientôt disponible
Plus bientôt.