Spaces:
Running
Running
| import openai | |
| from openai import OpenAI | |
| import os | |
| openai.api_key = os.environ['OPENAI_KEY'] | |
| API_KEY = os.environ['OPENAI_KEY'] | |
| class Chat: | |
| def __init__(self, system_message, lim=0.005): | |
| self.messages = [ | |
| {"role": "system", "content" : system_message} | |
| ] | |
| self.left = lim | |
| self.client = OpenAI(api_key=API_KEY) | |
| def chat(self, query): | |
| if (self.left <= 0): | |
| return "You have reached the chat limit." | |
| if (len(query) > 20000): | |
| return "Chat input is too long" | |
| self.messages.append({"role" : "user", "content" : query}) | |
| # print(self.messages) | |
| response = self.client.chat.completions.create( | |
| model="gpt-4o-mini", | |
| messages=self.messages, | |
| temperature=0.3 | |
| ) | |
| # del self.messages[-1] | |
| result = response.choices[0].message.content | |
| self.messages.append(response.choices[0].message) | |
| # print(response) | |
| # print([result]) | |
| result = result.replace('\\(', '$') | |
| result = result.replace('\\)', '$') | |
| # print([result]) | |
| self.left -= 0.6 * response.usage.completion_tokens / (10**6) + 0.15 * response.usage.prompt_tokens /(10**6) | |
| print(self.left) | |
| return (result) | |