Refactor QueueFrame

This commit is contained in:
Moishe Lettvin
2024-01-23 09:33:51 -05:00
parent 3fda9b0ecb
commit c134598a77
10 changed files with 116 additions and 93 deletions

View File

@@ -1,6 +1,8 @@
from enum import Enum
from dataclasses import dataclass
from typing import Any
"""
class FrameType(Enum):
NOOP = -1
START_STREAM = 0
@@ -16,3 +18,38 @@ class FrameType(Enum):
class QueueFrame:
frame_type: FrameType
frame_data: str | dict | bytes | list | None
"""
class QueueFrame:
pass
class StartStreamQueueFrame(QueueFrame):
pass
class EndStreamQueueFrame(QueueFrame):
pass
@dataclass()
class AudioQueueFrame(QueueFrame):
data: bytes
@dataclass()
class ImageQueueFrame(QueueFrame):
url: str | None
image: bytes
@dataclass()
class TextQueueFrame(QueueFrame):
text: str
@dataclass()
class TranscriptionQueueFrame(TextQueueFrame):
participantId: str
timestamp: str
@dataclass()
class LLMMessagesQueueFrame(QueueFrame):
messages: list[dict[str,str]] # TODO: define this more concretely!
class AppMessageQueueFrame(QueueFrame):
message: Any
participantId: str