fix(realtime): Add transcription session created event, match OpenAI behavior (#6445)

Signed-off-by: Richard Palethorpe <io@richiejp.com>
This commit is contained in:
Richard Palethorpe
2025-10-13 20:48:13 +01:00
committed by GitHub
parent af31a77061
commit 0529c7d0a0
2 changed files with 12 additions and 10 deletions

View File

@@ -256,21 +256,13 @@ func registerRealtime(application *application.Application) func(c *websocket.Co
sessions[sessionID] = session
sessionLock.Unlock()
// Send session.created and conversation.created events to the client
sendEvent(c, types.SessionCreatedEvent{
sendEvent(c, types.TranscriptionSessionCreatedEvent{
ServerEventBase: types.ServerEventBase{
EventID: "event_TODO",
Type: types.ServerEventTypeSessionCreated,
Type: types.ServerEventTypeTranscriptionSessionCreated,
},
Session: session.ToServer(),
})
sendEvent(c, types.ConversationCreatedEvent{
ServerEventBase: types.ServerEventBase{
EventID: "event_TODO",
Type: types.ServerEventTypeConversationCreated,
},
Conversation: conversation.ToServer(),
})
var (
// mt int

View File

@@ -704,6 +704,7 @@ const (
ServerEventTypeError ServerEventType = "error"
ServerEventTypeSessionCreated ServerEventType = "session.created"
ServerEventTypeSessionUpdated ServerEventType = "session.updated"
ServerEventTypeTranscriptionSessionCreated ServerEventType = "transcription_session.created"
ServerEventTypeTranscriptionSessionUpdated ServerEventType = "transcription_session.updated"
ServerEventTypeConversationCreated ServerEventType = "conversation.created"
ServerEventTypeInputAudioBufferCommitted ServerEventType = "input_audio_buffer.committed"
@@ -767,6 +768,15 @@ type SessionCreatedEvent struct {
Session ServerSession `json:"session"`
}
// TranscriptionSessionCreatedEvent is the event for session created.
// Returned when a transcription session is created.
// See https://platform.openai.com/docs/api-reference/realtime-server-events/session/created
type TranscriptionSessionCreatedEvent struct {
ServerEventBase
// The transcription session resource.
Session ServerSession `json:"session"`
}
// SessionUpdatedEvent is the event for session updated.
// Returned when a session is updated.
// See https://platform.openai.com/docs/api-reference/realtime-server-events/session/updated