Spaces:
Runtime error
Runtime error
| from dotenv import load_dotenv | |
| from openai import AsyncOpenAI, OpenAI | |
| import openai | |
| from typing import List, Dict, Any | |
| import os | |
| import asyncio | |
| class ChatOpenAI: | |
| def __init__(self, model_name: str = "gpt-4-turbo-preview"): | |
| load_dotenv() | |
| self.openai_api_key = os.getenv("OPENAI_API_KEY") | |
| self.async_client = AsyncOpenAI() | |
| self.client = OpenAI() | |
| if self.openai_api_key is None: | |
| raise ValueError( | |
| "OPENAI_API_KEY environment variable is not set. Please set it to your OpenAI API key." | |
| ) | |
| openai.api_key = self.openai_api_key | |
| self.model_name = model_name | |
| async def agenerate(self, messages: List[Dict[str, str]]) -> str: | |
| chat_completion = await self.async_client.chat.completions.create( | |
| model=self.model_name, | |
| messages=messages, | |
| temperature=0.7, | |
| ) | |
| return chat_completion.choices[0].message.content | |
| async def astream(self, messages: List[Dict[str, str]]): | |
| stream = await self.async_client.chat.completions.create( | |
| model=self.model_name, | |
| messages=messages, | |
| temperature=0.7, | |
| stream=True, | |
| ) | |
| async for chunk in stream: | |
| if chunk.choices[0].delta.content is not None: | |
| yield chunk.choices[0].delta.content | |
| def generate(self, messages: List[Dict[str, str]]) -> str: | |
| chat_completion = self.client.chat.completions.create( | |
| model=self.model_name, | |
| messages=messages, | |
| temperature=0.7, | |
| ) | |
| return chat_completion.choices[0].message.content |