TranscriptionMessage: add user_id field
This commit is contained in:
@@ -9,6 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
- Added `user_id` field to `TranscriptionMessage`. This allows identifying the
|
||||||
|
user in a multi-user scenario. Note that this requires that
|
||||||
|
`TranscriptionFrame` has the `user_id` properly set.
|
||||||
|
|
||||||
- Added new `PipelineTask` event handlers `on_pipeline_started`,
|
- Added new `PipelineTask` event handlers `on_pipeline_started`,
|
||||||
`on_pipeline_stopped`, `on_pipeline_ended` and `on_pipeline_cancelled`, which
|
`on_pipeline_stopped`, `on_pipeline_ended` and `on_pipeline_cancelled`, which
|
||||||
correspond to the `StartFrame`, `StopFrame`, `EndFrame` and `CancelFrame`
|
correspond to the `StartFrame`, `StopFrame`, `EndFrame` and `CancelFrame`
|
||||||
|
|||||||
@@ -288,6 +288,7 @@ class TranscriptionMessage:
|
|||||||
|
|
||||||
role: Literal["user", "assistant"]
|
role: Literal["user", "assistant"]
|
||||||
content: str
|
content: str
|
||||||
|
user_id: Optional[str] = None
|
||||||
timestamp: Optional[str] = None
|
timestamp: Optional[str] = None
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ class UserTranscriptProcessor(BaseTranscriptProcessor):
|
|||||||
|
|
||||||
if isinstance(frame, TranscriptionFrame):
|
if isinstance(frame, TranscriptionFrame):
|
||||||
message = TranscriptionMessage(
|
message = TranscriptionMessage(
|
||||||
role="user", content=frame.text, timestamp=frame.timestamp
|
role="user", user_id=frame.user_id, content=frame.text, timestamp=frame.timestamp
|
||||||
)
|
)
|
||||||
await self._emit_update([message])
|
await self._emit_update([message])
|
||||||
|
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ class TestUserTranscriptProcessor(unittest.IsolatedAsyncioTestCase):
|
|||||||
message = update_frame.messages[0]
|
message = update_frame.messages[0]
|
||||||
self.assertEqual(message.role, "user")
|
self.assertEqual(message.role, "user")
|
||||||
self.assertEqual(message.content, "Hello, world!")
|
self.assertEqual(message.content, "Hello, world!")
|
||||||
|
self.assertEqual(message.user_id, "test_user")
|
||||||
self.assertEqual(message.timestamp, timestamp)
|
self.assertEqual(message.timestamp, timestamp)
|
||||||
|
|
||||||
async def test_event_handler(self):
|
async def test_event_handler(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user