diff --git a/app/frontend/src/App.tsx b/app/frontend/src/App.tsx index ebfde279..694baf32 100644 --- a/app/frontend/src/App.tsx +++ b/app/frontend/src/App.tsx @@ -39,7 +39,8 @@ function App() { }); setGroundingFiles(prev => [...prev, ...files]); - } + }, + shouldConnect: isRecording }); const { reset: resetAudioPlayer, play: playAudio, stop: stopAudioPlayer } = useAudioPlayer(); diff --git a/app/frontend/src/hooks/useRealtime.tsx b/app/frontend/src/hooks/useRealtime.tsx index e2b37e2a..07ee4a85 100644 --- a/app/frontend/src/hooks/useRealtime.tsx +++ b/app/frontend/src/hooks/useRealtime.tsx @@ -19,6 +19,7 @@ type Parameters = { aoaiModelOverride?: string; enableInputAudioTranscription?: boolean; + shouldConnect: boolean; onWebSocketOpen?: () => void; onWebSocketClose?: () => void; onWebSocketError?: (event: Event) => void; @@ -39,6 +40,7 @@ export default function useRealTime({ aoaiApiKeyOverride, aoaiModelOverride, enableInputAudioTranscription, + shouldConnect, onWebSocketOpen, onWebSocketClose, onWebSocketError, @@ -55,13 +57,17 @@ export default function useRealTime({ ? `${aoaiEndpointOverride}/openai/realtime?api-key=${aoaiApiKeyOverride}&deployment=${aoaiModelOverride}&api-version=2024-10-01-preview` : `/realtime`; - const { sendJsonMessage } = useWebSocket(wsEndpoint, { - onOpen: () => onWebSocketOpen?.(), - onClose: () => onWebSocketClose?.(), - onError: event => onWebSocketError?.(event), - onMessage: event => onMessageReceived(event), - shouldReconnect: () => true - }); + const { sendJsonMessage } = useWebSocket( + wsEndpoint, + { + onOpen: () => onWebSocketOpen?.(), + onClose: () => onWebSocketClose?.(), + onError: event => onWebSocketError?.(event), + onMessage: event => onMessageReceived(event), + shouldReconnect: () => true + }, + shouldConnect + ); const startSession = () => { const command: SessionUpdateCommand = {