@@ -184,6 +184,7 @@ class EventType(str, Enum):
184
184
ITEM_DELETED = "conversation.item.deleted"
185
185
ITEM_TRUNCATED = "conversation.item.truncated"
186
186
ITEM_INPUT_AUDIO_TRANSCRIPTION_COMPLETED = "conversation.item.input_audio_transcription.completed"
187
+ ITEM_INPUT_AUDIO_TRANSCRIPTION_DELTA = "conversation.item.input_audio_transcription.delta"
187
188
ITEM_INPUT_AUDIO_TRANSCRIPTION_FAILED = "conversation.item.input_audio_transcription.failed"
188
189
189
190
RESPONSE_CREATED = "response.created"
@@ -481,6 +482,13 @@ class ItemInputAudioTranscriptionCompleted(ServerToClientMessage):
481
482
transcript : str # The transcribed text
482
483
type : str = EventType .ITEM_INPUT_AUDIO_TRANSCRIPTION_COMPLETED # Fixed event type
483
484
485
+ @dataclass
486
+ class ItemInputAudioTranscriptionDelta (ServerToClientMessage ):
487
+ item_id : str # The ID of the item for which transcription was completed
488
+ content_index : int # Index of the content part that was transcribed
489
+ delta : str # The transcribed text
490
+ type : str = EventType .ITEM_INPUT_AUDIO_TRANSCRIPTION_DELTA # Fixed event type
491
+
484
492
@dataclass
485
493
class ItemInputAudioTranscriptionFailed (ServerToClientMessage ):
486
494
item_id : str # The ID of the item for which transcription failed
@@ -726,6 +734,8 @@ def parse_server_message(unparsed_string: str) -> ServerToClientMessage:
726
734
return from_dict (ItemInputAudioTranscriptionCompleted , data )
727
735
elif data ["type" ] == EventType .ITEM_INPUT_AUDIO_TRANSCRIPTION_FAILED :
728
736
return from_dict (ItemInputAudioTranscriptionFailed , data )
737
+ elif data ["type" ] == EventType .ITEM_INPUT_AUDIO_TRANSCRIPTION_DELTA :
738
+ return from_dict (ItemInputAudioTranscriptionDelta , data )
729
739
730
740
raise ValueError (f"Unknown message type: { data ['type' ]} " )
731
741
0 commit comments