Skip to content

RustleofCicada/gptparse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

gptparse

Proof of concept library that demostrates usage of OpenAI GPT API Function Calls with Python argparse module.

example.py

Example usage of gptparse.py library with predefined function and argument parser.

import openai
import argparse
import gptparse

openai.api_key = YOUR_API_KEY
API_VERSION = 'gpt-3.5-turbo-0613'

available_people = ["Robert", "Mike", "Jane", "Kate", "Marry", "Elon"]

def greet(greeting: str = 'Hi', people: list[str] = available_people) -> None:
    for person in people:
        print(f'{greeting} {person}!')

greet_parser = argparse.ArgumentParser(
    prog = "greet",
    description="Greets a list of people individually")
greet_parser.add_argument("greeting", type=str, help="Greeting string")
greet_parser.add_argument("people", nargs="+", help="List of people", choices=available_people)

try:
    while True:
        user_input = input("Provide instruction for GPT: ")
        completition = openai.ChatCompletion.create(
            model = API_VERSION,
            messages = [{"role": "user", "content": user_input}],
            functions = gptparse.from_parsers([greet_parser]),
            function_call = "auto"
        )
        
        prog, kwargs = gptparse.get_arguments(completition)
        if prog == "greet": greet(**kwargs)
    
except KeyboardInterrupt:
    pass

Usage of example.py

Provide instruction for GPT: greet all men like they are kings of England
Hello, O' noble King Robert!
Hello, O' noble King Mike!
Provide instruction for GPT: greet person that is most likeley to be a space nerd
Hello, Elon!

Read more

OpenAI Function calling and other API updates
Sentdex YouTube OpenAI GPT-4 Function Calling: Unlimited Potential

About

Library that generates GPT API Function Calling structure from argparse parsers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages