| from os import getenv | |
| import openai | |
| from dotenv import load_dotenv | |
| from openai import ChatCompletion | |
| from osbot_utils.decorators.methods.cache_on_self import cache_on_self | |
| OPEN_API_KEY = 'OPEN_API_KEY' | |
| class Open_API: | |
| def __init__(self): | |
| pass | |
| def api_key(self): | |
| load_dotenv() | |
| return getenv(OPEN_API_KEY) | |
| def create(self): | |
| history_openai_format = self.messages() | |
| response = ChatCompletion.create( | |
| model='gpt-3.5-turbo', | |
| messages=history_openai_format, | |
| temperature=1.0, | |
| stream=True | |
| ) | |
| return self.parse_response(response) | |
| def messages(self): | |
| return [{"role": "user", "content": 'Hi'}] | |
| def parse_response(self, response): | |
| partial_message = "" | |
| for chunk in response: | |
| if len(chunk['choices'][0]['delta']) != 0: | |
| partial_message = partial_message + chunk['choices'][0]['delta']['content'] | |
| yield partial_message | |
| def setup(self): | |
| openai.api_key = self.api_key() | |
| return self |