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