import re from persistStorage import saveLog class ChatgptManager: def __init__(self, openAIClient, model="gpt-3.5-turbo-1106", tokenLimit=8000, throwError=False): self.client = openAIClient self.tokenLimit = tokenLimit self.model = model self.throwError = throwError self.messages = [] def setSystemPrompt(self, systemPrompt): systemMessage = {"role":"system", "content":systemPrompt} if len(self.messages)==0: self.messages = [systemMessage] else: del self.messages[0] self.messages.insert(0, systemMessage) def getResponseForUserInput(self, userInput): userMessage = {"role":"user", "content":userInput} self.messages.append(userMessage) print(self.messages, "messages being sent to gpt for completion.") try: completion = self.client.chat.completions.create( model=self.model, messages=self.messages, temperature=0, ) gptResponse = completion.choices[0].message.content except Exception as e: if not self.throwError: errorText = "Error while connecting with gpt " + str(e)[:100] + "..." return errorText self.messages.append({"role": "assistant", "content": gptResponse}) return gptResponse