jfeng1115's picture
fix errors
39600b6
raw
history blame contribute delete
No virus
1.26 kB
import openai
from dotenv import load_dotenv
import os
import chainlit as cl
load_dotenv()
class ChatOpenAI:
def __init__(self, model_name: str = "gpt-3.5-turbo"):
self.model_name = model_name
self.openai_api_key = os.getenv("OPENAI_API_KEY")
if self.openai_api_key is None:
raise ValueError("OPENAI_API_KEY is not set")
def run(self, messages, text_only: bool = True):
if not isinstance(messages, list):
raise ValueError("messages must be a list")
openai.api_key = self.openai_api_key
response = openai.ChatCompletion.create(
model=self.model_name, messages=messages
)
if text_only:
return response.choices[0].message.content
return response
async def stream_with_cl_message(self, message_history, chainlit_msg: cl.Message, text_only: bool = True, settings: dict = {}):
print("streaming with cl message", message_history);
async for stream_resp in await openai.ChatCompletion.acreate(
model=self.model_name, messages=message_history, stream=True, **settings
):
token = stream_resp.choices[0]["delta"].get("content", "")
await chainlit_msg.stream_token(token)