Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.Net: Change the return type of ITextSearch to align with search abstractions in M.E.VD #11519

Draft
wants to merge 2 commits into
base: feature-itextsearch-alignment
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ private static KernelFunction CreateSearchBySite(BingTextSearch textSearch, Text
new KernelParameterMetadata("skip") { Description = "Number of results to skip", IsRequired = false, DefaultValue = 0 },
new KernelParameterMetadata("site") { Description = "Only return results from this domain", IsRequired = false },
],
ReturnParameter = new() { ParameterType = typeof(KernelSearchResults<string>) },
ReturnParameter = new() { ParameterType = typeof(List<string>) },
};

return textSearch.CreateSearch(options);
Expand Down
22 changes: 11 additions & 11 deletions dotnet/samples/Concepts/Search/Bing_TextSearch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,18 @@ public async Task UsingBingTextSearchAsync()
var query = "What is the Semantic Kernel?";

// Search and return results as a string items
KernelSearchResults<string> stringResults = await textSearch.SearchAsync(query, new() { Top = 4, Skip = 0 });
IAsyncEnumerable<string> stringResults = textSearch.SearchAsync(query, 4, new() { Skip = 0 });
Console.WriteLine("--- String Results ---\n");
await foreach (string result in stringResults.Results)
await foreach (string result in stringResults)
{
Console.WriteLine(result);
WriteHorizontalRule();
}

// Search and return results as TextSearchResult items
KernelSearchResults<TextSearchResult> textResults = await textSearch.GetTextSearchResultsAsync(query, new() { Top = 4, Skip = 4 });
IAsyncEnumerable<TextSearchResult> textResults = textSearch.GetTextSearchResultsAsync(query, 4, new() { Skip = 4 });
Console.WriteLine("\n--- Text Search Results ---\n");
await foreach (TextSearchResult result in textResults.Results)
await foreach (TextSearchResult result in textResults)
{
Console.WriteLine($"Name: {result.Name}");
Console.WriteLine($"Value: {result.Value}");
Expand All @@ -47,9 +47,9 @@ public async Task UsingBingTextSearchAsync()
}

