roboadvisor / finnlp /large_language_models /openai /openai_chat_agent.py
kristada673's picture
Upload 6 files
636e658
import openai
class Openai_Chat_Agent:
def __init__(self,args):
assert "token" in args.keys()
openai.api_key = args["token"]
self.temperature = args["temperature"] if "temperature" in args.keys() else 1
self.top_p = args["top_p"] if "top_p" in args.keys() else 1
self.n = args["n"] if "n" in args.keys() else 1
self.max_tokens = args["max_tokens"] if "max_tokens" in args.keys() else None
self.presence_penalty = args["presence_penalty"] if "presence_penalty" in args.keys() else 0
self.frequency_penalty = args["frequency_penalty"] if "frequency_penalty" in args.keys() else 0
self.conversation_list = []
if "init_prompt" in args.keys():
self.conversation_list.append(
{"role":"system","content":args["init_prompt"]}
)
def get_single_response(self,prompt):
self.conversation_list.append({"role":"user","content":prompt})
response = openai.ChatCompletion.create(
model = "gpt-3.5-turbo",
messages = self.conversation_list,
temperature = self.temperature,
top_p = self.top_p,
n = self.n,
max_tokens = self.max_tokens,
presence_penalty = self.presence_penalty,
frequency_penalty = self.frequency_penalty,
)
answer = response.choices[0].message['content']
self.conversation_list.append({"role":"assistant","content":answer})
return answer
def show_conversation(self):
conversation_list = self.conversation_list
res = ''
for msg in conversation_list:
content = msg['content']
content = content.replace(".",".\n")
if msg['role'] == 'user':
res = res + f"\U0001F47B: {content}\n"
elif msg['role'] == 'system':
res = res + f"\U0001F4BB: {content}\n"
else:
res = res + f"\U0001F916: {content}\n"
return res
def get_multiple_response(self,prompts):
pass