Spaces:
Sleeping
Sleeping
import requests | |
class OpenAI: | |
def __init__(self, init_prompt = None): | |
self.history = [] | |
if init_prompt is not None: | |
self.history.append({'role': 'system', 'content': init_prompt}) | |
def clear_history(self): | |
self.history = [] | |
def show_history(self): | |
for message in self.history: | |
print(f"{message['role']}: {message['content']}") | |
def get_raw_history(self): | |
return self.history | |
def __call__(self, prompt, with_history = False, model = 'gpt-3.5-turbo', temperature = 0, api_key = None): | |
URL = 'https://api.openai.com/v1/chat/completions' | |
new_message = {'role': 'user', 'content': prompt} | |
if with_history: | |
self.history.append(new_message) | |
messages = self.history | |
else: | |
messages = [new_message] | |
resp = requests.post(URL, json={ | |
'model': model, | |
'messages': messages, | |
'temperature': temperature, | |
}, headers={ | |
'Authorization': f"Bearer {api_key}" | |
}) | |
self.history.append(resp.json()['choices'][0]['message']) | |
res = resp.json()['choices'][0]['message']['content'] | |
# with open("tmp_res.txt", 'w') as f: | |
# f.write(res) | |
# with open("tmp_res.txt", 'r') as f: | |
# res = f.read() | |
return res | |