diff --git a/realtime-assistant/.env.example b/realtime-assistant/.env.example index 7e24174e..41fdc683 100644 --- a/realtime-assistant/.env.example +++ b/realtime-assistant/.env.example @@ -1,2 +1,4 @@ OPENAI_API_KEY=your-openai-api-key - +OPENAI_BASE_WSS_URL=wss://api.openai.com +OPENAI_REALTIME_MODEL=gpt-4o-realtime-preview-2024-12-17 +OPENAI_TRANSCRIPTION_MODEL=whisper-1 diff --git a/realtime-assistant/realtime/__init__.py b/realtime-assistant/realtime/__init__.py index 06dd8668..bdd959f6 100644 --- a/realtime-assistant/realtime/__init__.py +++ b/realtime-assistant/realtime/__init__.py @@ -81,7 +81,7 @@ def handler(event): class RealtimeAPI(RealtimeEventHandler): def __init__(self, url=None, api_key=None): super().__init__() - self.default_url = "wss://api.openai.com/v1/realtime" + self.default_url = f"{os.getenv('OPENAI_BASE_WSS_URL')}/v1/realtime" self.url = url or self.default_url self.api_key = api_key or os.getenv("OPENAI_API_KEY") self.ws = None @@ -92,7 +92,7 @@ def is_connected(self): def log(self, *args): logger.debug(f"[Websocket/{datetime.utcnow().isoformat()}]", *args) - async def connect(self, model='gpt-4o-realtime-preview-2024-12-17'): + async def connect(self, model=os.getenv("OPENAI_REALTIME_MODEL")): if self.is_connected(): raise Exception("Already connected") self.ws = await websockets.connect(f"{self.url}?model={model}", additional_headers={ @@ -386,7 +386,7 @@ def __init__(self, url=None, api_key=None): "voice": "shimmer", "input_audio_format": "pcm16", "output_audio_format": "pcm16", - "input_audio_transcription": {"model": "whisper-1"}, + "input_audio_transcription": {"model": f"{os.getenv('OPENAI_TRANSCRIPTION_MODEL')}"}, "turn_detection": {"type": "server_vad"}, "tools": [], "tool_choice": "auto", @@ -394,7 +394,7 @@ def __init__(self, url=None, api_key=None): "max_response_output_tokens": 4096, } self.session_config = {} - self.transcription_models = [{"model": "whisper-1"}] + self.transcription_models = [{"model": f"{os.getenv('OPENAI_TRANSCRIPTION_MODEL')}"}] self.default_server_vad_config = { "type": "server_vad", "threshold": 0.5, diff --git a/realtime-assistant/requirements.txt b/realtime-assistant/requirements.txt index 712c2d52..fe4e7592 100644 --- a/realtime-assistant/requirements.txt +++ b/realtime-assistant/requirements.txt @@ -1,4 +1,4 @@ -chainlit +chainlit<2.7 openai yfinance plotly