manage openai functions and execution
Project description
Python AI Functions
Simple library that can convert from python functions to a JSON schema description of those functions, suitable for use with AI libraries.
For example:
from ai_functions import get_openai_functions, execute_function
def search_web(query: Annotated[str, "google formatted keywords to search for"]):
"""Search the web"""
print(openai_function_dict([search_web]))
Also, if you get a response.function_call
from openai, you can use execute_function
openai_function_execute([search_web], function_call)
Or, if you have the name and arguments split out already:
function_execute([search_web], name, arguments)
Finally, if you want a container to handle this:
from ai_functions import AIFunctions
container = AIFunctions([search_web, add_calendar_entry])
functions = container.openai_dict()
subset_functions = container.openai_dict(["search_web"])
container.execute("search_web", {"query":"top web hosting sites"})
container.opeanai_execute({"name": "search_web", "arguments": "{\"query\":\"top web hosting sites\"}")
It handles converting arguments to JSON if they are specified as a string.
It auto-casts arguments to the right types, if they aren't right.
It returns errors that AI engines understands, instead of errors with poor descriptions.
If a loop is provided to the AIFunctions constructor, or to any execute calls, it will be used to schedule a coroutine.
Async versions of execute are available, prefix all calls with async_
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ai_functions-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09c1e104f114f81f1e31a1e29b816538ab0f1e1d03368243ae28ae042131826e |
|
MD5 | 11d9c2ba6e96b323273d020b9a309ef9 |
|
BLAKE2b-256 | 3989b6f68a08c30d220dbed06588822e083469abf3171107e14853aef22f7c2d |