import openai class AI: def __init__(self, **kwargs): self.kwargs = kwargs def start(self, system, user): messages = [ {"role": "system", "content": system}, {"role": "user", "content": user}, ] return self.next(messages) def fsystem(self, msg): return {"role": "system", "content": msg} def fuser(self, msg): return {"role": "user", "content": msg} def next(self, messages, prompt=None): if prompt: messages = messages + [{"role": "user", "content": prompt}] response = openai.ChatCompletion.create( messages=messages, **self.kwargs ) chat = [] for chunk in response: delta = chunk['choices'][0]['delta'] msg = delta.get('content', '') print(msg, end="") chat.append(msg) return messages + [{"role": "assistant", "content": "".join(chat)}]