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 | |