File size: 1,252 Bytes
37bd4dd
e7c1910
37bd4dd
 
e7c1910
37bd4dd
 
 
e7c1910
0ff15a5
1dda07c
0ff15a5
 
 
 
37bd4dd
0ff15a5
 
37bd4dd
0ff15a5
37bd4dd
0ff15a5
da9f335
e7c1910
 
 
 
 
 
 
 
 
0ff15a5
 
37bd4dd
 
0ff15a5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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