Skip to main content

A python module that provides an easy way to use OpenAI GPT-4 (or 3.5) function calling

Project description

GPT Commands Python

A python module that provides an easy way to use OpenAI GPT-4 (or 3.5) function calling, which is basically GPT plugins in API world.

Just create a class with your custom logic:

class Game:
    def get_inventory(self, character: str, max_items: int) -> List[str]:
        """
        Get inventory of a character

        Args:
            character (str): The name of the character to get the inventory of. One of: 'Harry', 'Ron', 'Hermione'
            max_items (int): The maximum number of items to return
        Returns:
            List[str]: The inventory of the character
        """
        if character == "Harry":
            return ["Wand", "Broom", "Cloak"]
        elif character == "Ron":
            return ["Wand", "Rat"]
        elif character == "Hermione":
            return ["Wand", "Cat", "Book"]

        return []

    def alohomora(self):
        """
        Unlock the door
        """
        print("[COMMAND] Alohomora!")

    def expelliarmus(self, target: str):
        """
        Disarm the target

        Args:
            target (str): The target to disarm
        """
        print(f"[COMMAND] Expelliarmus {target}!")

Make sure to annotate your code with type hints and doc strings. This is what the module uses to "explain" the functions to GPT.

Then pass an instance of your class to GPTCommandsClient like so and start prompting:

manager = Game()
model = "gpt-4-0613"  # "gpt-3.5-turbo-16k-0613"
async with GPTCommandsClient(model, system_prompt) as client:
    while True:
        prompt = input("You: ")
        async for data in client.chat_stream(prompt, manager):
            print(data, end="")
        print()

Prompts

List of currently supported types for parameters:

  • bool
  • int
  • float
  • str
  • List[T]
  • Dict[str, T]
  • Optional[T]
  • @dataclass marked classes with JsonSchemaMixin

See example for a full example.

Installation

  1. Install the package

    pip install gpt-commands-python
    
  2. Set environment variables

    Copy .env.example file and rename it to .env. Then set your OpenAI API key (and optionally your organization ID). Your .env file should look someting like this:

    OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    OPENAI_ORGANIZATION=org-XXXXXXXXXXXXXXXXXXXXXXXX
    

    You can also pass these values as arguments to GPTCommandsClient constructor or set them as environment variables.

Running the example

python -m examples.game

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

gpt-commands-python-0.1.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

gpt_commands_python-0.1.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file gpt-commands-python-0.1.0.tar.gz.

File metadata

  • Download URL: gpt-commands-python-0.1.0.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.12

File hashes

Hashes for gpt-commands-python-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fe839094c4bdf9713274157588d412a7ac774726635e91584ddc0bcc8e934fb0
MD5 4109929fbe3f0fb8fa589c3c6775a0f5
BLAKE2b-256 7d1baee28286ec8c7cde2079593d7238f947158d53d36282c6295be935ae25e4

See more details on using hashes here.

File details

Details for the file gpt_commands_python-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for gpt_commands_python-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cc2554e794f9c98524b922abfff1f226bf82b3deb80c1abe48bb23efa31c8012
MD5 e5ace9c5a209fd23b4276ebb7b67694f
BLAKE2b-256 639a243f5a256e66653962c4953b9542da2e0d6d7e9eedfc8bcc064c9888c49d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page