Dynamically annotating functions for agents and function calling for chats. #1217
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.
Summary
This pull request introduces a new article and a Jupyter notebook that explain how to dynamically annotate Python classes for function calling and agent utilization. The changes include a detailed walkthrough on how to create a decorator for function schema annotation, a function registry to map function names to the functions themselves, and how to use this registry to resolve function calls. The article and notebook are added to the registry for easy access.
New content:
articles/dynamic_annotation_function_calling_and_agents.md
: This new article explains how to dynamically annotate Python classes for function calling and agent utilization. It includes code examples and explanations for creating aFunctionRegistry
class, afunction_schema
decorator, and how to use these tools.examples/Dynamically_annotating_functions_python.ipynb
: This new Jupyter notebook contains the same content as the article but in an interactive format.Updates to the registry:
registry.yaml
: Added the new article and Jupyter notebook to the registry. [1] [2]Motivation
Why are these changes necessary? How do they improve the cookbook?
The examples only explore the capability, but nothing describe the capacity that can be achieved by scaling the function calling to the next level, this article and notebook explore these options where developers can just annotate and describe what they want.
This was part of my medium article.
For new content
When contributing new content, read through our contribution guidelines, and mark the following action items as completed:
We will rate each of these areas on a scale from 1 to 4, and will only accept contributions that score 3 or higher on all areas. Refer to our contribution guidelines for more details.