OpenAI Function Calling
Helper functions to generate JSON schema dicts for OpenAI ChatGPT function calling requests. See the official Function Calling reference for more information.
Installation
Install from PyPi with:
pip install openai-function-calling
The openai-function-calling package does come with the openai package. It must be installed separately with pip install openai
Usage
Auto-Infer the Function Definition (Beta)
Automatically infer your function name, description, and parameters given a reference to the function. A Function instance is returned which can be converted to JSON schema with .to_json_schema() and then passed to the OpenAI chat completion API:
def get_current_weather(location: str, unit: str) -> str:
"""Get the current weather and return a summary."""
return f"It is currently sunny in {location} and 75 degrees {unit}."
get_current_weather_json_schema = Function.from_function(get_current_weather).to_json_schema()
# Get the function to call from ChatGPT (you would normally have more than one).
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo-0613",
messages=[
{
"role": "user",
"content": "What will the weather be like in Boston, MA today?",
}
],
functions=[get_current_weather_json_schema],
)
Define Functions with Objects
Define your function definitions using typed classes Function and Parameter which automatically convert to JSON schema with .to_json_schema methods. See an example below:
from openai_function_calling import Function, FunctionDict, Parameter, JsonSchemaType
def get_current_weather(location: str, unit: str) -> str:
"""Do some stuff in here."""
# Define the function.
get_current_weather_function = Function(
"get_current_weather",
"Get the current weather",
[
Parameter(
name="location",
type=JsonSchemaType.STRING,
description="The city and state, e.g. San Francisco, CA",
),
Parameter(
name="unit",
type=JsonSchemaType.STRING,
description="The temperature unit to use.",
enum=["celsius", "fahrenheit"],
),
],
)
# Convert to a JSON schema dict to send to OpenAI.
get_current_weather_function_dict = get_current_weather_function.to_json_schema()
# Get the function to call from ChatGPT.
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo-0613",
messages=[
{
"role": "user",
"content": "What will the weather be like in Boston, MA tomorrow?",
}
],
functions=[get_current_weather_function_dict],
)
Examples
To run the examples, set the environment variable OPENAI_API_KEY to your OpenAI API key. For example:
export OPENAI_API_KEY=SOME_KEY_VALUE
# or when running an example
OPENAI_API_KEY=SOME_KEY_VALUE python examples/weather_functions.py
Make sure to also follow all instructions in the Installation section.
See complete examples in the ./examples folder.
Metadata
Release files for openai-function-calling 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| openai_function_calling-1.1.0.tar.gz | 6.9 kB | Without provenance | Details for openai_function_calling-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| openai_function_calling-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for openai_function_calling-1.1.0-py3-none-any.whl |
Total release size: 15.0 kB
Release files / openai_function_calling-1.1.0.tar.gz
| Download URL | openai_function_calling-1.1.0.tar.gz |
|---|---|
| Size | 6.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
228893435deb98220d783f119eae6737dc9ad6b882cec68ca3bd66d20a88e5e2
|
|
BLAKE2b-256 checksum How to use checksums |
5108074fd05943262024669529c444c8eabeb2163f8b0dafd20452c6d4b4ed1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.4.2 CPython/3.10.9 Darwin/22.6.0
|
Release files / openai_function_calling-1.1.0-py3-none-any.whl
| Download URL | openai_function_calling-1.1.0-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
246743598164e7bbde19a0652b5b544ba8f6d2e7e39f8739858572767388f11e
|
|
BLAKE2b-256 checksum How to use checksums |
6bf6cc72abf029b65948fdfe404263f27103a539732d39539236cdd7fcd4b4ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.4.2 CPython/3.10.9 Darwin/22.6.0
|
Security for openai-function-calling 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.