mirror of
https://github.com/aljazceru/gpt-engineer.git
synced 2025-12-17 12:45:26 +01:00
39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
|
|
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: list[dict[str, str]], prompt=None):
|
|
if prompt:
|
|
messages = messages + [{"role": "user", "content": prompt}]
|
|
|
|
response = openai.ChatCompletion.create(
|
|
messages=messages,
|
|
stream=True,
|
|
**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)}] |