-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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: adds support for strict mode with OpenAI #9924
Open
baywet
wants to merge
51
commits into
microsoft:main
Choose a base branch
from
baywet:feat/strict-mode
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+763
−136
Open
Changes from 23 commits
Commits
Show all changes
51 commits
Select commit
Hold shift + click to select a range
d3d5edc
Replace stj-schema-mapper source code with M.E.AI schema generation
eiriktsarpalis 535bd6e
feat: adds strict mode flag to function calling
baywet ecc2cf8
feat: adds strict schema function behaviour and maps it to the metadata
baywet 5ea8112
chore: adds unit test for additional properties false in strict mode
baywet 19e7cca
chore: adds tests for tool call behaviour and strict mode
baywet 9e780e5
chore: adds unit test for new function choice behaviour options property
baywet 733fea9
chore: cleanup reference to default
baywet 6c32a37
fix: badly formatted doc comment
baywet a504d03
chore: adds test for function metadata to OAI function strict more ma…
baywet 5b6d51a
chore: adds validation for strict property mapping on OpenAIFunction
baywet d6ca753
chore: migrates to foreach
baywet 4b111cb
chore: adds unit test for required properties behaviour with strict mode
baywet ef8de5d
chore: adds test for metadata copy constructor
baywet 873ae6a
feat: adds strict parameter to OpenAPI based functions
baywet dcaaa15
fix: pass strict when cloning function
baywet 8342d73
smell: having to set strict in the function prompt
baywet 1152c7a
fix: reverts additional strict property
baywet 5a2fae9
fix: tests after strict property removal
baywet 99aa4e0
chore: code linting
baywet 4bbff9c
fix: makes schema less parameters optional in strict mode
baywet 34f887c
feat; sanitizes forbidden strict mode keywords
baywet dff7719
fix: adds missing null type in strict mode
baywet f34ff32
docs: add links to null type behaviour
baywet cd7c7bd
chore: adds obsolete method to maintain binary compatibility
baywet bfa397c
fix: no sanitation in strict mode
baywet e49cf34
chore: adds experimental tag
baywet 56baeb3
fix: adds missing import
baywet c5c92d7
chore: fixes nits
baywet fe37ea7
Merge branch 'main' into feat/strict-mode
baywet d18da04
fix: assigns parameter filter since it can't be assigned externally
baywet aec57bb
chore: enables payload namespacing for CAPs sample
baywet b082a68
docs: adds requested doc comments
baywet 0f1d114
chore: adds doc comment for static method
baywet e5c7a9d
fix: adds support for normalizing nested properties
baywet 161b199
fix: normalizes additional properties
baywet 1137aea
fix: additional properties can be different types
baywet 167f4f4
fix: handles array types for additional properties normalization
baywet 6a87dd6
fix: makes all properties required
baywet 7049cee
Merge branch 'main' into feat/strict-mode
crickman f5601b8
chore: enables strict mode for declarative agents
baywet 43f1973
chore: enables strict mode for CAPs and API plugins
baywet 1630cdf
fix: excludes forbidden default keyword
baywet b8961c3
chore: removes extraneous odata parameter filter
baywet 829812c
chore: removes extraneous filter in api manifest extension
baywet 652b3b8
fix: parameter filter not being passed
baywet 1b3004c
fix: a bug where rest api filters would only work for dynamic payload…
baywet dcdbe46
feat: makes filtering properties available to the application
baywet 55ca088
fix: adds properties trimming for CAPs demo
baywet aa7856f
Merge branch 'feat/strict-mode' of https://github.com/baywet/semantic…
baywet d59e70a
Merge branch 'main' into feat/strict-mode
baywet 3b296e9
fix: drive item test for CAPs
baywet File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure if agents will fully follow the options and use the new strict property. Also, if they do, it could change their behavior and affect existing scenarios once customers start using the new package.
CC: @crickman
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Direct invocation of agents would support all
FunctionChoiceBehaviorOptions
no different that direct usage ifIChatCompletionService
. Its theAgentChat
usage that would be limited for certainFunctionChoiceBehavior
; although the strict option should be properly regarded across all usage patterns.