PollGeneratorApp / utils.py
ArdaSaygan
added utils
9f21ec5
import openai
openai.api_key = "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"
class GPTCompletion:
def __init__(
self,
system="You are a helpful AI assistant",
model="gpt-3.5-turbo",
temperature=1.0,
top_p=1.0,
n=1,
stream=False,
stop=None,
max_tokens=256,
presence_penalty=0.0,
frequency_penalty=0.0,
logit_bias={}
):
self.system = system
self.model = model
self.messages = [{"role": "system", "content": f"{self.system}"}]
self.temperature = temperature
self.top_p = top_p
self.n = n
self.stream = stream
self.stop = stop
self.max_tokens = max_tokens
self.presence_penalty = presence_penalty
self.frequency_penalty = frequency_penalty
self.logit_bias = logit_bias
def chatComplete(self, chatHistory, newMessage,firstMessage=""):
self.messages.append({"role": "user", "content": f"{firstMessage}"})
for i in range(len(chatHistory)):
self.messages.append({"role": "user", "content": f"{chatHistory[i][0]}"})
self.messages.append({"role": "assistant", "content": f"{chatHistory[i][1]}"})
self.messages.append({"role": "user", "content": f"{newMessage}"})
response = openai.ChatCompletion.create(
model=self.model,
messages=self.messages,
temperature=self.temperature,
top_p=self.top_p,
n=self.n,
stream=self.stream,
stop=self.stop,
max_tokens=self.max_tokens,
presence_penalty=self.presence_penalty,
frequency_penalty=self.frequency_penalty,
logit_bias=self.logit_bias
)
return response["choices"][0].message["content"].strip()