From 082d15612e440be580583c33dd443449e5de0c39 Mon Sep 17 00:00:00 2001 From: Marty Sullivan Date: Tue, 18 Nov 2025 09:25:11 -0500 Subject: [PATCH 1/2] remove hard-coded items --- realtime-assistant/.env.example | 7 ++++++- realtime-assistant/realtime/__init__.py | 8 ++++---- realtime-assistant/requirements.txt | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/realtime-assistant/.env.example b/realtime-assistant/.env.example index 7e24174e9..412aad80a 100644 --- a/realtime-assistant/.env.example +++ b/realtime-assistant/.env.example @@ -1,2 +1,7 @@ -OPENAI_API_KEY=your-openai-api-key +OPENAI_API_KEY=api-key +# OPENAI_BASE_WSS_URL=wss://api.ai.it.cornell.edu +OPENAI_BASE_WSS_URL=wss://litellm-dev.lcmain.aaii.cucloud.net + +OPENAI_REALTIME_MODEL=openai.gpt-realtime-mini +OPENAI_TRANSCRIPTION_MODEL=openai.whisper diff --git a/realtime-assistant/realtime/__init__.py b/realtime-assistant/realtime/__init__.py index 06dd86685..bdd959f6c 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 712c2d522..fe4e75927 100644 --- a/realtime-assistant/requirements.txt +++ b/realtime-assistant/requirements.txt @@ -1,4 +1,4 @@ -chainlit +chainlit<2.7 openai yfinance plotly From 97a1af426a753db9e1544f6bae2c3f344d1db930 Mon Sep 17 00:00:00 2001 From: Marty Sullivan Date: Tue, 18 Nov 2025 09:29:47 -0500 Subject: [PATCH 2/2] make generic .env.example --- realtime-assistant/.env.example | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/realtime-assistant/.env.example b/realtime-assistant/.env.example index 412aad80a..41fdc6839 100644 --- a/realtime-assistant/.env.example +++ b/realtime-assistant/.env.example @@ -1,7 +1,4 @@ -OPENAI_API_KEY=api-key - -# OPENAI_BASE_WSS_URL=wss://api.ai.it.cornell.edu -OPENAI_BASE_WSS_URL=wss://litellm-dev.lcmain.aaii.cucloud.net - -OPENAI_REALTIME_MODEL=openai.gpt-realtime-mini -OPENAI_TRANSCRIPTION_MODEL=openai.whisper +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