Skip to content

Automatically pass your funcions defined in Python to ChatGPT have it call them back seemlessly.

Notifications You must be signed in to change notification settings

soheil/GPT-Funcs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GPT-Funcs

Automatically pass your functions defined in Python to ChatGPT have it call them back seamlessly.

You can do all that in a single line:

gptfuncs.add_function_hooks("funcs.py", lambda funcs: openai_api("Say hi", funcs))

Under the hood

gptfuncs.add_function_hooks():

  • Loads a python file specified as the parameter and encodes the function signatures to JSON
  • Calls back the functions dynamically after ChatGPT responds

Use PEP-8 style to document your function signatures (see funcs.py for an example.)

Install

pip install gptfuncs

Example

def chat_completion_request(messages, functions=None, model=None):
    # post request to OpenAI api
    # ...

# Our functions are defined in funcs.py so we just pass that in to gptfuncs.add_function_hooks
# and in handles everything
res = gptfuncs.add_function_hooks("funcs.py", lambda funcs: chat_completion_request(
  model="gpt-3.5-turbo-0613",
  messages=[{"role": "user", "content": "Sing me a poem about Hackernews."}],
  functions=funcs
))

# normal api result after all the functions have been called
print(res)

funcs.py:

import os
import subprocess


def play_music(audio_data_hex):
    """
    Play music to user.

    Args:
        audio_data_hex (string): Hex representation of the raw audio binary data with 44100 sample rate.
    """
    bin_data = base64.b64decode(audio_data_hex)
    file_path = "/tmp/a.mp3"
    with open(file_path, "wb") as file:
        file.write(bin_data)

    print(f"Binary file saved as: {file_path}")
    os.system("/usr/bin/afplay " + file_path)


def speak(sentence, spoken_speed=210):
    """
    Convert the sentence to spoken words and speak it to user.

    Args:
        sentence (string): English sentence that should be spoken.
        spoken_speed (number): A value from 100 to 300 determining how fast the sentence is spoken.
    """
    subprocess.Popen(['say', '-v', 'Karen', '-r', str(spoken_speed), sentence])

About

Automatically pass your funcions defined in Python to ChatGPT have it call them back seemlessly.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages