File size: 1,104 Bytes
767ca1c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
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
@cache_on_self
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 |