-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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: Added support for multiple chat and text results from Kernel #6704
Merged
dmytrostruk
merged 14 commits into
microsoft:main
from
dmytrostruk:multiple-text-chat-results
Jun 18, 2024
Merged
.Net: Added support for multiple chat and text results from Kernel #6704
dmytrostruk
merged 14 commits into
microsoft:main
from
dmytrostruk:multiple-text-chat-results
Jun 18, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
RogerBarreto
approved these changes
Jun 14, 2024
dotnet/src/SemanticKernel.Abstractions/AI/TextGeneration/TextGenerationExtensions.cs
Outdated
Show resolved
Hide resolved
westey-m
approved these changes
Jun 14, 2024
RogerBarreto
approved these changes
Jun 17, 2024
RogerBarreto
approved these changes
Jun 18, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
kernel.core
kernel
Issues or pull requests impacting the core kernel
.NET
Issue or Pull requests regarding .NET code
PR: breaking change
Pull requests that introduce breaking changes
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation and Context
Note: This PR changes the behavior when AI connector returns multiple results, when using
kernel.InvokeAsync
. It won't throw an exception anymore, but instead it will return multiple results. The behavior for single result is not changed.Fixes: #6434
When executing prompt function using kernel and asking for multiple results per prompt, we will get an error:
Current
KernelFunctionFromPrompt
implementation expects only single result from AI connector, while its API can return multiple results per prompt/request.This PR updates
KernelFunctionFromPrompt
in a following way:FunctionResult
will contain instance of that item, so it's possible to get its properties, useToString()
etc.One of the examples shows how to select one result, in case if we invoke prompt function inside another prompt function using prompt template engine. In this case, filter can be registered, which will get multiple results produced by function, select one of them and return it back to the prompt rendering operation.
Contribution Checklist