// Search and return s results as BingWebPage items
KernelSearchResults<object> fullResults = await textSearch.GetSearchResultsAsync(query, new() { Top = 4, Skip = 8 });
IAsyncEnumerable<object> fullResults = textSearch.GetSearchResultsAsync(query, 4, new() { Skip = 8 });
Console.WriteLine("\n--- Bing Web Page Results ---\n");
await foreach (BingWebPage result in fullResults.Results)
await foreach (BingWebPage result in fullResults)
{
Console.WriteLine($"Name: {result.Name}");
Console.WriteLine($"Snippet: {result.Snippet}");
Expand Down Expand Up @@ -80,9 +80,9 @@ public async Task UsingBingTextSearchWithACustomMapperAsync()
var query = "What is the Semantic Kernel?";

// Search with TextSearchResult textResult type
KernelSearchResults<string> stringResults = await textSearch.SearchAsync(query, new() { Top = 2, Skip = 0 });
IAsyncEnumerable<string> stringResults = textSearch.SearchAsync(query, 2, new() { Skip = 0 });
Console.WriteLine("--- Serialized JSON Results ---");
await foreach (string result in stringResults.Results)
await foreach (string result in stringResults)
{
Console.WriteLine(result);
WriteHorizontalRule();
Expand All @@ -109,10 +109,10 @@ public async Task UsingBingTextSearchWithASiteFilterAsync()
var query = "What is the Semantic Kernel?";

// Search with TextSearchResult textResult type
TextSearchOptions searchOptions = new() { Top = 4, Skip = 0, Filter = new TextSearchFilter().Equality("site", "devblogs.microsoft.com") };
KernelSearchResults<TextSearchResult> textResults = await textSearch.GetTextSearchResultsAsync(query, searchOptions);
TextSearchOptions searchOptions = new() { Skip = 0, Filter = new TextSearchFilter().Equality("site", "devblogs.microsoft.com") };
IAsyncEnumerable<TextSearchResult> textResults = textSearch.GetTextSearchResultsAsync(query, 4, searchOptions);
Console.WriteLine("--- Microsoft Developer Blogs Results ---");
await foreach (TextSearchResult result in textResults.Results)
await foreach (TextSearchResult result in textResults)
{
Console.WriteLine(result.Link);
WriteHorizontalRule();
Expand Down
22 changes: 11 additions & 11 deletions dotnet/samples/Concepts/Search/Google_TextSearch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,18 @@ public async Task UsingGoogleTextSearchAsync()
var query = "What is the Semantic Kernel?";

// Search and return results as string items
KernelSearchResults<string> stringResults = await textSearch.SearchAsync(query, new() { Top = 4, Skip = 0 });
IAsyncEnumerable<string> stringResults = textSearch.SearchAsync(query, 4, new() { Skip = 0 });
Console.WriteLine("——— String Results ———\n");
await foreach (string result in stringResults.Results)
await foreach (string result in stringResults)
{
Console.WriteLine(result);
Console.WriteLine(new string('—', HorizontalRuleLength));
}

// Search and return results as TextSearchResult items
KernelSearchResults<TextSearchResult> textResults = await textSearch.GetTextSearchResultsAsync(query, new() { Top = 4, Skip = 4 });
IAsyncEnumerable<TextSearchResult> textResults = textSearch.GetTextSearchResultsAsync(query, 4, new() { Skip = 4 });
Console.WriteLine("\n——— Text Search Results ———\n");
await foreach (TextSearchResult result in textResults.Results)
await foreach (TextSearchResult result in textResults)
{
Console.WriteLine($"Name: {result.Name}");
Console.WriteLine($"Value: {result.Value}");
Expand All @@ -46,9 +46,9 @@ public async Task UsingGoogleTextSearchAsync()
}

// Search and return results as Google.Apis.CustomSearchAPI.v1.Data.Result items
KernelSearchResults<object> fullResults = await textSearch.GetSearchResultsAsync(query, new() { Top = 4, Skip = 8 });
IAsyncEnumerable<object> fullResults = textSearch.GetSearchResultsAsync(query, 4, new() { Skip = 8 });
Console.WriteLine("\n——— Google Web Page Results ———\n");
await foreach (Google.Apis.CustomSearchAPI.v1.Data.Result result in fullResults.Results)
await foreach (Google.Apis.CustomSearchAPI.v1.Data.Result result in fullResults)
{
Console.WriteLine($"Title: {result.Title}");
Console.WriteLine($"Snippet: {result.Snippet}");
Expand All @@ -74,9 +74,9 @@ public async Task UsingGoogleTextSearchWithACustomMapperAsync()
var query = "What is the Semantic Kernel?";

// Search with TextSearchResult textResult type
KernelSearchResults<string> stringResults = await textSearch.SearchAsync(query, new() { Top = 2, Skip = 0 });
IAsyncEnumerable<string> stringResults = textSearch.SearchAsync(query, 2, new() { Skip = 0 });
Console.WriteLine("--- Serialized JSON Results ---");
await foreach (string result in stringResults.Results)
await foreach (string result in stringResults)
{
Console.WriteLine(result);
Console.WriteLine(new string('-', HorizontalRuleLength));
Expand All @@ -97,10 +97,10 @@ public async Task UsingGoogleTextSearchWithASiteSearchFilterAsync()
var query = "What is the Semantic Kernel?";

// Search with TextSearchResult textResult type
TextSearchOptions searchOptions = new() { Top = 4, Skip = 0, Filter = new TextSearchFilter().Equality("siteSearch", "devblogs.microsoft.com") };
KernelSearchResults<TextSearchResult> textResults = await textSearch.GetTextSearchResultsAsync(query, searchOptions);
TextSearchOptions searchOptions = new() { Skip = 0, Filter = new TextSearchFilter().Equality("siteSearch", "devblogs.microsoft.com") };
IAsyncEnumerable<TextSearchResult> textResults = textSearch.GetTextSearchResultsAsync(query, 4, searchOptions);
Console.WriteLine("--- Microsoft Developer Blogs Results ---");
await foreach (TextSearchResult result in textResults.Results)
await foreach (TextSearchResult result in textResults)
{
Console.WriteLine(result.Link);
Console.WriteLine(new string('-', HorizontalRuleLength));
Expand Down
30 changes: 15 additions & 15 deletions dotnet/samples/Concepts/Search/Tavily_TextSearch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,18 @@ public async Task UsingTavilyTextSearch()
var query = "What is the Semantic Kernel?";

// Search and return results as a string items
KernelSearchResults<string> stringResults = await textSearch.SearchAsync(query, new() { Top = 4 });
IAsyncEnumerable<string> stringResults = textSearch.SearchAsync(query, 4);
Console.WriteLine("--- String Results ---\n");
await foreach (string result in stringResults.Results)
await foreach (string result in stringResults)
{
Console.WriteLine(result);
WriteHorizontalRule();
}

// Search and return results as TextSearchResult items
KernelSearchResults<TextSearchResult> textResults = await textSearch.GetTextSearchResultsAsync(query, new() { Top = 4 });
IAsyncEnumerable<TextSearchResult> textResults = textSearch.GetTextSearchResultsAsync(query, 4);
Console.WriteLine("\n--- Text Search Results ---\n");
await foreach (TextSearchResult result in textResults.Results)
await foreach (TextSearchResult result in textResults)
{
Console.WriteLine($"Name: {result.Name}");
Console.WriteLine($"Value: {result.Value}");
Expand All @@ -47,9 +47,9 @@ public async Task UsingTavilyTextSearch()
}

// Search and return s results as TavilySearchResult items
KernelSearchResults<object> fullResults = await textSearch.GetSearchResultsAsync(query, new() { Top = 4 });
IAsyncEnumerable<object> fullResults = textSearch.GetSearchResultsAsync(query, 4);
Console.WriteLine("\n--- Tavily Web Page Results ---\n");
await foreach (TavilySearchResult result in fullResults.Results)
await foreach (TavilySearchResult result in fullResults)
{
Console.WriteLine($"Name: {result.Title}");
Console.WriteLine($"Content: {result.Content}");
Expand All @@ -76,9 +76,9 @@ public async Task UsingTavilyTextSearchToGetAnAnswer()
var query = "What is the Semantic Kernel?";

// Search and return results as a string items
KernelSearchResults<string> stringResults = await textSearch.SearchAsync(query, new() { Top = 1 });
IAsyncEnumerable<string> stringResults = textSearch.SearchAsync(query, 1);
Console.WriteLine("--- String Results ---\n");
await foreach (string result in stringResults.Results)
await foreach (string result in stringResults)
{
Console.WriteLine(result);
WriteHorizontalRule();
Expand Down Expand Up @@ -110,9 +110,9 @@ public async Task UsingTavilyTextSearchAndIncludeEverything()
var query = "What is the Semantic Kernel?";

// Search and return s results as TavilySearchResult items
KernelSearchResults<object> fullResults = await textSearch.GetSearchResultsAsync(query, new() { Top = 4, Skip = 0 });
IAsyncEnumerable<object> fullResults = textSearch.GetSearchResultsAsync(query, 4, new() { Skip = 0 });
Console.WriteLine("\n--- Tavily Web Page Results ---\n");
await foreach (TavilySearchResult result in fullResults.Results)
await foreach (TavilySearchResult result in fullResults)
{
Console.WriteLine($"Name: {result.Title}");
Console.WriteLine($"Content: {result.Content}");
Expand Down Expand Up @@ -143,9 +143,9 @@ public async Task UsingTavilyTextSearchWithACustomMapperAsync()
var query = "What is the Semantic Kernel?";

// Search with TextSearchResult textResult type
KernelSearchResults<string> stringResults = await textSearch.SearchAsync(query, new() { Top = 2 });
IAsyncEnumerable<string> stringResults = textSearch.SearchAsync(query, 2);
Console.WriteLine("--- Serialized JSON Results ---");
await foreach (string result in stringResults.Results)
await foreach (string result in stringResults)
{
Console.WriteLine(result);
WriteHorizontalRule();
Expand All @@ -172,10 +172,10 @@ public async Task UsingTavilyTextSearchWithAnIncludeDomainFilterAsync()
var query = "What is the Semantic Kernel?";

// Search with TextSearchResult textResult type
TextSearchOptions searchOptions = new() { Top = 4, Filter = new TextSearchFilter().Equality("include_domain", "devblogs.microsoft.com") };
KernelSearchResults<TextSearchResult> textResults = await textSearch.GetTextSearchResultsAsync(query, searchOptions);
TextSearchOptions searchOptions = new() { Filter = new TextSearchFilter().Equality("include_domain", "devblogs.microsoft.com") };
IAsyncEnumerable<TextSearchResult> textResults = textSearch.GetTextSearchResultsAsync(query, 4, searchOptions);
Console.WriteLine("--- Microsoft Developer Blogs Results ---");
await foreach (TextSearchResult result in textResults.Results)
await foreach (TextSearchResult result in textResults)
{
Console.WriteLine(result.Link);
WriteHorizontalRule();
Expand Down
12 changes: 6 additions & 6 deletions dotnet/samples/Concepts/Search/VectorStore_TextSearch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,18 +65,18 @@ private async Task ExecuteSearchesAsync(VectorStoreTextSearch<DataModel> textSea
var query = "What is the Semantic Kernel?";

// Search and return results as a string items
KernelSearchResults<string> stringResults = await textSearch.SearchAsync(query, new() { Top = 2, Skip = 0 });
IAsyncEnumerable<string> stringResults = textSearch.SearchAsync(query, 2, new() { Skip = 0 });
Console.WriteLine("--- String Results ---\n");
await foreach (string result in stringResults.Results)
await foreach (string result in stringResults)
{
Console.WriteLine(result);
WriteHorizontalRule();
}

// Search and return results as TextSearchResult items
KernelSearchResults<TextSearchResult> textResults = await textSearch.GetTextSearchResultsAsync(query, new() { Top = 2, Skip = 0 });
IAsyncEnumerable<TextSearchResult> textResults = textSearch.GetTextSearchResultsAsync(query, 2, new() { Skip = 0 });
Console.WriteLine("\n--- Text Search Results ---\n");
await foreach (TextSearchResult result in textResults.Results)
await foreach (TextSearchResult result in textResults)
{
Console.WriteLine($"Name: {result.Name}");
Console.WriteLine($"Value: {result.Value}");
Expand All @@ -85,9 +85,9 @@ private async Task ExecuteSearchesAsync(VectorStoreTextSearch<DataModel> textSea
}

// Search and returns results as DataModel items
KernelSearchResults<object> fullResults = await textSearch.GetSearchResultsAsync(query, new() { Top = 2, Skip = 0 });
IAsyncEnumerable<object> fullResults = textSearch.GetSearchResultsAsync(query, 2, new() { Skip = 0 });
Console.WriteLine("\n--- DataModel Results ---\n");
await foreach (DataModel result in fullResults.Results)
await foreach (DataModel result in fullResults)
{
Console.WriteLine($"Key: {result.Key}");
Console.WriteLine($"Text: {result.Text}");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ public async Task BingSearchAsync()
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)
IAsyncEnumerable<string> searchResults = textSearch.SearchAsync(query, 4);
await foreach (string result in searchResults)
{
Console.WriteLine(result);
}
Expand All @@ -44,8 +44,8 @@ public async Task GoogleSearchAsync()
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)
IAsyncEnumerable<string> searchResults = textSearch.SearchAsync(query, 4);
await foreach (string result in searchResults)
{
Console.WriteLine(result);
}
Expand All @@ -69,11 +69,11 @@ public async Task SearchForWebPagesAsync()
var query = "What is the Semantic Kernel?";

// Search and return results using the implementation specific data model
KernelSearchResults<object> objectResults = await textSearch.GetSearchResultsAsync(query, new() { Top = 4 });
IAsyncEnumerable<object> objectResults = textSearch.GetSearchResultsAsync(query, 4);
if (this.UseBingSearch)
{
Console.WriteLine("\n--- Bing Web Page Results ---\n");
await foreach (BingWebPage webPage in objectResults.Results)
await foreach (BingWebPage webPage in objectResults)
{
Console.WriteLine($"Name: {webPage.Name}");
Console.WriteLine($"Snippet: {webPage.Snippet}");
Expand All @@ -85,7 +85,7 @@ public async Task SearchForWebPagesAsync()
else
{
Console.WriteLine("\n——— Google Web Page Results ———\n");
await foreach (Google.Apis.CustomSearchAPI.v1.Data.Result result in objectResults.Results)
await foreach (Google.Apis.CustomSearchAPI.v1.Data.Result result in objectResults)
{
Console.WriteLine($"Title: {result.Title}");
Console.WriteLine($"Snippet: {result.Snippet}");
Expand Down Expand Up @@ -118,9 +118,9 @@ public async Task SearchForTextSearchResultsAsync()
var query = "What is the Semantic Kernel?";

// Search and return results as TextSearchResult items
KernelSearchResults<TextSearchResult> textResults = await textSearch.GetTextSearchResultsAsync(query, new() { Top = 4 });
IAsyncEnumerable<TextSearchResult> textResults = textSearch.GetTextSearchResultsAsync(query, 4);
Console.WriteLine("\n--- Text Search Results ---\n");
await foreach (TextSearchResult result in textResults.Results)
await foreach (TextSearchResult result in textResults)
{
Console.WriteLine($"Name: {result.Name}");
Console.WriteLine($"Value: {result.Value}");
Expand Down
Loading
Loading