openai-cookbook
openai-cookbook copied to clipboard
Dynamically annotating functions for agents and function calling for chats.
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 aFunctionRegistryclass, afunction_schemadecorator, 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:
- [x] I have added a new entry in registry.yaml (and, optionally, in authors.yaml) so that my content renders on the cookbook website.
- [x] I have conducted a self-review of my content based on the contribution guidelines:
- [x] Relevance: This content is related to building with OpenAI technologies and is useful to others.
- [x] Uniqueness: I have searched for related examples in the OpenAI Cookbook, and verified that my content offers new insights or unique information compared to existing documentation.
- [x] Spelling and Grammar: I have checked for spelling or grammatical mistakes.
- [x] Clarity: I have done a final read-through and verified that my submission is well-organized and easy to understand.
- [x] Correctness: The information I include is correct and all of my code executes successfully.
- [x] Completeness: I have explained everything fully, including all necessary references and citations.
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.
This PR is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 10 days.
Keen to have this approved
This PR is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 10 days.
This PR was closed because it has been stalled for 10 days with no activity.
Please review it.