Bound transcript memory and translation queue size

- Add MAX_TRANSCRIPT_LENGTH (500) and MAX_TRANSLATION_QUEUE_SIZE (100)
  class constants to ServeClientBase
- Trim transcript and text lists after each update_segments() call
- Create translation queue with maxsize to prevent unbounded growth
- Added tests for _trim_transcript()
This commit is contained in:
Aaron Boxer
2026-04-17 09:29:38 -04:00
parent 81cdbbca95
commit 9e5e4a9970
3 changed files with 39 additions and 1 deletions
+11
View File
@@ -24,6 +24,9 @@ class ServeClientBase(object):
same_output_threshold: int
"""Number of repeated outputs before considering it as a valid segment."""
MAX_TRANSCRIPT_LENGTH = 500
MAX_TRANSLATION_QUEUE_SIZE = 100
def __init__(
self,
client_uid,
@@ -376,4 +379,12 @@ class ServeClientBase(object):
with self.lock:
self.timestamp_offset += offset
self._trim_transcript()
return last_segment
def _trim_transcript(self):
"""Trims transcript and text lists to prevent unbounded memory growth."""
if len(self.transcript) > self.MAX_TRANSCRIPT_LENGTH:
self.transcript = self.transcript[-self.MAX_TRANSCRIPT_LENGTH:]
if len(self.text) > self.MAX_TRANSCRIPT_LENGTH:
self.text = self.text[-self.MAX_TRANSCRIPT_LENGTH:]