View Source ExOpenAI.Components.RealtimeCallCreateRequest (ex_openai.ex v2.0.0-beta)

Parameters required to initiate a realtime call and receive the SDP answer needed to complete a WebRTC peer connection. Provide an SDP offer generated by your client and optionally configure the session that will answer the call.

Fields

  • :sdp - required - String.t()
    WebRTC Session Description Protocol (SDP) offer generated by the caller.

  • :session - optional - map()
    Optional session configuration to apply before the realtime session is created. Use the same parameters you would send in a create client secret request.

Summary

Types

@type t() :: %ExOpenAI.Components.RealtimeCallCreateRequest{
  sdp: String.t(),
  session:
    %{
      optional(:audio) => %{
        optional(:input) => %{
          optional(:format) => ExOpenAI.Components.RealtimeAudioFormats.t(),
          optional(:noise_reduction) => %{
            optional(:type) => ExOpenAI.Components.NoiseReductionType.t()
          },
          optional(:transcription) =>
            ExOpenAI.Components.AudioTranscription.t(),
          optional(:turn_detection) =>
            ExOpenAI.Components.RealtimeTurnDetection.t()
        },
        optional(:output) => %{
          optional(:format) => ExOpenAI.Components.RealtimeAudioFormats.t(),
          optional(:speed) => number(),
          optional(:voice) => ExOpenAI.Components.VoiceIdsOrCustomVoice.t()
        }
      },
      optional(:include) => [:"item.input_audio_transcription.logprobs"],
      optional(:instructions) => String.t(),
      optional(:max_output_tokens) => integer() | :inf,
      optional(:model) =>
        String.t()
        | ((((((((((((((:"gpt-realtime" | :"gpt-realtime-1.5")
                       | :"gpt-realtime-2025-08-28")
                      | :"gpt-4o-realtime-preview")
                     | :"gpt-4o-realtime-preview-2024-10-01")
                    | :"gpt-4o-realtime-preview-2024-12-17")
                   | :"gpt-4o-realtime-preview-2025-06-03")
                  | :"gpt-4o-mini-realtime-preview")
                 | :"gpt-4o-mini-realtime-preview-2024-12-17")
                | :"gpt-realtime-mini")
               | :"gpt-realtime-mini-2025-10-06")
              | :"gpt-realtime-mini-2025-12-15")
             | :"gpt-audio-1.5")
            | :"gpt-audio-mini")
           | :"gpt-audio-mini-2025-10-06")
        | :"gpt-audio-mini-2025-12-15",
      optional(:output_modalities) => [:text | :audio],
      optional(:prompt) => ExOpenAI.Components.Prompt.t(),
      optional(:tool_choice) =>
        (ExOpenAI.Components.ToolChoiceOptions.t()
         | ExOpenAI.Components.ToolChoiceFunction.t())
        | ExOpenAI.Components.ToolChoiceMCP.t(),
      optional(:tools) => [
        ExOpenAI.Components.RealtimeFunctionTool.t()
        | ExOpenAI.Components.MCPTool.t()
      ],
      optional(:tracing) =>
        (:auto
         | %{
             optional(:group_id) => String.t(),
             optional(:metadata) => map(),
             optional(:workflow_name) => String.t()
           })
        | nil,
      optional(:truncation) => ExOpenAI.Components.RealtimeTruncation.t(),
      type: :realtime
    }
    | nil
}