Experimental
Type Parameters
- Event extends
| "error"
| "event"
| "conversation.created"
| "conversation.item.created"
| "conversation.item.deleted"
| "conversation.item.input_audio_transcription.completed"
| "conversation.item.input_audio_transcription.delta"
| "conversation.item.input_audio_transcription.failed"
| "conversation.item.retrieved"
| "conversation.item.truncated"
| "input_audio_buffer.cleared"
| "input_audio_buffer.committed"
| "input_audio_buffer.dtmf_event_received"
| "input_audio_buffer.speech_started"
| "input_audio_buffer.speech_stopped"
| "rate_limits.updated"
| "response.output_audio.delta"
| "response.output_audio.done"
| "response.output_audio_transcript.delta"
| "response.output_audio_transcript.done"
| "response.content_part.added"
| "response.content_part.done"
| "response.created"
| "response.done"
| "response.function_call_arguments.delta"
| "response.function_call_arguments.done"
| "response.output_item.added"
| "response.output_item.done"
| "response.output_text.delta"
| "response.output_text.done"
| "session.created"
| "session.updated"
| "output_audio_buffer.started"
| "output_audio_buffer.stopped"
| "output_audio_buffer.cleared"
| "conversation.item.added"
| "conversation.item.done"
| "input_audio_buffer.timeout_triggered"
| "conversation.item.input_audio_transcription.segment"
| "mcp_list_tools.in_progress"
| "mcp_list_tools.completed"
| "mcp_list_tools.failed"
| "response.mcp_call_arguments.delta"
| "response.mcp_call_arguments.done"
| "response.mcp_call.in_progress"
| "response.mcp_call.completed"
| "response.mcp_call.failed"
Returns Promise<
EventParameters<
{
"conversation.created": (event: ConversationCreatedEvent) => unknown;
"conversation.item.added": (event: ConversationItemAdded) => unknown;
"conversation.item.created": (
event: ConversationItemCreatedEvent,
) => unknown;
"conversation.item.deleted": (
event: ConversationItemDeletedEvent,
) => unknown;
"conversation.item.done": (event: ConversationItemDone) => unknown;
"conversation.item.input_audio_transcription.completed": (
event: ConversationItemInputAudioTranscriptionCompletedEvent,
) => unknown;
"conversation.item.input_audio_transcription.delta": (
event: ConversationItemInputAudioTranscriptionDeltaEvent,
) => unknown;
"conversation.item.input_audio_transcription.failed": (
event: ConversationItemInputAudioTranscriptionFailedEvent,
) => unknown;
"conversation.item.input_audio_transcription.segment": (
event: ConversationItemInputAudioTranscriptionSegment,
) => unknown;
"conversation.item.retrieved": (
event: ConversationItemRetrieved,
) => unknown;
"conversation.item.truncated": (
event: ConversationItemTruncatedEvent,
) => unknown;
error: (error: OpenAIRealtimeError) => void;
event: (event: RealtimeServerEvent) => void;
"input_audio_buffer.cleared": (
event: InputAudioBufferClearedEvent,
) => unknown;
"input_audio_buffer.committed": (
event: InputAudioBufferCommittedEvent,
) => unknown;
"input_audio_buffer.dtmf_event_received": (
event: InputAudioBufferDtmfEventReceivedEvent,
) => unknown;
"input_audio_buffer.speech_started": (
event: InputAudioBufferSpeechStartedEvent,
) => unknown;
"input_audio_buffer.speech_stopped": (
event: InputAudioBufferSpeechStoppedEvent,
) => unknown;
"input_audio_buffer.timeout_triggered": (
event: InputAudioBufferTimeoutTriggered,
) => unknown;
"mcp_list_tools.completed": (event: McpListToolsCompleted) => unknown;
"mcp_list_tools.failed": (event: McpListToolsFailed) => unknown;
"mcp_list_tools.in_progress": (event: McpListToolsInProgress) => unknown;
"output_audio_buffer.cleared": (
event: OutputAudioBufferCleared,
) => unknown;
"output_audio_buffer.started": (
event: OutputAudioBufferStarted,
) => unknown;
"output_audio_buffer.stopped": (
event: OutputAudioBufferStopped,
) => unknown;
"rate_limits.updated": (event: RateLimitsUpdatedEvent) => unknown;
"response.content_part.added": (
event: ResponseContentPartAddedEvent,
) => unknown;
"response.content_part.done": (
event: ResponseContentPartDoneEvent,
) => unknown;
"response.created": (event: ResponseCreatedEvent) => unknown;
"response.done": (event: ResponseDoneEvent) => unknown;
"response.function_call_arguments.delta": (
event: ResponseFunctionCallArgumentsDeltaEvent,
) => unknown;
"response.function_call_arguments.done": (
event: ResponseFunctionCallArgumentsDoneEvent,
) => unknown;
"response.mcp_call_arguments.delta": (
event: ResponseMcpCallArgumentsDelta,
) => unknown;
"response.mcp_call_arguments.done": (
event: ResponseMcpCallArgumentsDone,
) => unknown;
"response.mcp_call.completed": (
event: ResponseMcpCallCompleted,
) => unknown;
"response.mcp_call.failed": (event: ResponseMcpCallFailed) => unknown;
"response.mcp_call.in_progress": (
event: ResponseMcpCallInProgress,
) => unknown;
"response.output_audio_transcript.delta": (
event: ResponseAudioTranscriptDeltaEvent,
) => unknown;
"response.output_audio_transcript.done": (
event: ResponseAudioTranscriptDoneEvent,
) => unknown;
"response.output_audio.delta": (
event: ResponseAudioDeltaEvent,
) => unknown;
"response.output_audio.done": (event: ResponseAudioDoneEvent) => unknown;
"response.output_item.added": (
event: ResponseOutputItemAddedEvent,
) => unknown;
"response.output_item.done": (
event: ResponseOutputItemDoneEvent,
) => unknown;
"response.output_text.delta": (event: ResponseTextDeltaEvent) => unknown;
"response.output_text.done": (event: ResponseTextDoneEvent) => unknown;
"session.created": (event: SessionCreatedEvent) => unknown;
"session.updated": (event: SessionUpdatedEvent) => unknown;
},
Event,
> extends [Param]
? Param
: EventParameters<
{
"conversation.created": (event: ConversationCreatedEvent) => unknown;
"conversation.item.added": (event: ConversationItemAdded) => unknown;
"conversation.item.created": (
event: ConversationItemCreatedEvent,
) => unknown;
"conversation.item.deleted": (
event: ConversationItemDeletedEvent,
) => unknown;
"conversation.item.done": (event: ConversationItemDone) => unknown;
"conversation.item.input_audio_transcription.completed": (
event: ConversationItemInputAudioTranscriptionCompletedEvent,
) => unknown;
"conversation.item.input_audio_transcription.delta": (
event: ConversationItemInputAudioTranscriptionDeltaEvent,
) => unknown;
"conversation.item.input_audio_transcription.failed": (
event: ConversationItemInputAudioTranscriptionFailedEvent,
) => unknown;
"conversation.item.input_audio_transcription.segment": (
event: ConversationItemInputAudioTranscriptionSegment,
) => unknown;
"conversation.item.retrieved": (
event: ConversationItemRetrieved,
) => unknown;
"conversation.item.truncated": (
event: ConversationItemTruncatedEvent,
) => unknown;
error: (error: OpenAIRealtimeError) => void;
event: (event: RealtimeServerEvent) => void;
"input_audio_buffer.cleared": (
event: InputAudioBufferClearedEvent,
) => unknown;
"input_audio_buffer.committed": (
event: InputAudioBufferCommittedEvent,
) => unknown;
"input_audio_buffer.dtmf_event_received": (
event: InputAudioBufferDtmfEventReceivedEvent,
) => unknown;
"input_audio_buffer.speech_started": (
event: InputAudioBufferSpeechStartedEvent,
) => unknown;
"input_audio_buffer.speech_stopped": (
event: InputAudioBufferSpeechStoppedEvent,
) => unknown;
"input_audio_buffer.timeout_triggered": (
event: InputAudioBufferTimeoutTriggered,
) => unknown;
"mcp_list_tools.completed": (event: McpListToolsCompleted) => unknown;
"mcp_list_tools.failed": (event: McpListToolsFailed) => unknown;
"mcp_list_tools.in_progress": (event: McpListToolsInProgress) => unknown;
"output_audio_buffer.cleared": (
event: OutputAudioBufferCleared,
) => unknown;
"output_audio_buffer.started": (
event: OutputAudioBufferStarted,
) => unknown;
"output_audio_buffer.stopped": (
event: OutputAudioBufferStopped,
) => unknown;
"rate_limits.updated": (event: RateLimitsUpdatedEvent) => unknown;
"response.content_part.added": (
event: ResponseContentPartAddedEvent,
) => unknown;
"response.content_part.done": (
event: ResponseContentPartDoneEvent,
) => unknown;
"response.created": (event: ResponseCreatedEvent) => unknown;
"response.done": (event: ResponseDoneEvent) => unknown;
"response.function_call_arguments.delta": (
event: ResponseFunctionCallArgumentsDeltaEvent,
) => unknown;
"response.function_call_arguments.done": (
event: ResponseFunctionCallArgumentsDoneEvent,
) => unknown;
"response.mcp_call_arguments.delta": (
event: ResponseMcpCallArgumentsDelta,
) => unknown;
"response.mcp_call_arguments.done": (
event: ResponseMcpCallArgumentsDone,
) => unknown;
"response.mcp_call.completed": (
event: ResponseMcpCallCompleted,
) => unknown;
"response.mcp_call.failed": (event: ResponseMcpCallFailed) => unknown;
"response.mcp_call.in_progress": (
event: ResponseMcpCallInProgress,
) => unknown;
"response.output_audio_transcript.delta": (
event: ResponseAudioTranscriptDeltaEvent,
) => unknown;
"response.output_audio_transcript.done": (
event: ResponseAudioTranscriptDoneEvent,
) => unknown;
"response.output_audio.delta": (
event: ResponseAudioDeltaEvent,
) => unknown;
"response.output_audio.done": (event: ResponseAudioDoneEvent) => unknown;
"response.output_item.added": (
event: ResponseOutputItemAddedEvent,
) => unknown;
"response.output_item.done": (
event: ResponseOutputItemDoneEvent,
) => unknown;
"response.output_text.delta": (event: ResponseTextDeltaEvent) => unknown;
"response.output_text.done": (event: ResponseTextDoneEvent) => unknown;
"session.created": (event: SessionCreatedEvent) => unknown;
"session.updated": (event: SessionUpdatedEvent) => unknown;
},
Event,
> extends []
? void
: EventParameters<
{
"conversation.created": (event: ConversationCreatedEvent) => unknown;
"conversation.item.added": (event: ConversationItemAdded) => unknown;
"conversation.item.created": (
event: ConversationItemCreatedEvent,
) => unknown;
"conversation.item.deleted": (
event: ConversationItemDeletedEvent,
) => unknown;
"conversation.item.done": (event: ConversationItemDone) => unknown;
"conversation.item.input_audio_transcription.completed": (
event: ConversationItemInputAudioTranscriptionCompletedEvent,
) => unknown;
"conversation.item.input_audio_transcription.delta": (
event: ConversationItemInputAudioTranscriptionDeltaEvent,
) => unknown;
"conversation.item.input_audio_transcription.failed": (
event: ConversationItemInputAudioTranscriptionFailedEvent,
) => unknown;
"conversation.item.input_audio_transcription.segment": (
event: ConversationItemInputAudioTranscriptionSegment,
) => unknown;
"conversation.item.retrieved": (
event: ConversationItemRetrieved,
) => unknown;
"conversation.item.truncated": (
event: ConversationItemTruncatedEvent,
) => unknown;
error: (error: OpenAIRealtimeError) => void;
event: (event: RealtimeServerEvent) => void;
"input_audio_buffer.cleared": (
event: InputAudioBufferClearedEvent,
) => unknown;
"input_audio_buffer.committed": (
event: InputAudioBufferCommittedEvent,
) => unknown;
"input_audio_buffer.dtmf_event_received": (
event: InputAudioBufferDtmfEventReceivedEvent,
) => unknown;
"input_audio_buffer.speech_started": (
event: InputAudioBufferSpeechStartedEvent,
) => unknown;
"input_audio_buffer.speech_stopped": (
event: InputAudioBufferSpeechStoppedEvent,
) => unknown;
"input_audio_buffer.timeout_triggered": (
event: InputAudioBufferTimeoutTriggered,
) => unknown;
"mcp_list_tools.completed": (event: McpListToolsCompleted) => unknown;
"mcp_list_tools.failed": (event: McpListToolsFailed) => unknown;
"mcp_list_tools.in_progress": (
event: McpListToolsInProgress,
) => unknown;
"output_audio_buffer.cleared": (
event: OutputAudioBufferCleared,
) => unknown;
"output_audio_buffer.started": (
event: OutputAudioBufferStarted,
) => unknown;
"output_audio_buffer.stopped": (
event: OutputAudioBufferStopped,
) => unknown;
"rate_limits.updated": (event: RateLimitsUpdatedEvent) => unknown;
"response.content_part.added": (
event: ResponseContentPartAddedEvent,
) => unknown;
"response.content_part.done": (
event: ResponseContentPartDoneEvent,
) => unknown;
"response.created": (event: ResponseCreatedEvent) => unknown;
"response.done": (event: ResponseDoneEvent) => unknown;
"response.function_call_arguments.delta": (
event: ResponseFunctionCallArgumentsDeltaEvent,
) => unknown;
"response.function_call_arguments.done": (
event: ResponseFunctionCallArgumentsDoneEvent,
) => unknown;
"response.mcp_call_arguments.delta": (
event: ResponseMcpCallArgumentsDelta,
) => unknown;
"response.mcp_call_arguments.done": (
event: ResponseMcpCallArgumentsDone,
) => unknown;
"response.mcp_call.completed": (
event: ResponseMcpCallCompleted,
) => unknown;
"response.mcp_call.failed": (event: ResponseMcpCallFailed) => unknown;
"response.mcp_call.in_progress": (
event: ResponseMcpCallInProgress,
) => unknown;
"response.output_audio_transcript.delta": (
event: ResponseAudioTranscriptDeltaEvent,
) => unknown;
"response.output_audio_transcript.done": (
event: ResponseAudioTranscriptDoneEvent,
) => unknown;
"response.output_audio.delta": (
event: ResponseAudioDeltaEvent,
) => unknown;
"response.output_audio.done": (
event: ResponseAudioDoneEvent,
) => unknown;
"response.output_item.added": (
event: ResponseOutputItemAddedEvent,
) => unknown;
"response.output_item.done": (
event: ResponseOutputItemDoneEvent,
) => unknown;
"response.output_text.delta": (
event: ResponseTextDeltaEvent,
) => unknown;
"response.output_text.done": (event: ResponseTextDoneEvent) => unknown;
"session.created": (event: SessionCreatedEvent) => unknown;
"session.updated": (event: SessionUpdatedEvent) => unknown;
},
Event,
>,
>
a Promise that resolves the next time given event is triggered,
or rejects if an error is emitted. (If you request the 'error' event,
returns a promise that resolves with the error).
Example:
const message = await stream.emitted('message') // rejects if the stream errors
A pre-configured OpenAI Realtime API (speech-to-speech) client for SAP AI Core.
Only
gpt-realtimeis supported. Session configuration must use the GAsession.updateschema (output_modalities, nestedaudio), not the preview schema.Use SapOpenAiRealtimeWs.createClient to create an instance. This class is experimental and may change at any time without prior notice.