<!-- Thank you for your contribution! Please review
https://microsoft.github.io/autogen/docs/Contribute before opening a
pull request. -->
<!-- Please add a reviewer to the assignee section when you create a PR.
If you don't have the access to it, we will shortly find a reviewer and
assign them to your PR. -->
## Why are these changes needed?
FunctionTool supports passing in a partial
## Related issue number
Closes#5151
## Checks
- [x] I've included any doc changes needed for
https://microsoft.github.io/autogen/. See
https://microsoft.github.io/autogen/docs/Contribute#documentation to
build and test documentation locally.
- [x] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [x] I've made sure all auto checks have passed.
When the tool expects complex inputs that require nested models, pydantic will generate a JSON Schema that will include references to other schemas using the `$ref` keyword (cf https://json-schema.org/understanding-json-schema/structuring#dollarref).
But the `$ref` keyword is not supported by OpenAI.
This fix:
1. Resolves the references and inlines the corresponding schemas.
2. Removes the then useless root `$defs` field of the JSON schema to save tokens.
Co-authored-by: Jean-Marc Le Roux <contact@jmlx.io>
Co-authored-by: Jack Gerrits <jackgerrits@users.noreply.github.com>
* Remove isinstance check from FunctionTool (#3987)
* Move __init__ Args to class docstring
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* add tests to ruff for core
* fmt
* lint
* lint fixes
* fixup more dirs
* dont include non python
* lint fixes
* lint fixes
* fix dir name
* dont relative include