Current section

Files

Jump to
oapi_open_ai lib schemas realtime session create_request.ex
Raw

lib/schemas/realtime/session/create_request.ex

defmodule OpenAi.Realtime.Session.CreateRequest do
@moduledoc """
Provides struct and type for a Realtime.Session.CreateRequest
"""
@type t :: %__MODULE__{
input_audio_format: String.t() | nil,
input_audio_noise_reduction:
OpenAi.Realtime.Session.CreateRequest.InputAudioNoiseReduction.t() | nil,
input_audio_transcription:
OpenAi.Realtime.Session.CreateRequest.InputAudioTranscription.t() | nil,
instructions: String.t() | nil,
max_response_output_tokens: integer | String.t() | nil,
modalities: map | nil,
model: String.t() | nil,
output_audio_format: String.t() | nil,
temperature: number | nil,
tool_choice: String.t() | nil,
tools: [OpenAi.Realtime.Session.CreateRequest.Tool.t()] | nil,
turn_detection: OpenAi.Realtime.Session.CreateRequest.TurnDetection.t() | nil,
voice: String.t() | nil
}
defstruct [
:input_audio_format,
:input_audio_noise_reduction,
:input_audio_transcription,
:instructions,
:max_response_output_tokens,
:modalities,
:model,
:output_audio_format,
:temperature,
:tool_choice,
:tools,
:turn_detection,
:voice
]
@doc false
@spec __fields__(atom) :: keyword
def __fields__(type \\ :t)
def __fields__(:t) do
[
input_audio_format: {:enum, ["pcm16", "g711_ulaw", "g711_alaw"]},
input_audio_noise_reduction:
{OpenAi.Realtime.Session.CreateRequest.InputAudioNoiseReduction, :t},
input_audio_transcription:
{OpenAi.Realtime.Session.CreateRequest.InputAudioTranscription, :t},
instructions: {:string, :generic},
max_response_output_tokens: {:union, [:integer, const: "inf"]},
modalities: :map,
model:
{:enum,
[
"gpt-4o-realtime-preview",
"gpt-4o-realtime-preview-2024-10-01",
"gpt-4o-realtime-preview-2024-12-17",
"gpt-4o-mini-realtime-preview",
"gpt-4o-mini-realtime-preview-2024-12-17"
]},
output_audio_format: {:enum, ["pcm16", "g711_ulaw", "g711_alaw"]},
temperature: :number,
tool_choice: {:string, :generic},
tools: [{OpenAi.Realtime.Session.CreateRequest.Tool, :t}],
turn_detection: {OpenAi.Realtime.Session.CreateRequest.TurnDetection, :t},
voice:
{:union,
enum: [
"alloy",
"ash",
"ballad",
"coral",
"echo",
"fable",
"onyx",
"nova",
"sage",
"shimmer",
"verse"
],
string: :generic}
]
end
end