From d1853d230f379002ad8e58b0c7c25b0f0e1909f8 Mon Sep 17 00:00:00 2001 From: Sergei Novikov Date: Tue, 11 Nov 2025 12:34:31 +0300 Subject: [PATCH] feat: send internal meeting id with transcription --- services/WhisperLive/whisper_live/server.py | 18 ++++++++++++------ services/vexa-bot/core/src/utils/browser.ts | 2 ++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/services/WhisperLive/whisper_live/server.py b/services/WhisperLive/whisper_live/server.py index 03898f985..b2eb879c7 100644 --- a/services/WhisperLive/whisper_live/server.py +++ b/services/WhisperLive/whisper_live/server.py @@ -352,7 +352,7 @@ def publish_session_end_event(self, token, platform, meeting_id, session_uid): logging.error(f"Error publishing session_end for UID {session_uid} to {self.stream_key}: {e}") return False - def send_transcription(self, token, platform, meeting_id, segments, session_uid=None): + def send_transcription(self, token, platform, meeting_id, internal_id, segments, session_uid=None): """Send transcription segments to Redis stream (self.stream_key). Args: @@ -391,6 +391,7 @@ def send_transcription(self, token, platform, meeting_id, segments, session_uid= "token": token, "platform": platform, "meeting_id": meeting_id, + "internal_id": internal_id, "segments": segments, "uid": session_uid } @@ -782,6 +783,7 @@ def initialize_client( meeting_url=options.get("meeting_url"), token=options.get("token"), meeting_id=options.get("meeting_id"), + internal_id=options.get("internal_id"), collector_client_ref=self.collector_client, server_options=self.server_options ) @@ -801,6 +803,7 @@ def initialize_client( meeting_url=options.get("meeting_url"), token=options.get("token"), meeting_id=options.get("meeting_id"), + internal_id=options.get("internal_id"), collector_client_ref=self.collector_client, server_options=self.server_options ) @@ -1618,7 +1621,7 @@ class ServeClientBase(object): _hallucinations_loaded = False def __init__(self, websocket, language="en", task="transcribe", client_uid=None, - platform=None, meeting_url=None, token=None, meeting_id=None, + platform=None, meeting_url=None, token=None, meeting_id=None, internal_id=None, collector_client_ref: Optional[TranscriptionCollectorClient] = None, server_options: Optional[dict] = None): self.websocket = websocket @@ -1629,6 +1632,7 @@ def __init__(self, websocket, language="en", task="transcribe", client_uid=None, self.meeting_url = meeting_url self.token = token self.meeting_id = meeting_id + self.internal_id = internal_id self.collector_client = collector_client_ref # Store the passed collector client # Restore all the original instance variables that were deleted @@ -1885,6 +1889,7 @@ def send_transcription_to_client(self, segments): token=self.token, platform=self.platform, meeting_id=self.meeting_id, + internal_id=self.internal_id, segments=segments, session_uid=self.client_uid ) @@ -1964,6 +1969,7 @@ def forward_to_collector(self, segments): token=self.token, platform=self.platform, meeting_id=self.meeting_id, + internal_id=self.internal_id, segments=segments, session_uid=self.client_uid ) @@ -1976,11 +1982,11 @@ class ServeClientTensorRT(ServeClientBase): def __init__(self, websocket, task="transcribe", multilingual=False, language=None, client_uid=None, model=None, single_model=False, - platform=None, meeting_url=None, token=None, meeting_id=None, + platform=None, meeting_url=None, token=None, meeting_id=None, internal_id=None, collector_client_ref: Optional[TranscriptionCollectorClient] = None, server_options: Optional[dict] = None): super().__init__(websocket, language, task, client_uid, platform, meeting_url, token, meeting_id, - collector_client_ref=collector_client_ref, server_options=server_options) + internal_id, collector_client_ref=collector_client_ref, server_options=server_options) self.eos = False # Log the critical parameters @@ -2359,11 +2365,11 @@ class ServeClientFasterWhisper(ServeClientBase): def __init__(self, websocket, task="transcribe", device=None, language=None, client_uid=None, model="small.en", initial_prompt=None, vad_parameters=None, use_vad=True, single_model=False, - platform=None, meeting_url=None, token=None, meeting_id=None, + platform=None, meeting_url=None, token=None, meeting_id=None, internal_id=None, collector_client_ref: Optional[TranscriptionCollectorClient] = None, server_options: Optional[dict] = None): super().__init__(websocket, language, task, client_uid, platform, meeting_url, token, meeting_id, - collector_client_ref=collector_client_ref, server_options=server_options) + internal_id, collector_client_ref=collector_client_ref, server_options=server_options) self.model_sizes = [ "tiny", "tiny.en", "base", "base.en", "small", "small.en", "medium", "medium.en", "large-v2", "large-v3", "distil-small.en", diff --git a/services/vexa-bot/core/src/utils/browser.ts b/services/vexa-bot/core/src/utils/browser.ts index 17e45aff6..e620f3737 100644 --- a/services/vexa-bot/core/src/utils/browser.ts +++ b/services/vexa-bot/core/src/utils/browser.ts @@ -290,6 +290,7 @@ export class BrowserWhisperLiveService { token: this.botConfigData.token, meeting_id: this.botConfigData.nativeMeetingId, meeting_url: this.botConfigData.meetingUrl || null, + internal_id: this.botConfigData.meeting_id, }; (window as any).logBot(`Sending initial config message: ${JSON.stringify(configPayload)}`); @@ -336,6 +337,7 @@ export class BrowserWhisperLiveService { token: this.botConfigData.token, meeting_id: this.botConfigData.nativeMeetingId, meeting_url: this.botConfigData.meetingUrl || null, + internal_id: this.botConfigData.meeting_id, }; (window as any).logBot(`Sending initial config message: ${JSON.stringify(configPayload)}`);