feat(openai): support object-type FunctionCallBehavior for forcing a …#1511
Draft
ljluestc wants to merge 1 commit into
Draft
feat(openai): support object-type FunctionCallBehavior for forcing a …#1511ljluestc wants to merge 1 commit into
ljluestc wants to merge 1 commit into
Conversation
…specific function
The OpenAI API allows function_call to be either a string ("none",
"auto") or an object ({"name": "my_function"}) to force the model
to call a particular function. Previously, FunctionCallBehavior was
typed as a string and could not represent the object form.
Changes:
- Change ChatRequest.FunctionCallBehavior from FunctionCallBehavior (string)
to any in openaiclient, enabling both string and object forms
- Change CallOptions.FunctionCallBehavior from FunctionCallBehavior to any
in the llms package for the same reason
- Add FunctionCallBehaviorFunctionObject struct with Name field
- Add WithFunctionCallBehaviorFunction(name string) CallOption that sets
function_call to {"name": "<name>"} in the OpenAI request
- Remove now-unnecessary type cast in openaillm.go
- Add unit tests for the new option and JSON serialization of all forms
Existing string-valued behavior ("none", "auto", unset) is unchanged.
The deprecated function_call field is superseded by tool_choice in the
modern OpenAI API; users should prefer WithToolChoice for new code.
Closes tmc#254
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
…specific function
The OpenAI API allows function_call to be either a string ("none", "auto") or an object ({"name": "my_function"}) to force the model to call a particular function. Previously, FunctionCallBehavior was typed as a string and could not represent the object form.
Changes:
Existing string-valued behavior ("none", "auto", unset) is unchanged. The deprecated function_call field is superseded by tool_choice in the modern OpenAI API; users should prefer WithToolChoice for new code.
Closes #254
PR Checklist
memory: add interfaces for X, Yorutil: add whizzbang helpers).Fixes #123).golangci-lintchecks.