diff --git a/Rakefile b/Rakefile index cde192ee..e97d158b 100644 --- a/Rakefile +++ b/Rakefile @@ -35,24 +35,25 @@ multitask(:syntax_tree) do inplace = /darwin|bsd/ =~ RUBY_PLATFORM ? %w[-i''] : %w[-i] uuid = SecureRandom.uuid - # `syntax_tree` has trouble with `rbs`'s class aliases + # `syntax_tree` has trouble with `rbs`'s class & module aliases sed = xargs + %w[sed -E] + inplace + %w[-e] - # annotate class aliases with a unique comment - pre = sed + ["s/class ([^ ]+) = (.+$)/# #{uuid}\\n\\1: \\2/", "--"] + # annotate unprocessable aliases with a unique comment + pre = sed + ["s/(class|module) ([^ ]+) = (.+$)/# \\1 #{uuid}\\n\\2: \\3/", "--"] fmt = xargs + %w[stree write --plugin=rbs --] - # remove the unique comment and transform class aliases to type aliases + # remove the unique comment and unprocessable aliases to type aliases subst = <<~SED - s/# #{uuid}// + s/# (class|module) #{uuid}/\\1/ t l1 b + : l1 - n - s/([^ :]+): (.+$)/class \\1 = \\2/ + N + s/\\n *([^:]+): (.+)$/ \\1 = \\2/ SED - # 1. delete the unique comment - # 2. if deletion happened, branch to label `l1`, else continue - # 3. transform the class alias to a type alias at label `l1` + # for each line: + # 1. try transform the unique comment into `class | module`, if successful, branch to label `l1`. + # 2. at label `l1`, join previously annotated line with `class | module` information. pst = sed + [subst, "--"] # transform class aliases to type aliases, which syntax tree has no trouble with diff --git a/lib/openai/base_model.rb b/lib/openai/base_model.rb index 5a63f4fa..a1f9e29c 100644 --- a/lib/openai/base_model.rb +++ b/lib/openai/base_model.rb @@ -48,7 +48,7 @@ def type_info(spec) type_info(spec.slice(:const, :enum, :union).first&.last) in Proc spec - in OpenAI::Converter | Class | Symbol + in OpenAI::Converter | Module | Symbol -> { spec } in true | false -> { OpenAI::BooleanModel } @@ -81,7 +81,7 @@ def coerce(target, value) else value end - in Class + in Module case target in -> { _1 <= NilClass } nil @@ -144,7 +144,7 @@ def try_strict_coerce(target, value) else [false, false, 0] end - in Class + in Module case [target, value] in [-> { _1 <= NilClass }, _] [true, nil, value.nil? ? 1 : 0] @@ -276,8 +276,6 @@ def try_strict_coerce(value) # @api private # - # @abstract - # # A value from among a specified list of options. OpenAPI enum values map to Ruby # values in the SDK as follows: # @@ -317,74 +315,70 @@ def try_strict_coerce(value) # puts(chat_model) # end # ``` - class Enum - extend OpenAI::Converter + module Enum + include OpenAI::Converter - class << self - # All of the valid Symbol values for this enum. - # - # @return [Array] - def values = (@values ||= constants.map { const_get(_1) }) + # All of the valid Symbol values for this enum. + # + # @return [Array] + def values = (@values ||= constants.map { const_get(_1) }) - # @api private - # - # Guard against thread safety issues by instantiating `@values`. - private def finalize! = values - end + # @api private + # + # Guard against thread safety issues by instantiating `@values`. + private def finalize! = values # @param other [Object] # # @return [Boolean] - def self.===(other) = values.include?(other) + def ===(other) = values.include?(other) # @param other [Object] # # @return [Boolean] - def self.==(other) - other.is_a?(Class) && other <= OpenAI::Enum && other.values.to_set == values.to_set + def ==(other) + other.is_a?(Module) && other.singleton_class.ancestors.include?(OpenAI::Enum) && other.values.to_set == values.to_set end - class << self - # @api private - # - # @param value [String, Symbol, Object] - # - # @return [Symbol, Object] - def coerce(value) - case value - in Symbol | String if values.include?(val = value.to_sym) - val - else - value - end + # @api private + # + # @param value [String, Symbol, Object] + # + # @return [Symbol, Object] + def coerce(value) + case value + in Symbol | String if values.include?(val = value.to_sym) + val + else + value end + end - # @!parse - # # @api private - # # - # # @param value [Symbol, Object] - # # - # # @return [Symbol, Object] - # def dump(value) = super + # @!parse + # # @api private + # # + # # @param value [Symbol, Object] + # # + # # @return [Symbol, Object] + # def dump(value) = super - # @api private - # - # @param value [Object] - # - # @return [Array(true, Object, nil), Array(false, Boolean, Integer)] - def try_strict_coerce(value) - return [true, value, 1] if values.include?(value) + # @api private + # + # @param value [Object] + # + # @return [Array(true, Object, nil), Array(false, Boolean, Integer)] + def try_strict_coerce(value) + return [true, value, 1] if values.include?(value) - case value - in Symbol | String if values.include?(val = value.to_sym) - [true, val, 1] + case value + in Symbol | String if values.include?(val = value.to_sym) + [true, val, 1] + else + case [value, values.first] + in [true | false, true | false] | [Integer, Integer] | [Symbol | String, Symbol] + [false, true, 0] else - case [value, values.first] - in [true | false, true | false] | [Integer, Integer] | [Symbol | String, Symbol] - [false, true, 0] - else - [false, false, 0] - end + [false, false, 0] end end end @@ -392,8 +386,6 @@ def try_strict_coerce(value) # @api private # - # @abstract - # # @example # ```ruby # # `chat_completion_content_part` is a `OpenAI::Models::Chat::ChatCompletionContentPart` @@ -422,89 +414,87 @@ def try_strict_coerce(value) # puts(chat_completion_content_part) # end # ``` - class Union - extend OpenAI::Converter + module Union + include OpenAI::Converter - class << self - # @api private - # - # All of the specified variant info for this union. - # - # @return [Array] - private def known_variants = (@known_variants ||= []) + # @api private + # + # All of the specified variant info for this union. + # + # @return [Array] + private def known_variants = (@known_variants ||= []) - # @api private - # - # @return [Array] - protected def derefed_variants - @known_variants.map { |key, variant_fn| [key, variant_fn.call] } - end + # @api private + # + # @return [Array] + protected def derefed_variants + @known_variants.map { |key, variant_fn| [key, variant_fn.call] } + end - # All of the specified variants for this union. - # - # @return [Array] - def variants - derefed_variants.map(&:last) + # All of the specified variants for this union. + # + # @return [Array] + def variants + derefed_variants.map(&:last) + end + + # @api private + # + # @param property [Symbol] + private def discriminator(property) + case property + in Symbol + @discriminator = property end + end - # @api private - # - # @param property [Symbol] - private def discriminator(property) - case property + # @api private + # + # @param key [Symbol, Hash{Symbol=>Object}, Proc, OpenAI::Converter, Class] + # + # @param spec [Hash{Symbol=>Object}, Proc, OpenAI::Converter, Class] . + # + # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const + # + # @option spec [Proc] :enum + # + # @option spec [Proc] :union + # + # @option spec [Boolean] :"nil?" + private def variant(key, spec = nil) + variant_info = + case key in Symbol - @discriminator = property + [key, OpenAI::Converter.type_info(spec)] + in Proc | OpenAI::Converter | Module | Hash + [nil, OpenAI::Converter.type_info(key)] end - end - # @api private - # - # @param key [Symbol, Hash{Symbol=>Object}, Proc, OpenAI::Converter, Class] - # - # @param spec [Hash{Symbol=>Object}, Proc, OpenAI::Converter, Class] . - # - # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const - # - # @option spec [Proc] :enum - # - # @option spec [Proc] :union - # - # @option spec [Boolean] :"nil?" - private def variant(key, spec = nil) - variant_info = - case key - in Symbol - [key, OpenAI::Converter.type_info(spec)] - in Proc | OpenAI::Converter | Class | Hash - [nil, OpenAI::Converter.type_info(key)] - end - - known_variants << variant_info - end + known_variants << variant_info + end - # @api private - # - # @param value [Object] - # - # @return [OpenAI::Converter, Class, nil] - private def resolve_variant(value) - case [@discriminator, value] - in [_, OpenAI::BaseModel] - value.class - in [Symbol, Hash] - key = - if value.key?(@discriminator) - value.fetch(@discriminator) - elsif value.key?((discriminator = @discriminator.to_s)) - value.fetch(discriminator) - end + # @api private + # + # @param value [Object] + # + # @return [OpenAI::Converter, Class, nil] + private def resolve_variant(value) + case [@discriminator, value] + in [_, OpenAI::BaseModel] + value.class + in [Symbol, Hash] + key = + if value.key?(@discriminator) + value.fetch(@discriminator) + elsif value.key?((discriminator = @discriminator.to_s)) + value.fetch(discriminator) + end - key = key.to_sym if key.is_a?(String) - _, resolved = known_variants.find { |k,| k == key } - resolved.nil? ? OpenAI::Unknown : resolved.call - else - nil - end + key = key.to_sym if key.is_a?(String) + _, resolved = known_variants.find { |k,| k == key } + resolved.nil? ? OpenAI::Unknown : resolved.call + else + nil end end @@ -514,7 +504,7 @@ def variants # @param other [Object] # # @return [Boolean] - def self.===(other) + def ===(other) known_variants.any? do |_, variant_fn| variant_fn.call === other end @@ -523,90 +513,88 @@ def self.===(other) # @param other [Object] # # @return [Boolean] - def self.==(other) - other.is_a?(Class) && other <= OpenAI::Union && other.derefed_variants == derefed_variants + def ==(other) + other.is_a?(Module) && other.singleton_class.ancestors.include?(OpenAI::Union) && other.derefed_variants == derefed_variants end - class << self - # @api private - # - # @param value [Object] - # - # @return [Object] - def coerce(value) - if (variant = resolve_variant(value)) - return OpenAI::Converter.coerce(variant, value) - end + # @api private + # + # @param value [Object] + # + # @return [Object] + def coerce(value) + if (variant = resolve_variant(value)) + return OpenAI::Converter.coerce(variant, value) + end - matches = [] + matches = [] - known_variants.each do |_, variant_fn| - variant = variant_fn.call + known_variants.each do |_, variant_fn| + variant = variant_fn.call - case OpenAI::Converter.try_strict_coerce(variant, value) - in [true, coerced, _] - return coerced - in [false, true, score] - matches << [score, variant] - in [false, false, _] - nil - end + case OpenAI::Converter.try_strict_coerce(variant, value) + in [true, coerced, _] + return coerced + in [false, true, score] + matches << [score, variant] + in [false, false, _] + nil end + end + + _, variant = matches.sort! { _2.first <=> _1.first }.find { |score,| !score.zero? } + variant.nil? ? value : OpenAI::Converter.coerce(variant, value) + end - _, variant = matches.sort! { _2.first <=> _1.first }.find { |score,| !score.zero? } - variant.nil? ? value : OpenAI::Converter.coerce(variant, value) + # @api private + # + # @param value [Object] + # + # @return [Object] + def dump(value) + if (variant = resolve_variant(value)) + return OpenAI::Converter.dump(variant, value) end - # @api private - # - # @param value [Object] - # - # @return [Object] - def dump(value) - if (variant = resolve_variant(value)) + known_variants.each do |_, variant_fn| + variant = variant_fn.call + if variant === value return OpenAI::Converter.dump(variant, value) end - - known_variants.each do |_, variant_fn| - variant = variant_fn.call - if variant === value - return OpenAI::Converter.dump(variant, value) - end - end - value end + value + end - # @api private - # - # @param value [Object] - # - # @return [Array(true, Object, nil), Array(false, Boolean, Integer)] - def try_strict_coerce(value) - # TODO(ruby) this will result in super linear decoding behaviour for nested unions - # follow up with a decoding context that captures current strictness levels - if (variant = resolve_variant(value)) - return Converter.try_strict_coerce(variant, value) - end + # @api private + # + # @param value [Object] + # + # @return [Array(true, Object, nil), Array(false, Boolean, Integer)] + def try_strict_coerce(value) + # TODO(ruby) this will result in super linear decoding behaviour for nested unions + # follow up with a decoding context that captures current strictness levels + if (variant = resolve_variant(value)) + return Converter.try_strict_coerce(variant, value) + end - coercible = false - max_score = 0 + coercible = false + max_score = 0 - known_variants.each do |_, variant_fn| - variant = variant_fn.call + known_variants.each do |_, variant_fn| + variant = variant_fn.call - case OpenAI::Converter.try_strict_coerce(variant, value) - in [true, coerced, score] - return [true, coerced, score] - in [false, true, score] - coercible = true - max_score = [max_score, score].max - in [false, false, _] - nil - end + case OpenAI::Converter.try_strict_coerce(variant, value) + in [true, coerced, score] + return [true, coerced, score] + in [false, true, score] + coercible = true + max_score = [max_score, score].max + in [false, false, _] + nil end - - [false, coercible, max_score] end + + [false, coercible, max_score] end # rubocop:enable Style/CaseEquality @@ -953,7 +941,7 @@ def defaults = (@defaults ||= {}) private def add_field(name_sym, required:, type_info:, spec:) type_fn, info = case type_info - in Proc | Class | OpenAI::Converter + in Proc | Module | OpenAI::Converter [OpenAI::Converter.type_info({**spec, union: type_info}), spec] in Hash [OpenAI::Converter.type_info(type_info), type_info] @@ -1225,7 +1213,7 @@ def initialize(data = {}) type = self.class.fields[mapped]&.fetch(:type) stored = case [type, value] - in [Class, Hash] if type <= OpenAI::BaseModel + in [Module, Hash] if type <= OpenAI::BaseModel type.new(value) in [OpenAI::ArrayOf, Array] | [OpenAI::HashOf, Hash] type.coerce(value) diff --git a/lib/openai/models/all_models.rb b/lib/openai/models/all_models.rb index edf0c8df..f11ccb01 100644 --- a/lib/openai/models/all_models.rb +++ b/lib/openai/models/all_models.rb @@ -2,16 +2,18 @@ module OpenAI module Models - # @abstract - class AllModels < OpenAI::Union + module AllModels + extend OpenAI::Union + variant String variant enum: -> { OpenAI::Models::ChatModel } variant enum: -> { OpenAI::Models::AllModels::UnionMember2 } - # @abstract - class UnionMember2 < OpenAI::Enum + module UnionMember2 + extend OpenAI::Enum + O1_PRO = :"o1-pro" O1_PRO_2025_03_19 = :"o1-pro-2025-03-19" COMPUTER_USE_PREVIEW = :"computer-use-preview" diff --git a/lib/openai/models/audio/speech_create_params.rb b/lib/openai/models/audio/speech_create_params.rb index 2477a4ca..b7efc98d 100644 --- a/lib/openai/models/audio/speech_create_params.rb +++ b/lib/openai/models/audio/speech_create_params.rb @@ -76,11 +76,11 @@ class SpeechCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # One of the available [TTS models](https://platform.openai.com/docs/models#tts): # `tts-1`, `tts-1-hd` or `gpt-4o-mini-tts`. - class Model < OpenAI::Union + module Model + extend OpenAI::Union + variant String # One of the available [TTS models](https://platform.openai.com/docs/models#tts): `tts-1`, `tts-1-hd` or `gpt-4o-mini-tts`. @@ -93,13 +93,13 @@ class Model < OpenAI::Union # end end - # @abstract - # # The voice to use when generating the audio. Supported voices are `alloy`, `ash`, # `coral`, `echo`, `fable`, `onyx`, `nova`, `sage` and `shimmer`. Previews of the # voices are available in the # [Text to speech guide](https://platform.openai.com/docs/guides/text-to-speech#voice-options). - class Voice < OpenAI::Enum + module Voice + extend OpenAI::Enum + ALLOY = :alloy ASH = :ash CORAL = :coral @@ -113,11 +113,11 @@ class Voice < OpenAI::Enum finalize! end - # @abstract - # # The format to audio in. Supported formats are `mp3`, `opus`, `aac`, `flac`, # `wav`, and `pcm`. - class ResponseFormat < OpenAI::Enum + module ResponseFormat + extend OpenAI::Enum + MP3 = :mp3 OPUS = :opus AAC = :aac diff --git a/lib/openai/models/audio/speech_model.rb b/lib/openai/models/audio/speech_model.rb index 26aae9d6..b85a4f1e 100644 --- a/lib/openai/models/audio/speech_model.rb +++ b/lib/openai/models/audio/speech_model.rb @@ -3,8 +3,9 @@ module OpenAI module Models module Audio - # @abstract - class SpeechModel < OpenAI::Enum + module SpeechModel + extend OpenAI::Enum + TTS_1 = :"tts-1" TTS_1_HD = :"tts-1-hd" GPT_4O_MINI_TTS = :"gpt-4o-mini-tts" diff --git a/lib/openai/models/audio/transcription_create_params.rb b/lib/openai/models/audio/transcription_create_params.rb index 3ff8c770..1ec3b0ac 100644 --- a/lib/openai/models/audio/transcription_create_params.rb +++ b/lib/openai/models/audio/transcription_create_params.rb @@ -131,12 +131,12 @@ class TranscriptionCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # ID of the model to use. The options are `gpt-4o-transcribe`, # `gpt-4o-mini-transcribe`, and `whisper-1` (which is powered by our open source # Whisper V2 model). - class Model < OpenAI::Union + module Model + extend OpenAI::Union + variant String # ID of the model to use. The options are `gpt-4o-transcribe`, `gpt-4o-mini-transcribe`, and `whisper-1` (which is powered by our open source Whisper V2 model). @@ -149,8 +149,9 @@ class Model < OpenAI::Union # end end - # @abstract - class TimestampGranularity < OpenAI::Enum + module TimestampGranularity + extend OpenAI::Enum + WORD = :word SEGMENT = :segment diff --git a/lib/openai/models/audio/transcription_create_response.rb b/lib/openai/models/audio/transcription_create_response.rb index 2ad0d933..07d30d90 100644 --- a/lib/openai/models/audio/transcription_create_response.rb +++ b/lib/openai/models/audio/transcription_create_response.rb @@ -3,11 +3,11 @@ module OpenAI module Models module Audio - # @abstract - # # Represents a transcription response returned by model, based on the provided # input. - class TranscriptionCreateResponse < OpenAI::Union + module TranscriptionCreateResponse + extend OpenAI::Union + # Represents a transcription response returned by model, based on the provided input. variant -> { OpenAI::Models::Audio::Transcription } diff --git a/lib/openai/models/audio/transcription_include.rb b/lib/openai/models/audio/transcription_include.rb index 97303675..fc9e716d 100644 --- a/lib/openai/models/audio/transcription_include.rb +++ b/lib/openai/models/audio/transcription_include.rb @@ -3,8 +3,9 @@ module OpenAI module Models module Audio - # @abstract - class TranscriptionInclude < OpenAI::Enum + module TranscriptionInclude + extend OpenAI::Enum + LOGPROBS = :logprobs finalize! diff --git a/lib/openai/models/audio/transcription_stream_event.rb b/lib/openai/models/audio/transcription_stream_event.rb index 4bddaa1b..be40014b 100644 --- a/lib/openai/models/audio/transcription_stream_event.rb +++ b/lib/openai/models/audio/transcription_stream_event.rb @@ -3,13 +3,13 @@ module OpenAI module Models module Audio - # @abstract - # # Emitted when there is an additional text delta. This is also the first event # emitted when the transcription starts. Only emitted when you # [create a transcription](https://platform.openai.com/docs/api-reference/audio/create-transcription) # with the `Stream` parameter set to `true`. - class TranscriptionStreamEvent < OpenAI::Union + module TranscriptionStreamEvent + extend OpenAI::Union + discriminator :type # Emitted when there is an additional text delta. This is also the first event emitted when the transcription starts. Only emitted when you [create a transcription](https://platform.openai.com/docs/api-reference/audio/create-transcription) with the `Stream` parameter set to `true`. diff --git a/lib/openai/models/audio/translation_create_params.rb b/lib/openai/models/audio/translation_create_params.rb index 0b31b58c..087b2d38 100644 --- a/lib/openai/models/audio/translation_create_params.rb +++ b/lib/openai/models/audio/translation_create_params.rb @@ -72,11 +72,11 @@ class TranslationCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # ID of the model to use. Only `whisper-1` (which is powered by our open source # Whisper V2 model) is currently available. - class Model < OpenAI::Union + module Model + extend OpenAI::Union + variant String # ID of the model to use. Only `whisper-1` (which is powered by our open source Whisper V2 model) is currently available. @@ -89,11 +89,11 @@ class Model < OpenAI::Union # end end - # @abstract - # # The format of the output, in one of these options: `json`, `text`, `srt`, # `verbose_json`, or `vtt`. - class ResponseFormat < OpenAI::Enum + module ResponseFormat + extend OpenAI::Enum + JSON = :json TEXT = :text SRT = :srt diff --git a/lib/openai/models/audio/translation_create_response.rb b/lib/openai/models/audio/translation_create_response.rb index 94020236..4d7cf38c 100644 --- a/lib/openai/models/audio/translation_create_response.rb +++ b/lib/openai/models/audio/translation_create_response.rb @@ -3,8 +3,9 @@ module OpenAI module Models module Audio - # @abstract - class TranslationCreateResponse < OpenAI::Union + module TranslationCreateResponse + extend OpenAI::Union + variant -> { OpenAI::Models::Audio::Translation } variant -> { OpenAI::Models::Audio::TranslationVerbose } diff --git a/lib/openai/models/audio_model.rb b/lib/openai/models/audio_model.rb index 88507173..cb25d87b 100644 --- a/lib/openai/models/audio_model.rb +++ b/lib/openai/models/audio_model.rb @@ -2,8 +2,9 @@ module OpenAI module Models - # @abstract - class AudioModel < OpenAI::Enum + module AudioModel + extend OpenAI::Enum + WHISPER_1 = :"whisper-1" GPT_4O_TRANSCRIBE = :"gpt-4o-transcribe" GPT_4O_MINI_TRANSCRIBE = :"gpt-4o-mini-transcribe" diff --git a/lib/openai/models/audio_response_format.rb b/lib/openai/models/audio_response_format.rb index 9593d816..105ac628 100644 --- a/lib/openai/models/audio_response_format.rb +++ b/lib/openai/models/audio_response_format.rb @@ -2,12 +2,12 @@ module OpenAI module Models - # @abstract - # # The format of the output, in one of these options: `json`, `text`, `srt`, # `verbose_json`, or `vtt`. For `gpt-4o-transcribe` and `gpt-4o-mini-transcribe`, # the only supported format is `json`. - class AudioResponseFormat < OpenAI::Enum + module AudioResponseFormat + extend OpenAI::Enum + JSON = :json TEXT = :text SRT = :srt diff --git a/lib/openai/models/batch.rb b/lib/openai/models/batch.rb index 91778516..dcf830ae 100644 --- a/lib/openai/models/batch.rb +++ b/lib/openai/models/batch.rb @@ -224,10 +224,10 @@ class Batch < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The current status of the batch. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + VALIDATING = :validating FAILED = :failed IN_PROGRESS = :in_progress diff --git a/lib/openai/models/batch_create_params.rb b/lib/openai/models/batch_create_params.rb index 593eb7d2..35dc43cb 100644 --- a/lib/openai/models/batch_create_params.rb +++ b/lib/openai/models/batch_create_params.rb @@ -59,23 +59,23 @@ class BatchCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The time frame within which the batch should be processed. Currently only `24h` # is supported. - class CompletionWindow < OpenAI::Enum + module CompletionWindow + extend OpenAI::Enum + NUMBER_24H = :"24h" finalize! end - # @abstract - # # The endpoint to be used for all requests in the batch. Currently # `/v1/responses`, `/v1/chat/completions`, `/v1/embeddings`, and `/v1/completions` # are supported. Note that `/v1/embeddings` batches are also restricted to a # maximum of 50,000 embedding inputs across all requests in the batch. - class Endpoint < OpenAI::Enum + module Endpoint + extend OpenAI::Enum + V1_RESPONSES = :"/v1/responses" V1_CHAT_COMPLETIONS = :"/v1/chat/completions" V1_EMBEDDINGS = :"/v1/embeddings" diff --git a/lib/openai/models/beta/assistant_create_params.rb b/lib/openai/models/beta/assistant_create_params.rb index c076655d..a788241c 100644 --- a/lib/openai/models/beta/assistant_create_params.rb +++ b/lib/openai/models/beta/assistant_create_params.rb @@ -157,14 +157,14 @@ class AssistantCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # ID of the model to use. You can use the # [List models](https://platform.openai.com/docs/api-reference/models/list) API to # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. - class Model < OpenAI::Union + module Model + extend OpenAI::Union + variant String # ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. diff --git a/lib/openai/models/beta/assistant_list_params.rb b/lib/openai/models/beta/assistant_list_params.rb index 2deef264..5586ebe7 100644 --- a/lib/openai/models/beta/assistant_list_params.rb +++ b/lib/openai/models/beta/assistant_list_params.rb @@ -67,11 +67,11 @@ class AssistantListParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC = :asc DESC = :desc diff --git a/lib/openai/models/beta/assistant_response_format_option.rb b/lib/openai/models/beta/assistant_response_format_option.rb index 1e0036f2..da77528c 100644 --- a/lib/openai/models/beta/assistant_response_format_option.rb +++ b/lib/openai/models/beta/assistant_response_format_option.rb @@ -3,8 +3,6 @@ module OpenAI module Models module Beta - # @abstract - # # Specifies the format that the model must output. Compatible with # [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), # [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), @@ -25,7 +23,9 @@ module Beta # the message content may be partially cut off if `finish_reason="length"`, which # indicates the generation exceeded `max_tokens` or the conversation exceeded the # max context length. - class AssistantResponseFormatOption < OpenAI::Union + module AssistantResponseFormatOption + extend OpenAI::Union + # `auto` is the default value variant const: :auto diff --git a/lib/openai/models/beta/assistant_stream_event.rb b/lib/openai/models/beta/assistant_stream_event.rb index fdc598d7..02fad932 100644 --- a/lib/openai/models/beta/assistant_stream_event.rb +++ b/lib/openai/models/beta/assistant_stream_event.rb @@ -3,8 +3,6 @@ module OpenAI module Models module Beta - # @abstract - # # Represents an event emitted when streaming a Run. # # Each event in a server-sent events stream has an `event` and `data` property: @@ -25,7 +23,9 @@ module Beta # gracefully in your code. See the # [Assistants API quickstart](https://platform.openai.com/docs/assistants/overview) # to learn how to integrate the Assistants API with streaming. - class AssistantStreamEvent < OpenAI::Union + module AssistantStreamEvent + extend OpenAI::Union + discriminator :event # Occurs when a new [thread](https://platform.openai.com/docs/api-reference/threads/object) is created. diff --git a/lib/openai/models/beta/assistant_tool.rb b/lib/openai/models/beta/assistant_tool.rb index 0ea9bc07..ecd6b3db 100644 --- a/lib/openai/models/beta/assistant_tool.rb +++ b/lib/openai/models/beta/assistant_tool.rb @@ -3,8 +3,9 @@ module OpenAI module Models module Beta - # @abstract - class AssistantTool < OpenAI::Union + module AssistantTool + extend OpenAI::Union + discriminator :type variant :code_interpreter, -> { OpenAI::Models::Beta::CodeInterpreterTool } diff --git a/lib/openai/models/beta/assistant_tool_choice.rb b/lib/openai/models/beta/assistant_tool_choice.rb index 9aba0349..78dd540e 100644 --- a/lib/openai/models/beta/assistant_tool_choice.rb +++ b/lib/openai/models/beta/assistant_tool_choice.rb @@ -30,10 +30,10 @@ class AssistantToolChoice < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The type of the tool. If type is `function`, the function name must be set - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + FUNCTION = :function CODE_INTERPRETER = :code_interpreter FILE_SEARCH = :file_search diff --git a/lib/openai/models/beta/assistant_tool_choice_option.rb b/lib/openai/models/beta/assistant_tool_choice_option.rb index 62a2c795..560a4a80 100644 --- a/lib/openai/models/beta/assistant_tool_choice_option.rb +++ b/lib/openai/models/beta/assistant_tool_choice_option.rb @@ -3,8 +3,6 @@ module OpenAI module Models module Beta - # @abstract - # # Controls which (if any) tool is called by the model. `none` means the model will # not call any tools and instead generates a message. `auto` is the default value # and means the model can pick between generating a message or calling one or more @@ -12,20 +10,22 @@ module Beta # to the user. Specifying a particular tool like `{"type": "file_search"}` or # `{"type": "function", "function": {"name": "my_function"}}` forces the model to # call that tool. - class AssistantToolChoiceOption < OpenAI::Union + module AssistantToolChoiceOption + extend OpenAI::Union + # `none` means the model will not call any tools and instead generates a message. `auto` means the model can pick between generating a message or calling one or more tools. `required` means the model must call one or more tools before responding to the user. variant enum: -> { OpenAI::Models::Beta::AssistantToolChoiceOption::Auto } # Specifies a tool the model should use. Use to force the model to call a specific tool. variant -> { OpenAI::Models::Beta::AssistantToolChoice } - # @abstract - # # `none` means the model will not call any tools and instead generates a message. # `auto` means the model can pick between generating a message or calling one or # more tools. `required` means the model must call one or more tools before # responding to the user. - class Auto < OpenAI::Enum + module Auto + extend OpenAI::Enum + NONE = :none AUTO = :auto REQUIRED = :required diff --git a/lib/openai/models/beta/assistant_update_params.rb b/lib/openai/models/beta/assistant_update_params.rb index 494df652..4a6636f6 100644 --- a/lib/openai/models/beta/assistant_update_params.rb +++ b/lib/openai/models/beta/assistant_update_params.rb @@ -161,14 +161,14 @@ class AssistantUpdateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # ID of the model to use. You can use the # [List models](https://platform.openai.com/docs/api-reference/models/list) API to # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. - class Model < OpenAI::Union + module Model + extend OpenAI::Union + # @!group O3_MINI = :"o3-mini" diff --git a/lib/openai/models/beta/file_search_tool.rb b/lib/openai/models/beta/file_search_tool.rb index 333f1770..102489f1 100644 --- a/lib/openai/models/beta/file_search_tool.rb +++ b/lib/openai/models/beta/file_search_tool.rb @@ -105,11 +105,11 @@ class RankingOptions < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The ranker to use for the file search. If not specified will use the `auto` # ranker. - class Ranker < OpenAI::Enum + module Ranker + extend OpenAI::Enum + AUTO = :auto DEFAULT_2024_08_21 = :default_2024_08_21 diff --git a/lib/openai/models/beta/message_stream_event.rb b/lib/openai/models/beta/message_stream_event.rb index b110bfed..5ea73994 100644 --- a/lib/openai/models/beta/message_stream_event.rb +++ b/lib/openai/models/beta/message_stream_event.rb @@ -3,12 +3,12 @@ module OpenAI module Models module Beta - # @abstract - # # Occurs when a # [message](https://platform.openai.com/docs/api-reference/messages/object) is # created. - class MessageStreamEvent < OpenAI::Union + module MessageStreamEvent + extend OpenAI::Union + discriminator :event # Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) is created. diff --git a/lib/openai/models/beta/run_step_stream_event.rb b/lib/openai/models/beta/run_step_stream_event.rb index 82c7266e..45e973df 100644 --- a/lib/openai/models/beta/run_step_stream_event.rb +++ b/lib/openai/models/beta/run_step_stream_event.rb @@ -3,12 +3,12 @@ module OpenAI module Models module Beta - # @abstract - # # Occurs when a # [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) # is created. - class RunStepStreamEvent < OpenAI::Union + module RunStepStreamEvent + extend OpenAI::Union + discriminator :event # Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) is created. diff --git a/lib/openai/models/beta/run_stream_event.rb b/lib/openai/models/beta/run_stream_event.rb index f8548343..f506c9e8 100644 --- a/lib/openai/models/beta/run_stream_event.rb +++ b/lib/openai/models/beta/run_stream_event.rb @@ -3,11 +3,11 @@ module OpenAI module Models module Beta - # @abstract - # # Occurs when a new # [run](https://platform.openai.com/docs/api-reference/runs/object) is created. - class RunStreamEvent < OpenAI::Union + module RunStreamEvent + extend OpenAI::Union + discriminator :event # Occurs when a new [run](https://platform.openai.com/docs/api-reference/runs/object) is created. diff --git a/lib/openai/models/beta/thread_create_and_run_params.rb b/lib/openai/models/beta/thread_create_and_run_params.rb index a621329a..3839720c 100644 --- a/lib/openai/models/beta/thread_create_and_run_params.rb +++ b/lib/openai/models/beta/thread_create_and_run_params.rb @@ -210,13 +210,13 @@ class ThreadCreateAndRunParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The ID of the [Model](https://platform.openai.com/docs/api-reference/models) to # be used to execute this run. If a value is provided here, it will override the # model associated with the assistant. If not, the model associated with the # assistant will be used. - class Model < OpenAI::Union + module Model + extend OpenAI::Union + variant String # The ID of the [Model](https://platform.openai.com/docs/api-reference/models) to be used to execute this run. If a value is provided here, it will override the model associated with the assistant. If not, the model associated with the assistant will be used. @@ -323,10 +323,10 @@ class Message < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The text contents of the message. - class Content < OpenAI::Union + module Content + extend OpenAI::Union + MessageContentPartParamArray = OpenAI::ArrayOf[union: -> { OpenAI::Models::Beta::Threads::MessageContentPartParam }] @@ -343,15 +343,15 @@ class Content < OpenAI::Union # end end - # @abstract - # # The role of the entity that is creating the message. Allowed values include: # # - `user`: Indicates the message is sent by an actual user and should be used in # most cases to represent user-generated messages. # - `assistant`: Indicates the message is generated by the assistant. Use this # value to insert messages from the assistant into the conversation. - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER = :user ASSISTANT = :assistant @@ -388,8 +388,9 @@ class Attachment < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + discriminator :type variant :code_interpreter, -> { OpenAI::Models::Beta::CodeInterpreterTool } @@ -637,8 +638,9 @@ class FileSearch < OpenAI::BaseModel end end - # @abstract - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + variant -> { OpenAI::Models::Beta::CodeInterpreterTool } variant -> { OpenAI::Models::Beta::FileSearchTool } @@ -680,13 +682,13 @@ class TruncationStrategy < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The truncation strategy to use for the thread. The default is `auto`. If set to # `last_messages`, the thread will be truncated to the n most recent messages in # the thread. When set to `auto`, messages in the middle of the thread will be # dropped to fit the context length of the model, `max_prompt_tokens`. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + AUTO = :auto LAST_MESSAGES = :last_messages diff --git a/lib/openai/models/beta/thread_create_params.rb b/lib/openai/models/beta/thread_create_params.rb index 610a9823..c33adb43 100644 --- a/lib/openai/models/beta/thread_create_params.rb +++ b/lib/openai/models/beta/thread_create_params.rb @@ -96,10 +96,10 @@ class Message < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The text contents of the message. - class Content < OpenAI::Union + module Content + extend OpenAI::Union + MessageContentPartParamArray = OpenAI::ArrayOf[union: -> { OpenAI::Models::Beta::Threads::MessageContentPartParam }] @@ -116,15 +116,15 @@ class Content < OpenAI::Union # end end - # @abstract - # # The role of the entity that is creating the message. Allowed values include: # # - `user`: Indicates the message is sent by an actual user and should be used in # most cases to represent user-generated messages. # - `assistant`: Indicates the message is generated by the assistant. Use this # value to insert messages from the assistant into the conversation. - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER = :user ASSISTANT = :assistant @@ -161,8 +161,9 @@ class Attachment < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + discriminator :type variant :code_interpreter, -> { OpenAI::Models::Beta::CodeInterpreterTool } diff --git a/lib/openai/models/beta/threads/annotation.rb b/lib/openai/models/beta/threads/annotation.rb index 3f0a547d..99110d38 100644 --- a/lib/openai/models/beta/threads/annotation.rb +++ b/lib/openai/models/beta/threads/annotation.rb @@ -4,12 +4,12 @@ module OpenAI module Models module Beta module Threads - # @abstract - # # A citation within the message that points to a specific quote from a specific # File associated with the assistant or the message. Generated when the assistant # uses the "file_search" tool to search files. - class Annotation < OpenAI::Union + module Annotation + extend OpenAI::Union + discriminator :type # A citation within the message that points to a specific quote from a specific File associated with the assistant or the message. Generated when the assistant uses the "file_search" tool to search files. diff --git a/lib/openai/models/beta/threads/annotation_delta.rb b/lib/openai/models/beta/threads/annotation_delta.rb index 6b22d5be..66fbd501 100644 --- a/lib/openai/models/beta/threads/annotation_delta.rb +++ b/lib/openai/models/beta/threads/annotation_delta.rb @@ -4,12 +4,12 @@ module OpenAI module Models module Beta module Threads - # @abstract - # # A citation within the message that points to a specific quote from a specific # File associated with the assistant or the message. Generated when the assistant # uses the "file_search" tool to search files. - class AnnotationDelta < OpenAI::Union + module AnnotationDelta + extend OpenAI::Union + discriminator :type # A citation within the message that points to a specific quote from a specific File associated with the assistant or the message. Generated when the assistant uses the "file_search" tool to search files. diff --git a/lib/openai/models/beta/threads/image_file.rb b/lib/openai/models/beta/threads/image_file.rb index 2156325f..fab8e1fc 100644 --- a/lib/openai/models/beta/threads/image_file.rb +++ b/lib/openai/models/beta/threads/image_file.rb @@ -32,11 +32,11 @@ class ImageFile < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Specifies the detail level of the image if specified by the user. `low` uses # fewer tokens, you can opt in to high resolution using `high`. - class Detail < OpenAI::Enum + module Detail + extend OpenAI::Enum + AUTO = :auto LOW = :low HIGH = :high diff --git a/lib/openai/models/beta/threads/image_file_delta.rb b/lib/openai/models/beta/threads/image_file_delta.rb index 81caa23f..e40aa711 100644 --- a/lib/openai/models/beta/threads/image_file_delta.rb +++ b/lib/openai/models/beta/threads/image_file_delta.rb @@ -36,11 +36,11 @@ class ImageFileDelta < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Specifies the detail level of the image if specified by the user. `low` uses # fewer tokens, you can opt in to high resolution using `high`. - class Detail < OpenAI::Enum + module Detail + extend OpenAI::Enum + AUTO = :auto LOW = :low HIGH = :high diff --git a/lib/openai/models/beta/threads/image_url.rb b/lib/openai/models/beta/threads/image_url.rb index 8c08ac9d..59dcae47 100644 --- a/lib/openai/models/beta/threads/image_url.rb +++ b/lib/openai/models/beta/threads/image_url.rb @@ -31,11 +31,11 @@ class ImageURL < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Specifies the detail level of the image. `low` uses fewer tokens, you can opt in # to high resolution using `high`. Default value is `auto` - class Detail < OpenAI::Enum + module Detail + extend OpenAI::Enum + AUTO = :auto LOW = :low HIGH = :high diff --git a/lib/openai/models/beta/threads/image_url_delta.rb b/lib/openai/models/beta/threads/image_url_delta.rb index ad6177d4..787dd26c 100644 --- a/lib/openai/models/beta/threads/image_url_delta.rb +++ b/lib/openai/models/beta/threads/image_url_delta.rb @@ -35,11 +35,11 @@ class ImageURLDelta < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Specifies the detail level of the image. `low` uses fewer tokens, you can opt in # to high resolution using `high`. - class Detail < OpenAI::Enum + module Detail + extend OpenAI::Enum + AUTO = :auto LOW = :low HIGH = :high diff --git a/lib/openai/models/beta/threads/message.rb b/lib/openai/models/beta/threads/message.rb index 0a6b9d1b..da2a8d75 100644 --- a/lib/openai/models/beta/threads/message.rb +++ b/lib/openai/models/beta/threads/message.rb @@ -172,8 +172,9 @@ class Attachment < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + variant -> { OpenAI::Models::Beta::CodeInterpreterTool } variant -> { OpenAI::Models::Beta::Threads::Message::Attachment::Tool::AssistantToolsFileSearchTypeOnly } @@ -217,10 +218,10 @@ class IncompleteDetails < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The reason the message is incomplete. - class Reason < OpenAI::Enum + module Reason + extend OpenAI::Enum + CONTENT_FILTER = :content_filter MAX_TOKENS = :max_tokens RUN_CANCELLED = :run_cancelled @@ -231,21 +232,21 @@ class Reason < OpenAI::Enum end end - # @abstract - # # The entity that produced the message. One of `user` or `assistant`. - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER = :user ASSISTANT = :assistant finalize! end - # @abstract - # # The status of the message, which can be either `in_progress`, `incomplete`, or # `completed`. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress INCOMPLETE = :incomplete COMPLETED = :completed diff --git a/lib/openai/models/beta/threads/message_content.rb b/lib/openai/models/beta/threads/message_content.rb index 7e6e4698..40ea6954 100644 --- a/lib/openai/models/beta/threads/message_content.rb +++ b/lib/openai/models/beta/threads/message_content.rb @@ -4,11 +4,11 @@ module OpenAI module Models module Beta module Threads - # @abstract - # # References an image [File](https://platform.openai.com/docs/api-reference/files) # in the content of a message. - class MessageContent < OpenAI::Union + module MessageContent + extend OpenAI::Union + discriminator :type # References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message. diff --git a/lib/openai/models/beta/threads/message_content_delta.rb b/lib/openai/models/beta/threads/message_content_delta.rb index bcf970c1..634b517c 100644 --- a/lib/openai/models/beta/threads/message_content_delta.rb +++ b/lib/openai/models/beta/threads/message_content_delta.rb @@ -4,11 +4,11 @@ module OpenAI module Models module Beta module Threads - # @abstract - # # References an image [File](https://platform.openai.com/docs/api-reference/files) # in the content of a message. - class MessageContentDelta < OpenAI::Union + module MessageContentDelta + extend OpenAI::Union + discriminator :type # References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message. diff --git a/lib/openai/models/beta/threads/message_content_part_param.rb b/lib/openai/models/beta/threads/message_content_part_param.rb index 74766529..4ae935f2 100644 --- a/lib/openai/models/beta/threads/message_content_part_param.rb +++ b/lib/openai/models/beta/threads/message_content_part_param.rb @@ -4,11 +4,11 @@ module OpenAI module Models module Beta module Threads - # @abstract - # # References an image [File](https://platform.openai.com/docs/api-reference/files) # in the content of a message. - class MessageContentPartParam < OpenAI::Union + module MessageContentPartParam + extend OpenAI::Union + discriminator :type # References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message. diff --git a/lib/openai/models/beta/threads/message_create_params.rb b/lib/openai/models/beta/threads/message_create_params.rb index 480f9a24..1fcbaa76 100644 --- a/lib/openai/models/beta/threads/message_create_params.rb +++ b/lib/openai/models/beta/threads/message_create_params.rb @@ -56,10 +56,10 @@ class MessageCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The text contents of the message. - class Content < OpenAI::Union + module Content + extend OpenAI::Union + MessageContentPartParamArray = OpenAI::ArrayOf[union: -> { OpenAI::Models::Beta::Threads::MessageContentPartParam }] @@ -76,15 +76,15 @@ class Content < OpenAI::Union # end end - # @abstract - # # The role of the entity that is creating the message. Allowed values include: # # - `user`: Indicates the message is sent by an actual user and should be used in # most cases to represent user-generated messages. # - `assistant`: Indicates the message is generated by the assistant. Use this # value to insert messages from the assistant into the conversation. - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER = :user ASSISTANT = :assistant @@ -121,8 +121,9 @@ class Attachment < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + discriminator :type variant :code_interpreter, -> { OpenAI::Models::Beta::CodeInterpreterTool } diff --git a/lib/openai/models/beta/threads/message_delta.rb b/lib/openai/models/beta/threads/message_delta.rb index f3bc9993..46d5d46f 100644 --- a/lib/openai/models/beta/threads/message_delta.rb +++ b/lib/openai/models/beta/threads/message_delta.rb @@ -35,10 +35,10 @@ class MessageDelta < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The entity that produced the message. One of `user` or `assistant`. - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER = :user ASSISTANT = :assistant diff --git a/lib/openai/models/beta/threads/message_list_params.rb b/lib/openai/models/beta/threads/message_list_params.rb index 1a302d8c..816ed048 100644 --- a/lib/openai/models/beta/threads/message_list_params.rb +++ b/lib/openai/models/beta/threads/message_list_params.rb @@ -79,11 +79,11 @@ class MessageListParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC = :asc DESC = :desc diff --git a/lib/openai/models/beta/threads/run.rb b/lib/openai/models/beta/threads/run.rb index 02c20e73..2d7b18a8 100644 --- a/lib/openai/models/beta/threads/run.rb +++ b/lib/openai/models/beta/threads/run.rb @@ -305,11 +305,11 @@ class IncompleteDetails < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The reason why the run is incomplete. This will point to which specific token # limit was reached over the course of the run. - class Reason < OpenAI::Enum + module Reason + extend OpenAI::Enum + MAX_COMPLETION_TOKENS = :max_completion_tokens MAX_PROMPT_TOKENS = :max_prompt_tokens @@ -340,10 +340,10 @@ class LastError < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # One of `server_error`, `rate_limit_exceeded`, or `invalid_prompt`. - class Code < OpenAI::Enum + module Code + extend OpenAI::Enum + SERVER_ERROR = :server_error RATE_LIMIT_EXCEEDED = :rate_limit_exceeded INVALID_PROMPT = :invalid_prompt @@ -424,13 +424,13 @@ class TruncationStrategy < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The truncation strategy to use for the thread. The default is `auto`. If set to # `last_messages`, the thread will be truncated to the n most recent messages in # the thread. When set to `auto`, messages in the middle of the thread will be # dropped to fit the context length of the model, `max_prompt_tokens`. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + AUTO = :auto LAST_MESSAGES = :last_messages diff --git a/lib/openai/models/beta/threads/run_create_params.rb b/lib/openai/models/beta/threads/run_create_params.rb index b6b3564f..f1e8d793 100644 --- a/lib/openai/models/beta/threads/run_create_params.rb +++ b/lib/openai/models/beta/threads/run_create_params.rb @@ -285,10 +285,10 @@ class AdditionalMessage < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The text contents of the message. - class Content < OpenAI::Union + module Content + extend OpenAI::Union + MessageContentPartParamArray = OpenAI::ArrayOf[union: -> { OpenAI::Models::Beta::Threads::MessageContentPartParam }] @@ -305,15 +305,15 @@ class Content < OpenAI::Union # end end - # @abstract - # # The role of the entity that is creating the message. Allowed values include: # # - `user`: Indicates the message is sent by an actual user and should be used in # most cases to represent user-generated messages. # - `assistant`: Indicates the message is generated by the assistant. Use this # value to insert messages from the assistant into the conversation. - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER = :user ASSISTANT = :assistant @@ -350,8 +350,9 @@ class Attachment < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + discriminator :type variant :code_interpreter, -> { OpenAI::Models::Beta::CodeInterpreterTool } @@ -383,13 +384,13 @@ class FileSearch < OpenAI::BaseModel end end - # @abstract - # # The ID of the [Model](https://platform.openai.com/docs/api-reference/models) to # be used to execute this run. If a value is provided here, it will override the # model associated with the assistant. If not, the model associated with the # assistant will be used. - class Model < OpenAI::Union + module Model + extend OpenAI::Union + variant String # The ID of the [Model](https://platform.openai.com/docs/api-reference/models) to be used to execute this run. If a value is provided here, it will override the model associated with the assistant. If not, the model associated with the assistant will be used. @@ -430,13 +431,13 @@ class TruncationStrategy < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The truncation strategy to use for the thread. The default is `auto`. If set to # `last_messages`, the thread will be truncated to the n most recent messages in # the thread. When set to `auto`, messages in the middle of the thread will be # dropped to fit the context length of the model, `max_prompt_tokens`. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + AUTO = :auto LAST_MESSAGES = :last_messages diff --git a/lib/openai/models/beta/threads/run_list_params.rb b/lib/openai/models/beta/threads/run_list_params.rb index ce011119..fa0aee48 100644 --- a/lib/openai/models/beta/threads/run_list_params.rb +++ b/lib/openai/models/beta/threads/run_list_params.rb @@ -68,11 +68,11 @@ class RunListParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC = :asc DESC = :desc diff --git a/lib/openai/models/beta/threads/run_status.rb b/lib/openai/models/beta/threads/run_status.rb index b85ac1e3..727fa009 100644 --- a/lib/openai/models/beta/threads/run_status.rb +++ b/lib/openai/models/beta/threads/run_status.rb @@ -4,12 +4,12 @@ module OpenAI module Models module Beta module Threads - # @abstract - # # The status of the run, which can be either `queued`, `in_progress`, # `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, # `incomplete`, or `expired`. - class RunStatus < OpenAI::Enum + module RunStatus + extend OpenAI::Enum + QUEUED = :queued IN_PROGRESS = :in_progress REQUIRES_ACTION = :requires_action diff --git a/lib/openai/models/beta/threads/runs/code_interpreter_tool_call.rb b/lib/openai/models/beta/threads/runs/code_interpreter_tool_call.rb index 0313a163..e21e1235 100644 --- a/lib/openai/models/beta/threads/runs/code_interpreter_tool_call.rb +++ b/lib/openai/models/beta/threads/runs/code_interpreter_tool_call.rb @@ -63,10 +63,10 @@ class CodeInterpreter < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Text output from the Code Interpreter tool call as part of a run step. - class Output < OpenAI::Union + module Output + extend OpenAI::Union + discriminator :type # Text output from the Code Interpreter tool call as part of a run step. diff --git a/lib/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rb b/lib/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rb index 9e9097b3..12321ae7 100644 --- a/lib/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rb +++ b/lib/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rb @@ -86,10 +86,10 @@ class CodeInterpreter < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Text output from the Code Interpreter tool call as part of a run step. - class Output < OpenAI::Union + module Output + extend OpenAI::Union + discriminator :type # Text output from the Code Interpreter tool call as part of a run step. diff --git a/lib/openai/models/beta/threads/runs/file_search_tool_call.rb b/lib/openai/models/beta/threads/runs/file_search_tool_call.rb index 9011d196..47fd4a37 100644 --- a/lib/openai/models/beta/threads/runs/file_search_tool_call.rb +++ b/lib/openai/models/beta/threads/runs/file_search_tool_call.rb @@ -93,11 +93,11 @@ class RankingOptions < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The ranker to use for the file search. If not specified will use the `auto` # ranker. - class Ranker < OpenAI::Enum + module Ranker + extend OpenAI::Enum + AUTO = :auto DEFAULT_2024_08_21 = :default_2024_08_21 @@ -179,10 +179,10 @@ class Content < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The type of the content. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + TEXT = :text finalize! diff --git a/lib/openai/models/beta/threads/runs/run_step.rb b/lib/openai/models/beta/threads/runs/run_step.rb index 4a7aa3e2..d54a639a 100644 --- a/lib/openai/models/beta/threads/runs/run_step.rb +++ b/lib/openai/models/beta/threads/runs/run_step.rb @@ -183,10 +183,10 @@ class LastError < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # One of `server_error` or `rate_limit_exceeded`. - class Code < OpenAI::Enum + module Code + extend OpenAI::Enum + SERVER_ERROR = :server_error RATE_LIMIT_EXCEEDED = :rate_limit_exceeded @@ -194,11 +194,11 @@ class Code < OpenAI::Enum end end - # @abstract - # # The status of the run step, which can be either `in_progress`, `cancelled`, # `failed`, `completed`, or `expired`. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress CANCELLED = :cancelled FAILED = :failed @@ -208,10 +208,10 @@ class Status < OpenAI::Enum finalize! end - # @abstract - # # The details of the run step. - class StepDetails < OpenAI::Union + module StepDetails + extend OpenAI::Union + discriminator :type # Details of the message creation by the run step. @@ -227,10 +227,10 @@ class StepDetails < OpenAI::Union # end end - # @abstract - # # The type of run step, which can be either `message_creation` or `tool_calls`. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + MESSAGE_CREATION = :message_creation TOOL_CALLS = :tool_calls diff --git a/lib/openai/models/beta/threads/runs/run_step_delta.rb b/lib/openai/models/beta/threads/runs/run_step_delta.rb index c8ba4aa1..d5fc45bb 100644 --- a/lib/openai/models/beta/threads/runs/run_step_delta.rb +++ b/lib/openai/models/beta/threads/runs/run_step_delta.rb @@ -25,10 +25,10 @@ class RunStepDelta < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The details of the run step. - class StepDetails < OpenAI::Union + module StepDetails + extend OpenAI::Union + discriminator :type # Details of the message creation by the run step. diff --git a/lib/openai/models/beta/threads/runs/run_step_include.rb b/lib/openai/models/beta/threads/runs/run_step_include.rb index dd1c5381..32e98757 100644 --- a/lib/openai/models/beta/threads/runs/run_step_include.rb +++ b/lib/openai/models/beta/threads/runs/run_step_include.rb @@ -5,8 +5,9 @@ module Models module Beta module Threads module Runs - # @abstract - class RunStepInclude < OpenAI::Enum + module RunStepInclude + extend OpenAI::Enum + STEP_DETAILS_TOOL_CALLS_FILE_SEARCH_RESULTS_CONTENT = :"step_details.tool_calls[*].file_search.results[*].content" diff --git a/lib/openai/models/beta/threads/runs/step_list_params.rb b/lib/openai/models/beta/threads/runs/step_list_params.rb index 685e0e75..3a12f3fe 100644 --- a/lib/openai/models/beta/threads/runs/step_list_params.rb +++ b/lib/openai/models/beta/threads/runs/step_list_params.rb @@ -92,11 +92,11 @@ class StepListParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC = :asc DESC = :desc diff --git a/lib/openai/models/beta/threads/runs/tool_call.rb b/lib/openai/models/beta/threads/runs/tool_call.rb index 20cc29a6..c6e9367f 100644 --- a/lib/openai/models/beta/threads/runs/tool_call.rb +++ b/lib/openai/models/beta/threads/runs/tool_call.rb @@ -5,10 +5,10 @@ module Models module Beta module Threads module Runs - # @abstract - # # Details of the Code Interpreter tool call the run step was involved in. - class ToolCall < OpenAI::Union + module ToolCall + extend OpenAI::Union + discriminator :type # Details of the Code Interpreter tool call the run step was involved in. diff --git a/lib/openai/models/beta/threads/runs/tool_call_delta.rb b/lib/openai/models/beta/threads/runs/tool_call_delta.rb index 3dae6b9b..f58ae752 100644 --- a/lib/openai/models/beta/threads/runs/tool_call_delta.rb +++ b/lib/openai/models/beta/threads/runs/tool_call_delta.rb @@ -5,10 +5,10 @@ module Models module Beta module Threads module Runs - # @abstract - # # Details of the Code Interpreter tool call the run step was involved in. - class ToolCallDelta < OpenAI::Union + module ToolCallDelta + extend OpenAI::Union + discriminator :type # Details of the Code Interpreter tool call the run step was involved in. diff --git a/lib/openai/models/chat/chat_completion.rb b/lib/openai/models/chat/chat_completion.rb index b80607a6..fcb5196d 100644 --- a/lib/openai/models/chat/chat_completion.rb +++ b/lib/openai/models/chat/chat_completion.rb @@ -133,15 +133,15 @@ class Choice < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The reason the model stopped generating tokens. This will be `stop` if the model # hit a natural stop point or a provided stop sequence, `length` if the maximum # number of tokens specified in the request was reached, `content_filter` if # content was omitted due to a flag from our content filters, `tool_calls` if the # model called a tool, or `function_call` (deprecated) if the model called a # function. - class FinishReason < OpenAI::Enum + module FinishReason + extend OpenAI::Enum + STOP = :stop LENGTH = :length TOOL_CALLS = :tool_calls @@ -176,10 +176,10 @@ class Logprobs < OpenAI::BaseModel end end - # @abstract - # # The service tier used for processing the request. - class ServiceTier < OpenAI::Enum + module ServiceTier + extend OpenAI::Enum + SCALE = :scale DEFAULT = :default diff --git a/lib/openai/models/chat/chat_completion_assistant_message_param.rb b/lib/openai/models/chat/chat_completion_assistant_message_param.rb index 5b2e877b..e9ee4909 100644 --- a/lib/openai/models/chat/chat_completion_assistant_message_param.rb +++ b/lib/openai/models/chat/chat_completion_assistant_message_param.rb @@ -106,11 +106,11 @@ class Audio < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void end - # @abstract - # # The contents of the assistant message. Required unless `tool_calls` or # `function_call` is specified. - class Content < OpenAI::Union + module Content + extend OpenAI::Union + ArrayOfContentPartArray = OpenAI::ArrayOf[union: -> { OpenAI::Models::Chat::ChatCompletionAssistantMessageParam::Content::ArrayOfContentPart }] @@ -120,11 +120,11 @@ class Content < OpenAI::Union # An array of content parts with a defined type. Can be one or more of type `text`, or exactly one of type `refusal`. variant OpenAI::Models::Chat::ChatCompletionAssistantMessageParam::Content::ArrayOfContentPartArray - # @abstract - # # Learn about # [text inputs](https://platform.openai.com/docs/guides/text-generation). - class ArrayOfContentPart < OpenAI::Union + module ArrayOfContentPart + extend OpenAI::Union + discriminator :type # Learn about [text inputs](https://platform.openai.com/docs/guides/text-generation). diff --git a/lib/openai/models/chat/chat_completion_audio_param.rb b/lib/openai/models/chat/chat_completion_audio_param.rb index 5d72b2de..5f1ca422 100644 --- a/lib/openai/models/chat/chat_completion_audio_param.rb +++ b/lib/openai/models/chat/chat_completion_audio_param.rb @@ -30,11 +30,11 @@ class ChatCompletionAudioParam < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Specifies the output audio format. Must be one of `wav`, `mp3`, `flac`, `opus`, # or `pcm16`. - class Format < OpenAI::Enum + module Format + extend OpenAI::Enum + WAV = :wav MP3 = :mp3 FLAC = :flac @@ -44,11 +44,11 @@ class Format < OpenAI::Enum finalize! end - # @abstract - # # The voice the model uses to respond. Supported voices are `alloy`, `ash`, # `ballad`, `coral`, `echo`, `sage`, and `shimmer`. - class Voice < OpenAI::Enum + module Voice + extend OpenAI::Enum + ALLOY = :alloy ASH = :ash BALLAD = :ballad diff --git a/lib/openai/models/chat/chat_completion_chunk.rb b/lib/openai/models/chat/chat_completion_chunk.rb index 5f0a0fef..fd4648fc 100644 --- a/lib/openai/models/chat/chat_completion_chunk.rb +++ b/lib/openai/models/chat/chat_completion_chunk.rb @@ -233,10 +233,10 @@ class FunctionCall < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void end - # @abstract - # # The role of the author of this message. - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + DEVELOPER = :developer SYSTEM = :system USER = :user @@ -324,10 +324,10 @@ class Function < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void end - # @abstract - # # The type of the tool. Currently, only `function` is supported. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + FUNCTION = :function finalize! @@ -335,15 +335,15 @@ class Type < OpenAI::Enum end end - # @abstract - # # The reason the model stopped generating tokens. This will be `stop` if the model # hit a natural stop point or a provided stop sequence, `length` if the maximum # number of tokens specified in the request was reached, `content_filter` if # content was omitted due to a flag from our content filters, `tool_calls` if the # model called a tool, or `function_call` (deprecated) if the model called a # function. - class FinishReason < OpenAI::Enum + module FinishReason + extend OpenAI::Enum + STOP = :stop LENGTH = :length TOOL_CALLS = :tool_calls @@ -378,10 +378,10 @@ class Logprobs < OpenAI::BaseModel end end - # @abstract - # # The service tier used for processing the request. - class ServiceTier < OpenAI::Enum + module ServiceTier + extend OpenAI::Enum + SCALE = :scale DEFAULT = :default diff --git a/lib/openai/models/chat/chat_completion_content_part.rb b/lib/openai/models/chat/chat_completion_content_part.rb index fd7d3c2c..9b1d2144 100644 --- a/lib/openai/models/chat/chat_completion_content_part.rb +++ b/lib/openai/models/chat/chat_completion_content_part.rb @@ -3,11 +3,11 @@ module OpenAI module Models module Chat - # @abstract - # # Learn about # [text inputs](https://platform.openai.com/docs/guides/text-generation). - class ChatCompletionContentPart < OpenAI::Union + module ChatCompletionContentPart + extend OpenAI::Union + discriminator :type # Learn about [text inputs](https://platform.openai.com/docs/guides/text-generation). diff --git a/lib/openai/models/chat/chat_completion_content_part_image.rb b/lib/openai/models/chat/chat_completion_content_part_image.rb index 9990262c..7b165ecb 100644 --- a/lib/openai/models/chat/chat_completion_content_part_image.rb +++ b/lib/openai/models/chat/chat_completion_content_part_image.rb @@ -51,11 +51,11 @@ class ImageURL < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Specifies the detail level of the image. Learn more in the # [Vision guide](https://platform.openai.com/docs/guides/vision#low-or-high-fidelity-image-understanding). - class Detail < OpenAI::Enum + module Detail + extend OpenAI::Enum + AUTO = :auto LOW = :low HIGH = :high diff --git a/lib/openai/models/chat/chat_completion_content_part_input_audio.rb b/lib/openai/models/chat/chat_completion_content_part_input_audio.rb index 0ed3dff8..7e5f53ee 100644 --- a/lib/openai/models/chat/chat_completion_content_part_input_audio.rb +++ b/lib/openai/models/chat/chat_completion_content_part_input_audio.rb @@ -48,10 +48,10 @@ class InputAudio < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The format of the encoded audio data. Currently supports "wav" and "mp3". - class Format < OpenAI::Enum + module Format + extend OpenAI::Enum + WAV = :wav MP3 = :mp3 diff --git a/lib/openai/models/chat/chat_completion_developer_message_param.rb b/lib/openai/models/chat/chat_completion_developer_message_param.rb index 9e91e405..44c3742f 100644 --- a/lib/openai/models/chat/chat_completion_developer_message_param.rb +++ b/lib/openai/models/chat/chat_completion_developer_message_param.rb @@ -40,10 +40,10 @@ class ChatCompletionDeveloperMessageParam < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The contents of the developer message. - class Content < OpenAI::Union + module Content + extend OpenAI::Union + ChatCompletionContentPartTextArray = OpenAI::ArrayOf[-> { OpenAI::Models::Chat::ChatCompletionContentPartText }] diff --git a/lib/openai/models/chat/chat_completion_message_param.rb b/lib/openai/models/chat/chat_completion_message_param.rb index 811b7f8c..c8a3a17d 100644 --- a/lib/openai/models/chat/chat_completion_message_param.rb +++ b/lib/openai/models/chat/chat_completion_message_param.rb @@ -3,12 +3,12 @@ module OpenAI module Models module Chat - # @abstract - # # Developer-provided instructions that the model should follow, regardless of # messages sent by the user. With o1 models and newer, `developer` messages # replace the previous `system` messages. - class ChatCompletionMessageParam < OpenAI::Union + module ChatCompletionMessageParam + extend OpenAI::Union + discriminator :role # Developer-provided instructions that the model should follow, regardless of diff --git a/lib/openai/models/chat/chat_completion_modality.rb b/lib/openai/models/chat/chat_completion_modality.rb index 725b907d..eae25ae3 100644 --- a/lib/openai/models/chat/chat_completion_modality.rb +++ b/lib/openai/models/chat/chat_completion_modality.rb @@ -3,8 +3,9 @@ module OpenAI module Models module Chat - # @abstract - class ChatCompletionModality < OpenAI::Enum + module ChatCompletionModality + extend OpenAI::Enum + TEXT = :text AUDIO = :audio diff --git a/lib/openai/models/chat/chat_completion_prediction_content.rb b/lib/openai/models/chat/chat_completion_prediction_content.rb index f9e93347..ed62e69d 100644 --- a/lib/openai/models/chat/chat_completion_prediction_content.rb +++ b/lib/openai/models/chat/chat_completion_prediction_content.rb @@ -30,12 +30,12 @@ class ChatCompletionPredictionContent < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The content that should be matched when generating a model response. If # generated tokens would match this content, the entire model response can be # returned much more quickly. - class Content < OpenAI::Union + module Content + extend OpenAI::Union + ChatCompletionContentPartTextArray = OpenAI::ArrayOf[-> { OpenAI::Models::Chat::ChatCompletionContentPartText }] diff --git a/lib/openai/models/chat/chat_completion_role.rb b/lib/openai/models/chat/chat_completion_role.rb index 234d78a6..43666654 100644 --- a/lib/openai/models/chat/chat_completion_role.rb +++ b/lib/openai/models/chat/chat_completion_role.rb @@ -3,10 +3,10 @@ module OpenAI module Models module Chat - # @abstract - # # The role of the author of a message - class ChatCompletionRole < OpenAI::Enum + module ChatCompletionRole + extend OpenAI::Enum + DEVELOPER = :developer SYSTEM = :system USER = :user diff --git a/lib/openai/models/chat/chat_completion_system_message_param.rb b/lib/openai/models/chat/chat_completion_system_message_param.rb index a0cc371d..ac99aca3 100644 --- a/lib/openai/models/chat/chat_completion_system_message_param.rb +++ b/lib/openai/models/chat/chat_completion_system_message_param.rb @@ -40,10 +40,10 @@ class ChatCompletionSystemMessageParam < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The contents of the system message. - class Content < OpenAI::Union + module Content + extend OpenAI::Union + ChatCompletionContentPartTextArray = OpenAI::ArrayOf[-> { OpenAI::Models::Chat::ChatCompletionContentPartText }] diff --git a/lib/openai/models/chat/chat_completion_tool_choice_option.rb b/lib/openai/models/chat/chat_completion_tool_choice_option.rb index 28f7750e..273236d8 100644 --- a/lib/openai/models/chat/chat_completion_tool_choice_option.rb +++ b/lib/openai/models/chat/chat_completion_tool_choice_option.rb @@ -3,8 +3,6 @@ module OpenAI module Models module Chat - # @abstract - # # Controls which (if any) tool is called by the model. `none` means the model will # not call any tool and instead generates a message. `auto` means the model can # pick between generating a message or calling one or more tools. `required` means @@ -14,19 +12,21 @@ module Chat # # `none` is the default when no tools are present. `auto` is the default if tools # are present. - class ChatCompletionToolChoiceOption < OpenAI::Union + module ChatCompletionToolChoiceOption + extend OpenAI::Union + # `none` means the model will not call any tool and instead generates a message. `auto` means the model can pick between generating a message or calling one or more tools. `required` means the model must call one or more tools. variant enum: -> { OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto } # Specifies a tool the model should use. Use to force the model to call a specific function. variant -> { OpenAI::Models::Chat::ChatCompletionNamedToolChoice } - # @abstract - # # `none` means the model will not call any tool and instead generates a message. # `auto` means the model can pick between generating a message or calling one or # more tools. `required` means the model must call one or more tools. - class Auto < OpenAI::Enum + module Auto + extend OpenAI::Enum + NONE = :none AUTO = :auto REQUIRED = :required diff --git a/lib/openai/models/chat/chat_completion_tool_message_param.rb b/lib/openai/models/chat/chat_completion_tool_message_param.rb index ebbca6aa..fc5f1903 100644 --- a/lib/openai/models/chat/chat_completion_tool_message_param.rb +++ b/lib/openai/models/chat/chat_completion_tool_message_param.rb @@ -31,10 +31,10 @@ class ChatCompletionToolMessageParam < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The contents of the tool message. - class Content < OpenAI::Union + module Content + extend OpenAI::Union + ChatCompletionContentPartTextArray = OpenAI::ArrayOf[-> { OpenAI::Models::Chat::ChatCompletionContentPartText }] diff --git a/lib/openai/models/chat/chat_completion_user_message_param.rb b/lib/openai/models/chat/chat_completion_user_message_param.rb index 4a1eee01..89d87d20 100644 --- a/lib/openai/models/chat/chat_completion_user_message_param.rb +++ b/lib/openai/models/chat/chat_completion_user_message_param.rb @@ -39,10 +39,10 @@ class ChatCompletionUserMessageParam < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The contents of the user message. - class Content < OpenAI::Union + module Content + extend OpenAI::Union + ChatCompletionContentPartArray = OpenAI::ArrayOf[union: -> { OpenAI::Models::Chat::ChatCompletionContentPart }] diff --git a/lib/openai/models/chat/completion_create_params.rb b/lib/openai/models/chat/completion_create_params.rb index 49e175c1..c326a2d8 100644 --- a/lib/openai/models/chat/completion_create_params.rb +++ b/lib/openai/models/chat/completion_create_params.rb @@ -417,14 +417,14 @@ class CompletionCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI offers a # wide range of models with different capabilities, performance characteristics, # and price points. Refer to the # [model guide](https://platform.openai.com/docs/models) to browse and compare # available models. - class Model < OpenAI::Union + module Model + extend OpenAI::Union + variant String # Model ID used to generate the response, like `gpt-4o` or `o1`. OpenAI @@ -440,8 +440,6 @@ class Model < OpenAI::Union # end end - # @abstract - # # @deprecated # # Deprecated in favor of `tool_choice`. @@ -458,19 +456,21 @@ class Model < OpenAI::Union # # `none` is the default when no functions are present. `auto` is the default if # functions are present. - class FunctionCall < OpenAI::Union + module FunctionCall + extend OpenAI::Union + # `none` means the model will not call a function and instead generates a message. `auto` means the model can pick between generating a message or calling a function. variant enum: -> { OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode } # Specifying a particular function via `{"name": "my_function"}` forces the model to call that function. variant -> { OpenAI::Models::Chat::ChatCompletionFunctionCallOption } - # @abstract - # # `none` means the model will not call a function and instead generates a message. # `auto` means the model can pick between generating a message or calling a # function. - class FunctionCallMode < OpenAI::Enum + module FunctionCallMode + extend OpenAI::Enum + NONE = :none AUTO = :auto @@ -530,16 +530,15 @@ class Function < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void end - # @abstract - class Modality < OpenAI::Enum + module Modality + extend OpenAI::Enum + TEXT = :text AUDIO = :audio finalize! end - # @abstract - # # An object specifying the format that the model must output. # # Setting to `{ "type": "json_schema", "json_schema": {...} }` enables Structured @@ -550,7 +549,9 @@ class Modality < OpenAI::Enum # Setting to `{ "type": "json_object" }` enables the older JSON mode, which # ensures the message the model generates is valid JSON. Using `json_schema` is # preferred for models that support it. - class ResponseFormat < OpenAI::Union + module ResponseFormat + extend OpenAI::Union + # Default response format. Used to generate text responses. variant -> { OpenAI::Models::ResponseFormatText } @@ -571,8 +572,6 @@ class ResponseFormat < OpenAI::Union # end end - # @abstract - # # Specifies the latency tier to use for processing the request. This parameter is # relevant for customers subscribed to the scale tier service: # @@ -587,18 +586,20 @@ class ResponseFormat < OpenAI::Union # # When this parameter is set, the response body will include the `service_tier` # utilized. - class ServiceTier < OpenAI::Enum + module ServiceTier + extend OpenAI::Enum + AUTO = :auto DEFAULT = :default finalize! end - # @abstract - # # Up to 4 sequences where the API will stop generating further tokens. The # returned text will not contain the stop sequence. - class Stop < OpenAI::Union + module Stop + extend OpenAI::Union + StringArray = OpenAI::ArrayOf[String] variant String @@ -645,11 +646,11 @@ class WebSearchOptions < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # High level guidance for the amount of context window space to use for the # search. One of `low`, `medium`, or `high`. `medium` is the default. - class SearchContextSize < OpenAI::Enum + module SearchContextSize + extend OpenAI::Enum + LOW = :low MEDIUM = :medium HIGH = :high diff --git a/lib/openai/models/chat/completion_list_params.rb b/lib/openai/models/chat/completion_list_params.rb index 81936268..ce2187d8 100644 --- a/lib/openai/models/chat/completion_list_params.rb +++ b/lib/openai/models/chat/completion_list_params.rb @@ -69,11 +69,11 @@ class CompletionListParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Sort order for Chat Completions by timestamp. Use `asc` for ascending order or # `desc` for descending order. Defaults to `asc`. - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC = :asc DESC = :desc diff --git a/lib/openai/models/chat/completions/message_list_params.rb b/lib/openai/models/chat/completions/message_list_params.rb index 66af6ada..7d45da51 100644 --- a/lib/openai/models/chat/completions/message_list_params.rb +++ b/lib/openai/models/chat/completions/message_list_params.rb @@ -50,11 +50,11 @@ class MessageListParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Sort order for messages by timestamp. Use `asc` for ascending order or `desc` # for descending order. Defaults to `asc`. - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC = :asc DESC = :desc diff --git a/lib/openai/models/chat_model.rb b/lib/openai/models/chat_model.rb index 8edd5e1a..695dcb50 100644 --- a/lib/openai/models/chat_model.rb +++ b/lib/openai/models/chat_model.rb @@ -2,8 +2,9 @@ module OpenAI module Models - # @abstract - class ChatModel < OpenAI::Enum + module ChatModel + extend OpenAI::Enum + O3_MINI = :"o3-mini" O3_MINI_2025_01_31 = :"o3-mini-2025-01-31" O1 = :o1 diff --git a/lib/openai/models/comparison_filter.rb b/lib/openai/models/comparison_filter.rb index 17be219d..2b00e018 100644 --- a/lib/openai/models/comparison_filter.rb +++ b/lib/openai/models/comparison_filter.rb @@ -41,8 +41,6 @@ class ComparisonFilter < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`. # # - `eq`: equals @@ -51,7 +49,9 @@ class ComparisonFilter < OpenAI::BaseModel # - `gte`: greater than or equal # - `lt`: less than # - `lte`: less than or equal - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + EQ = :eq NE = :ne GT = :gt @@ -62,11 +62,11 @@ class Type < OpenAI::Enum finalize! end - # @abstract - # # The value to compare against the attribute key; supports string, number, or # boolean types. - class Value < OpenAI::Union + module Value + extend OpenAI::Union + variant String variant Float diff --git a/lib/openai/models/completion_choice.rb b/lib/openai/models/completion_choice.rb index 6237b56e..df42c59b 100644 --- a/lib/openai/models/completion_choice.rb +++ b/lib/openai/models/completion_choice.rb @@ -37,13 +37,13 @@ class CompletionChoice < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The reason the model stopped generating tokens. This will be `stop` if the model # hit a natural stop point or a provided stop sequence, `length` if the maximum # number of tokens specified in the request was reached, or `content_filter` if # content was omitted due to a flag from our content filters. - class FinishReason < OpenAI::Enum + module FinishReason + extend OpenAI::Enum + STOP = :stop LENGTH = :length CONTENT_FILTER = :content_filter diff --git a/lib/openai/models/completion_create_params.rb b/lib/openai/models/completion_create_params.rb index c1c44876..cbdc341b 100644 --- a/lib/openai/models/completion_create_params.rb +++ b/lib/openai/models/completion_create_params.rb @@ -228,14 +228,14 @@ class CompletionCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # ID of the model to use. You can use the # [List models](https://platform.openai.com/docs/api-reference/models/list) API to # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. - class Model < OpenAI::Union + module Model + extend OpenAI::Union + # @!group GPT_3_5_TURBO_INSTRUCT = :"gpt-3.5-turbo-instruct" @@ -259,15 +259,15 @@ class Model < OpenAI::Union # end end - # @abstract - # # The prompt(s) to generate completions for, encoded as a string, array of # strings, array of tokens, or array of token arrays. # # Note that <|endoftext|> is the document separator that the model sees during # training, so if a prompt is not specified the model will generate as if from the # beginning of a new document. - class Prompt < OpenAI::Union + module Prompt + extend OpenAI::Union + StringArray = OpenAI::ArrayOf[String] IntegerArray = OpenAI::ArrayOf[Integer] @@ -289,11 +289,11 @@ class Prompt < OpenAI::Union # end end - # @abstract - # # Up to 4 sequences where the API will stop generating further tokens. The # returned text will not contain the stop sequence. - class Stop < OpenAI::Union + module Stop + extend OpenAI::Union + StringArray = OpenAI::ArrayOf[String] variant String diff --git a/lib/openai/models/compound_filter.rb b/lib/openai/models/compound_filter.rb index 11452bfe..4223ab0d 100644 --- a/lib/openai/models/compound_filter.rb +++ b/lib/openai/models/compound_filter.rb @@ -26,11 +26,11 @@ class CompoundFilter < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # A filter used to compare a specified attribute key to a given value using a # defined comparison operation. - class Filter < OpenAI::Union + module Filter + extend OpenAI::Union + # A filter used to compare a specified attribute key to a given value using a defined comparison operation. variant -> { OpenAI::Models::ComparisonFilter } @@ -43,10 +43,10 @@ class Filter < OpenAI::Union # end end - # @abstract - # # Type of operation: `and` or `or`. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + AND = :and OR = :or diff --git a/lib/openai/models/embedding_create_params.rb b/lib/openai/models/embedding_create_params.rb index 4d126d18..e215c574 100644 --- a/lib/openai/models/embedding_create_params.rb +++ b/lib/openai/models/embedding_create_params.rb @@ -76,8 +76,6 @@ class EmbeddingCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Input text to embed, encoded as a string or array of tokens. To embed multiple # inputs in a single request, pass an array of strings or array of token arrays. # The input must not exceed the max input tokens for the model (8192 tokens for @@ -86,7 +84,9 @@ class EmbeddingCreateParams < OpenAI::BaseModel # [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) # for counting tokens. Some models may also impose a limit on total number of # tokens summed across inputs. - class Input < OpenAI::Union + module Input + extend OpenAI::Union + StringArray = OpenAI::ArrayOf[String] IntegerArray = OpenAI::ArrayOf[Integer] @@ -112,14 +112,14 @@ class Input < OpenAI::Union # end end - # @abstract - # # ID of the model to use. You can use the # [List models](https://platform.openai.com/docs/api-reference/models/list) API to # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. - class Model < OpenAI::Union + module Model + extend OpenAI::Union + variant String # ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. @@ -132,11 +132,11 @@ class Model < OpenAI::Union # end end - # @abstract - # # The format to return the embeddings in. Can be either `float` or # [`base64`](https://pypi.org/project/pybase64/). - class EncodingFormat < OpenAI::Enum + module EncodingFormat + extend OpenAI::Enum + FLOAT = :float BASE64 = :base64 diff --git a/lib/openai/models/embedding_model.rb b/lib/openai/models/embedding_model.rb index 65247fdf..0eab075d 100644 --- a/lib/openai/models/embedding_model.rb +++ b/lib/openai/models/embedding_model.rb @@ -2,8 +2,9 @@ module OpenAI module Models - # @abstract - class EmbeddingModel < OpenAI::Enum + module EmbeddingModel + extend OpenAI::Enum + TEXT_EMBEDDING_ADA_002 = :"text-embedding-ada-002" TEXT_EMBEDDING_3_SMALL = :"text-embedding-3-small" TEXT_EMBEDDING_3_LARGE = :"text-embedding-3-large" diff --git a/lib/openai/models/file_chunking_strategy.rb b/lib/openai/models/file_chunking_strategy.rb index 24c4dd7e..9e917e35 100644 --- a/lib/openai/models/file_chunking_strategy.rb +++ b/lib/openai/models/file_chunking_strategy.rb @@ -2,10 +2,10 @@ module OpenAI module Models - # @abstract - # # The strategy used to chunk the file. - class FileChunkingStrategy < OpenAI::Union + module FileChunkingStrategy + extend OpenAI::Union + discriminator :type variant :static, -> { OpenAI::Models::StaticFileChunkingStrategyObject } diff --git a/lib/openai/models/file_chunking_strategy_param.rb b/lib/openai/models/file_chunking_strategy_param.rb index d9e6a634..d1943074 100644 --- a/lib/openai/models/file_chunking_strategy_param.rb +++ b/lib/openai/models/file_chunking_strategy_param.rb @@ -2,11 +2,11 @@ module OpenAI module Models - # @abstract - # # The chunking strategy used to chunk the file(s). If not set, will use the `auto` # strategy. Only applicable if `file_ids` is non-empty. - class FileChunkingStrategyParam < OpenAI::Union + module FileChunkingStrategyParam + extend OpenAI::Union + discriminator :type # The default strategy. This strategy currently uses a `max_chunk_size_tokens` of `800` and `chunk_overlap_tokens` of `400`. diff --git a/lib/openai/models/file_list_params.rb b/lib/openai/models/file_list_params.rb index 3a3c6b9b..ae6cf6ed 100644 --- a/lib/openai/models/file_list_params.rb +++ b/lib/openai/models/file_list_params.rb @@ -63,11 +63,11 @@ class FileListParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC = :asc DESC = :desc diff --git a/lib/openai/models/file_object.rb b/lib/openai/models/file_object.rb index f0476f5d..a89db46f 100644 --- a/lib/openai/models/file_object.rb +++ b/lib/openai/models/file_object.rb @@ -99,12 +99,12 @@ class FileObject < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The intended purpose of the file. Supported values are `assistants`, # `assistants_output`, `batch`, `batch_output`, `fine-tune`, `fine-tune-results` # and `vision`. - class Purpose < OpenAI::Enum + module Purpose + extend OpenAI::Enum + ASSISTANTS = :assistants ASSISTANTS_OUTPUT = :assistants_output BATCH = :batch @@ -116,13 +116,13 @@ class Purpose < OpenAI::Enum finalize! end - # @abstract - # # @deprecated # # Deprecated. The current status of the file, which can be either `uploaded`, # `processed`, or `error`. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + UPLOADED = :uploaded PROCESSED = :processed ERROR = :error diff --git a/lib/openai/models/file_purpose.rb b/lib/openai/models/file_purpose.rb index 8b4f9af2..49c2717d 100644 --- a/lib/openai/models/file_purpose.rb +++ b/lib/openai/models/file_purpose.rb @@ -2,13 +2,13 @@ module OpenAI module Models - # @abstract - # # The intended purpose of the uploaded file. One of: - `assistants`: Used in the # Assistants API - `batch`: Used in the Batch API - `fine-tune`: Used for # fine-tuning - `vision`: Images used for vision fine-tuning - `user_data`: # Flexible file type for any purpose - `evals`: Used for eval data sets - class FilePurpose < OpenAI::Enum + module FilePurpose + extend OpenAI::Enum + ASSISTANTS = :assistants BATCH = :batch FINE_TUNE = :"fine-tune" diff --git a/lib/openai/models/fine_tuning/fine_tuning_job.rb b/lib/openai/models/fine_tuning/fine_tuning_job.rb index 68876089..cdfbcc5f 100644 --- a/lib/openai/models/fine_tuning/fine_tuning_job.rb +++ b/lib/openai/models/fine_tuning/fine_tuning_job.rb @@ -272,11 +272,11 @@ class Hyperparameters < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Number of examples in each batch. A larger batch size means that model # parameters are updated less frequently, but with lower variance. - class BatchSize < OpenAI::Union + module BatchSize + extend OpenAI::Union + variant const: :auto variant Integer @@ -288,11 +288,11 @@ class BatchSize < OpenAI::Union # end end - # @abstract - # # Scaling factor for the learning rate. A smaller learning rate may be useful to # avoid overfitting. - class LearningRateMultiplier < OpenAI::Union + module LearningRateMultiplier + extend OpenAI::Union + variant const: :auto variant Float @@ -304,11 +304,11 @@ class LearningRateMultiplier < OpenAI::Union # end end - # @abstract - # # The number of epochs to train the model for. An epoch refers to one full cycle # through the training dataset. - class NEpochs < OpenAI::Union + module NEpochs + extend OpenAI::Union + variant const: :auto variant Integer @@ -321,11 +321,11 @@ class NEpochs < OpenAI::Union end end - # @abstract - # # The current status of the fine-tuning job, which can be either # `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + VALIDATING_FILES = :validating_files QUEUED = :queued RUNNING = :running @@ -459,11 +459,11 @@ class Hyperparameters < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Number of examples in each batch. A larger batch size means that model # parameters are updated less frequently, but with lower variance. - class BatchSize < OpenAI::Union + module BatchSize + extend OpenAI::Union + variant const: :auto variant Integer @@ -475,11 +475,11 @@ class BatchSize < OpenAI::Union # end end - # @abstract - # # The beta value for the DPO method. A higher beta value will increase the weight # of the penalty between the policy and reference model. - class Beta < OpenAI::Union + module Beta + extend OpenAI::Union + variant const: :auto variant Float @@ -491,11 +491,11 @@ class Beta < OpenAI::Union # end end - # @abstract - # # Scaling factor for the learning rate. A smaller learning rate may be useful to # avoid overfitting. - class LearningRateMultiplier < OpenAI::Union + module LearningRateMultiplier + extend OpenAI::Union + variant const: :auto variant Float @@ -507,11 +507,11 @@ class LearningRateMultiplier < OpenAI::Union # end end - # @abstract - # # The number of epochs to train the model for. An epoch refers to one full cycle # through the training dataset. - class NEpochs < OpenAI::Union + module NEpochs + extend OpenAI::Union + variant const: :auto variant Integer @@ -594,11 +594,11 @@ class Hyperparameters < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Number of examples in each batch. A larger batch size means that model # parameters are updated less frequently, but with lower variance. - class BatchSize < OpenAI::Union + module BatchSize + extend OpenAI::Union + variant const: :auto variant Integer @@ -610,11 +610,11 @@ class BatchSize < OpenAI::Union # end end - # @abstract - # # Scaling factor for the learning rate. A smaller learning rate may be useful to # avoid overfitting. - class LearningRateMultiplier < OpenAI::Union + module LearningRateMultiplier + extend OpenAI::Union + variant const: :auto variant Float @@ -626,11 +626,11 @@ class LearningRateMultiplier < OpenAI::Union # end end - # @abstract - # # The number of epochs to train the model for. An epoch refers to one full cycle # through the training dataset. - class NEpochs < OpenAI::Union + module NEpochs + extend OpenAI::Union + variant const: :auto variant Integer @@ -644,10 +644,10 @@ class NEpochs < OpenAI::Union end end - # @abstract - # # The type of method. Is either `supervised` or `dpo`. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + SUPERVISED = :supervised DPO = :dpo diff --git a/lib/openai/models/fine_tuning/fine_tuning_job_event.rb b/lib/openai/models/fine_tuning/fine_tuning_job_event.rb index 0688b7a8..207444b5 100644 --- a/lib/openai/models/fine_tuning/fine_tuning_job_event.rb +++ b/lib/openai/models/fine_tuning/fine_tuning_job_event.rb @@ -69,10 +69,10 @@ class FineTuningJobEvent < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The log level of the event. - class Level < OpenAI::Enum + module Level + extend OpenAI::Enum + INFO = :info WARN = :warn ERROR = :error @@ -80,10 +80,10 @@ class Level < OpenAI::Enum finalize! end - # @abstract - # # The type of event. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + MESSAGE = :message METRICS = :metrics diff --git a/lib/openai/models/fine_tuning/job_create_params.rb b/lib/openai/models/fine_tuning/job_create_params.rb index 6900ac01..c1cbd747 100644 --- a/lib/openai/models/fine_tuning/job_create_params.rb +++ b/lib/openai/models/fine_tuning/job_create_params.rb @@ -142,11 +142,11 @@ class JobCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The name of the model to fine-tune. You can select one of the # [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned). - class Model < OpenAI::Union + module Model + extend OpenAI::Union + # @!group BABBAGE_002 = :"babbage-002" @@ -222,11 +222,11 @@ class Hyperparameters < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Number of examples in each batch. A larger batch size means that model # parameters are updated less frequently, but with lower variance. - class BatchSize < OpenAI::Union + module BatchSize + extend OpenAI::Union + variant const: :auto variant Integer @@ -238,11 +238,11 @@ class BatchSize < OpenAI::Union # end end - # @abstract - # # Scaling factor for the learning rate. A smaller learning rate may be useful to # avoid overfitting. - class LearningRateMultiplier < OpenAI::Union + module LearningRateMultiplier + extend OpenAI::Union + variant const: :auto variant Float @@ -254,11 +254,11 @@ class LearningRateMultiplier < OpenAI::Union # end end - # @abstract - # # The number of epochs to train the model for. An epoch refers to one full cycle # through the training dataset. - class NEpochs < OpenAI::Union + module NEpochs + extend OpenAI::Union + variant const: :auto variant Integer @@ -471,11 +471,11 @@ class Hyperparameters < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Number of examples in each batch. A larger batch size means that model # parameters are updated less frequently, but with lower variance. - class BatchSize < OpenAI::Union + module BatchSize + extend OpenAI::Union + variant const: :auto variant Integer @@ -487,11 +487,11 @@ class BatchSize < OpenAI::Union # end end - # @abstract - # # The beta value for the DPO method. A higher beta value will increase the weight # of the penalty between the policy and reference model. - class Beta < OpenAI::Union + module Beta + extend OpenAI::Union + variant const: :auto variant Float @@ -503,11 +503,11 @@ class Beta < OpenAI::Union # end end - # @abstract - # # Scaling factor for the learning rate. A smaller learning rate may be useful to # avoid overfitting. - class LearningRateMultiplier < OpenAI::Union + module LearningRateMultiplier + extend OpenAI::Union + variant const: :auto variant Float @@ -519,11 +519,11 @@ class LearningRateMultiplier < OpenAI::Union # end end - # @abstract - # # The number of epochs to train the model for. An epoch refers to one full cycle # through the training dataset. - class NEpochs < OpenAI::Union + module NEpochs + extend OpenAI::Union + variant const: :auto variant Integer @@ -606,11 +606,11 @@ class Hyperparameters < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Number of examples in each batch. A larger batch size means that model # parameters are updated less frequently, but with lower variance. - class BatchSize < OpenAI::Union + module BatchSize + extend OpenAI::Union + variant const: :auto variant Integer @@ -622,11 +622,11 @@ class BatchSize < OpenAI::Union # end end - # @abstract - # # Scaling factor for the learning rate. A smaller learning rate may be useful to # avoid overfitting. - class LearningRateMultiplier < OpenAI::Union + module LearningRateMultiplier + extend OpenAI::Union + variant const: :auto variant Float @@ -638,11 +638,11 @@ class LearningRateMultiplier < OpenAI::Union # end end - # @abstract - # # The number of epochs to train the model for. An epoch refers to one full cycle # through the training dataset. - class NEpochs < OpenAI::Union + module NEpochs + extend OpenAI::Union + variant const: :auto variant Integer @@ -656,10 +656,10 @@ class NEpochs < OpenAI::Union end end - # @abstract - # # The type of method. Is either `supervised` or `dpo`. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + SUPERVISED = :supervised DPO = :dpo diff --git a/lib/openai/models/image_create_variation_params.rb b/lib/openai/models/image_create_variation_params.rb index d4546f63..ff2e6112 100644 --- a/lib/openai/models/image_create_variation_params.rb +++ b/lib/openai/models/image_create_variation_params.rb @@ -70,11 +70,11 @@ class ImageCreateVariationParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The model to use for image generation. Only `dall-e-2` is supported at this # time. - class Model < OpenAI::Union + module Model + extend OpenAI::Union + variant String # The model to use for image generation. Only `dall-e-2` is supported at this time. @@ -87,23 +87,23 @@ class Model < OpenAI::Union # end end - # @abstract - # # The format in which the generated images are returned. Must be one of `url` or # `b64_json`. URLs are only valid for 60 minutes after the image has been # generated. - class ResponseFormat < OpenAI::Enum + module ResponseFormat + extend OpenAI::Enum + URL = :url B64_JSON = :b64_json finalize! end - # @abstract - # # The size of the generated images. Must be one of `256x256`, `512x512`, or # `1024x1024`. - class Size < OpenAI::Enum + module Size + extend OpenAI::Enum + NUMBER_256X256 = :"256x256" NUMBER_512X512 = :"512x512" NUMBER_1024X1024 = :"1024x1024" diff --git a/lib/openai/models/image_edit_params.rb b/lib/openai/models/image_edit_params.rb index 14c8b8cf..523b95ca 100644 --- a/lib/openai/models/image_edit_params.rb +++ b/lib/openai/models/image_edit_params.rb @@ -101,11 +101,11 @@ class ImageEditParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The model to use for image generation. Only `dall-e-2` is supported at this # time. - class Model < OpenAI::Union + module Model + extend OpenAI::Union + variant String # The model to use for image generation. Only `dall-e-2` is supported at this time. @@ -118,23 +118,23 @@ class Model < OpenAI::Union # end end - # @abstract - # # The format in which the generated images are returned. Must be one of `url` or # `b64_json`. URLs are only valid for 60 minutes after the image has been # generated. - class ResponseFormat < OpenAI::Enum + module ResponseFormat + extend OpenAI::Enum + URL = :url B64_JSON = :b64_json finalize! end - # @abstract - # # The size of the generated images. Must be one of `256x256`, `512x512`, or # `1024x1024`. - class Size < OpenAI::Enum + module Size + extend OpenAI::Enum + NUMBER_256X256 = :"256x256" NUMBER_512X512 = :"512x512" NUMBER_1024X1024 = :"1024x1024" diff --git a/lib/openai/models/image_generate_params.rb b/lib/openai/models/image_generate_params.rb index 577665bd..a4993e78 100644 --- a/lib/openai/models/image_generate_params.rb +++ b/lib/openai/models/image_generate_params.rb @@ -104,10 +104,10 @@ class ImageGenerateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The model to use for image generation. - class Model < OpenAI::Union + module Model + extend OpenAI::Union + variant String # The model to use for image generation. @@ -120,36 +120,36 @@ class Model < OpenAI::Union # end end - # @abstract - # # The quality of the image that will be generated. `hd` creates images with finer # details and greater consistency across the image. This param is only supported # for `dall-e-3`. - class Quality < OpenAI::Enum + module Quality + extend OpenAI::Enum + STANDARD = :standard HD = :hd finalize! end - # @abstract - # # The format in which the generated images are returned. Must be one of `url` or # `b64_json`. URLs are only valid for 60 minutes after the image has been # generated. - class ResponseFormat < OpenAI::Enum + module ResponseFormat + extend OpenAI::Enum + URL = :url B64_JSON = :b64_json finalize! end - # @abstract - # # The size of the generated images. Must be one of `256x256`, `512x512`, or # `1024x1024` for `dall-e-2`. Must be one of `1024x1024`, `1792x1024`, or # `1024x1792` for `dall-e-3` models. - class Size < OpenAI::Enum + module Size + extend OpenAI::Enum + NUMBER_256X256 = :"256x256" NUMBER_512X512 = :"512x512" NUMBER_1024X1024 = :"1024x1024" @@ -159,13 +159,13 @@ class Size < OpenAI::Enum finalize! end - # @abstract - # # The style of the generated images. Must be one of `vivid` or `natural`. Vivid # causes the model to lean towards generating hyper-real and dramatic images. # Natural causes the model to produce more natural, less hyper-real looking # images. This param is only supported for `dall-e-3`. - class Style < OpenAI::Enum + module Style + extend OpenAI::Enum + VIVID = :vivid NATURAL = :natural diff --git a/lib/openai/models/image_model.rb b/lib/openai/models/image_model.rb index e49e6699..ce36cc6d 100644 --- a/lib/openai/models/image_model.rb +++ b/lib/openai/models/image_model.rb @@ -2,8 +2,9 @@ module OpenAI module Models - # @abstract - class ImageModel < OpenAI::Enum + module ImageModel + extend OpenAI::Enum + DALL_E_2 = :"dall-e-2" DALL_E_3 = :"dall-e-3" diff --git a/lib/openai/models/moderation.rb b/lib/openai/models/moderation.rb index 0f3c5a90..2b0818e8 100644 --- a/lib/openai/models/moderation.rb +++ b/lib/openai/models/moderation.rb @@ -309,97 +309,110 @@ class CategoryAppliedInputTypes < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - class Harassment < OpenAI::Enum + module Harassment + extend OpenAI::Enum + TEXT = :text finalize! end - # @abstract - class HarassmentThreatening < OpenAI::Enum + module HarassmentThreatening + extend OpenAI::Enum + TEXT = :text finalize! end - # @abstract - class Hate < OpenAI::Enum + module Hate + extend OpenAI::Enum + TEXT = :text finalize! end - # @abstract - class HateThreatening < OpenAI::Enum + module HateThreatening + extend OpenAI::Enum + TEXT = :text finalize! end - # @abstract - class Illicit < OpenAI::Enum + module Illicit + extend OpenAI::Enum + TEXT = :text finalize! end - # @abstract - class IllicitViolent < OpenAI::Enum + module IllicitViolent + extend OpenAI::Enum + TEXT = :text finalize! end - # @abstract - class SelfHarm < OpenAI::Enum + module SelfHarm + extend OpenAI::Enum + TEXT = :text IMAGE = :image finalize! end - # @abstract - class SelfHarmInstruction < OpenAI::Enum + module SelfHarmInstruction + extend OpenAI::Enum + TEXT = :text IMAGE = :image finalize! end - # @abstract - class SelfHarmIntent < OpenAI::Enum + module SelfHarmIntent + extend OpenAI::Enum + TEXT = :text IMAGE = :image finalize! end - # @abstract - class Sexual < OpenAI::Enum + module Sexual + extend OpenAI::Enum + TEXT = :text IMAGE = :image finalize! end - # @abstract - class SexualMinor < OpenAI::Enum + module SexualMinor + extend OpenAI::Enum + TEXT = :text finalize! end - # @abstract - class Violence < OpenAI::Enum + module Violence + extend OpenAI::Enum + TEXT = :text IMAGE = :image finalize! end - # @abstract - class ViolenceGraphic < OpenAI::Enum + module ViolenceGraphic + extend OpenAI::Enum + TEXT = :text IMAGE = :image diff --git a/lib/openai/models/moderation_create_params.rb b/lib/openai/models/moderation_create_params.rb index e0789618..89acded2 100644 --- a/lib/openai/models/moderation_create_params.rb +++ b/lib/openai/models/moderation_create_params.rb @@ -36,11 +36,11 @@ class ModerationCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Input (or inputs) to classify. Can be a single string, an array of strings, or # an array of multi-modal input objects similar to other models. - class Input < OpenAI::Union + module Input + extend OpenAI::Union + StringArray = OpenAI::ArrayOf[String] ModerationMultiModalInputArray = OpenAI::ArrayOf[union: -> { OpenAI::Models::ModerationMultiModalInput }] @@ -61,13 +61,13 @@ class Input < OpenAI::Union # end end - # @abstract - # # The content moderation model you would like to use. Learn more in # [the moderation guide](https://platform.openai.com/docs/guides/moderation), and # learn about available models # [here](https://platform.openai.com/docs/models#moderation). - class Model < OpenAI::Union + module Model + extend OpenAI::Union + variant String # The content moderation model you would like to use. Learn more in diff --git a/lib/openai/models/moderation_model.rb b/lib/openai/models/moderation_model.rb index 4089ad86..aad66a00 100644 --- a/lib/openai/models/moderation_model.rb +++ b/lib/openai/models/moderation_model.rb @@ -2,8 +2,9 @@ module OpenAI module Models - # @abstract - class ModerationModel < OpenAI::Enum + module ModerationModel + extend OpenAI::Enum + OMNI_MODERATION_LATEST = :"omni-moderation-latest" OMNI_MODERATION_2024_09_26 = :"omni-moderation-2024-09-26" TEXT_MODERATION_LATEST = :"text-moderation-latest" diff --git a/lib/openai/models/moderation_multi_modal_input.rb b/lib/openai/models/moderation_multi_modal_input.rb index 47271a66..c6441173 100644 --- a/lib/openai/models/moderation_multi_modal_input.rb +++ b/lib/openai/models/moderation_multi_modal_input.rb @@ -2,10 +2,10 @@ module OpenAI module Models - # @abstract - # # An object describing an image to classify. - class ModerationMultiModalInput < OpenAI::Union + module ModerationMultiModalInput + extend OpenAI::Union + discriminator :type # An object describing an image to classify. diff --git a/lib/openai/models/reasoning.rb b/lib/openai/models/reasoning.rb index a4ec26de..cfe04696 100644 --- a/lib/openai/models/reasoning.rb +++ b/lib/openai/models/reasoning.rb @@ -37,14 +37,14 @@ class Reasoning < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # **computer_use_preview only** # # A summary of the reasoning performed by the model. This can be useful for # debugging and understanding the model's reasoning process. One of `concise` or # `detailed`. - class GenerateSummary < OpenAI::Enum + module GenerateSummary + extend OpenAI::Enum + CONCISE = :concise DETAILED = :detailed diff --git a/lib/openai/models/reasoning_effort.rb b/lib/openai/models/reasoning_effort.rb index f1fee21d..e27540e1 100644 --- a/lib/openai/models/reasoning_effort.rb +++ b/lib/openai/models/reasoning_effort.rb @@ -2,15 +2,15 @@ module OpenAI module Models - # @abstract - # # **o-series models only** # # Constrains effort on reasoning for # [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently # supported values are `low`, `medium`, and `high`. Reducing reasoning effort can # result in faster responses and fewer tokens used on reasoning in a response. - class ReasoningEffort < OpenAI::Enum + module ReasoningEffort + extend OpenAI::Enum + LOW = :low MEDIUM = :medium HIGH = :high diff --git a/lib/openai/models/responses/computer_tool.rb b/lib/openai/models/responses/computer_tool.rb index 65a0097a..1359937f 100644 --- a/lib/openai/models/responses/computer_tool.rb +++ b/lib/openai/models/responses/computer_tool.rb @@ -41,10 +41,10 @@ class ComputerTool < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The type of computer environment to control. - class Environment < OpenAI::Enum + module Environment + extend OpenAI::Enum + MAC = :mac WINDOWS = :windows UBUNTU = :ubuntu diff --git a/lib/openai/models/responses/easy_input_message.rb b/lib/openai/models/responses/easy_input_message.rb index e4effc89..bd57a3e2 100644 --- a/lib/openai/models/responses/easy_input_message.rb +++ b/lib/openai/models/responses/easy_input_message.rb @@ -43,11 +43,11 @@ class EasyInputMessage < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Text, image, or audio input to the model, used to generate a response. Can also # contain previous assistant responses. - class Content < OpenAI::Union + module Content + extend OpenAI::Union + # A text input to the model. variant String @@ -62,11 +62,11 @@ class Content < OpenAI::Union # end end - # @abstract - # # The role of the message input. One of `user`, `assistant`, `system`, or # `developer`. - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER = :user ASSISTANT = :assistant SYSTEM = :system @@ -75,10 +75,10 @@ class Role < OpenAI::Enum finalize! end - # @abstract - # # The type of the message input. Always `message`. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + MESSAGE = :message finalize! diff --git a/lib/openai/models/responses/file_search_tool.rb b/lib/openai/models/responses/file_search_tool.rb index c2ba4177..28ded43b 100644 --- a/lib/openai/models/responses/file_search_tool.rb +++ b/lib/openai/models/responses/file_search_tool.rb @@ -62,10 +62,10 @@ class FileSearchTool < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # A filter to apply based on file attributes. - class Filters < OpenAI::Union + module Filters + extend OpenAI::Union + # A filter used to compare a specified attribute key to a given value using a defined comparison operation. variant -> { OpenAI::Models::ComparisonFilter } @@ -112,10 +112,10 @@ class RankingOptions < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The ranker to use for the file search. - class Ranker < OpenAI::Enum + module Ranker + extend OpenAI::Enum + AUTO = :auto DEFAULT_2024_11_15 = :"default-2024-11-15" diff --git a/lib/openai/models/responses/input_item_list_params.rb b/lib/openai/models/responses/input_item_list_params.rb index e0cb2854..adee6e5b 100644 --- a/lib/openai/models/responses/input_item_list_params.rb +++ b/lib/openai/models/responses/input_item_list_params.rb @@ -63,13 +63,13 @@ class InputItemListParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The order to return the input items in. Default is `asc`. # # - `asc`: Return the input items in ascending order. # - `desc`: Return the input items in descending order. - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC = :asc DESC = :desc diff --git a/lib/openai/models/responses/response.rb b/lib/openai/models/responses/response.rb index 8b979829..71264a0f 100644 --- a/lib/openai/models/responses/response.rb +++ b/lib/openai/models/responses/response.rb @@ -289,10 +289,10 @@ class IncompleteDetails < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The reason why the response is incomplete. - class Reason < OpenAI::Enum + module Reason + extend OpenAI::Enum + MAX_OUTPUT_TOKENS = :max_output_tokens CONTENT_FILTER = :content_filter @@ -300,12 +300,12 @@ class Reason < OpenAI::Enum end end - # @abstract - # # How the model should select which tool (or tools) to use when generating a # response. See the `tools` parameter to see how to specify which tools the model # can call. - class ToolChoice < OpenAI::Union + module ToolChoice + extend OpenAI::Union + # Controls which (if any) tool is called by the model. # # `none` means the model will not call any tool and instead generates a message. @@ -330,8 +330,6 @@ class ToolChoice < OpenAI::Union # end end - # @abstract - # # The truncation strategy to use for the model response. # # - `auto`: If the context of this response and previous ones exceeds the model's @@ -339,7 +337,9 @@ class ToolChoice < OpenAI::Union # window by dropping input items in the middle of the conversation. # - `disabled` (default): If a model response will exceed the context window size # for a model, the request will fail with a 400 error. - class Truncation < OpenAI::Enum + module Truncation + extend OpenAI::Enum + AUTO = :auto DISABLED = :disabled diff --git a/lib/openai/models/responses/response_code_interpreter_tool_call.rb b/lib/openai/models/responses/response_code_interpreter_tool_call.rb index e93e62cf..bf04793b 100644 --- a/lib/openai/models/responses/response_code_interpreter_tool_call.rb +++ b/lib/openai/models/responses/response_code_interpreter_tool_call.rb @@ -48,10 +48,10 @@ class ResponseCodeInterpreterToolCall < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The output of a code interpreter tool call that is text. - class Result < OpenAI::Union + module Result + extend OpenAI::Union + discriminator :type # The output of a code interpreter tool call that is text. @@ -137,10 +137,10 @@ class File < OpenAI::BaseModel # end end - # @abstract - # # The status of the code interpreter tool call. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress INTERPRETING = :interpreting COMPLETED = :completed diff --git a/lib/openai/models/responses/response_computer_tool_call.rb b/lib/openai/models/responses/response_computer_tool_call.rb index 20bd85ae..07da24be 100644 --- a/lib/openai/models/responses/response_computer_tool_call.rb +++ b/lib/openai/models/responses/response_computer_tool_call.rb @@ -58,10 +58,10 @@ class ResponseComputerToolCall < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # A click action. - class Action < OpenAI::Union + module Action + extend OpenAI::Union + discriminator :type # A click action. @@ -130,11 +130,11 @@ class Click < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Indicates which mouse button was pressed during the click. One of `left`, # `right`, `wheel`, `back`, or `forward`. - class Button < OpenAI::Enum + module Button + extend OpenAI::Enum + LEFT = :left RIGHT = :right WHEEL = :wheel @@ -438,11 +438,11 @@ class PendingSafetyCheck < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void end - # @abstract - # # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed INCOMPLETE = :incomplete @@ -450,10 +450,10 @@ class Status < OpenAI::Enum finalize! end - # @abstract - # # The type of the computer call. Always `computer_call`. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + COMPUTER_CALL = :computer_call finalize! diff --git a/lib/openai/models/responses/response_computer_tool_call_output_item.rb b/lib/openai/models/responses/response_computer_tool_call_output_item.rb index 252be325..33e5105d 100644 --- a/lib/openai/models/responses/response_computer_tool_call_output_item.rb +++ b/lib/openai/models/responses/response_computer_tool_call_output_item.rb @@ -94,11 +94,11 @@ class AcknowledgedSafetyCheck < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void end - # @abstract - # # The status of the message input. One of `in_progress`, `completed`, or # `incomplete`. Populated when input items are returned via API. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed INCOMPLETE = :incomplete diff --git a/lib/openai/models/responses/response_content.rb b/lib/openai/models/responses/response_content.rb index 72456bac..ad933f5d 100644 --- a/lib/openai/models/responses/response_content.rb +++ b/lib/openai/models/responses/response_content.rb @@ -3,10 +3,10 @@ module OpenAI module Models module Responses - # @abstract - # # Multi-modal input and output contents. - class ResponseContent < OpenAI::Union + module ResponseContent + extend OpenAI::Union + # A text input to the model. variant -> { OpenAI::Models::Responses::ResponseInputText } diff --git a/lib/openai/models/responses/response_content_part_added_event.rb b/lib/openai/models/responses/response_content_part_added_event.rb index 1fa8be8b..a1fb23a0 100644 --- a/lib/openai/models/responses/response_content_part_added_event.rb +++ b/lib/openai/models/responses/response_content_part_added_event.rb @@ -47,10 +47,10 @@ class ResponseContentPartAddedEvent < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The content part that was added. - class Part < OpenAI::Union + module Part + extend OpenAI::Union + discriminator :type # A text output from the model. diff --git a/lib/openai/models/responses/response_content_part_done_event.rb b/lib/openai/models/responses/response_content_part_done_event.rb index 0911d697..968c86e1 100644 --- a/lib/openai/models/responses/response_content_part_done_event.rb +++ b/lib/openai/models/responses/response_content_part_done_event.rb @@ -47,10 +47,10 @@ class ResponseContentPartDoneEvent < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The content part that is done. - class Part < OpenAI::Union + module Part + extend OpenAI::Union + discriminator :type # A text output from the model. diff --git a/lib/openai/models/responses/response_create_params.rb b/lib/openai/models/responses/response_create_params.rb index 05ef2120..ebca56e3 100644 --- a/lib/openai/models/responses/response_create_params.rb +++ b/lib/openai/models/responses/response_create_params.rb @@ -242,8 +242,6 @@ class ResponseCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Text, image, or file inputs to the model, used to generate a response. # # Learn more: @@ -253,7 +251,9 @@ class ResponseCreateParams < OpenAI::BaseModel # - [File inputs](https://platform.openai.com/docs/guides/pdf-files) # - [Conversation state](https://platform.openai.com/docs/guides/conversation-state) # - [Function calling](https://platform.openai.com/docs/guides/function-calling) - class Input < OpenAI::Union + module Input + extend OpenAI::Union + # A text input to the model, equivalent to a text input with the # `user` role. variant String @@ -269,12 +269,12 @@ class Input < OpenAI::Union # end end - # @abstract - # # How the model should select which tool (or tools) to use when generating a # response. See the `tools` parameter to see how to specify which tools the model # can call. - class ToolChoice < OpenAI::Union + module ToolChoice + extend OpenAI::Union + # Controls which (if any) tool is called by the model. # # `none` means the model will not call any tool and instead generates a message. @@ -299,8 +299,6 @@ class ToolChoice < OpenAI::Union # end end - # @abstract - # # The truncation strategy to use for the model response. # # - `auto`: If the context of this response and previous ones exceeds the model's @@ -308,7 +306,9 @@ class ToolChoice < OpenAI::Union # window by dropping input items in the middle of the conversation. # - `disabled` (default): If a model response will exceed the context window size # for a model, the request will fail with a 400 error. - class Truncation < OpenAI::Enum + module Truncation + extend OpenAI::Enum + AUTO = :auto DISABLED = :disabled diff --git a/lib/openai/models/responses/response_error.rb b/lib/openai/models/responses/response_error.rb index 47dd8b4b..21b8b11b 100644 --- a/lib/openai/models/responses/response_error.rb +++ b/lib/openai/models/responses/response_error.rb @@ -26,10 +26,10 @@ class ResponseError < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The error code for the response. - class Code < OpenAI::Enum + module Code + extend OpenAI::Enum + SERVER_ERROR = :server_error RATE_LIMIT_EXCEEDED = :rate_limit_exceeded INVALID_PROMPT = :invalid_prompt diff --git a/lib/openai/models/responses/response_file_search_tool_call.rb b/lib/openai/models/responses/response_file_search_tool_call.rb index 8054ec60..11c8e566 100644 --- a/lib/openai/models/responses/response_file_search_tool_call.rb +++ b/lib/openai/models/responses/response_file_search_tool_call.rb @@ -52,11 +52,11 @@ class ResponseFileSearchToolCall < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The status of the file search tool call. One of `in_progress`, `searching`, # `incomplete` or `failed`, - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress SEARCHING = :searching COMPLETED = :completed @@ -130,8 +130,9 @@ class Result < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - class Attribute < OpenAI::Union + module Attribute + extend OpenAI::Union + variant String variant Float diff --git a/lib/openai/models/responses/response_format_text_config.rb b/lib/openai/models/responses/response_format_text_config.rb index 6749d6bc..81d6ac10 100644 --- a/lib/openai/models/responses/response_format_text_config.rb +++ b/lib/openai/models/responses/response_format_text_config.rb @@ -3,8 +3,6 @@ module OpenAI module Models module Responses - # @abstract - # # An object specifying the format that the model must output. # # Configuring `{ "type": "json_schema" }` enables Structured Outputs, which @@ -18,7 +16,9 @@ module Responses # Setting to `{ "type": "json_object" }` enables the older JSON mode, which # ensures the message the model generates is valid JSON. Using `json_schema` is # preferred for models that support it. - class ResponseFormatTextConfig < OpenAI::Union + module ResponseFormatTextConfig + extend OpenAI::Union + discriminator :type # Default response format. Used to generate text responses. diff --git a/lib/openai/models/responses/response_function_tool_call.rb b/lib/openai/models/responses/response_function_tool_call.rb index b2b500c1..2cdffc5f 100644 --- a/lib/openai/models/responses/response_function_tool_call.rb +++ b/lib/openai/models/responses/response_function_tool_call.rb @@ -65,11 +65,11 @@ class ResponseFunctionToolCall < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed INCOMPLETE = :incomplete diff --git a/lib/openai/models/responses/response_function_tool_call_output_item.rb b/lib/openai/models/responses/response_function_tool_call_output_item.rb index 503dee7b..283f9afa 100644 --- a/lib/openai/models/responses/response_function_tool_call_output_item.rb +++ b/lib/openai/models/responses/response_function_tool_call_output_item.rb @@ -50,11 +50,11 @@ class ResponseFunctionToolCallOutputItem < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed INCOMPLETE = :incomplete diff --git a/lib/openai/models/responses/response_function_web_search.rb b/lib/openai/models/responses/response_function_web_search.rb index 8afd6c8b..fbcf112a 100644 --- a/lib/openai/models/responses/response_function_web_search.rb +++ b/lib/openai/models/responses/response_function_web_search.rb @@ -35,10 +35,10 @@ class ResponseFunctionWebSearch < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The status of the web search tool call. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress SEARCHING = :searching COMPLETED = :completed diff --git a/lib/openai/models/responses/response_includable.rb b/lib/openai/models/responses/response_includable.rb index 2d318473..7eb0bd14 100644 --- a/lib/openai/models/responses/response_includable.rb +++ b/lib/openai/models/responses/response_includable.rb @@ -3,8 +3,6 @@ module OpenAI module Models module Responses - # @abstract - # # Specify additional output data to include in the model response. Currently # supported values are: # @@ -13,7 +11,9 @@ module Responses # - `message.input_image.image_url`: Include image urls from the input message. # - `computer_call_output.output.image_url`: Include image urls from the computer # call output. - class ResponseIncludable < OpenAI::Enum + module ResponseIncludable + extend OpenAI::Enum + FILE_SEARCH_CALL_RESULTS = :"file_search_call.results" MESSAGE_INPUT_IMAGE_IMAGE_URL = :"message.input_image.image_url" COMPUTER_CALL_OUTPUT_OUTPUT_IMAGE_URL = :"computer_call_output.output.image_url" diff --git a/lib/openai/models/responses/response_input_audio.rb b/lib/openai/models/responses/response_input_audio.rb index 24201588..23539df8 100644 --- a/lib/openai/models/responses/response_input_audio.rb +++ b/lib/openai/models/responses/response_input_audio.rb @@ -33,10 +33,10 @@ class ResponseInputAudio < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The format of the audio data. Currently supported formats are `mp3` and `wav`. - class Format < OpenAI::Enum + module Format + extend OpenAI::Enum + MP3 = :mp3 WAV = :wav diff --git a/lib/openai/models/responses/response_input_content.rb b/lib/openai/models/responses/response_input_content.rb index 8d6226d4..fd4e014d 100644 --- a/lib/openai/models/responses/response_input_content.rb +++ b/lib/openai/models/responses/response_input_content.rb @@ -3,10 +3,10 @@ module OpenAI module Models module Responses - # @abstract - # # A text input to the model. - class ResponseInputContent < OpenAI::Union + module ResponseInputContent + extend OpenAI::Union + discriminator :type # A text input to the model. diff --git a/lib/openai/models/responses/response_input_image.rb b/lib/openai/models/responses/response_input_image.rb index e9334fd0..e6d2c0ce 100644 --- a/lib/openai/models/responses/response_input_image.rb +++ b/lib/openai/models/responses/response_input_image.rb @@ -43,11 +43,11 @@ class ResponseInputImage < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The detail level of the image to be sent to the model. One of `high`, `low`, or # `auto`. Defaults to `auto`. - class Detail < OpenAI::Enum + module Detail + extend OpenAI::Enum + HIGH = :high LOW = :low AUTO = :auto diff --git a/lib/openai/models/responses/response_input_item.rb b/lib/openai/models/responses/response_input_item.rb index de2477cf..adb90a0a 100644 --- a/lib/openai/models/responses/response_input_item.rb +++ b/lib/openai/models/responses/response_input_item.rb @@ -3,14 +3,14 @@ module OpenAI module Models module Responses - # @abstract - # # A message input to the model with a role indicating instruction following # hierarchy. Instructions given with the `developer` or `system` role take # precedence over instructions given with the `user` role. Messages with the # `assistant` role are presumed to have been generated by the model in previous # interactions. - class ResponseInputItem < OpenAI::Union + module ResponseInputItem + extend OpenAI::Union + discriminator :type # A message input to the model with a role indicating instruction following @@ -106,10 +106,10 @@ class Message < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The role of the message input. One of `user`, `system`, or `developer`. - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER = :user SYSTEM = :system DEVELOPER = :developer @@ -117,11 +117,11 @@ class Role < OpenAI::Enum finalize! end - # @abstract - # # The status of item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed INCOMPLETE = :incomplete @@ -129,10 +129,10 @@ class Status < OpenAI::Enum finalize! end - # @abstract - # # The type of the message input. Always set to `message`. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + MESSAGE = :message finalize! @@ -236,11 +236,11 @@ class AcknowledgedSafetyCheck < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void end - # @abstract - # # The status of the message input. One of `in_progress`, `completed`, or # `incomplete`. Populated when input items are returned via API. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed INCOMPLETE = :incomplete @@ -303,11 +303,11 @@ class FunctionCallOutput < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed INCOMPLETE = :incomplete diff --git a/lib/openai/models/responses/response_input_message_item.rb b/lib/openai/models/responses/response_input_message_item.rb index 2a9dd999..4e29d6dd 100644 --- a/lib/openai/models/responses/response_input_message_item.rb +++ b/lib/openai/models/responses/response_input_message_item.rb @@ -55,10 +55,10 @@ class ResponseInputMessageItem < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The role of the message input. One of `user`, `system`, or `developer`. - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER = :user SYSTEM = :system DEVELOPER = :developer @@ -66,11 +66,11 @@ class Role < OpenAI::Enum finalize! end - # @abstract - # # The status of item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed INCOMPLETE = :incomplete @@ -78,10 +78,10 @@ class Status < OpenAI::Enum finalize! end - # @abstract - # # The type of the message input. Always set to `message`. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + MESSAGE = :message finalize! diff --git a/lib/openai/models/responses/response_item.rb b/lib/openai/models/responses/response_item.rb index b3f4f86c..baeff0e5 100644 --- a/lib/openai/models/responses/response_item.rb +++ b/lib/openai/models/responses/response_item.rb @@ -3,10 +3,10 @@ module OpenAI module Models module Responses - # @abstract - # # Content item used to generate a response. - class ResponseItem < OpenAI::Union + module ResponseItem + extend OpenAI::Union + discriminator :type variant :message, -> { OpenAI::Models::Responses::ResponseInputMessageItem } diff --git a/lib/openai/models/responses/response_output_item.rb b/lib/openai/models/responses/response_output_item.rb index 2ed933fd..9bdb2a25 100644 --- a/lib/openai/models/responses/response_output_item.rb +++ b/lib/openai/models/responses/response_output_item.rb @@ -3,10 +3,10 @@ module OpenAI module Models module Responses - # @abstract - # # An output message from the model. - class ResponseOutputItem < OpenAI::Union + module ResponseOutputItem + extend OpenAI::Union + discriminator :type # An output message from the model. diff --git a/lib/openai/models/responses/response_output_message.rb b/lib/openai/models/responses/response_output_message.rb index 1dee0300..d9ab6443 100644 --- a/lib/openai/models/responses/response_output_message.rb +++ b/lib/openai/models/responses/response_output_message.rb @@ -49,10 +49,10 @@ class ResponseOutputMessage < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # A text output from the model. - class Content < OpenAI::Union + module Content + extend OpenAI::Union + discriminator :type # A text output from the model. @@ -68,11 +68,11 @@ class Content < OpenAI::Union # end end - # @abstract - # # The status of the message input. One of `in_progress`, `completed`, or # `incomplete`. Populated when input items are returned via API. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed INCOMPLETE = :incomplete diff --git a/lib/openai/models/responses/response_output_text.rb b/lib/openai/models/responses/response_output_text.rb index 175d5eda..a5027854 100644 --- a/lib/openai/models/responses/response_output_text.rb +++ b/lib/openai/models/responses/response_output_text.rb @@ -34,10 +34,10 @@ class ResponseOutputText < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # A citation to a file. - class Annotation < OpenAI::Union + module Annotation + extend OpenAI::Union + discriminator :type # A citation to a file. diff --git a/lib/openai/models/responses/response_reasoning_item.rb b/lib/openai/models/responses/response_reasoning_item.rb index c4d60d3f..4c410d54 100644 --- a/lib/openai/models/responses/response_reasoning_item.rb +++ b/lib/openai/models/responses/response_reasoning_item.rb @@ -68,11 +68,11 @@ class Summary < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void end - # @abstract - # # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed INCOMPLETE = :incomplete diff --git a/lib/openai/models/responses/response_status.rb b/lib/openai/models/responses/response_status.rb index e15a7a6e..3ec9d99f 100644 --- a/lib/openai/models/responses/response_status.rb +++ b/lib/openai/models/responses/response_status.rb @@ -3,11 +3,11 @@ module OpenAI module Models module Responses - # @abstract - # # The status of the response generation. One of `completed`, `failed`, # `in_progress`, or `incomplete`. - class ResponseStatus < OpenAI::Enum + module ResponseStatus + extend OpenAI::Enum + COMPLETED = :completed FAILED = :failed IN_PROGRESS = :in_progress diff --git a/lib/openai/models/responses/response_stream_event.rb b/lib/openai/models/responses/response_stream_event.rb index 85fe7a25..73a45396 100644 --- a/lib/openai/models/responses/response_stream_event.rb +++ b/lib/openai/models/responses/response_stream_event.rb @@ -3,10 +3,10 @@ module OpenAI module Models module Responses - # @abstract - # # Emitted when there is a partial audio response. - class ResponseStreamEvent < OpenAI::Union + module ResponseStreamEvent + extend OpenAI::Union + discriminator :type # Emitted when there is a partial audio response. diff --git a/lib/openai/models/responses/response_text_annotation_delta_event.rb b/lib/openai/models/responses/response_text_annotation_delta_event.rb index 4d980266..a8dbcfba 100644 --- a/lib/openai/models/responses/response_text_annotation_delta_event.rb +++ b/lib/openai/models/responses/response_text_annotation_delta_event.rb @@ -65,10 +65,10 @@ class ResponseTextAnnotationDeltaEvent < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # A citation to a file. - class Annotation < OpenAI::Union + module Annotation + extend OpenAI::Union + discriminator :type # A citation to a file. diff --git a/lib/openai/models/responses/tool.rb b/lib/openai/models/responses/tool.rb index 9093989e..c3d097ce 100644 --- a/lib/openai/models/responses/tool.rb +++ b/lib/openai/models/responses/tool.rb @@ -3,12 +3,12 @@ module OpenAI module Models module Responses - # @abstract - # # A tool that searches for relevant content from uploaded files. Learn more about # the # [file search tool](https://platform.openai.com/docs/guides/tools-file-search). - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + discriminator :type # A tool that searches for relevant content from uploaded files. diff --git a/lib/openai/models/responses/tool_choice_options.rb b/lib/openai/models/responses/tool_choice_options.rb index e72582b9..9ec1a734 100644 --- a/lib/openai/models/responses/tool_choice_options.rb +++ b/lib/openai/models/responses/tool_choice_options.rb @@ -3,8 +3,6 @@ module OpenAI module Models module Responses - # @abstract - # # Controls which (if any) tool is called by the model. # # `none` means the model will not call any tool and instead generates a message. @@ -13,7 +11,9 @@ module Responses # more tools. # # `required` means the model must call one or more tools. - class ToolChoiceOptions < OpenAI::Enum + module ToolChoiceOptions + extend OpenAI::Enum + NONE = :none AUTO = :auto REQUIRED = :required diff --git a/lib/openai/models/responses/tool_choice_types.rb b/lib/openai/models/responses/tool_choice_types.rb index 3398854c..9d8e05e2 100644 --- a/lib/openai/models/responses/tool_choice_types.rb +++ b/lib/openai/models/responses/tool_choice_types.rb @@ -27,8 +27,6 @@ class ToolChoiceTypes < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The type of hosted tool the model should to use. Learn more about # [built-in tools](https://platform.openai.com/docs/guides/tools). # @@ -37,7 +35,9 @@ class ToolChoiceTypes < OpenAI::BaseModel # - `file_search` # - `web_search_preview` # - `computer_use_preview` - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + FILE_SEARCH = :file_search WEB_SEARCH_PREVIEW = :web_search_preview COMPUTER_USE_PREVIEW = :computer_use_preview diff --git a/lib/openai/models/responses/web_search_tool.rb b/lib/openai/models/responses/web_search_tool.rb index 6a2acdc0..9341e708 100644 --- a/lib/openai/models/responses/web_search_tool.rb +++ b/lib/openai/models/responses/web_search_tool.rb @@ -42,24 +42,24 @@ class WebSearchTool < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The type of the web search tool. One of: # # - `web_search_preview` # - `web_search_preview_2025_03_11` - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + WEB_SEARCH_PREVIEW = :web_search_preview WEB_SEARCH_PREVIEW_2025_03_11 = :web_search_preview_2025_03_11 finalize! end - # @abstract - # # High level guidance for the amount of context window space to use for the # search. One of `low`, `medium`, or `high`. `medium` is the default. - class SearchContextSize < OpenAI::Enum + module SearchContextSize + extend OpenAI::Enum + LOW = :low MEDIUM = :medium HIGH = :high diff --git a/lib/openai/models/responses_model.rb b/lib/openai/models/responses_model.rb index d96fdbc5..c80cbfbd 100644 --- a/lib/openai/models/responses_model.rb +++ b/lib/openai/models/responses_model.rb @@ -2,16 +2,18 @@ module OpenAI module Models - # @abstract - class ResponsesModel < OpenAI::Union + module ResponsesModel + extend OpenAI::Union + variant String variant enum: -> { OpenAI::Models::ChatModel } variant enum: -> { OpenAI::Models::ResponsesModel::UnionMember2 } - # @abstract - class UnionMember2 < OpenAI::Enum + module UnionMember2 + extend OpenAI::Enum + O1_PRO = :"o1-pro" O1_PRO_2025_03_19 = :"o1-pro-2025-03-19" COMPUTER_USE_PREVIEW = :"computer-use-preview" diff --git a/lib/openai/models/upload.rb b/lib/openai/models/upload.rb index 0e6b2be5..507858a6 100644 --- a/lib/openai/models/upload.rb +++ b/lib/openai/models/upload.rb @@ -76,10 +76,10 @@ class Upload < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The status of the Upload. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + PENDING = :pending COMPLETED = :completed CANCELLED = :cancelled diff --git a/lib/openai/models/vector_store.rb b/lib/openai/models/vector_store.rb index 7593bb95..3c74e1d8 100644 --- a/lib/openai/models/vector_store.rb +++ b/lib/openai/models/vector_store.rb @@ -157,12 +157,12 @@ class FileCounts < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void end - # @abstract - # # The status of the vector store, which can be either `expired`, `in_progress`, or # `completed`. A status of `completed` indicates that the vector store is ready # for use. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + EXPIRED = :expired IN_PROGRESS = :in_progress COMPLETED = :completed diff --git a/lib/openai/models/vector_store_list_params.rb b/lib/openai/models/vector_store_list_params.rb index ee2a79cf..5effb4ea 100644 --- a/lib/openai/models/vector_store_list_params.rb +++ b/lib/openai/models/vector_store_list_params.rb @@ -66,11 +66,11 @@ class VectorStoreListParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC = :asc DESC = :desc diff --git a/lib/openai/models/vector_store_search_params.rb b/lib/openai/models/vector_store_search_params.rb index 30d37581..ea877db0 100644 --- a/lib/openai/models/vector_store_search_params.rb +++ b/lib/openai/models/vector_store_search_params.rb @@ -76,10 +76,10 @@ class VectorStoreSearchParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # A query string for a search - class Query < OpenAI::Union + module Query + extend OpenAI::Union + StringArray = OpenAI::ArrayOf[String] variant String @@ -93,10 +93,10 @@ class Query < OpenAI::Union # end end - # @abstract - # # A filter to apply based on file attributes. - class Filters < OpenAI::Union + module Filters + extend OpenAI::Union + # A filter used to compare a specified attribute key to a given value using a defined comparison operation. variant -> { OpenAI::Models::ComparisonFilter } @@ -139,8 +139,9 @@ class RankingOptions < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - class Ranker < OpenAI::Enum + module Ranker + extend OpenAI::Enum + AUTO = :auto DEFAULT_2024_11_15 = :"default-2024-11-15" diff --git a/lib/openai/models/vector_store_search_response.rb b/lib/openai/models/vector_store_search_response.rb index 233cdad0..ebb55560 100644 --- a/lib/openai/models/vector_store_search_response.rb +++ b/lib/openai/models/vector_store_search_response.rb @@ -50,8 +50,9 @@ class VectorStoreSearchResponse < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - class Attribute < OpenAI::Union + module Attribute + extend OpenAI::Union + variant String variant Float @@ -86,10 +87,10 @@ class Content < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # The type of content. - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + TEXT = :text finalize! diff --git a/lib/openai/models/vector_stores/file_batch_create_params.rb b/lib/openai/models/vector_stores/file_batch_create_params.rb index e35057be..ad9ef46e 100644 --- a/lib/openai/models/vector_stores/file_batch_create_params.rb +++ b/lib/openai/models/vector_stores/file_batch_create_params.rb @@ -49,8 +49,9 @@ class FileBatchCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - class Attribute < OpenAI::Union + module Attribute + extend OpenAI::Union + variant String variant Float diff --git a/lib/openai/models/vector_stores/file_batch_list_files_params.rb b/lib/openai/models/vector_stores/file_batch_list_files_params.rb index 40629c3c..20469fe9 100644 --- a/lib/openai/models/vector_stores/file_batch_list_files_params.rb +++ b/lib/openai/models/vector_stores/file_batch_list_files_params.rb @@ -84,10 +84,10 @@ class FileBatchListFilesParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. - class Filter < OpenAI::Enum + module Filter + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed FAILED = :failed @@ -96,11 +96,11 @@ class Filter < OpenAI::Enum finalize! end - # @abstract - # # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC = :asc DESC = :desc diff --git a/lib/openai/models/vector_stores/file_create_params.rb b/lib/openai/models/vector_stores/file_create_params.rb index 3e7c7817..58fbaa08 100644 --- a/lib/openai/models/vector_stores/file_create_params.rb +++ b/lib/openai/models/vector_stores/file_create_params.rb @@ -49,8 +49,9 @@ class FileCreateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - class Attribute < OpenAI::Union + module Attribute + extend OpenAI::Union + variant String variant Float diff --git a/lib/openai/models/vector_stores/file_list_params.rb b/lib/openai/models/vector_stores/file_list_params.rb index c227d297..2f7ffbbc 100644 --- a/lib/openai/models/vector_stores/file_list_params.rb +++ b/lib/openai/models/vector_stores/file_list_params.rb @@ -78,10 +78,10 @@ class FileListParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. - class Filter < OpenAI::Enum + module Filter + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed FAILED = :failed @@ -90,11 +90,11 @@ class Filter < OpenAI::Enum finalize! end - # @abstract - # # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC = :asc DESC = :desc diff --git a/lib/openai/models/vector_stores/file_update_params.rb b/lib/openai/models/vector_stores/file_update_params.rb index 6b9100d4..c88b9a73 100644 --- a/lib/openai/models/vector_stores/file_update_params.rb +++ b/lib/openai/models/vector_stores/file_update_params.rb @@ -34,8 +34,9 @@ class FileUpdateParams < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - class Attribute < OpenAI::Union + module Attribute + extend OpenAI::Union + variant String variant Float diff --git a/lib/openai/models/vector_stores/vector_store_file.rb b/lib/openai/models/vector_stores/vector_store_file.rb index 5aa034c1..c3d22aef 100644 --- a/lib/openai/models/vector_stores/vector_store_file.rb +++ b/lib/openai/models/vector_stores/vector_store_file.rb @@ -129,10 +129,10 @@ class LastError < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - # @abstract - # # One of `server_error` or `rate_limit_exceeded`. - class Code < OpenAI::Enum + module Code + extend OpenAI::Enum + SERVER_ERROR = :server_error UNSUPPORTED_FILE = :unsupported_file INVALID_FILE = :invalid_file @@ -141,12 +141,12 @@ class Code < OpenAI::Enum end end - # @abstract - # # The status of the vector store file, which can be either `in_progress`, # `completed`, `cancelled`, or `failed`. The status `completed` indicates that the # vector store file is ready for use. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed CANCELLED = :cancelled @@ -155,8 +155,9 @@ class Status < OpenAI::Enum finalize! end - # @abstract - class Attribute < OpenAI::Union + module Attribute + extend OpenAI::Union + variant String variant Float diff --git a/lib/openai/models/vector_stores/vector_store_file_batch.rb b/lib/openai/models/vector_stores/vector_store_file_batch.rb index da82a1f6..a8628b40 100644 --- a/lib/openai/models/vector_stores/vector_store_file_batch.rb +++ b/lib/openai/models/vector_stores/vector_store_file_batch.rb @@ -101,11 +101,11 @@ class FileCounts < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void end - # @abstract - # # The status of the vector store files batch, which can be either `in_progress`, # `completed`, `cancelled` or `failed`. - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS = :in_progress COMPLETED = :completed CANCELLED = :cancelled diff --git a/rbi/lib/openai/base_model.rbi b/rbi/lib/openai/base_model.rbi index 3312ef84..2fead0cf 100644 --- a/rbi/lib/openai/base_model.rbi +++ b/rbi/lib/openai/base_model.rbi @@ -170,132 +170,116 @@ module OpenAI # # We can therefore convert string values to Symbols, but can't convert other # values safely. - class Enum - extend OpenAI::Converter - - abstract! - - Value = type_template(:out) + module Enum + include OpenAI::Converter - class << self - # All of the valid Symbol values for this enum. - sig { overridable.returns(T::Array[Value]) } - def values - end + # All of the valid Symbol values for this enum. + sig { overridable.returns(T::Array[T.any(NilClass, T::Boolean, Integer, Float, Symbol)]) } + def values + end - # @api private - # - # Guard against thread safety issues by instantiating `@values`. - sig { void } - private def finalize! - end + # @api private + # + # Guard against thread safety issues by instantiating `@values`. + sig { void } + private def finalize! end sig { params(other: T.anything).returns(T::Boolean) } - def self.===(other) + def ===(other) end sig { params(other: T.anything).returns(T::Boolean) } - def self.==(other) + def ==(other) end - class << self - # @api private - sig { override.params(value: T.any(String, Symbol, T.anything)).returns(T.any(Symbol, T.anything)) } - def coerce(value) - end + # @api private + sig { override.params(value: T.any(String, Symbol, T.anything)).returns(T.any(Symbol, T.anything)) } + def coerce(value) + end - # @api private - sig { override.params(value: T.any(Symbol, T.anything)).returns(T.any(Symbol, T.anything)) } - def dump(value) - end + # @api private + sig { override.params(value: T.any(Symbol, T.anything)).returns(T.any(Symbol, T.anything)) } + def dump(value) + end - # @api private - sig do - override - .params(value: T.anything) - .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer])) - end - def try_strict_coerce(value) - end + # @api private + sig do + override + .params(value: T.anything) + .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer])) + end + def try_strict_coerce(value) end end # @api private - class Union - extend OpenAI::Converter - - abstract! - - Variants = type_template(:out) + module Union + include OpenAI::Converter - class << self - # @api private - # - # All of the specified variant info for this union. - sig { returns(T::Array[[T.nilable(Symbol), T.proc.returns(Variants)]]) } - private def known_variants - end + # @api private + # + # All of the specified variant info for this union. + sig { returns(T::Array[[T.nilable(Symbol), T.proc.returns(OpenAI::Converter::Input)]]) } + private def known_variants + end - # @api private - sig { returns(T::Array[[T.nilable(Symbol), Variants]]) } - protected def derefed_variants - end + # @api private + sig { returns(T::Array[[T.nilable(Symbol), T.anything]]) } + protected def derefed_variants + end - # All of the specified variants for this union. - sig { overridable.returns(T::Array[Variants]) } - def variants - end + # All of the specified variants for this union. + sig { overridable.returns(T::Array[T.anything]) } + def variants + end - # @api private - sig { params(property: Symbol).void } - private def discriminator(property) - end + # @api private + sig { params(property: Symbol).void } + private def discriminator(property) + end - # @api private - sig do - params( - key: T.any(Symbol, T::Hash[Symbol, T.anything], T.proc.returns(Variants), Variants), - spec: T.any(T::Hash[Symbol, T.anything], T.proc.returns(Variants), Variants) - ) - .void - end - private def variant(key, spec = nil) - end + # @api private + sig do + params( + key: T.any(Symbol, T::Hash[Symbol, T.anything], T.proc.returns(T.anything), T.anything), + spec: T.any(T::Hash[Symbol, T.anything], T.proc.returns(T.anything), T.anything) + ) + .void + end + private def variant(key, spec = nil) + end - # @api private - sig { params(value: T.anything).returns(T.nilable(Variants)) } - private def resolve_variant(value) - end + # @api private + sig { params(value: T.anything).returns(T.nilable(T.anything)) } + private def resolve_variant(value) end sig { params(other: T.anything).returns(T::Boolean) } - def self.===(other) + def ===(other) end sig { params(other: T.anything).returns(T::Boolean) } - def self.==(other) + def ==(other) end - class << self - # @api private - sig { override.params(value: T.anything).returns(T.anything) } - def coerce(value) - end + # @api private + sig { override.params(value: T.anything).returns(T.anything) } + def coerce(value) + end - # @api private - sig { override.params(value: T.anything).returns(T.anything) } - def dump(value) - end + # @api private + sig { override.params(value: T.anything).returns(T.anything) } + def dump(value) + end - # @api private - sig do - override - .params(value: T.anything) - .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer])) - end - def try_strict_coerce(value) - end + # @api private + sig do + override + .params(value: T.anything) + .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer])) + end + def try_strict_coerce(value) end end diff --git a/rbi/lib/openai/models/all_models.rbi b/rbi/lib/openai/models/all_models.rbi index 75d67db0..5fb326c8 100644 --- a/rbi/lib/openai/models/all_models.rbi +++ b/rbi/lib/openai/models/all_models.rbi @@ -2,20 +2,27 @@ module OpenAI module Models - class AllModels < OpenAI::Union - abstract! + module AllModels + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = + type_template(:out) do + { + fixed: T.any(String, OpenAI::Models::ChatModel::OrSymbol, OpenAI::Models::AllModels::UnionMember2::OrSymbol) + } + end - class UnionMember2 < OpenAI::Enum - abstract! + module UnionMember2 + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::AllModels::UnionMember2) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::AllModels::UnionMember2::TaggedSymbol) } - O1_PRO = :"o1-pro" - O1_PRO_2025_03_19 = :"o1-pro-2025-03-19" - COMPUTER_USE_PREVIEW = :"computer-use-preview" - COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11" + O1_PRO = T.let(:"o1-pro", OpenAI::Models::AllModels::UnionMember2::OrSymbol) + O1_PRO_2025_03_19 = T.let(:"o1-pro-2025-03-19", OpenAI::Models::AllModels::UnionMember2::OrSymbol) + COMPUTER_USE_PREVIEW = T.let(:"computer-use-preview", OpenAI::Models::AllModels::UnionMember2::OrSymbol) + COMPUTER_USE_PREVIEW_2025_03_11 = + T.let(:"computer-use-preview-2025-03-11", OpenAI::Models::AllModels::UnionMember2::OrSymbol) end end end diff --git a/rbi/lib/openai/models/audio/speech_create_params.rbi b/rbi/lib/openai/models/audio/speech_create_params.rbi index e74cec3d..c7babe62 100644 --- a/rbi/lib/openai/models/audio/speech_create_params.rbi +++ b/rbi/lib/openai/models/audio/speech_create_params.rbi @@ -18,11 +18,14 @@ module OpenAI # One of the available [TTS models](https://platform.openai.com/docs/models#tts): # `tts-1`, `tts-1-hd` or `gpt-4o-mini-tts`. - sig { returns(T.any(String, Symbol)) } + sig { returns(T.any(String, OpenAI::Models::Audio::SpeechModel::OrSymbol)) } def model end - sig { params(_: T.any(String, Symbol)).returns(T.any(String, Symbol)) } + sig do + params(_: T.any(String, OpenAI::Models::Audio::SpeechModel::OrSymbol)) + .returns(T.any(String, OpenAI::Models::Audio::SpeechModel::OrSymbol)) + end def model=(_) end @@ -30,11 +33,14 @@ module OpenAI # `coral`, `echo`, `fable`, `onyx`, `nova`, `sage` and `shimmer`. Previews of the # voices are available in the # [Text to speech guide](https://platform.openai.com/docs/guides/text-to-speech#voice-options). - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol) } def voice end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol) + .returns(OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol) + end def voice=(_) end @@ -50,11 +56,14 @@ module OpenAI # The format to audio in. Supported formats are `mp3`, `opus`, `aac`, `flac`, # `wav`, and `pcm`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat::OrSymbol)) } def response_format end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat::OrSymbol) + .returns(OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat::OrSymbol) + end def response_format=(_) end @@ -71,10 +80,10 @@ module OpenAI sig do params( input: String, - model: T.any(String, Symbol), - voice: Symbol, + model: T.any(String, OpenAI::Models::Audio::SpeechModel::OrSymbol), + voice: OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol, instructions: String, - response_format: Symbol, + response_format: OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat::OrSymbol, speed: Float, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) @@ -88,10 +97,10 @@ module OpenAI .returns( { input: String, - model: T.any(String, Symbol), - voice: Symbol, + model: T.any(String, OpenAI::Models::Audio::SpeechModel::OrSymbol), + voice: OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol, instructions: String, - response_format: Symbol, + response_format: OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat::OrSymbol, speed: Float, request_options: OpenAI::RequestOptions } @@ -102,45 +111,48 @@ module OpenAI # One of the available [TTS models](https://platform.openai.com/docs/models#tts): # `tts-1`, `tts-1-hd` or `gpt-4o-mini-tts`. - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = type_template(:out) { {fixed: T.any(String, OpenAI::Models::Audio::SpeechModel::OrSymbol)} } end # The voice to use when generating the audio. Supported voices are `alloy`, `ash`, # `coral`, `echo`, `fable`, `onyx`, `nova`, `sage` and `shimmer`. Previews of the # voices are available in the # [Text to speech guide](https://platform.openai.com/docs/guides/text-to-speech#voice-options). - class Voice < OpenAI::Enum - abstract! + module Voice + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Audio::SpeechCreateParams::Voice) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Audio::SpeechCreateParams::Voice::TaggedSymbol) } - ALLOY = :alloy - ASH = :ash - CORAL = :coral - ECHO = :echo - FABLE = :fable - ONYX = :onyx - NOVA = :nova - SAGE = :sage - SHIMMER = :shimmer + ALLOY = T.let(:alloy, OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol) + ASH = T.let(:ash, OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol) + CORAL = T.let(:coral, OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol) + ECHO = T.let(:echo, OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol) + FABLE = T.let(:fable, OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol) + ONYX = T.let(:onyx, OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol) + NOVA = T.let(:nova, OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol) + SAGE = T.let(:sage, OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol) + SHIMMER = T.let(:shimmer, OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol) end # The format to audio in. Supported formats are `mp3`, `opus`, `aac`, `flac`, # `wav`, and `pcm`. - class ResponseFormat < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - MP3 = :mp3 - OPUS = :opus - AAC = :aac - FLAC = :flac - WAV = :wav - PCM = :pcm + module ResponseFormat + extend OpenAI::Enum + + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat::TaggedSymbol) } + + MP3 = T.let(:mp3, OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat::OrSymbol) + OPUS = T.let(:opus, OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat::OrSymbol) + AAC = T.let(:aac, OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat::OrSymbol) + FLAC = T.let(:flac, OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat::OrSymbol) + WAV = T.let(:wav, OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat::OrSymbol) + PCM = T.let(:pcm, OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat::OrSymbol) end end end diff --git a/rbi/lib/openai/models/audio/speech_model.rbi b/rbi/lib/openai/models/audio/speech_model.rbi index 5228e000..d375fcda 100644 --- a/rbi/lib/openai/models/audio/speech_model.rbi +++ b/rbi/lib/openai/models/audio/speech_model.rbi @@ -3,14 +3,15 @@ module OpenAI module Models module Audio - class SpeechModel < OpenAI::Enum - abstract! + module SpeechModel + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Audio::SpeechModel) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Audio::SpeechModel::TaggedSymbol) } - TTS_1 = :"tts-1" - TTS_1_HD = :"tts-1-hd" - GPT_4O_MINI_TTS = :"gpt-4o-mini-tts" + TTS_1 = T.let(:"tts-1", OpenAI::Models::Audio::SpeechModel::OrSymbol) + TTS_1_HD = T.let(:"tts-1-hd", OpenAI::Models::Audio::SpeechModel::OrSymbol) + GPT_4O_MINI_TTS = T.let(:"gpt-4o-mini-tts", OpenAI::Models::Audio::SpeechModel::OrSymbol) end end end diff --git a/rbi/lib/openai/models/audio/transcription_create_params.rbi b/rbi/lib/openai/models/audio/transcription_create_params.rbi index 026f8b77..272b6fc5 100644 --- a/rbi/lib/openai/models/audio/transcription_create_params.rbi +++ b/rbi/lib/openai/models/audio/transcription_create_params.rbi @@ -20,11 +20,14 @@ module OpenAI # ID of the model to use. The options are `gpt-4o-transcribe`, # `gpt-4o-mini-transcribe`, and `whisper-1` (which is powered by our open source # Whisper V2 model). - sig { returns(T.any(String, Symbol)) } + sig { returns(T.any(String, OpenAI::Models::AudioModel::OrSymbol)) } def model end - sig { params(_: T.any(String, Symbol)).returns(T.any(String, Symbol)) } + sig do + params(_: T.any(String, OpenAI::Models::AudioModel::OrSymbol)) + .returns(T.any(String, OpenAI::Models::AudioModel::OrSymbol)) + end def model=(_) end @@ -33,11 +36,14 @@ module OpenAI # model's confidence in the transcription. `logprobs` only works with # response_format set to `json` and only with the models `gpt-4o-transcribe` and # `gpt-4o-mini-transcribe`. - sig { returns(T.nilable(T::Array[Symbol])) } + sig { returns(T.nilable(T::Array[OpenAI::Models::Audio::TranscriptionInclude::OrSymbol])) } def include end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Audio::TranscriptionInclude::OrSymbol]) + .returns(T::Array[OpenAI::Models::Audio::TranscriptionInclude::OrSymbol]) + end def include=(_) end @@ -67,11 +73,14 @@ module OpenAI # The format of the output, in one of these options: `json`, `text`, `srt`, # `verbose_json`, or `vtt`. For `gpt-4o-transcribe` and `gpt-4o-mini-transcribe`, # the only supported format is `json`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::AudioResponseFormat::OrSymbol)) } def response_format end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::AudioResponseFormat::OrSymbol) + .returns(OpenAI::Models::AudioResponseFormat::OrSymbol) + end def response_format=(_) end @@ -93,24 +102,31 @@ module OpenAI # Either or both of these options are supported: `word`, or `segment`. Note: There # is no additional latency for segment timestamps, but generating word timestamps # incurs additional latency. - sig { returns(T.nilable(T::Array[Symbol])) } + sig do + returns( + T.nilable(T::Array[OpenAI::Models::Audio::TranscriptionCreateParams::TimestampGranularity::OrSymbol]) + ) + end def timestamp_granularities end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Audio::TranscriptionCreateParams::TimestampGranularity::OrSymbol]) + .returns(T::Array[OpenAI::Models::Audio::TranscriptionCreateParams::TimestampGranularity::OrSymbol]) + end def timestamp_granularities=(_) end sig do params( file: T.any(IO, StringIO), - model: T.any(String, Symbol), - include: T::Array[Symbol], + model: T.any(String, OpenAI::Models::AudioModel::OrSymbol), + include: T::Array[OpenAI::Models::Audio::TranscriptionInclude::OrSymbol], language: String, prompt: String, - response_format: Symbol, + response_format: OpenAI::Models::AudioResponseFormat::OrSymbol, temperature: Float, - timestamp_granularities: T::Array[Symbol], + timestamp_granularities: T::Array[OpenAI::Models::Audio::TranscriptionCreateParams::TimestampGranularity::OrSymbol], request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -133,13 +149,13 @@ module OpenAI .returns( { file: T.any(IO, StringIO), - model: T.any(String, Symbol), - include: T::Array[Symbol], + model: T.any(String, OpenAI::Models::AudioModel::OrSymbol), + include: T::Array[OpenAI::Models::Audio::TranscriptionInclude::OrSymbol], language: String, prompt: String, - response_format: Symbol, + response_format: OpenAI::Models::AudioResponseFormat::OrSymbol, temperature: Float, - timestamp_granularities: T::Array[Symbol], + timestamp_granularities: T::Array[OpenAI::Models::Audio::TranscriptionCreateParams::TimestampGranularity::OrSymbol], request_options: OpenAI::RequestOptions } ) @@ -150,19 +166,23 @@ module OpenAI # ID of the model to use. The options are `gpt-4o-transcribe`, # `gpt-4o-mini-transcribe`, and `whisper-1` (which is powered by our open source # Whisper V2 model). - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = type_template(:out) { {fixed: T.any(String, OpenAI::Models::AudioModel::OrSymbol)} } end - class TimestampGranularity < OpenAI::Enum - abstract! + module TimestampGranularity + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Audio::TranscriptionCreateParams::TimestampGranularity) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Audio::TranscriptionCreateParams::TimestampGranularity::TaggedSymbol) } - WORD = :word - SEGMENT = :segment + WORD = T.let(:word, OpenAI::Models::Audio::TranscriptionCreateParams::TimestampGranularity::OrSymbol) + SEGMENT = + T.let(:segment, OpenAI::Models::Audio::TranscriptionCreateParams::TimestampGranularity::OrSymbol) end end end diff --git a/rbi/lib/openai/models/audio/transcription_create_response.rbi b/rbi/lib/openai/models/audio/transcription_create_response.rbi index 814a204b..e6190f8a 100644 --- a/rbi/lib/openai/models/audio/transcription_create_response.rbi +++ b/rbi/lib/openai/models/audio/transcription_create_response.rbi @@ -5,8 +5,8 @@ module OpenAI module Audio # Represents a transcription response returned by model, based on the provided # input. - class TranscriptionCreateResponse < OpenAI::Union - abstract! + module TranscriptionCreateResponse + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(OpenAI::Models::Audio::Transcription, OpenAI::Models::Audio::TranscriptionVerbose)} } diff --git a/rbi/lib/openai/models/audio/transcription_include.rbi b/rbi/lib/openai/models/audio/transcription_include.rbi index 7a60b02a..95c1bbab 100644 --- a/rbi/lib/openai/models/audio/transcription_include.rbi +++ b/rbi/lib/openai/models/audio/transcription_include.rbi @@ -3,12 +3,13 @@ module OpenAI module Models module Audio - class TranscriptionInclude < OpenAI::Enum - abstract! + module TranscriptionInclude + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Audio::TranscriptionInclude) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Audio::TranscriptionInclude::TaggedSymbol) } - LOGPROBS = :logprobs + LOGPROBS = T.let(:logprobs, OpenAI::Models::Audio::TranscriptionInclude::OrSymbol) end end end diff --git a/rbi/lib/openai/models/audio/transcription_stream_event.rbi b/rbi/lib/openai/models/audio/transcription_stream_event.rbi index 4c8cc6bc..4ca09f44 100644 --- a/rbi/lib/openai/models/audio/transcription_stream_event.rbi +++ b/rbi/lib/openai/models/audio/transcription_stream_event.rbi @@ -7,8 +7,8 @@ module OpenAI # emitted when the transcription starts. Only emitted when you # [create a transcription](https://platform.openai.com/docs/api-reference/audio/create-transcription) # with the `Stream` parameter set to `true`. - class TranscriptionStreamEvent < OpenAI::Union - abstract! + module TranscriptionStreamEvent + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/audio/translation_create_params.rbi b/rbi/lib/openai/models/audio/translation_create_params.rbi index ce2e6e77..3e9eeb48 100644 --- a/rbi/lib/openai/models/audio/translation_create_params.rbi +++ b/rbi/lib/openai/models/audio/translation_create_params.rbi @@ -19,11 +19,14 @@ module OpenAI # ID of the model to use. Only `whisper-1` (which is powered by our open source # Whisper V2 model) is currently available. - sig { returns(T.any(String, Symbol)) } + sig { returns(T.any(String, OpenAI::Models::AudioModel::OrSymbol)) } def model end - sig { params(_: T.any(String, Symbol)).returns(T.any(String, Symbol)) } + sig do + params(_: T.any(String, OpenAI::Models::AudioModel::OrSymbol)) + .returns(T.any(String, OpenAI::Models::AudioModel::OrSymbol)) + end def model=(_) end @@ -41,11 +44,14 @@ module OpenAI # The format of the output, in one of these options: `json`, `text`, `srt`, # `verbose_json`, or `vtt`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Audio::TranslationCreateParams::ResponseFormat::OrSymbol)) } def response_format end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Audio::TranslationCreateParams::ResponseFormat::OrSymbol) + .returns(OpenAI::Models::Audio::TranslationCreateParams::ResponseFormat::OrSymbol) + end def response_format=(_) end @@ -65,9 +71,9 @@ module OpenAI sig do params( file: T.any(IO, StringIO), - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::AudioModel::OrSymbol), prompt: String, - response_format: Symbol, + response_format: OpenAI::Models::Audio::TranslationCreateParams::ResponseFormat::OrSymbol, temperature: Float, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) @@ -81,9 +87,9 @@ module OpenAI .returns( { file: T.any(IO, StringIO), - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::AudioModel::OrSymbol), prompt: String, - response_format: Symbol, + response_format: OpenAI::Models::Audio::TranslationCreateParams::ResponseFormat::OrSymbol, temperature: Float, request_options: OpenAI::RequestOptions } @@ -94,24 +100,28 @@ module OpenAI # ID of the model to use. Only `whisper-1` (which is powered by our open source # Whisper V2 model) is currently available. - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = type_template(:out) { {fixed: T.any(String, OpenAI::Models::AudioModel::OrSymbol)} } end # The format of the output, in one of these options: `json`, `text`, `srt`, # `verbose_json`, or `vtt`. - class ResponseFormat < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - JSON = :json - TEXT = :text - SRT = :srt - VERBOSE_JSON = :verbose_json - VTT = :vtt + module ResponseFormat + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Audio::TranslationCreateParams::ResponseFormat) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Audio::TranslationCreateParams::ResponseFormat::TaggedSymbol) } + + JSON = T.let(:json, OpenAI::Models::Audio::TranslationCreateParams::ResponseFormat::OrSymbol) + TEXT = T.let(:text, OpenAI::Models::Audio::TranslationCreateParams::ResponseFormat::OrSymbol) + SRT = T.let(:srt, OpenAI::Models::Audio::TranslationCreateParams::ResponseFormat::OrSymbol) + VERBOSE_JSON = + T.let(:verbose_json, OpenAI::Models::Audio::TranslationCreateParams::ResponseFormat::OrSymbol) + VTT = T.let(:vtt, OpenAI::Models::Audio::TranslationCreateParams::ResponseFormat::OrSymbol) end end end diff --git a/rbi/lib/openai/models/audio/translation_create_response.rbi b/rbi/lib/openai/models/audio/translation_create_response.rbi index 61e32cae..2d27d701 100644 --- a/rbi/lib/openai/models/audio/translation_create_response.rbi +++ b/rbi/lib/openai/models/audio/translation_create_response.rbi @@ -3,8 +3,8 @@ module OpenAI module Models module Audio - class TranslationCreateResponse < OpenAI::Union - abstract! + module TranslationCreateResponse + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(OpenAI::Models::Audio::Translation, OpenAI::Models::Audio::TranslationVerbose)} } diff --git a/rbi/lib/openai/models/audio_model.rbi b/rbi/lib/openai/models/audio_model.rbi index 917ce7d8..c17c0811 100644 --- a/rbi/lib/openai/models/audio_model.rbi +++ b/rbi/lib/openai/models/audio_model.rbi @@ -2,14 +2,15 @@ module OpenAI module Models - class AudioModel < OpenAI::Enum - abstract! + module AudioModel + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::AudioModel) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::AudioModel::TaggedSymbol) } - WHISPER_1 = :"whisper-1" - GPT_4O_TRANSCRIBE = :"gpt-4o-transcribe" - GPT_4O_MINI_TRANSCRIBE = :"gpt-4o-mini-transcribe" + WHISPER_1 = T.let(:"whisper-1", OpenAI::Models::AudioModel::OrSymbol) + GPT_4O_TRANSCRIBE = T.let(:"gpt-4o-transcribe", OpenAI::Models::AudioModel::OrSymbol) + GPT_4O_MINI_TRANSCRIBE = T.let(:"gpt-4o-mini-transcribe", OpenAI::Models::AudioModel::OrSymbol) end end end diff --git a/rbi/lib/openai/models/audio_response_format.rbi b/rbi/lib/openai/models/audio_response_format.rbi index 405da3e2..fc0693da 100644 --- a/rbi/lib/openai/models/audio_response_format.rbi +++ b/rbi/lib/openai/models/audio_response_format.rbi @@ -5,16 +5,17 @@ module OpenAI # The format of the output, in one of these options: `json`, `text`, `srt`, # `verbose_json`, or `vtt`. For `gpt-4o-transcribe` and `gpt-4o-mini-transcribe`, # the only supported format is `json`. - class AudioResponseFormat < OpenAI::Enum - abstract! + module AudioResponseFormat + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::AudioResponseFormat) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::AudioResponseFormat::TaggedSymbol) } - JSON = :json - TEXT = :text - SRT = :srt - VERBOSE_JSON = :verbose_json - VTT = :vtt + JSON = T.let(:json, OpenAI::Models::AudioResponseFormat::OrSymbol) + TEXT = T.let(:text, OpenAI::Models::AudioResponseFormat::OrSymbol) + SRT = T.let(:srt, OpenAI::Models::AudioResponseFormat::OrSymbol) + VERBOSE_JSON = T.let(:verbose_json, OpenAI::Models::AudioResponseFormat::OrSymbol) + VTT = T.let(:vtt, OpenAI::Models::AudioResponseFormat::OrSymbol) end end end diff --git a/rbi/lib/openai/models/batch.rbi b/rbi/lib/openai/models/batch.rbi index 7a7e54b3..75e90393 100644 --- a/rbi/lib/openai/models/batch.rbi +++ b/rbi/lib/openai/models/batch.rbi @@ -57,11 +57,13 @@ module OpenAI end # The current status of the batch. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Batch::Status::TaggedSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Batch::Status::TaggedSymbol).returns(OpenAI::Models::Batch::Status::TaggedSymbol) + end def status=(_) end @@ -193,7 +195,7 @@ module OpenAI created_at: Integer, endpoint: String, input_file_id: String, - status: Symbol, + status: OpenAI::Models::Batch::Status::TaggedSymbol, cancelled_at: Integer, cancelling_at: Integer, completed_at: Integer, @@ -245,7 +247,7 @@ module OpenAI endpoint: String, input_file_id: String, object: Symbol, - status: Symbol, + status: OpenAI::Models::Batch::Status::TaggedSymbol, cancelled_at: Integer, cancelling_at: Integer, completed_at: Integer, @@ -266,19 +268,20 @@ module OpenAI end # The current status of the batch. - class Status < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - VALIDATING = :validating - FAILED = :failed - IN_PROGRESS = :in_progress - FINALIZING = :finalizing - COMPLETED = :completed - EXPIRED = :expired - CANCELLING = :cancelling - CANCELLED = :cancelled + module Status + extend OpenAI::Enum + + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Batch::Status) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Batch::Status::TaggedSymbol) } + + VALIDATING = T.let(:validating, OpenAI::Models::Batch::Status::TaggedSymbol) + FAILED = T.let(:failed, OpenAI::Models::Batch::Status::TaggedSymbol) + IN_PROGRESS = T.let(:in_progress, OpenAI::Models::Batch::Status::TaggedSymbol) + FINALIZING = T.let(:finalizing, OpenAI::Models::Batch::Status::TaggedSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::Batch::Status::TaggedSymbol) + EXPIRED = T.let(:expired, OpenAI::Models::Batch::Status::TaggedSymbol) + CANCELLING = T.let(:cancelling, OpenAI::Models::Batch::Status::TaggedSymbol) + CANCELLED = T.let(:cancelled, OpenAI::Models::Batch::Status::TaggedSymbol) end class Errors < OpenAI::BaseModel diff --git a/rbi/lib/openai/models/batch_create_params.rbi b/rbi/lib/openai/models/batch_create_params.rbi index 50216257..62413988 100644 --- a/rbi/lib/openai/models/batch_create_params.rbi +++ b/rbi/lib/openai/models/batch_create_params.rbi @@ -8,11 +8,14 @@ module OpenAI # The time frame within which the batch should be processed. Currently only `24h` # is supported. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::BatchCreateParams::CompletionWindow::OrSymbol) } def completion_window end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::BatchCreateParams::CompletionWindow::OrSymbol) + .returns(OpenAI::Models::BatchCreateParams::CompletionWindow::OrSymbol) + end def completion_window=(_) end @@ -20,11 +23,14 @@ module OpenAI # `/v1/responses`, `/v1/chat/completions`, `/v1/embeddings`, and `/v1/completions` # are supported. Note that `/v1/embeddings` batches are also restricted to a # maximum of 50,000 embedding inputs across all requests in the batch. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::BatchCreateParams::Endpoint::OrSymbol) } def endpoint end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::BatchCreateParams::Endpoint::OrSymbol) + .returns(OpenAI::Models::BatchCreateParams::Endpoint::OrSymbol) + end def endpoint=(_) end @@ -61,8 +67,8 @@ module OpenAI sig do params( - completion_window: Symbol, - endpoint: Symbol, + completion_window: OpenAI::Models::BatchCreateParams::CompletionWindow::OrSymbol, + endpoint: OpenAI::Models::BatchCreateParams::Endpoint::OrSymbol, input_file_id: String, metadata: T.nilable(T::Hash[Symbol, String]), request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) @@ -76,8 +82,8 @@ module OpenAI override .returns( { - completion_window: Symbol, - endpoint: Symbol, + completion_window: OpenAI::Models::BatchCreateParams::CompletionWindow::OrSymbol, + endpoint: OpenAI::Models::BatchCreateParams::Endpoint::OrSymbol, input_file_id: String, metadata: T.nilable(T::Hash[Symbol, String]), request_options: OpenAI::RequestOptions @@ -89,27 +95,31 @@ module OpenAI # The time frame within which the batch should be processed. Currently only `24h` # is supported. - class CompletionWindow < OpenAI::Enum - abstract! + module CompletionWindow + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::BatchCreateParams::CompletionWindow) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::BatchCreateParams::CompletionWindow::TaggedSymbol) } - NUMBER_24H = :"24h" + NUMBER_24H = T.let(:"24h", OpenAI::Models::BatchCreateParams::CompletionWindow::OrSymbol) end # The endpoint to be used for all requests in the batch. Currently # `/v1/responses`, `/v1/chat/completions`, `/v1/embeddings`, and `/v1/completions` # are supported. Note that `/v1/embeddings` batches are also restricted to a # maximum of 50,000 embedding inputs across all requests in the batch. - class Endpoint < OpenAI::Enum - abstract! + module Endpoint + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::BatchCreateParams::Endpoint) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::BatchCreateParams::Endpoint::TaggedSymbol) } - V1_RESPONSES = :"/v1/responses" - V1_CHAT_COMPLETIONS = :"/v1/chat/completions" - V1_EMBEDDINGS = :"/v1/embeddings" - V1_COMPLETIONS = :"/v1/completions" + V1_RESPONSES = T.let(:"/v1/responses", OpenAI::Models::BatchCreateParams::Endpoint::OrSymbol) + V1_CHAT_COMPLETIONS = + T.let(:"/v1/chat/completions", OpenAI::Models::BatchCreateParams::Endpoint::OrSymbol) + V1_EMBEDDINGS = T.let(:"/v1/embeddings", OpenAI::Models::BatchCreateParams::Endpoint::OrSymbol) + V1_COMPLETIONS = T.let(:"/v1/completions", OpenAI::Models::BatchCreateParams::Endpoint::OrSymbol) end end end diff --git a/rbi/lib/openai/models/beta/assistant_create_params.rbi b/rbi/lib/openai/models/beta/assistant_create_params.rbi index 7690f797..e5de9168 100644 --- a/rbi/lib/openai/models/beta/assistant_create_params.rbi +++ b/rbi/lib/openai/models/beta/assistant_create_params.rbi @@ -12,11 +12,14 @@ module OpenAI # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. - sig { returns(T.any(String, Symbol)) } + sig { returns(T.any(String, OpenAI::Models::ChatModel::OrSymbol)) } def model end - sig { params(_: T.any(String, Symbol)).returns(T.any(String, Symbol)) } + sig do + params(_: T.any(String, OpenAI::Models::ChatModel::OrSymbol)) + .returns(T.any(String, OpenAI::Models::ChatModel::OrSymbol)) + end def model=(_) end @@ -68,11 +71,14 @@ module OpenAI # [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently # supported values are `low`, `medium`, and `high`. Reducing reasoning effort can # result in faster responses and fewer tokens used on reasoning in a response. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) } def reasoning_effort end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) + .returns(T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) + end def reasoning_effort=(_) end @@ -219,12 +225,12 @@ module OpenAI sig do params( - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::ChatModel::OrSymbol), description: T.nilable(String), instructions: T.nilable(String), metadata: T.nilable(T::Hash[Symbol, String]), name: T.nilable(String), - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.nilable( T.any( Symbol, @@ -267,12 +273,12 @@ module OpenAI override .returns( { - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::ChatModel::OrSymbol), description: T.nilable(String), instructions: T.nilable(String), metadata: T.nilable(T::Hash[Symbol, String]), name: T.nilable(String), - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.nilable( T.any( Symbol, @@ -303,10 +309,10 @@ module OpenAI # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = type_template(:out) { {fixed: T.any(String, OpenAI::Models::ChatModel::OrSymbol)} } end end end diff --git a/rbi/lib/openai/models/beta/assistant_list_params.rbi b/rbi/lib/openai/models/beta/assistant_list_params.rbi index bb11fb1b..7d2b0fef 100644 --- a/rbi/lib/openai/models/beta/assistant_list_params.rbi +++ b/rbi/lib/openai/models/beta/assistant_list_params.rbi @@ -43,11 +43,14 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Beta::AssistantListParams::Order::OrSymbol)) } def order end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::AssistantListParams::Order::OrSymbol) + .returns(OpenAI::Models::Beta::AssistantListParams::Order::OrSymbol) + end def order=(_) end @@ -56,7 +59,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Beta::AssistantListParams::Order::OrSymbol, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -71,7 +74,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Beta::AssistantListParams::Order::OrSymbol, request_options: OpenAI::RequestOptions } ) @@ -81,13 +84,14 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum - abstract! + module Order + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::AssistantListParams::Order) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Beta::AssistantListParams::Order::TaggedSymbol) } - ASC = :asc - DESC = :desc + ASC = T.let(:asc, OpenAI::Models::Beta::AssistantListParams::Order::OrSymbol) + DESC = T.let(:desc, OpenAI::Models::Beta::AssistantListParams::Order::OrSymbol) end end end diff --git a/rbi/lib/openai/models/beta/assistant_response_format_option.rbi b/rbi/lib/openai/models/beta/assistant_response_format_option.rbi index db97be12..d0c034e2 100644 --- a/rbi/lib/openai/models/beta/assistant_response_format_option.rbi +++ b/rbi/lib/openai/models/beta/assistant_response_format_option.rbi @@ -23,8 +23,8 @@ module OpenAI # the message content may be partially cut off if `finish_reason="length"`, which # indicates the generation exceeded `max_tokens` or the conversation exceeded the # max context length. - class AssistantResponseFormatOption < OpenAI::Union - abstract! + module AssistantResponseFormatOption + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/assistant_stream_event.rbi b/rbi/lib/openai/models/beta/assistant_stream_event.rbi index 7a366c59..31e96276 100644 --- a/rbi/lib/openai/models/beta/assistant_stream_event.rbi +++ b/rbi/lib/openai/models/beta/assistant_stream_event.rbi @@ -23,8 +23,8 @@ module OpenAI # gracefully in your code. See the # [Assistants API quickstart](https://platform.openai.com/docs/assistants/overview) # to learn how to integrate the Assistants API with streaming. - class AssistantStreamEvent < OpenAI::Union - abstract! + module AssistantStreamEvent + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/assistant_tool.rbi b/rbi/lib/openai/models/beta/assistant_tool.rbi index 313f24bc..6efa6193 100644 --- a/rbi/lib/openai/models/beta/assistant_tool.rbi +++ b/rbi/lib/openai/models/beta/assistant_tool.rbi @@ -3,8 +3,8 @@ module OpenAI module Models module Beta - class AssistantTool < OpenAI::Union - abstract! + module AssistantTool + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/assistant_tool_choice.rbi b/rbi/lib/openai/models/beta/assistant_tool_choice.rbi index 84562850..9a1ac99e 100644 --- a/rbi/lib/openai/models/beta/assistant_tool_choice.rbi +++ b/rbi/lib/openai/models/beta/assistant_tool_choice.rbi @@ -5,11 +5,14 @@ module OpenAI module Beta class AssistantToolChoice < OpenAI::BaseModel # The type of the tool. If type is `function`, the function name must be set - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::AssistantToolChoice::Type::OrSymbol) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::AssistantToolChoice::Type::OrSymbol) + .returns(OpenAI::Models::Beta::AssistantToolChoice::Type::OrSymbol) + end def type=(_) end @@ -27,24 +30,37 @@ module OpenAI # Specifies a tool the model should use. Use to force the model to call a specific # tool. sig do - params(type: Symbol, function: OpenAI::Models::Beta::AssistantToolChoiceFunction).returns(T.attached_class) + params( + type: OpenAI::Models::Beta::AssistantToolChoice::Type::OrSymbol, + function: OpenAI::Models::Beta::AssistantToolChoiceFunction + ) + .returns(T.attached_class) end def self.new(type:, function: nil) end - sig { override.returns({type: Symbol, function: OpenAI::Models::Beta::AssistantToolChoiceFunction}) } + sig do + override + .returns( + { + type: OpenAI::Models::Beta::AssistantToolChoice::Type::OrSymbol, + function: OpenAI::Models::Beta::AssistantToolChoiceFunction + } + ) + end def to_hash end # The type of the tool. If type is `function`, the function name must be set - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::AssistantToolChoice::Type) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice::Type::TaggedSymbol) } - FUNCTION = :function - CODE_INTERPRETER = :code_interpreter - FILE_SEARCH = :file_search + FUNCTION = T.let(:function, OpenAI::Models::Beta::AssistantToolChoice::Type::OrSymbol) + CODE_INTERPRETER = T.let(:code_interpreter, OpenAI::Models::Beta::AssistantToolChoice::Type::OrSymbol) + FILE_SEARCH = T.let(:file_search, OpenAI::Models::Beta::AssistantToolChoice::Type::OrSymbol) end end end diff --git a/rbi/lib/openai/models/beta/assistant_tool_choice_option.rbi b/rbi/lib/openai/models/beta/assistant_tool_choice_option.rbi index 552ca737..14fac828 100644 --- a/rbi/lib/openai/models/beta/assistant_tool_choice_option.rbi +++ b/rbi/lib/openai/models/beta/assistant_tool_choice_option.rbi @@ -10,23 +10,33 @@ module OpenAI # to the user. Specifying a particular tool like `{"type": "file_search"}` or # `{"type": "function", "function": {"name": "my_function"}}` forces the model to # call that tool. - class AssistantToolChoiceOption < OpenAI::Union - abstract! + module AssistantToolChoiceOption + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice)} } + Variants = + type_template(:out) do + { + fixed: T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + } + end # `none` means the model will not call any tools and instead generates a message. # `auto` means the model can pick between generating a message or calling one or # more tools. `required` means the model must call one or more tools before # responding to the user. - class Auto < OpenAI::Enum - abstract! + module Auto + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::AssistantToolChoiceOption::Auto) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::TaggedSymbol) } - NONE = :none - AUTO = :auto - REQUIRED = :required + NONE = T.let(:none, OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol) + AUTO = T.let(:auto, OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol) + REQUIRED = T.let(:required, OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol) end end end diff --git a/rbi/lib/openai/models/beta/assistant_update_params.rbi b/rbi/lib/openai/models/beta/assistant_update_params.rbi index b4ca656b..595f430c 100644 --- a/rbi/lib/openai/models/beta/assistant_update_params.rbi +++ b/rbi/lib/openai/models/beta/assistant_update_params.rbi @@ -45,11 +45,14 @@ module OpenAI # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. - sig { returns(T.nilable(T.any(String, Symbol))) } + sig { returns(T.nilable(T.any(String, OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol))) } def model end - sig { params(_: T.any(String, Symbol)).returns(T.any(String, Symbol)) } + sig do + params(_: T.any(String, OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol)) + .returns(T.any(String, OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol)) + end def model=(_) end @@ -68,11 +71,14 @@ module OpenAI # [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently # supported values are `low`, `medium`, and `high`. Reducing reasoning effort can # result in faster responses and fewer tokens used on reasoning in a response. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) } def reasoning_effort end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) + .returns(T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) + end def reasoning_effort=(_) end @@ -222,9 +228,9 @@ module OpenAI description: T.nilable(String), instructions: T.nilable(String), metadata: T.nilable(T::Hash[Symbol, String]), - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol), name: T.nilable(String), - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.nilable( T.any( Symbol, @@ -270,9 +276,9 @@ module OpenAI description: T.nilable(String), instructions: T.nilable(String), metadata: T.nilable(T::Hash[Symbol, String]), - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol), name: T.nilable(String), - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.nilable( T.any( Symbol, @@ -303,41 +309,62 @@ module OpenAI # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. - class Model < OpenAI::Union - abstract! - - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } - - O3_MINI = :"o3-mini" - O3_MINI_2025_01_31 = :"o3-mini-2025-01-31" - O1 = :o1 - O1_2024_12_17 = :"o1-2024-12-17" - GPT_4O = :"gpt-4o" - GPT_4O_2024_11_20 = :"gpt-4o-2024-11-20" - GPT_4O_2024_08_06 = :"gpt-4o-2024-08-06" - GPT_4O_2024_05_13 = :"gpt-4o-2024-05-13" - GPT_4O_MINI = :"gpt-4o-mini" - GPT_4O_MINI_2024_07_18 = :"gpt-4o-mini-2024-07-18" - GPT_4_5_PREVIEW = :"gpt-4.5-preview" - GPT_4_5_PREVIEW_2025_02_27 = :"gpt-4.5-preview-2025-02-27" - GPT_4_TURBO = :"gpt-4-turbo" - GPT_4_TURBO_2024_04_09 = :"gpt-4-turbo-2024-04-09" - GPT_4_0125_PREVIEW = :"gpt-4-0125-preview" - GPT_4_TURBO_PREVIEW = :"gpt-4-turbo-preview" - GPT_4_1106_PREVIEW = :"gpt-4-1106-preview" - GPT_4_VISION_PREVIEW = :"gpt-4-vision-preview" - GPT_4 = :"gpt-4" - GPT_4_0314 = :"gpt-4-0314" - GPT_4_0613 = :"gpt-4-0613" - GPT_4_32K = :"gpt-4-32k" - GPT_4_32K_0314 = :"gpt-4-32k-0314" - GPT_4_32K_0613 = :"gpt-4-32k-0613" - GPT_3_5_TURBO = :"gpt-3.5-turbo" - GPT_3_5_TURBO_16K = :"gpt-3.5-turbo-16k" - GPT_3_5_TURBO_0613 = :"gpt-3.5-turbo-0613" - GPT_3_5_TURBO_1106 = :"gpt-3.5-turbo-1106" - GPT_3_5_TURBO_0125 = :"gpt-3.5-turbo-0125" - GPT_3_5_TURBO_16K_0613 = :"gpt-3.5-turbo-16k-0613" + module Model + extend OpenAI::Union + + Variants = + type_template(:out) { {fixed: T.any(String, OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol)} } + + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::AssistantUpdateParams::Model) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::AssistantUpdateParams::Model::TaggedSymbol) } + + O3_MINI = T.let(:"o3-mini", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + O3_MINI_2025_01_31 = + T.let(:"o3-mini-2025-01-31", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + O1 = T.let(:o1, OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + O1_2024_12_17 = T.let(:"o1-2024-12-17", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4O = T.let(:"gpt-4o", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4O_2024_11_20 = + T.let(:"gpt-4o-2024-11-20", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4O_2024_08_06 = + T.let(:"gpt-4o-2024-08-06", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4O_2024_05_13 = + T.let(:"gpt-4o-2024-05-13", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4O_MINI = T.let(:"gpt-4o-mini", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4O_MINI_2024_07_18 = + T.let(:"gpt-4o-mini-2024-07-18", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4_5_PREVIEW = T.let(:"gpt-4.5-preview", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4_5_PREVIEW_2025_02_27 = + T.let(:"gpt-4.5-preview-2025-02-27", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4_TURBO = T.let(:"gpt-4-turbo", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4_TURBO_2024_04_09 = + T.let(:"gpt-4-turbo-2024-04-09", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4_0125_PREVIEW = + T.let(:"gpt-4-0125-preview", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4_TURBO_PREVIEW = + T.let(:"gpt-4-turbo-preview", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4_1106_PREVIEW = + T.let(:"gpt-4-1106-preview", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4_VISION_PREVIEW = + T.let(:"gpt-4-vision-preview", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4 = T.let(:"gpt-4", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4_0314 = T.let(:"gpt-4-0314", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4_0613 = T.let(:"gpt-4-0613", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4_32K = T.let(:"gpt-4-32k", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4_32K_0314 = T.let(:"gpt-4-32k-0314", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_4_32K_0613 = T.let(:"gpt-4-32k-0613", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_3_5_TURBO = T.let(:"gpt-3.5-turbo", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_3_5_TURBO_16K = + T.let(:"gpt-3.5-turbo-16k", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_3_5_TURBO_0613 = + T.let(:"gpt-3.5-turbo-0613", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_3_5_TURBO_1106 = + T.let(:"gpt-3.5-turbo-1106", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_3_5_TURBO_0125 = + T.let(:"gpt-3.5-turbo-0125", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) + GPT_3_5_TURBO_16K_0613 = + T.let(:"gpt-3.5-turbo-16k-0613", OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol) end class ToolResources < OpenAI::BaseModel diff --git a/rbi/lib/openai/models/beta/file_search_tool.rbi b/rbi/lib/openai/models/beta/file_search_tool.rbi index ce4b782a..310aab2b 100644 --- a/rbi/lib/openai/models/beta/file_search_tool.rbi +++ b/rbi/lib/openai/models/beta/file_search_tool.rbi @@ -103,11 +103,14 @@ module OpenAI # The ranker to use for the file search. If not specified will use the `auto` # ranker. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Beta::FileSearchTool::FileSearch::RankingOptions::Ranker::OrSymbol)) } def ranker end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::FileSearchTool::FileSearch::RankingOptions::Ranker::OrSymbol) + .returns(OpenAI::Models::Beta::FileSearchTool::FileSearch::RankingOptions::Ranker::OrSymbol) + end def ranker=(_) end @@ -117,23 +120,44 @@ module OpenAI # See the # [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) # for more information. - sig { params(score_threshold: Float, ranker: Symbol).returns(T.attached_class) } + sig do + params( + score_threshold: Float, + ranker: OpenAI::Models::Beta::FileSearchTool::FileSearch::RankingOptions::Ranker::OrSymbol + ) + .returns(T.attached_class) + end def self.new(score_threshold:, ranker: nil) end - sig { override.returns({score_threshold: Float, ranker: Symbol}) } + sig do + override + .returns( + { + score_threshold: Float, + ranker: OpenAI::Models::Beta::FileSearchTool::FileSearch::RankingOptions::Ranker::OrSymbol + } + ) + end def to_hash end # The ranker to use for the file search. If not specified will use the `auto` # ranker. - class Ranker < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - AUTO = :auto - DEFAULT_2024_08_21 = :default_2024_08_21 + module Ranker + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Beta::FileSearchTool::FileSearch::RankingOptions::Ranker) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::FileSearchTool::FileSearch::RankingOptions::Ranker::TaggedSymbol) } + + AUTO = T.let(:auto, OpenAI::Models::Beta::FileSearchTool::FileSearch::RankingOptions::Ranker::OrSymbol) + DEFAULT_2024_08_21 = + T.let( + :default_2024_08_21, + OpenAI::Models::Beta::FileSearchTool::FileSearch::RankingOptions::Ranker::OrSymbol + ) end end end diff --git a/rbi/lib/openai/models/beta/message_stream_event.rbi b/rbi/lib/openai/models/beta/message_stream_event.rbi index 97821d4a..495664c0 100644 --- a/rbi/lib/openai/models/beta/message_stream_event.rbi +++ b/rbi/lib/openai/models/beta/message_stream_event.rbi @@ -6,8 +6,8 @@ module OpenAI # Occurs when a # [message](https://platform.openai.com/docs/api-reference/messages/object) is # created. - class MessageStreamEvent < OpenAI::Union - abstract! + module MessageStreamEvent + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/run_step_stream_event.rbi b/rbi/lib/openai/models/beta/run_step_stream_event.rbi index 6b1ae66d..51fa7db0 100644 --- a/rbi/lib/openai/models/beta/run_step_stream_event.rbi +++ b/rbi/lib/openai/models/beta/run_step_stream_event.rbi @@ -6,8 +6,8 @@ module OpenAI # Occurs when a # [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) # is created. - class RunStepStreamEvent < OpenAI::Union - abstract! + module RunStepStreamEvent + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/run_stream_event.rbi b/rbi/lib/openai/models/beta/run_stream_event.rbi index 5642aefb..e18dd1f2 100644 --- a/rbi/lib/openai/models/beta/run_stream_event.rbi +++ b/rbi/lib/openai/models/beta/run_stream_event.rbi @@ -5,8 +5,8 @@ module OpenAI module Beta # Occurs when a new # [run](https://platform.openai.com/docs/api-reference/runs/object) is created. - class RunStreamEvent < OpenAI::Union - abstract! + module RunStreamEvent + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/thread_create_and_run_params.rbi b/rbi/lib/openai/models/beta/thread_create_and_run_params.rbi index 7fc5264e..1e973fba 100644 --- a/rbi/lib/openai/models/beta/thread_create_and_run_params.rbi +++ b/rbi/lib/openai/models/beta/thread_create_and_run_params.rbi @@ -72,11 +72,14 @@ module OpenAI # be used to execute this run. If a value is provided here, it will override the # model associated with the assistant. If not, the model associated with the # assistant will be used. - sig { returns(T.nilable(T.any(String, Symbol))) } + sig { returns(T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol))) } def model end - sig { params(_: T.nilable(T.any(String, Symbol))).returns(T.nilable(T.any(String, Symbol))) } + sig do + params(_: T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol))) + .returns(T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol))) + end def model=(_) end @@ -182,13 +185,36 @@ module OpenAI # to the user. Specifying a particular tool like `{"type": "file_search"}` or # `{"type": "function", "function": {"name": "my_function"}}` forces the model to # call that tool. - sig { returns(T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice))) } + sig do + returns( + T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ) + ) + end def tool_choice end sig do - params(_: T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice))) - .returns(T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice))) + params( + _: T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ) + ) + .returns( + T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ) + ) end def tool_choice=(_) end @@ -286,7 +312,7 @@ module OpenAI max_completion_tokens: T.nilable(Integer), max_prompt_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol)), parallel_tool_calls: T::Boolean, response_format: T.nilable( T.any( @@ -298,7 +324,12 @@ module OpenAI ), temperature: T.nilable(Float), thread: OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread, - tool_choice: T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice)), + tool_choice: T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ), tool_resources: T.nilable(OpenAI::Models::Beta::ThreadCreateAndRunParams::ToolResources), tools: T.nilable( T::Array[ @@ -344,7 +375,7 @@ module OpenAI max_completion_tokens: T.nilable(Integer), max_prompt_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol)), parallel_tool_calls: T::Boolean, response_format: T.nilable( T.any( @@ -356,7 +387,12 @@ module OpenAI ), temperature: T.nilable(Float), thread: OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread, - tool_choice: T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice)), + tool_choice: T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ), tool_resources: T.nilable(OpenAI::Models::Beta::ThreadCreateAndRunParams::ToolResources), tools: T.nilable( T::Array[ @@ -380,10 +416,10 @@ module OpenAI # be used to execute this run. If a value is provided here, it will override the # model associated with the assistant. If not, the model associated with the # assistant will be used. - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = type_template(:out) { {fixed: T.any(String, OpenAI::Models::ChatModel::OrSymbol)} } end class Thread < OpenAI::BaseModel @@ -509,11 +545,14 @@ module OpenAI # most cases to represent user-generated messages. # - `assistant`: Indicates the message is generated by the assistant. Use this # value to insert messages from the assistant into the conversation. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread::Message::Role::OrSymbol) } def role end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread::Message::Role::OrSymbol) + .returns(OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread::Message::Role::OrSymbol) + end def role=(_) end @@ -557,7 +596,7 @@ module OpenAI ) ] ), - role: Symbol, + role: OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread::Message::Role::OrSymbol, attachments: T.nilable(T::Array[OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread::Message::Attachment]), metadata: T.nilable(T::Hash[Symbol, String]) ) @@ -580,7 +619,7 @@ module OpenAI ) ] ), - role: Symbol, + role: OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread::Message::Role::OrSymbol, attachments: T.nilable(T::Array[OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread::Message::Attachment]), metadata: T.nilable(T::Hash[Symbol, String]) } @@ -590,8 +629,8 @@ module OpenAI end # The text contents of the message. - class Content < OpenAI::Union - abstract! + module Content + extend OpenAI::Union Variants = type_template(:out) do @@ -619,13 +658,17 @@ module OpenAI # most cases to represent user-generated messages. # - `assistant`: Indicates the message is generated by the assistant. Use this # value to insert messages from the assistant into the conversation. - class Role < OpenAI::Enum - abstract! + module Role + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread::Message::Role) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread::Message::Role::TaggedSymbol) } - USER = :user - ASSISTANT = :assistant + USER = T.let(:user, OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread::Message::Role::OrSymbol) + ASSISTANT = + T.let(:assistant, OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread::Message::Role::OrSymbol) end class Attachment < OpenAI::BaseModel @@ -707,8 +750,8 @@ module OpenAI def to_hash end - class Tool < OpenAI::Union - abstract! + module Tool + extend OpenAI::Union Variants = type_template(:out) do @@ -1059,8 +1102,8 @@ module OpenAI end end - class Tool < OpenAI::Union - abstract! + module Tool + extend OpenAI::Union Variants = type_template(:out) do @@ -1079,11 +1122,14 @@ module OpenAI # `last_messages`, the thread will be truncated to the n most recent messages in # the thread. When set to `auto`, messages in the middle of the thread will be # dropped to fit the context length of the model, `max_prompt_tokens`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::ThreadCreateAndRunParams::TruncationStrategy::Type::OrSymbol) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::ThreadCreateAndRunParams::TruncationStrategy::Type::OrSymbol) + .returns(OpenAI::Models::Beta::ThreadCreateAndRunParams::TruncationStrategy::Type::OrSymbol) + end def type=(_) end @@ -1099,11 +1145,25 @@ module OpenAI # Controls for how a thread will be truncated prior to the run. Use this to # control the intial context window of the run. - sig { params(type: Symbol, last_messages: T.nilable(Integer)).returns(T.attached_class) } + sig do + params( + type: OpenAI::Models::Beta::ThreadCreateAndRunParams::TruncationStrategy::Type::OrSymbol, + last_messages: T.nilable(Integer) + ) + .returns(T.attached_class) + end def self.new(type:, last_messages: nil) end - sig { override.returns({type: Symbol, last_messages: T.nilable(Integer)}) } + sig do + override + .returns( + { + type: OpenAI::Models::Beta::ThreadCreateAndRunParams::TruncationStrategy::Type::OrSymbol, + last_messages: T.nilable(Integer) + } + ) + end def to_hash end @@ -1111,13 +1171,17 @@ module OpenAI # `last_messages`, the thread will be truncated to the n most recent messages in # the thread. When set to `auto`, messages in the middle of the thread will be # dropped to fit the context length of the model, `max_prompt_tokens`. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Beta::ThreadCreateAndRunParams::TruncationStrategy::Type) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::ThreadCreateAndRunParams::TruncationStrategy::Type::TaggedSymbol) } - AUTO = :auto - LAST_MESSAGES = :last_messages + AUTO = T.let(:auto, OpenAI::Models::Beta::ThreadCreateAndRunParams::TruncationStrategy::Type::OrSymbol) + LAST_MESSAGES = + T.let(:last_messages, OpenAI::Models::Beta::ThreadCreateAndRunParams::TruncationStrategy::Type::OrSymbol) end end end diff --git a/rbi/lib/openai/models/beta/thread_create_params.rbi b/rbi/lib/openai/models/beta/thread_create_params.rbi index ab8ce3e6..c3d55983 100644 --- a/rbi/lib/openai/models/beta/thread_create_params.rbi +++ b/rbi/lib/openai/models/beta/thread_create_params.rbi @@ -129,11 +129,14 @@ module OpenAI # most cases to represent user-generated messages. # - `assistant`: Indicates the message is generated by the assistant. Use this # value to insert messages from the assistant into the conversation. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::ThreadCreateParams::Message::Role::OrSymbol) } def role end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::ThreadCreateParams::Message::Role::OrSymbol) + .returns(OpenAI::Models::Beta::ThreadCreateParams::Message::Role::OrSymbol) + end def role=(_) end @@ -175,7 +178,7 @@ module OpenAI ) ] ), - role: Symbol, + role: OpenAI::Models::Beta::ThreadCreateParams::Message::Role::OrSymbol, attachments: T.nilable(T::Array[OpenAI::Models::Beta::ThreadCreateParams::Message::Attachment]), metadata: T.nilable(T::Hash[Symbol, String]) ) @@ -198,7 +201,7 @@ module OpenAI ) ] ), - role: Symbol, + role: OpenAI::Models::Beta::ThreadCreateParams::Message::Role::OrSymbol, attachments: T.nilable(T::Array[OpenAI::Models::Beta::ThreadCreateParams::Message::Attachment]), metadata: T.nilable(T::Hash[Symbol, String]) } @@ -208,8 +211,8 @@ module OpenAI end # The text contents of the message. - class Content < OpenAI::Union - abstract! + module Content + extend OpenAI::Union Variants = type_template(:out) do @@ -237,13 +240,15 @@ module OpenAI # most cases to represent user-generated messages. # - `assistant`: Indicates the message is generated by the assistant. Use this # value to insert messages from the assistant into the conversation. - class Role < OpenAI::Enum - abstract! + module Role + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::ThreadCreateParams::Message::Role) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::ThreadCreateParams::Message::Role::TaggedSymbol) } - USER = :user - ASSISTANT = :assistant + USER = T.let(:user, OpenAI::Models::Beta::ThreadCreateParams::Message::Role::OrSymbol) + ASSISTANT = T.let(:assistant, OpenAI::Models::Beta::ThreadCreateParams::Message::Role::OrSymbol) end class Attachment < OpenAI::BaseModel @@ -325,8 +330,8 @@ module OpenAI def to_hash end - class Tool < OpenAI::Union - abstract! + module Tool + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/threads/annotation.rbi b/rbi/lib/openai/models/beta/threads/annotation.rbi index 1351f46f..74967cee 100644 --- a/rbi/lib/openai/models/beta/threads/annotation.rbi +++ b/rbi/lib/openai/models/beta/threads/annotation.rbi @@ -7,8 +7,8 @@ module OpenAI # A citation within the message that points to a specific quote from a specific # File associated with the assistant or the message. Generated when the assistant # uses the "file_search" tool to search files. - class Annotation < OpenAI::Union - abstract! + module Annotation + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/threads/annotation_delta.rbi b/rbi/lib/openai/models/beta/threads/annotation_delta.rbi index a388880d..90db2a3c 100644 --- a/rbi/lib/openai/models/beta/threads/annotation_delta.rbi +++ b/rbi/lib/openai/models/beta/threads/annotation_delta.rbi @@ -7,8 +7,8 @@ module OpenAI # A citation within the message that points to a specific quote from a specific # File associated with the assistant or the message. Generated when the assistant # uses the "file_search" tool to search files. - class AnnotationDelta < OpenAI::Union - abstract! + module AnnotationDelta + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/threads/image_file.rbi b/rbi/lib/openai/models/beta/threads/image_file.rbi index 879b0320..61ad33c5 100644 --- a/rbi/lib/openai/models/beta/threads/image_file.rbi +++ b/rbi/lib/openai/models/beta/threads/image_file.rbi @@ -18,32 +18,39 @@ module OpenAI # Specifies the detail level of the image if specified by the user. `low` uses # fewer tokens, you can opt in to high resolution using `high`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Beta::Threads::ImageFile::Detail::OrSymbol)) } def detail end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::ImageFile::Detail::OrSymbol) + .returns(OpenAI::Models::Beta::Threads::ImageFile::Detail::OrSymbol) + end def detail=(_) end - sig { params(file_id: String, detail: Symbol).returns(T.attached_class) } + sig do + params(file_id: String, detail: OpenAI::Models::Beta::Threads::ImageFile::Detail::OrSymbol) + .returns(T.attached_class) + end def self.new(file_id:, detail: nil) end - sig { override.returns({file_id: String, detail: Symbol}) } + sig { override.returns({file_id: String, detail: OpenAI::Models::Beta::Threads::ImageFile::Detail::OrSymbol}) } def to_hash end # Specifies the detail level of the image if specified by the user. `low` uses # fewer tokens, you can opt in to high resolution using `high`. - class Detail < OpenAI::Enum - abstract! + module Detail + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::ImageFile::Detail) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::ImageFile::Detail::TaggedSymbol) } - AUTO = :auto - LOW = :low - HIGH = :high + AUTO = T.let(:auto, OpenAI::Models::Beta::Threads::ImageFile::Detail::OrSymbol) + LOW = T.let(:low, OpenAI::Models::Beta::Threads::ImageFile::Detail::OrSymbol) + HIGH = T.let(:high, OpenAI::Models::Beta::Threads::ImageFile::Detail::OrSymbol) end end end diff --git a/rbi/lib/openai/models/beta/threads/image_file_delta.rbi b/rbi/lib/openai/models/beta/threads/image_file_delta.rbi index 89c10a01..efac1cbe 100644 --- a/rbi/lib/openai/models/beta/threads/image_file_delta.rbi +++ b/rbi/lib/openai/models/beta/threads/image_file_delta.rbi @@ -7,11 +7,14 @@ module OpenAI class ImageFileDelta < OpenAI::BaseModel # Specifies the detail level of the image if specified by the user. `low` uses # fewer tokens, you can opt in to high resolution using `high`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Beta::Threads::ImageFileDelta::Detail::TaggedSymbol)) } def detail end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::ImageFileDelta::Detail::TaggedSymbol) + .returns(OpenAI::Models::Beta::Threads::ImageFileDelta::Detail::TaggedSymbol) + end def detail=(_) end @@ -26,24 +29,32 @@ module OpenAI def file_id=(_) end - sig { params(detail: Symbol, file_id: String).returns(T.attached_class) } + sig do + params(detail: OpenAI::Models::Beta::Threads::ImageFileDelta::Detail::TaggedSymbol, file_id: String) + .returns(T.attached_class) + end def self.new(detail: nil, file_id: nil) end - sig { override.returns({detail: Symbol, file_id: String}) } + sig do + override + .returns({detail: OpenAI::Models::Beta::Threads::ImageFileDelta::Detail::TaggedSymbol, file_id: String}) + end def to_hash end # Specifies the detail level of the image if specified by the user. `low` uses # fewer tokens, you can opt in to high resolution using `high`. - class Detail < OpenAI::Enum - abstract! + module Detail + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::ImageFileDelta::Detail) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::ImageFileDelta::Detail::TaggedSymbol) } - AUTO = :auto - LOW = :low - HIGH = :high + AUTO = T.let(:auto, OpenAI::Models::Beta::Threads::ImageFileDelta::Detail::TaggedSymbol) + LOW = T.let(:low, OpenAI::Models::Beta::Threads::ImageFileDelta::Detail::TaggedSymbol) + HIGH = T.let(:high, OpenAI::Models::Beta::Threads::ImageFileDelta::Detail::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/beta/threads/image_url.rbi b/rbi/lib/openai/models/beta/threads/image_url.rbi index e4aa98eb..032d894d 100644 --- a/rbi/lib/openai/models/beta/threads/image_url.rbi +++ b/rbi/lib/openai/models/beta/threads/image_url.rbi @@ -17,32 +17,39 @@ module OpenAI # Specifies the detail level of the image. `low` uses fewer tokens, you can opt in # to high resolution using `high`. Default value is `auto` - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Beta::Threads::ImageURL::Detail::OrSymbol)) } def detail end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::ImageURL::Detail::OrSymbol) + .returns(OpenAI::Models::Beta::Threads::ImageURL::Detail::OrSymbol) + end def detail=(_) end - sig { params(url: String, detail: Symbol).returns(T.attached_class) } + sig do + params(url: String, detail: OpenAI::Models::Beta::Threads::ImageURL::Detail::OrSymbol) + .returns(T.attached_class) + end def self.new(url:, detail: nil) end - sig { override.returns({url: String, detail: Symbol}) } + sig { override.returns({url: String, detail: OpenAI::Models::Beta::Threads::ImageURL::Detail::OrSymbol}) } def to_hash end # Specifies the detail level of the image. `low` uses fewer tokens, you can opt in # to high resolution using `high`. Default value is `auto` - class Detail < OpenAI::Enum - abstract! + module Detail + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::ImageURL::Detail) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::ImageURL::Detail::TaggedSymbol) } - AUTO = :auto - LOW = :low - HIGH = :high + AUTO = T.let(:auto, OpenAI::Models::Beta::Threads::ImageURL::Detail::OrSymbol) + LOW = T.let(:low, OpenAI::Models::Beta::Threads::ImageURL::Detail::OrSymbol) + HIGH = T.let(:high, OpenAI::Models::Beta::Threads::ImageURL::Detail::OrSymbol) end end end diff --git a/rbi/lib/openai/models/beta/threads/image_url_delta.rbi b/rbi/lib/openai/models/beta/threads/image_url_delta.rbi index a300a59e..6e8e3245 100644 --- a/rbi/lib/openai/models/beta/threads/image_url_delta.rbi +++ b/rbi/lib/openai/models/beta/threads/image_url_delta.rbi @@ -7,11 +7,14 @@ module OpenAI class ImageURLDelta < OpenAI::BaseModel # Specifies the detail level of the image. `low` uses fewer tokens, you can opt in # to high resolution using `high`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Beta::Threads::ImageURLDelta::Detail::TaggedSymbol)) } def detail end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::ImageURLDelta::Detail::TaggedSymbol) + .returns(OpenAI::Models::Beta::Threads::ImageURLDelta::Detail::TaggedSymbol) + end def detail=(_) end @@ -25,24 +28,31 @@ module OpenAI def url=(_) end - sig { params(detail: Symbol, url: String).returns(T.attached_class) } + sig do + params(detail: OpenAI::Models::Beta::Threads::ImageURLDelta::Detail::TaggedSymbol, url: String) + .returns(T.attached_class) + end def self.new(detail: nil, url: nil) end - sig { override.returns({detail: Symbol, url: String}) } + sig do + override.returns({detail: OpenAI::Models::Beta::Threads::ImageURLDelta::Detail::TaggedSymbol, url: String}) + end def to_hash end # Specifies the detail level of the image. `low` uses fewer tokens, you can opt in # to high resolution using `high`. - class Detail < OpenAI::Enum - abstract! + module Detail + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::ImageURLDelta::Detail) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::ImageURLDelta::Detail::TaggedSymbol) } - AUTO = :auto - LOW = :low - HIGH = :high + AUTO = T.let(:auto, OpenAI::Models::Beta::Threads::ImageURLDelta::Detail::TaggedSymbol) + LOW = T.let(:low, OpenAI::Models::Beta::Threads::ImageURLDelta::Detail::TaggedSymbol) + HIGH = T.let(:high, OpenAI::Models::Beta::Threads::ImageURLDelta::Detail::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/beta/threads/message.rbi b/rbi/lib/openai/models/beta/threads/message.rbi index 01311c44..96603146 100644 --- a/rbi/lib/openai/models/beta/threads/message.rbi +++ b/rbi/lib/openai/models/beta/threads/message.rbi @@ -141,11 +141,14 @@ module OpenAI end # The entity that produced the message. One of `user` or `assistant`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::Threads::Message::Role::TaggedSymbol) } def role end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::Message::Role::TaggedSymbol) + .returns(OpenAI::Models::Beta::Threads::Message::Role::TaggedSymbol) + end def role=(_) end @@ -162,11 +165,14 @@ module OpenAI # The status of the message, which can be either `in_progress`, `incomplete`, or # `completed`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::Threads::Message::Status::TaggedSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::Message::Status::TaggedSymbol) + .returns(OpenAI::Models::Beta::Threads::Message::Status::TaggedSymbol) + end def status=(_) end @@ -200,9 +206,9 @@ module OpenAI incomplete_at: T.nilable(Integer), incomplete_details: T.nilable(OpenAI::Models::Beta::Threads::Message::IncompleteDetails), metadata: T.nilable(T::Hash[Symbol, String]), - role: Symbol, + role: OpenAI::Models::Beta::Threads::Message::Role::TaggedSymbol, run_id: T.nilable(String), - status: Symbol, + status: OpenAI::Models::Beta::Threads::Message::Status::TaggedSymbol, thread_id: String, object: Symbol ) @@ -247,9 +253,9 @@ module OpenAI incomplete_details: T.nilable(OpenAI::Models::Beta::Threads::Message::IncompleteDetails), metadata: T.nilable(T::Hash[Symbol, String]), object: Symbol, - role: Symbol, + role: OpenAI::Models::Beta::Threads::Message::Role::TaggedSymbol, run_id: T.nilable(String), - status: Symbol, + status: OpenAI::Models::Beta::Threads::Message::Status::TaggedSymbol, thread_id: String } ) @@ -336,8 +342,8 @@ module OpenAI def to_hash end - class Tool < OpenAI::Union - abstract! + module Tool + extend OpenAI::Union Variants = type_template(:out) do @@ -372,57 +378,75 @@ module OpenAI class IncompleteDetails < OpenAI::BaseModel # The reason the message is incomplete. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::Threads::Message::IncompleteDetails::Reason::TaggedSymbol) } def reason end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::Message::IncompleteDetails::Reason::TaggedSymbol) + .returns(OpenAI::Models::Beta::Threads::Message::IncompleteDetails::Reason::TaggedSymbol) + end def reason=(_) end # On an incomplete message, details about why the message is incomplete. - sig { params(reason: Symbol).returns(T.attached_class) } + sig do + params(reason: OpenAI::Models::Beta::Threads::Message::IncompleteDetails::Reason::TaggedSymbol) + .returns(T.attached_class) + end def self.new(reason:) end - sig { override.returns({reason: Symbol}) } + sig do + override.returns({reason: OpenAI::Models::Beta::Threads::Message::IncompleteDetails::Reason::TaggedSymbol}) + end def to_hash end # The reason the message is incomplete. - class Reason < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - CONTENT_FILTER = :content_filter - MAX_TOKENS = :max_tokens - RUN_CANCELLED = :run_cancelled - RUN_EXPIRED = :run_expired - RUN_FAILED = :run_failed + module Reason + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::Message::IncompleteDetails::Reason) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::Message::IncompleteDetails::Reason::TaggedSymbol) } + + CONTENT_FILTER = + T.let(:content_filter, OpenAI::Models::Beta::Threads::Message::IncompleteDetails::Reason::TaggedSymbol) + MAX_TOKENS = + T.let(:max_tokens, OpenAI::Models::Beta::Threads::Message::IncompleteDetails::Reason::TaggedSymbol) + RUN_CANCELLED = + T.let(:run_cancelled, OpenAI::Models::Beta::Threads::Message::IncompleteDetails::Reason::TaggedSymbol) + RUN_EXPIRED = + T.let(:run_expired, OpenAI::Models::Beta::Threads::Message::IncompleteDetails::Reason::TaggedSymbol) + RUN_FAILED = + T.let(:run_failed, OpenAI::Models::Beta::Threads::Message::IncompleteDetails::Reason::TaggedSymbol) end end # The entity that produced the message. One of `user` or `assistant`. - class Role < OpenAI::Enum - abstract! + module Role + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::Message::Role) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::Message::Role::TaggedSymbol) } - USER = :user - ASSISTANT = :assistant + USER = T.let(:user, OpenAI::Models::Beta::Threads::Message::Role::TaggedSymbol) + ASSISTANT = T.let(:assistant, OpenAI::Models::Beta::Threads::Message::Role::TaggedSymbol) end # The status of the message, which can be either `in_progress`, `incomplete`, or # `completed`. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::Message::Status) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::Message::Status::TaggedSymbol) } - IN_PROGRESS = :in_progress - INCOMPLETE = :incomplete - COMPLETED = :completed + IN_PROGRESS = T.let(:in_progress, OpenAI::Models::Beta::Threads::Message::Status::TaggedSymbol) + INCOMPLETE = T.let(:incomplete, OpenAI::Models::Beta::Threads::Message::Status::TaggedSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::Beta::Threads::Message::Status::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/beta/threads/message_content.rbi b/rbi/lib/openai/models/beta/threads/message_content.rbi index 9e3c7f22..97ed19fe 100644 --- a/rbi/lib/openai/models/beta/threads/message_content.rbi +++ b/rbi/lib/openai/models/beta/threads/message_content.rbi @@ -6,8 +6,8 @@ module OpenAI module Threads # References an image [File](https://platform.openai.com/docs/api-reference/files) # in the content of a message. - class MessageContent < OpenAI::Union - abstract! + module MessageContent + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/threads/message_content_delta.rbi b/rbi/lib/openai/models/beta/threads/message_content_delta.rbi index dce4489b..ec1c6ccc 100644 --- a/rbi/lib/openai/models/beta/threads/message_content_delta.rbi +++ b/rbi/lib/openai/models/beta/threads/message_content_delta.rbi @@ -6,8 +6,8 @@ module OpenAI module Threads # References an image [File](https://platform.openai.com/docs/api-reference/files) # in the content of a message. - class MessageContentDelta < OpenAI::Union - abstract! + module MessageContentDelta + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/threads/message_content_part_param.rbi b/rbi/lib/openai/models/beta/threads/message_content_part_param.rbi index e4fb311c..effc6e6c 100644 --- a/rbi/lib/openai/models/beta/threads/message_content_part_param.rbi +++ b/rbi/lib/openai/models/beta/threads/message_content_part_param.rbi @@ -6,8 +6,8 @@ module OpenAI module Threads # References an image [File](https://platform.openai.com/docs/api-reference/files) # in the content of a message. - class MessageContentPartParam < OpenAI::Union - abstract! + module MessageContentPartParam + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/threads/message_create_params.rbi b/rbi/lib/openai/models/beta/threads/message_create_params.rbi index 6d8913ff..9c0c17d5 100644 --- a/rbi/lib/openai/models/beta/threads/message_create_params.rbi +++ b/rbi/lib/openai/models/beta/threads/message_create_params.rbi @@ -61,11 +61,14 @@ module OpenAI # most cases to represent user-generated messages. # - `assistant`: Indicates the message is generated by the assistant. Use this # value to insert messages from the assistant into the conversation. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::Threads::MessageCreateParams::Role::OrSymbol) } def role end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::MessageCreateParams::Role::OrSymbol) + .returns(OpenAI::Models::Beta::Threads::MessageCreateParams::Role::OrSymbol) + end def role=(_) end @@ -107,7 +110,7 @@ module OpenAI ) ] ), - role: Symbol, + role: OpenAI::Models::Beta::Threads::MessageCreateParams::Role::OrSymbol, attachments: T.nilable(T::Array[OpenAI::Models::Beta::Threads::MessageCreateParams::Attachment]), metadata: T.nilable(T::Hash[Symbol, String]), request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) @@ -131,7 +134,7 @@ module OpenAI ) ] ), - role: Symbol, + role: OpenAI::Models::Beta::Threads::MessageCreateParams::Role::OrSymbol, attachments: T.nilable(T::Array[OpenAI::Models::Beta::Threads::MessageCreateParams::Attachment]), metadata: T.nilable(T::Hash[Symbol, String]), request_options: OpenAI::RequestOptions @@ -142,8 +145,8 @@ module OpenAI end # The text contents of the message. - class Content < OpenAI::Union - abstract! + module Content + extend OpenAI::Union Variants = type_template(:out) do @@ -171,13 +174,15 @@ module OpenAI # most cases to represent user-generated messages. # - `assistant`: Indicates the message is generated by the assistant. Use this # value to insert messages from the assistant into the conversation. - class Role < OpenAI::Enum - abstract! + module Role + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::MessageCreateParams::Role) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::MessageCreateParams::Role::TaggedSymbol) } - USER = :user - ASSISTANT = :assistant + USER = T.let(:user, OpenAI::Models::Beta::Threads::MessageCreateParams::Role::OrSymbol) + ASSISTANT = T.let(:assistant, OpenAI::Models::Beta::Threads::MessageCreateParams::Role::OrSymbol) end class Attachment < OpenAI::BaseModel @@ -259,8 +264,8 @@ module OpenAI def to_hash end - class Tool < OpenAI::Union - abstract! + module Tool + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/threads/message_delta.rbi b/rbi/lib/openai/models/beta/threads/message_delta.rbi index 7883727c..b7bfc61c 100644 --- a/rbi/lib/openai/models/beta/threads/message_delta.rbi +++ b/rbi/lib/openai/models/beta/threads/message_delta.rbi @@ -49,11 +49,14 @@ module OpenAI end # The entity that produced the message. One of `user` or `assistant`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Beta::Threads::MessageDelta::Role::TaggedSymbol)) } def role end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::MessageDelta::Role::TaggedSymbol) + .returns(OpenAI::Models::Beta::Threads::MessageDelta::Role::TaggedSymbol) + end def role=(_) end @@ -68,7 +71,7 @@ module OpenAI OpenAI::Models::Beta::Threads::ImageURLDeltaBlock ) ], - role: Symbol + role: OpenAI::Models::Beta::Threads::MessageDelta::Role::TaggedSymbol ) .returns(T.attached_class) end @@ -87,7 +90,7 @@ module OpenAI OpenAI::Models::Beta::Threads::ImageURLDeltaBlock ) ], - role: Symbol + role: OpenAI::Models::Beta::Threads::MessageDelta::Role::TaggedSymbol } ) end @@ -95,13 +98,15 @@ module OpenAI end # The entity that produced the message. One of `user` or `assistant`. - class Role < OpenAI::Enum - abstract! + module Role + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::MessageDelta::Role) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::MessageDelta::Role::TaggedSymbol) } - USER = :user - ASSISTANT = :assistant + USER = T.let(:user, OpenAI::Models::Beta::Threads::MessageDelta::Role::TaggedSymbol) + ASSISTANT = T.let(:assistant, OpenAI::Models::Beta::Threads::MessageDelta::Role::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/beta/threads/message_list_params.rbi b/rbi/lib/openai/models/beta/threads/message_list_params.rbi index 4b93b0c8..d80e8d49 100644 --- a/rbi/lib/openai/models/beta/threads/message_list_params.rbi +++ b/rbi/lib/openai/models/beta/threads/message_list_params.rbi @@ -44,11 +44,14 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Beta::Threads::MessageListParams::Order::OrSymbol)) } def order end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::MessageListParams::Order::OrSymbol) + .returns(OpenAI::Models::Beta::Threads::MessageListParams::Order::OrSymbol) + end def order=(_) end @@ -66,7 +69,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Beta::Threads::MessageListParams::Order::OrSymbol, run_id: String, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) @@ -82,7 +85,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Beta::Threads::MessageListParams::Order::OrSymbol, run_id: String, request_options: OpenAI::RequestOptions } @@ -93,13 +96,15 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum - abstract! + module Order + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::MessageListParams::Order) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::MessageListParams::Order::TaggedSymbol) } - ASC = :asc - DESC = :desc + ASC = T.let(:asc, OpenAI::Models::Beta::Threads::MessageListParams::Order::OrSymbol) + DESC = T.let(:desc, OpenAI::Models::Beta::Threads::MessageListParams::Order::OrSymbol) end end end diff --git a/rbi/lib/openai/models/beta/threads/run.rbi b/rbi/lib/openai/models/beta/threads/run.rbi index 0ea43a0c..d1587a17 100644 --- a/rbi/lib/openai/models/beta/threads/run.rbi +++ b/rbi/lib/openai/models/beta/threads/run.rbi @@ -256,11 +256,14 @@ module OpenAI # The status of the run, which can be either `queued`, `in_progress`, # `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, # `incomplete`, or `expired`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol) + .returns(OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol) + end def status=(_) end @@ -281,13 +284,36 @@ module OpenAI # to the user. Specifying a particular tool like `{"type": "file_search"}` or # `{"type": "function", "function": {"name": "my_function"}}` forces the model to # call that tool. - sig { returns(T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice))) } + sig do + returns( + T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::TaggedSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ) + ) + end def tool_choice end sig do - params(_: T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice))) - .returns(T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice))) + params( + _: T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::TaggedSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ) + ) + .returns( + T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::TaggedSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ) + ) end def tool_choice=(_) end @@ -405,9 +431,14 @@ module OpenAI ) ), started_at: T.nilable(Integer), - status: Symbol, + status: OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol, thread_id: String, - tool_choice: T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice)), + tool_choice: T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::TaggedSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ), tools: T::Array[ T.any( OpenAI::Models::Beta::CodeInterpreterTool, @@ -484,9 +515,14 @@ module OpenAI ) ), started_at: T.nilable(Integer), - status: Symbol, + status: OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol, thread_id: String, - tool_choice: T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice)), + tool_choice: T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::TaggedSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ), tools: T::Array[ T.any( OpenAI::Models::Beta::CodeInterpreterTool, @@ -507,43 +543,57 @@ module OpenAI class IncompleteDetails < OpenAI::BaseModel # The reason why the run is incomplete. This will point to which specific token # limit was reached over the course of the run. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Beta::Threads::Run::IncompleteDetails::Reason::TaggedSymbol)) } def reason end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::Run::IncompleteDetails::Reason::TaggedSymbol) + .returns(OpenAI::Models::Beta::Threads::Run::IncompleteDetails::Reason::TaggedSymbol) + end def reason=(_) end # Details on why the run is incomplete. Will be `null` if the run is not # incomplete. - sig { params(reason: Symbol).returns(T.attached_class) } + sig do + params(reason: OpenAI::Models::Beta::Threads::Run::IncompleteDetails::Reason::TaggedSymbol) + .returns(T.attached_class) + end def self.new(reason: nil) end - sig { override.returns({reason: Symbol}) } + sig { override.returns({reason: OpenAI::Models::Beta::Threads::Run::IncompleteDetails::Reason::TaggedSymbol}) } def to_hash end # The reason why the run is incomplete. This will point to which specific token # limit was reached over the course of the run. - class Reason < OpenAI::Enum - abstract! + module Reason + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::Run::IncompleteDetails::Reason) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::Run::IncompleteDetails::Reason::TaggedSymbol) } - MAX_COMPLETION_TOKENS = :max_completion_tokens - MAX_PROMPT_TOKENS = :max_prompt_tokens + MAX_COMPLETION_TOKENS = + T.let(:max_completion_tokens, OpenAI::Models::Beta::Threads::Run::IncompleteDetails::Reason::TaggedSymbol) + MAX_PROMPT_TOKENS = + T.let(:max_prompt_tokens, OpenAI::Models::Beta::Threads::Run::IncompleteDetails::Reason::TaggedSymbol) end end class LastError < OpenAI::BaseModel # One of `server_error`, `rate_limit_exceeded`, or `invalid_prompt`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::Threads::Run::LastError::Code::TaggedSymbol) } def code end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::Run::LastError::Code::TaggedSymbol) + .returns(OpenAI::Models::Beta::Threads::Run::LastError::Code::TaggedSymbol) + end def code=(_) end @@ -557,23 +607,33 @@ module OpenAI end # The last error associated with this run. Will be `null` if there are no errors. - sig { params(code: Symbol, message: String).returns(T.attached_class) } + sig do + params(code: OpenAI::Models::Beta::Threads::Run::LastError::Code::TaggedSymbol, message: String) + .returns(T.attached_class) + end def self.new(code:, message:) end - sig { override.returns({code: Symbol, message: String}) } + sig do + override + .returns({code: OpenAI::Models::Beta::Threads::Run::LastError::Code::TaggedSymbol, message: String}) + end def to_hash end # One of `server_error`, `rate_limit_exceeded`, or `invalid_prompt`. - class Code < OpenAI::Enum - abstract! + module Code + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::Run::LastError::Code) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::Run::LastError::Code::TaggedSymbol) } - SERVER_ERROR = :server_error - RATE_LIMIT_EXCEEDED = :rate_limit_exceeded - INVALID_PROMPT = :invalid_prompt + SERVER_ERROR = T.let(:server_error, OpenAI::Models::Beta::Threads::Run::LastError::Code::TaggedSymbol) + RATE_LIMIT_EXCEEDED = + T.let(:rate_limit_exceeded, OpenAI::Models::Beta::Threads::Run::LastError::Code::TaggedSymbol) + INVALID_PROMPT = + T.let(:invalid_prompt, OpenAI::Models::Beta::Threads::Run::LastError::Code::TaggedSymbol) end end @@ -652,11 +712,14 @@ module OpenAI # `last_messages`, the thread will be truncated to the n most recent messages in # the thread. When set to `auto`, messages in the middle of the thread will be # dropped to fit the context length of the model, `max_prompt_tokens`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::Threads::Run::TruncationStrategy::Type::TaggedSymbol) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::Run::TruncationStrategy::Type::TaggedSymbol) + .returns(OpenAI::Models::Beta::Threads::Run::TruncationStrategy::Type::TaggedSymbol) + end def type=(_) end @@ -672,11 +735,25 @@ module OpenAI # Controls for how a thread will be truncated prior to the run. Use this to # control the intial context window of the run. - sig { params(type: Symbol, last_messages: T.nilable(Integer)).returns(T.attached_class) } + sig do + params( + type: OpenAI::Models::Beta::Threads::Run::TruncationStrategy::Type::TaggedSymbol, + last_messages: T.nilable(Integer) + ) + .returns(T.attached_class) + end def self.new(type:, last_messages: nil) end - sig { override.returns({type: Symbol, last_messages: T.nilable(Integer)}) } + sig do + override + .returns( + { + type: OpenAI::Models::Beta::Threads::Run::TruncationStrategy::Type::TaggedSymbol, + last_messages: T.nilable(Integer) + } + ) + end def to_hash end @@ -684,13 +761,17 @@ module OpenAI # `last_messages`, the thread will be truncated to the n most recent messages in # the thread. When set to `auto`, messages in the middle of the thread will be # dropped to fit the context length of the model, `max_prompt_tokens`. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::Run::TruncationStrategy::Type) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::Run::TruncationStrategy::Type::TaggedSymbol) } - AUTO = :auto - LAST_MESSAGES = :last_messages + AUTO = T.let(:auto, OpenAI::Models::Beta::Threads::Run::TruncationStrategy::Type::TaggedSymbol) + LAST_MESSAGES = + T.let(:last_messages, OpenAI::Models::Beta::Threads::Run::TruncationStrategy::Type::TaggedSymbol) end end diff --git a/rbi/lib/openai/models/beta/threads/run_create_params.rbi b/rbi/lib/openai/models/beta/threads/run_create_params.rbi index a54ec011..46e8ddc5 100644 --- a/rbi/lib/openai/models/beta/threads/run_create_params.rbi +++ b/rbi/lib/openai/models/beta/threads/run_create_params.rbi @@ -26,11 +26,14 @@ module OpenAI # See the # [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) # for more information. - sig { returns(T.nilable(T::Array[Symbol])) } + sig { returns(T.nilable(T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol])) } def include end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol]) + .returns(T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol]) + end def include=(_) end @@ -112,11 +115,14 @@ module OpenAI # be used to execute this run. If a value is provided here, it will override the # model associated with the assistant. If not, the model associated with the # assistant will be used. - sig { returns(T.nilable(T.any(String, Symbol))) } + sig { returns(T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol))) } def model end - sig { params(_: T.nilable(T.any(String, Symbol))).returns(T.nilable(T.any(String, Symbol))) } + sig do + params(_: T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol))) + .returns(T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol))) + end def model=(_) end @@ -137,11 +143,14 @@ module OpenAI # [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently # supported values are `low`, `medium`, and `high`. Reducing reasoning effort can # result in faster responses and fewer tokens used on reasoning in a response. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) } def reasoning_effort end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) + .returns(T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) + end def reasoning_effort=(_) end @@ -223,13 +232,36 @@ module OpenAI # to the user. Specifying a particular tool like `{"type": "file_search"}` or # `{"type": "function", "function": {"name": "my_function"}}` forces the model to # call that tool. - sig { returns(T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice))) } + sig do + returns( + T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ) + ) + end def tool_choice end sig do - params(_: T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice))) - .returns(T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice))) + params( + _: T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ) + ) + .returns( + T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ) + ) end def tool_choice=(_) end @@ -308,16 +340,16 @@ module OpenAI sig do params( assistant_id: String, - include: T::Array[Symbol], + include: T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol], additional_instructions: T.nilable(String), additional_messages: T.nilable(T::Array[OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage]), instructions: T.nilable(String), max_completion_tokens: T.nilable(Integer), max_prompt_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol)), parallel_tool_calls: T::Boolean, - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.nilable( T.any( Symbol, @@ -327,7 +359,12 @@ module OpenAI ) ), temperature: T.nilable(Float), - tool_choice: T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice)), + tool_choice: T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ), tools: T.nilable( T::Array[ T.any( @@ -370,16 +407,16 @@ module OpenAI .returns( { assistant_id: String, - include: T::Array[Symbol], + include: T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol], additional_instructions: T.nilable(String), additional_messages: T.nilable(T::Array[OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage]), instructions: T.nilable(String), max_completion_tokens: T.nilable(Integer), max_prompt_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol)), parallel_tool_calls: T::Boolean, - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.nilable( T.any( Symbol, @@ -389,7 +426,12 @@ module OpenAI ) ), temperature: T.nilable(Float), - tool_choice: T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice)), + tool_choice: T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ), tools: T.nilable( T::Array[ T.any( @@ -462,11 +504,14 @@ module OpenAI # most cases to represent user-generated messages. # - `assistant`: Indicates the message is generated by the assistant. Use this # value to insert messages from the assistant into the conversation. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Role::OrSymbol) } def role end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Role::OrSymbol) + .returns(OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Role::OrSymbol) + end def role=(_) end @@ -516,7 +561,7 @@ module OpenAI ) ] ), - role: Symbol, + role: OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Role::OrSymbol, attachments: T.nilable(T::Array[OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Attachment]), metadata: T.nilable(T::Hash[Symbol, String]) ) @@ -539,7 +584,7 @@ module OpenAI ) ] ), - role: Symbol, + role: OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Role::OrSymbol, attachments: T.nilable(T::Array[OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Attachment]), metadata: T.nilable(T::Hash[Symbol, String]) } @@ -549,8 +594,8 @@ module OpenAI end # The text contents of the message. - class Content < OpenAI::Union - abstract! + module Content + extend OpenAI::Union Variants = type_template(:out) do @@ -578,13 +623,17 @@ module OpenAI # most cases to represent user-generated messages. # - `assistant`: Indicates the message is generated by the assistant. Use this # value to insert messages from the assistant into the conversation. - class Role < OpenAI::Enum - abstract! + module Role + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Role) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Role::TaggedSymbol) } - USER = :user - ASSISTANT = :assistant + USER = T.let(:user, OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Role::OrSymbol) + ASSISTANT = + T.let(:assistant, OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Role::OrSymbol) end class Attachment < OpenAI::BaseModel @@ -666,8 +715,8 @@ module OpenAI def to_hash end - class Tool < OpenAI::Union - abstract! + module Tool + extend OpenAI::Union Variants = type_template(:out) do @@ -705,10 +754,10 @@ module OpenAI # be used to execute this run. If a value is provided here, it will override the # model associated with the assistant. If not, the model associated with the # assistant will be used. - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = type_template(:out) { {fixed: T.any(String, OpenAI::Models::ChatModel::OrSymbol)} } end class TruncationStrategy < OpenAI::BaseModel @@ -716,11 +765,14 @@ module OpenAI # `last_messages`, the thread will be truncated to the n most recent messages in # the thread. When set to `auto`, messages in the middle of the thread will be # dropped to fit the context length of the model, `max_prompt_tokens`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::Threads::RunCreateParams::TruncationStrategy::Type::OrSymbol) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::RunCreateParams::TruncationStrategy::Type::OrSymbol) + .returns(OpenAI::Models::Beta::Threads::RunCreateParams::TruncationStrategy::Type::OrSymbol) + end def type=(_) end @@ -736,11 +788,25 @@ module OpenAI # Controls for how a thread will be truncated prior to the run. Use this to # control the intial context window of the run. - sig { params(type: Symbol, last_messages: T.nilable(Integer)).returns(T.attached_class) } + sig do + params( + type: OpenAI::Models::Beta::Threads::RunCreateParams::TruncationStrategy::Type::OrSymbol, + last_messages: T.nilable(Integer) + ) + .returns(T.attached_class) + end def self.new(type:, last_messages: nil) end - sig { override.returns({type: Symbol, last_messages: T.nilable(Integer)}) } + sig do + override + .returns( + { + type: OpenAI::Models::Beta::Threads::RunCreateParams::TruncationStrategy::Type::OrSymbol, + last_messages: T.nilable(Integer) + } + ) + end def to_hash end @@ -748,13 +814,17 @@ module OpenAI # `last_messages`, the thread will be truncated to the n most recent messages in # the thread. When set to `auto`, messages in the middle of the thread will be # dropped to fit the context length of the model, `max_prompt_tokens`. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::RunCreateParams::TruncationStrategy::Type) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::RunCreateParams::TruncationStrategy::Type::TaggedSymbol) } - AUTO = :auto - LAST_MESSAGES = :last_messages + AUTO = T.let(:auto, OpenAI::Models::Beta::Threads::RunCreateParams::TruncationStrategy::Type::OrSymbol) + LAST_MESSAGES = + T.let(:last_messages, OpenAI::Models::Beta::Threads::RunCreateParams::TruncationStrategy::Type::OrSymbol) end end end diff --git a/rbi/lib/openai/models/beta/threads/run_list_params.rbi b/rbi/lib/openai/models/beta/threads/run_list_params.rbi index 44ca10d2..39cc0ab8 100644 --- a/rbi/lib/openai/models/beta/threads/run_list_params.rbi +++ b/rbi/lib/openai/models/beta/threads/run_list_params.rbi @@ -44,11 +44,14 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Beta::Threads::RunListParams::Order::OrSymbol)) } def order end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::RunListParams::Order::OrSymbol) + .returns(OpenAI::Models::Beta::Threads::RunListParams::Order::OrSymbol) + end def order=(_) end @@ -57,7 +60,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Beta::Threads::RunListParams::Order::OrSymbol, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -72,7 +75,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Beta::Threads::RunListParams::Order::OrSymbol, request_options: OpenAI::RequestOptions } ) @@ -82,13 +85,15 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum - abstract! + module Order + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::RunListParams::Order) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::RunListParams::Order::TaggedSymbol) } - ASC = :asc - DESC = :desc + ASC = T.let(:asc, OpenAI::Models::Beta::Threads::RunListParams::Order::OrSymbol) + DESC = T.let(:desc, OpenAI::Models::Beta::Threads::RunListParams::Order::OrSymbol) end end end diff --git a/rbi/lib/openai/models/beta/threads/run_status.rbi b/rbi/lib/openai/models/beta/threads/run_status.rbi index 76ada3f1..a6246d8c 100644 --- a/rbi/lib/openai/models/beta/threads/run_status.rbi +++ b/rbi/lib/openai/models/beta/threads/run_status.rbi @@ -7,20 +7,21 @@ module OpenAI # The status of the run, which can be either `queued`, `in_progress`, # `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, # `incomplete`, or `expired`. - class RunStatus < OpenAI::Enum - abstract! + module RunStatus + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::RunStatus) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol) } - QUEUED = :queued - IN_PROGRESS = :in_progress - REQUIRES_ACTION = :requires_action - CANCELLING = :cancelling - CANCELLED = :cancelled - FAILED = :failed - COMPLETED = :completed - INCOMPLETE = :incomplete - EXPIRED = :expired + QUEUED = T.let(:queued, OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol) + IN_PROGRESS = T.let(:in_progress, OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol) + REQUIRES_ACTION = T.let(:requires_action, OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol) + CANCELLING = T.let(:cancelling, OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol) + CANCELLED = T.let(:cancelled, OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol) + FAILED = T.let(:failed, OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol) + INCOMPLETE = T.let(:incomplete, OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol) + EXPIRED = T.let(:expired, OpenAI::Models::Beta::Threads::RunStatus::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/beta/threads/runs/code_interpreter_tool_call.rbi b/rbi/lib/openai/models/beta/threads/runs/code_interpreter_tool_call.rbi index 2b204c7c..749ba465 100644 --- a/rbi/lib/openai/models/beta/threads/runs/code_interpreter_tool_call.rbi +++ b/rbi/lib/openai/models/beta/threads/runs/code_interpreter_tool_call.rbi @@ -143,8 +143,8 @@ module OpenAI end # Text output from the Code Interpreter tool call as part of a run step. - class Output < OpenAI::Union - abstract! + module Output + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rbi b/rbi/lib/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rbi index 6e716d13..e369160c 100644 --- a/rbi/lib/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rbi +++ b/rbi/lib/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rbi @@ -156,8 +156,8 @@ module OpenAI end # Text output from the Code Interpreter tool call as part of a run step. - class Output < OpenAI::Union - abstract! + module Output + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/threads/runs/file_search_tool_call.rbi b/rbi/lib/openai/models/beta/threads/runs/file_search_tool_call.rbi index b4f818ee..13b22ad3 100644 --- a/rbi/lib/openai/models/beta/threads/runs/file_search_tool_call.rbi +++ b/rbi/lib/openai/models/beta/threads/runs/file_search_tool_call.rbi @@ -108,11 +108,22 @@ module OpenAI class RankingOptions < OpenAI::BaseModel # The ranker to use for the file search. If not specified will use the `auto` # ranker. - sig { returns(Symbol) } + sig do + returns( + OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::RankingOptions::Ranker::TaggedSymbol + ) + end def ranker end - sig { params(_: Symbol).returns(Symbol) } + sig do + params( + _: OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::RankingOptions::Ranker::TaggedSymbol + ) + .returns( + OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::RankingOptions::Ranker::TaggedSymbol + ) + end def ranker=(_) end @@ -127,23 +138,53 @@ module OpenAI end # The ranking options for the file search. - sig { params(ranker: Symbol, score_threshold: Float).returns(T.attached_class) } + sig do + params( + ranker: OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::RankingOptions::Ranker::TaggedSymbol, + score_threshold: Float + ) + .returns(T.attached_class) + end def self.new(ranker:, score_threshold:) end - sig { override.returns({ranker: Symbol, score_threshold: Float}) } + sig do + override + .returns( + { + ranker: OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::RankingOptions::Ranker::TaggedSymbol, + score_threshold: Float + } + ) + end def to_hash end # The ranker to use for the file search. If not specified will use the `auto` # ranker. - class Ranker < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - AUTO = :auto - DEFAULT_2024_08_21 = :default_2024_08_21 + module Ranker + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::RankingOptions::Ranker) } + OrSymbol = + T.type_alias do + T.any( + Symbol, + OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::RankingOptions::Ranker::TaggedSymbol + ) + end + + AUTO = + T.let( + :auto, + OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::RankingOptions::Ranker::TaggedSymbol + ) + DEFAULT_2024_08_21 = + T.let( + :default_2024_08_21, + OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::RankingOptions::Ranker::TaggedSymbol + ) end end @@ -231,29 +272,68 @@ module OpenAI end # The type of the content. - sig { returns(T.nilable(Symbol)) } + sig do + returns( + T.nilable( + OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::Result::Content::Type::TaggedSymbol + ) + ) + end def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params( + _: OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::Result::Content::Type::TaggedSymbol + ) + .returns( + OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::Result::Content::Type::TaggedSymbol + ) + end def type=(_) end - sig { params(text: String, type: Symbol).returns(T.attached_class) } + sig do + params( + text: String, + type: OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::Result::Content::Type::TaggedSymbol + ) + .returns(T.attached_class) + end def self.new(text: nil, type: nil) end - sig { override.returns({text: String, type: Symbol}) } + sig do + override + .returns( + { + text: String, + type: OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::Result::Content::Type::TaggedSymbol + } + ) + end def to_hash end # The type of the content. - class Type < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - TEXT = :text + module Type + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::Result::Content::Type) } + OrSymbol = + T.type_alias do + T.any( + Symbol, + OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::Result::Content::Type::TaggedSymbol + ) + end + + TEXT = + T.let( + :text, + OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::Result::Content::Type::TaggedSymbol + ) end end end diff --git a/rbi/lib/openai/models/beta/threads/runs/run_step.rbi b/rbi/lib/openai/models/beta/threads/runs/run_step.rbi index d6fc02be..06e7495e 100644 --- a/rbi/lib/openai/models/beta/threads/runs/run_step.rbi +++ b/rbi/lib/openai/models/beta/threads/runs/run_step.rbi @@ -120,11 +120,14 @@ module OpenAI # The status of the run step, which can be either `in_progress`, `cancelled`, # `failed`, `completed`, or `expired`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::Threads::Runs::RunStep::Status::TaggedSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::Runs::RunStep::Status::TaggedSymbol) + .returns(OpenAI::Models::Beta::Threads::Runs::RunStep::Status::TaggedSymbol) + end def status=(_) end @@ -168,11 +171,14 @@ module OpenAI end # The type of run step, which can be either `message_creation` or `tool_calls`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::Threads::Runs::RunStep::Type::TaggedSymbol) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::Runs::RunStep::Type::TaggedSymbol) + .returns(OpenAI::Models::Beta::Threads::Runs::RunStep::Type::TaggedSymbol) + end def type=(_) end @@ -202,13 +208,13 @@ module OpenAI last_error: T.nilable(OpenAI::Models::Beta::Threads::Runs::RunStep::LastError), metadata: T.nilable(T::Hash[Symbol, String]), run_id: String, - status: Symbol, + status: OpenAI::Models::Beta::Threads::Runs::RunStep::Status::TaggedSymbol, step_details: T.any( OpenAI::Models::Beta::Threads::Runs::MessageCreationStepDetails, OpenAI::Models::Beta::Threads::Runs::ToolCallsStepDetails ), thread_id: String, - type: Symbol, + type: OpenAI::Models::Beta::Threads::Runs::RunStep::Type::TaggedSymbol, usage: T.nilable(OpenAI::Models::Beta::Threads::Runs::RunStep::Usage), object: Symbol ) @@ -249,13 +255,13 @@ module OpenAI metadata: T.nilable(T::Hash[Symbol, String]), object: Symbol, run_id: String, - status: Symbol, + status: OpenAI::Models::Beta::Threads::Runs::RunStep::Status::TaggedSymbol, step_details: T.any( OpenAI::Models::Beta::Threads::Runs::MessageCreationStepDetails, OpenAI::Models::Beta::Threads::Runs::ToolCallsStepDetails ), thread_id: String, - type: Symbol, + type: OpenAI::Models::Beta::Threads::Runs::RunStep::Type::TaggedSymbol, usage: T.nilable(OpenAI::Models::Beta::Threads::Runs::RunStep::Usage) } ) @@ -265,11 +271,14 @@ module OpenAI class LastError < OpenAI::BaseModel # One of `server_error` or `rate_limit_exceeded`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Beta::Threads::Runs::RunStep::LastError::Code::TaggedSymbol) } def code end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::Runs::RunStep::LastError::Code::TaggedSymbol) + .returns(OpenAI::Models::Beta::Threads::Runs::RunStep::LastError::Code::TaggedSymbol) + end def code=(_) end @@ -284,42 +293,57 @@ module OpenAI # The last error associated with this run step. Will be `null` if there are no # errors. - sig { params(code: Symbol, message: String).returns(T.attached_class) } + sig do + params(code: OpenAI::Models::Beta::Threads::Runs::RunStep::LastError::Code::TaggedSymbol, message: String) + .returns(T.attached_class) + end def self.new(code:, message:) end - sig { override.returns({code: Symbol, message: String}) } + sig do + override + .returns( + {code: OpenAI::Models::Beta::Threads::Runs::RunStep::LastError::Code::TaggedSymbol, message: String} + ) + end def to_hash end # One of `server_error` or `rate_limit_exceeded`. - class Code < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - SERVER_ERROR = :server_error - RATE_LIMIT_EXCEEDED = :rate_limit_exceeded + module Code + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::Runs::RunStep::LastError::Code) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::Runs::RunStep::LastError::Code::TaggedSymbol) } + + SERVER_ERROR = + T.let(:server_error, OpenAI::Models::Beta::Threads::Runs::RunStep::LastError::Code::TaggedSymbol) + RATE_LIMIT_EXCEEDED = + T.let(:rate_limit_exceeded, OpenAI::Models::Beta::Threads::Runs::RunStep::LastError::Code::TaggedSymbol) end end # The status of the run step, which can be either `in_progress`, `cancelled`, # `failed`, `completed`, or `expired`. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::Runs::RunStep::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::Runs::RunStep::Status::TaggedSymbol) } - IN_PROGRESS = :in_progress - CANCELLED = :cancelled - FAILED = :failed - COMPLETED = :completed - EXPIRED = :expired + IN_PROGRESS = T.let(:in_progress, OpenAI::Models::Beta::Threads::Runs::RunStep::Status::TaggedSymbol) + CANCELLED = T.let(:cancelled, OpenAI::Models::Beta::Threads::Runs::RunStep::Status::TaggedSymbol) + FAILED = T.let(:failed, OpenAI::Models::Beta::Threads::Runs::RunStep::Status::TaggedSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::Beta::Threads::Runs::RunStep::Status::TaggedSymbol) + EXPIRED = T.let(:expired, OpenAI::Models::Beta::Threads::Runs::RunStep::Status::TaggedSymbol) end # The details of the run step. - class StepDetails < OpenAI::Union - abstract! + module StepDetails + extend OpenAI::Union Variants = type_template(:out) do @@ -333,13 +357,16 @@ module OpenAI end # The type of run step, which can be either `message_creation` or `tool_calls`. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::Runs::RunStep::Type) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::Runs::RunStep::Type::TaggedSymbol) } - MESSAGE_CREATION = :message_creation - TOOL_CALLS = :tool_calls + MESSAGE_CREATION = + T.let(:message_creation, OpenAI::Models::Beta::Threads::Runs::RunStep::Type::TaggedSymbol) + TOOL_CALLS = T.let(:tool_calls, OpenAI::Models::Beta::Threads::Runs::RunStep::Type::TaggedSymbol) end class Usage < OpenAI::BaseModel diff --git a/rbi/lib/openai/models/beta/threads/runs/run_step_delta.rbi b/rbi/lib/openai/models/beta/threads/runs/run_step_delta.rbi index 6dca9ad3..cbc714ec 100644 --- a/rbi/lib/openai/models/beta/threads/runs/run_step_delta.rbi +++ b/rbi/lib/openai/models/beta/threads/runs/run_step_delta.rbi @@ -65,8 +65,8 @@ module OpenAI end # The details of the run step. - class StepDetails < OpenAI::Union - abstract! + module StepDetails + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/threads/runs/run_step_include.rbi b/rbi/lib/openai/models/beta/threads/runs/run_step_include.rbi index 566dd76e..9e59ca4b 100644 --- a/rbi/lib/openai/models/beta/threads/runs/run_step_include.rbi +++ b/rbi/lib/openai/models/beta/threads/runs/run_step_include.rbi @@ -5,13 +5,18 @@ module OpenAI module Beta module Threads module Runs - class RunStepInclude < OpenAI::Enum - abstract! + module RunStepInclude + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::Runs::RunStepInclude) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::Runs::RunStepInclude::TaggedSymbol) } STEP_DETAILS_TOOL_CALLS_FILE_SEARCH_RESULTS_CONTENT = - :"step_details.tool_calls[*].file_search.results[*].content" + T.let( + :"step_details.tool_calls[*].file_search.results[*].content", + OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol + ) end end diff --git a/rbi/lib/openai/models/beta/threads/runs/step_list_params.rbi b/rbi/lib/openai/models/beta/threads/runs/step_list_params.rbi index 73059bac..ef62a39d 100644 --- a/rbi/lib/openai/models/beta/threads/runs/step_list_params.rbi +++ b/rbi/lib/openai/models/beta/threads/runs/step_list_params.rbi @@ -48,11 +48,14 @@ module OpenAI # See the # [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) # for more information. - sig { returns(T.nilable(T::Array[Symbol])) } + sig { returns(T.nilable(T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol])) } def include end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol]) + .returns(T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol]) + end def include=(_) end @@ -68,11 +71,14 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Beta::Threads::Runs::StepListParams::Order::OrSymbol)) } def order end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Beta::Threads::Runs::StepListParams::Order::OrSymbol) + .returns(OpenAI::Models::Beta::Threads::Runs::StepListParams::Order::OrSymbol) + end def order=(_) end @@ -81,9 +87,9 @@ module OpenAI thread_id: String, after: String, before: String, - include: T::Array[Symbol], + include: T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol], limit: Integer, - order: Symbol, + order: OpenAI::Models::Beta::Threads::Runs::StepListParams::Order::OrSymbol, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -98,9 +104,9 @@ module OpenAI thread_id: String, after: String, before: String, - include: T::Array[Symbol], + include: T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol], limit: Integer, - order: Symbol, + order: OpenAI::Models::Beta::Threads::Runs::StepListParams::Order::OrSymbol, request_options: OpenAI::RequestOptions } ) @@ -110,13 +116,15 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum - abstract! + module Order + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Beta::Threads::Runs::StepListParams::Order) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Beta::Threads::Runs::StepListParams::Order::TaggedSymbol) } - ASC = :asc - DESC = :desc + ASC = T.let(:asc, OpenAI::Models::Beta::Threads::Runs::StepListParams::Order::OrSymbol) + DESC = T.let(:desc, OpenAI::Models::Beta::Threads::Runs::StepListParams::Order::OrSymbol) end end end diff --git a/rbi/lib/openai/models/beta/threads/runs/step_retrieve_params.rbi b/rbi/lib/openai/models/beta/threads/runs/step_retrieve_params.rbi index 71dc2e52..54eb0d50 100644 --- a/rbi/lib/openai/models/beta/threads/runs/step_retrieve_params.rbi +++ b/rbi/lib/openai/models/beta/threads/runs/step_retrieve_params.rbi @@ -32,11 +32,14 @@ module OpenAI # See the # [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) # for more information. - sig { returns(T.nilable(T::Array[Symbol])) } + sig { returns(T.nilable(T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol])) } def include end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol]) + .returns(T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol]) + end def include=(_) end @@ -44,7 +47,7 @@ module OpenAI params( thread_id: String, run_id: String, - include: T::Array[Symbol], + include: T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol], request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -58,7 +61,7 @@ module OpenAI { thread_id: String, run_id: String, - include: T::Array[Symbol], + include: T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol], request_options: OpenAI::RequestOptions } ) diff --git a/rbi/lib/openai/models/beta/threads/runs/tool_call.rbi b/rbi/lib/openai/models/beta/threads/runs/tool_call.rbi index 2550325a..85c08734 100644 --- a/rbi/lib/openai/models/beta/threads/runs/tool_call.rbi +++ b/rbi/lib/openai/models/beta/threads/runs/tool_call.rbi @@ -6,8 +6,8 @@ module OpenAI module Threads module Runs # Details of the Code Interpreter tool call the run step was involved in. - class ToolCall < OpenAI::Union - abstract! + module ToolCall + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/beta/threads/runs/tool_call_delta.rbi b/rbi/lib/openai/models/beta/threads/runs/tool_call_delta.rbi index 37550da6..0043de5a 100644 --- a/rbi/lib/openai/models/beta/threads/runs/tool_call_delta.rbi +++ b/rbi/lib/openai/models/beta/threads/runs/tool_call_delta.rbi @@ -6,8 +6,8 @@ module OpenAI module Threads module Runs # Details of the Code Interpreter tool call the run step was involved in. - class ToolCallDelta < OpenAI::Union - abstract! + module ToolCallDelta + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/chat/chat_completion.rbi b/rbi/lib/openai/models/chat/chat_completion.rbi index 508ca188..d47b79d1 100644 --- a/rbi/lib/openai/models/chat/chat_completion.rbi +++ b/rbi/lib/openai/models/chat/chat_completion.rbi @@ -54,11 +54,14 @@ module OpenAI end # The service tier used for processing the request. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Chat::ChatCompletion::ServiceTier::TaggedSymbol)) } def service_tier end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::Chat::ChatCompletion::ServiceTier::TaggedSymbol)) + .returns(T.nilable(OpenAI::Models::Chat::ChatCompletion::ServiceTier::TaggedSymbol)) + end def service_tier=(_) end @@ -91,7 +94,7 @@ module OpenAI choices: T::Array[OpenAI::Models::Chat::ChatCompletion::Choice], created: Integer, model: String, - service_tier: T.nilable(Symbol), + service_tier: T.nilable(OpenAI::Models::Chat::ChatCompletion::ServiceTier::TaggedSymbol), system_fingerprint: String, usage: OpenAI::Models::CompletionUsage, object: Symbol @@ -119,7 +122,7 @@ module OpenAI created: Integer, model: String, object: Symbol, - service_tier: T.nilable(Symbol), + service_tier: T.nilable(OpenAI::Models::Chat::ChatCompletion::ServiceTier::TaggedSymbol), system_fingerprint: String, usage: OpenAI::Models::CompletionUsage } @@ -135,11 +138,14 @@ module OpenAI # content was omitted due to a flag from our content filters, `tool_calls` if the # model called a tool, or `function_call` (deprecated) if the model called a # function. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Chat::ChatCompletion::Choice::FinishReason::TaggedSymbol) } def finish_reason end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Chat::ChatCompletion::Choice::FinishReason::TaggedSymbol) + .returns(OpenAI::Models::Chat::ChatCompletion::Choice::FinishReason::TaggedSymbol) + end def finish_reason=(_) end @@ -177,7 +183,7 @@ module OpenAI sig do params( - finish_reason: Symbol, + finish_reason: OpenAI::Models::Chat::ChatCompletion::Choice::FinishReason::TaggedSymbol, index: Integer, logprobs: T.nilable(OpenAI::Models::Chat::ChatCompletion::Choice::Logprobs), message: OpenAI::Models::Chat::ChatCompletionMessage @@ -191,7 +197,7 @@ module OpenAI override .returns( { - finish_reason: Symbol, + finish_reason: OpenAI::Models::Chat::ChatCompletion::Choice::FinishReason::TaggedSymbol, index: Integer, logprobs: T.nilable(OpenAI::Models::Chat::ChatCompletion::Choice::Logprobs), message: OpenAI::Models::Chat::ChatCompletionMessage @@ -207,16 +213,20 @@ module OpenAI # content was omitted due to a flag from our content filters, `tool_calls` if the # model called a tool, or `function_call` (deprecated) if the model called a # function. - class FinishReason < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - STOP = :stop - LENGTH = :length - TOOL_CALLS = :tool_calls - CONTENT_FILTER = :content_filter - FUNCTION_CALL = :function_call + module FinishReason + extend OpenAI::Enum + + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Chat::ChatCompletion::Choice::FinishReason) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::ChatCompletion::Choice::FinishReason::TaggedSymbol) } + + STOP = T.let(:stop, OpenAI::Models::Chat::ChatCompletion::Choice::FinishReason::TaggedSymbol) + LENGTH = T.let(:length, OpenAI::Models::Chat::ChatCompletion::Choice::FinishReason::TaggedSymbol) + TOOL_CALLS = T.let(:tool_calls, OpenAI::Models::Chat::ChatCompletion::Choice::FinishReason::TaggedSymbol) + CONTENT_FILTER = + T.let(:content_filter, OpenAI::Models::Chat::ChatCompletion::Choice::FinishReason::TaggedSymbol) + FUNCTION_CALL = + T.let(:function_call, OpenAI::Models::Chat::ChatCompletion::Choice::FinishReason::TaggedSymbol) end class Logprobs < OpenAI::BaseModel @@ -270,13 +280,15 @@ module OpenAI end # The service tier used for processing the request. - class ServiceTier < OpenAI::Enum - abstract! + module ServiceTier + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Chat::ChatCompletion::ServiceTier) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::ChatCompletion::ServiceTier::TaggedSymbol) } - SCALE = :scale - DEFAULT = :default + SCALE = T.let(:scale, OpenAI::Models::Chat::ChatCompletion::ServiceTier::TaggedSymbol) + DEFAULT = T.let(:default, OpenAI::Models::Chat::ChatCompletion::ServiceTier::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/chat/chat_completion_assistant_message_param.rbi b/rbi/lib/openai/models/chat/chat_completion_assistant_message_param.rbi index bdba736c..737d825e 100644 --- a/rbi/lib/openai/models/chat/chat_completion_assistant_message_param.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_assistant_message_param.rbi @@ -197,8 +197,8 @@ module OpenAI # The contents of the assistant message. Required unless `tool_calls` or # `function_call` is specified. - class Content < OpenAI::Union - abstract! + module Content + extend OpenAI::Union Variants = type_template(:out) do @@ -223,8 +223,8 @@ module OpenAI # Learn about # [text inputs](https://platform.openai.com/docs/guides/text-generation). - class ArrayOfContentPart < OpenAI::Union - abstract! + module ArrayOfContentPart + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/chat/chat_completion_audio_param.rbi b/rbi/lib/openai/models/chat/chat_completion_audio_param.rbi index 215adc55..2cd8fe2e 100644 --- a/rbi/lib/openai/models/chat/chat_completion_audio_param.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_audio_param.rbi @@ -6,64 +6,88 @@ module OpenAI class ChatCompletionAudioParam < OpenAI::BaseModel # Specifies the output audio format. Must be one of `wav`, `mp3`, `flac`, `opus`, # or `pcm16`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Chat::ChatCompletionAudioParam::Format::OrSymbol) } def format_ end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Chat::ChatCompletionAudioParam::Format::OrSymbol) + .returns(OpenAI::Models::Chat::ChatCompletionAudioParam::Format::OrSymbol) + end def format_=(_) end # The voice the model uses to respond. Supported voices are `alloy`, `ash`, # `ballad`, `coral`, `echo`, `sage`, and `shimmer`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::OrSymbol) } def voice end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::OrSymbol) + .returns(OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::OrSymbol) + end def voice=(_) end # Parameters for audio output. Required when audio output is requested with # `modalities: ["audio"]`. # [Learn more](https://platform.openai.com/docs/guides/audio). - sig { params(format_: Symbol, voice: Symbol).returns(T.attached_class) } + sig do + params( + format_: OpenAI::Models::Chat::ChatCompletionAudioParam::Format::OrSymbol, + voice: OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::OrSymbol + ) + .returns(T.attached_class) + end def self.new(format_:, voice:) end - sig { override.returns({format_: Symbol, voice: Symbol}) } + sig do + override + .returns( + { + format_: OpenAI::Models::Chat::ChatCompletionAudioParam::Format::OrSymbol, + voice: OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::OrSymbol + } + ) + end def to_hash end # Specifies the output audio format. Must be one of `wav`, `mp3`, `flac`, `opus`, # or `pcm16`. - class Format < OpenAI::Enum - abstract! + module Format + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Chat::ChatCompletionAudioParam::Format) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::ChatCompletionAudioParam::Format::TaggedSymbol) } - WAV = :wav - MP3 = :mp3 - FLAC = :flac - OPUS = :opus - PCM16 = :pcm16 + WAV = T.let(:wav, OpenAI::Models::Chat::ChatCompletionAudioParam::Format::OrSymbol) + MP3 = T.let(:mp3, OpenAI::Models::Chat::ChatCompletionAudioParam::Format::OrSymbol) + FLAC = T.let(:flac, OpenAI::Models::Chat::ChatCompletionAudioParam::Format::OrSymbol) + OPUS = T.let(:opus, OpenAI::Models::Chat::ChatCompletionAudioParam::Format::OrSymbol) + PCM16 = T.let(:pcm16, OpenAI::Models::Chat::ChatCompletionAudioParam::Format::OrSymbol) end # The voice the model uses to respond. Supported voices are `alloy`, `ash`, # `ballad`, `coral`, `echo`, `sage`, and `shimmer`. - class Voice < OpenAI::Enum - abstract! + module Voice + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Chat::ChatCompletionAudioParam::Voice) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::TaggedSymbol) } - ALLOY = :alloy - ASH = :ash - BALLAD = :ballad - CORAL = :coral - ECHO = :echo - SAGE = :sage - SHIMMER = :shimmer - VERSE = :verse + ALLOY = T.let(:alloy, OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::OrSymbol) + ASH = T.let(:ash, OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::OrSymbol) + BALLAD = T.let(:ballad, OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::OrSymbol) + CORAL = T.let(:coral, OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::OrSymbol) + ECHO = T.let(:echo, OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::OrSymbol) + SAGE = T.let(:sage, OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::OrSymbol) + SHIMMER = T.let(:shimmer, OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::OrSymbol) + VERSE = T.let(:verse, OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::OrSymbol) end end end diff --git a/rbi/lib/openai/models/chat/chat_completion_chunk.rbi b/rbi/lib/openai/models/chat/chat_completion_chunk.rbi index 647695a9..f5530b98 100644 --- a/rbi/lib/openai/models/chat/chat_completion_chunk.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_chunk.rbi @@ -56,11 +56,14 @@ module OpenAI end # The service tier used for processing the request. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::ServiceTier::TaggedSymbol)) } def service_tier end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::ServiceTier::TaggedSymbol)) + .returns(T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::ServiceTier::TaggedSymbol)) + end def service_tier=(_) end @@ -99,7 +102,7 @@ module OpenAI choices: T::Array[OpenAI::Models::Chat::ChatCompletionChunk::Choice], created: Integer, model: String, - service_tier: T.nilable(Symbol), + service_tier: T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::ServiceTier::TaggedSymbol), system_fingerprint: String, usage: T.nilable(OpenAI::Models::CompletionUsage), object: Symbol @@ -127,7 +130,7 @@ module OpenAI created: Integer, model: String, object: Symbol, - service_tier: T.nilable(Symbol), + service_tier: T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::ServiceTier::TaggedSymbol), system_fingerprint: String, usage: T.nilable(OpenAI::Models::CompletionUsage) } @@ -155,11 +158,14 @@ module OpenAI # content was omitted due to a flag from our content filters, `tool_calls` if the # model called a tool, or `function_call` (deprecated) if the model called a # function. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::Choice::FinishReason::TaggedSymbol)) } def finish_reason end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::Choice::FinishReason::TaggedSymbol)) + .returns(T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::Choice::FinishReason::TaggedSymbol)) + end def finish_reason=(_) end @@ -187,7 +193,7 @@ module OpenAI sig do params( delta: OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta, - finish_reason: T.nilable(Symbol), + finish_reason: T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::Choice::FinishReason::TaggedSymbol), index: Integer, logprobs: T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::Choice::Logprobs) ) @@ -201,7 +207,7 @@ module OpenAI .returns( { delta: OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta, - finish_reason: T.nilable(Symbol), + finish_reason: T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::Choice::FinishReason::TaggedSymbol), index: Integer, logprobs: T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::Choice::Logprobs) } @@ -243,11 +249,14 @@ module OpenAI end # The role of the author of this message. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::Role::TaggedSymbol)) } def role end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::Role::TaggedSymbol) + .returns(OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::Role::TaggedSymbol) + end def role=(_) end @@ -268,7 +277,7 @@ module OpenAI content: T.nilable(String), function_call: OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::FunctionCall, refusal: T.nilable(String), - role: Symbol, + role: OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::Role::TaggedSymbol, tool_calls: T::Array[OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall] ) .returns(T.attached_class) @@ -283,7 +292,7 @@ module OpenAI content: T.nilable(String), function_call: OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::FunctionCall, refusal: T.nilable(String), - role: Symbol, + role: OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::Role::TaggedSymbol, tool_calls: T::Array[OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall] } ) @@ -325,16 +334,21 @@ module OpenAI end # The role of the author of this message. - class Role < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - DEVELOPER = :developer - SYSTEM = :system - USER = :user - ASSISTANT = :assistant - TOOL = :tool + module Role + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::Role) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::Role::TaggedSymbol) } + + DEVELOPER = + T.let(:developer, OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::Role::TaggedSymbol) + SYSTEM = T.let(:system, OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::Role::TaggedSymbol) + USER = T.let(:user, OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::Role::TaggedSymbol) + ASSISTANT = + T.let(:assistant, OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::Role::TaggedSymbol) + TOOL = T.let(:tool, OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::Role::TaggedSymbol) end class ToolCall < OpenAI::BaseModel @@ -367,11 +381,14 @@ module OpenAI end # The type of the tool. Currently, only `function` is supported. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall::Type::TaggedSymbol)) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall::Type::TaggedSymbol) + .returns(OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall::Type::TaggedSymbol) + end def type=(_) end @@ -380,7 +397,7 @@ module OpenAI index: Integer, id: String, function: OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall::Function, - type: Symbol + type: OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall::Type::TaggedSymbol ) .returns(T.attached_class) end @@ -394,7 +411,7 @@ module OpenAI index: Integer, id: String, function: OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall::Function, - type: Symbol + type: OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall::Type::TaggedSymbol } ) end @@ -433,12 +450,16 @@ module OpenAI end # The type of the tool. Currently, only `function` is supported. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall::Type) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall::Type::TaggedSymbol) } - FUNCTION = :function + FUNCTION = + T.let(:function, OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall::Type::TaggedSymbol) end end end @@ -449,16 +470,22 @@ module OpenAI # content was omitted due to a flag from our content filters, `tool_calls` if the # model called a tool, or `function_call` (deprecated) if the model called a # function. - class FinishReason < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - STOP = :stop - LENGTH = :length - TOOL_CALLS = :tool_calls - CONTENT_FILTER = :content_filter - FUNCTION_CALL = :function_call + module FinishReason + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Chat::ChatCompletionChunk::Choice::FinishReason) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::ChatCompletionChunk::Choice::FinishReason::TaggedSymbol) } + + STOP = T.let(:stop, OpenAI::Models::Chat::ChatCompletionChunk::Choice::FinishReason::TaggedSymbol) + LENGTH = T.let(:length, OpenAI::Models::Chat::ChatCompletionChunk::Choice::FinishReason::TaggedSymbol) + TOOL_CALLS = + T.let(:tool_calls, OpenAI::Models::Chat::ChatCompletionChunk::Choice::FinishReason::TaggedSymbol) + CONTENT_FILTER = + T.let(:content_filter, OpenAI::Models::Chat::ChatCompletionChunk::Choice::FinishReason::TaggedSymbol) + FUNCTION_CALL = + T.let(:function_call, OpenAI::Models::Chat::ChatCompletionChunk::Choice::FinishReason::TaggedSymbol) end class Logprobs < OpenAI::BaseModel @@ -512,13 +539,15 @@ module OpenAI end # The service tier used for processing the request. - class ServiceTier < OpenAI::Enum - abstract! + module ServiceTier + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Chat::ChatCompletionChunk::ServiceTier) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::ChatCompletionChunk::ServiceTier::TaggedSymbol) } - SCALE = :scale - DEFAULT = :default + SCALE = T.let(:scale, OpenAI::Models::Chat::ChatCompletionChunk::ServiceTier::TaggedSymbol) + DEFAULT = T.let(:default, OpenAI::Models::Chat::ChatCompletionChunk::ServiceTier::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/chat/chat_completion_content_part.rbi b/rbi/lib/openai/models/chat/chat_completion_content_part.rbi index bff95f2d..340e2a97 100644 --- a/rbi/lib/openai/models/chat/chat_completion_content_part.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_content_part.rbi @@ -5,8 +5,8 @@ module OpenAI module Chat # Learn about # [text inputs](https://platform.openai.com/docs/guides/text-generation). - class ChatCompletionContentPart < OpenAI::Union - abstract! + module ChatCompletionContentPart + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/chat/chat_completion_content_part_image.rbi b/rbi/lib/openai/models/chat/chat_completion_content_part_image.rbi index 78ef980f..01893dab 100644 --- a/rbi/lib/openai/models/chat/chat_completion_content_part_image.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_content_part_image.rbi @@ -50,32 +50,49 @@ module OpenAI # Specifies the detail level of the image. Learn more in the # [Vision guide](https://platform.openai.com/docs/guides/vision#low-or-high-fidelity-image-understanding). - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Chat::ChatCompletionContentPartImage::ImageURL::Detail::OrSymbol)) } def detail end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Chat::ChatCompletionContentPartImage::ImageURL::Detail::OrSymbol) + .returns(OpenAI::Models::Chat::ChatCompletionContentPartImage::ImageURL::Detail::OrSymbol) + end def detail=(_) end - sig { params(url: String, detail: Symbol).returns(T.attached_class) } + sig do + params( + url: String, + detail: OpenAI::Models::Chat::ChatCompletionContentPartImage::ImageURL::Detail::OrSymbol + ) + .returns(T.attached_class) + end def self.new(url:, detail: nil) end - sig { override.returns({url: String, detail: Symbol}) } + sig do + override + .returns( + {url: String, detail: OpenAI::Models::Chat::ChatCompletionContentPartImage::ImageURL::Detail::OrSymbol} + ) + end def to_hash end # Specifies the detail level of the image. Learn more in the # [Vision guide](https://platform.openai.com/docs/guides/vision#low-or-high-fidelity-image-understanding). - class Detail < OpenAI::Enum - abstract! + module Detail + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Chat::ChatCompletionContentPartImage::ImageURL::Detail) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::ChatCompletionContentPartImage::ImageURL::Detail::TaggedSymbol) } - AUTO = :auto - LOW = :low - HIGH = :high + AUTO = T.let(:auto, OpenAI::Models::Chat::ChatCompletionContentPartImage::ImageURL::Detail::OrSymbol) + LOW = T.let(:low, OpenAI::Models::Chat::ChatCompletionContentPartImage::ImageURL::Detail::OrSymbol) + HIGH = T.let(:high, OpenAI::Models::Chat::ChatCompletionContentPartImage::ImageURL::Detail::OrSymbol) end end end diff --git a/rbi/lib/openai/models/chat/chat_completion_content_part_input_audio.rbi b/rbi/lib/openai/models/chat/chat_completion_content_part_input_audio.rbi index 87144715..0a14a898 100644 --- a/rbi/lib/openai/models/chat/chat_completion_content_part_input_audio.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_content_part_input_audio.rbi @@ -52,30 +52,52 @@ module OpenAI end # The format of the encoded audio data. Currently supports "wav" and "mp3". - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::InputAudio::Format::OrSymbol) } def format_ end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::InputAudio::Format::OrSymbol) + .returns(OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::InputAudio::Format::OrSymbol) + end def format_=(_) end - sig { params(data: String, format_: Symbol).returns(T.attached_class) } + sig do + params( + data: String, + format_: OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::InputAudio::Format::OrSymbol + ) + .returns(T.attached_class) + end def self.new(data:, format_:) end - sig { override.returns({data: String, format_: Symbol}) } + sig do + override + .returns( + { + data: String, + format_: OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::InputAudio::Format::OrSymbol + } + ) + end def to_hash end # The format of the encoded audio data. Currently supports "wav" and "mp3". - class Format < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - WAV = :wav - MP3 = :mp3 + module Format + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::InputAudio::Format) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::InputAudio::Format::TaggedSymbol) } + + WAV = + T.let(:wav, OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::InputAudio::Format::OrSymbol) + MP3 = + T.let(:mp3, OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::InputAudio::Format::OrSymbol) end end end diff --git a/rbi/lib/openai/models/chat/chat_completion_developer_message_param.rbi b/rbi/lib/openai/models/chat/chat_completion_developer_message_param.rbi index 7c1f2e46..935cbc88 100644 --- a/rbi/lib/openai/models/chat/chat_completion_developer_message_param.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_developer_message_param.rbi @@ -63,8 +63,8 @@ module OpenAI end # The contents of the developer message. - class Content < OpenAI::Union - abstract! + module Content + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(String, T::Array[OpenAI::Models::Chat::ChatCompletionContentPartText])} } diff --git a/rbi/lib/openai/models/chat/chat_completion_message_param.rbi b/rbi/lib/openai/models/chat/chat_completion_message_param.rbi index 6d17e25c..7dbb72ea 100644 --- a/rbi/lib/openai/models/chat/chat_completion_message_param.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_message_param.rbi @@ -6,8 +6,8 @@ module OpenAI # Developer-provided instructions that the model should follow, regardless of # messages sent by the user. With o1 models and newer, `developer` messages # replace the previous `system` messages. - class ChatCompletionMessageParam < OpenAI::Union - abstract! + module ChatCompletionMessageParam + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/chat/chat_completion_modality.rbi b/rbi/lib/openai/models/chat/chat_completion_modality.rbi index 25501740..5e747ff9 100644 --- a/rbi/lib/openai/models/chat/chat_completion_modality.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_modality.rbi @@ -3,13 +3,14 @@ module OpenAI module Models module Chat - class ChatCompletionModality < OpenAI::Enum - abstract! + module ChatCompletionModality + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Chat::ChatCompletionModality) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Chat::ChatCompletionModality::TaggedSymbol) } - TEXT = :text - AUDIO = :audio + TEXT = T.let(:text, OpenAI::Models::Chat::ChatCompletionModality::OrSymbol) + AUDIO = T.let(:audio, OpenAI::Models::Chat::ChatCompletionModality::OrSymbol) end end diff --git a/rbi/lib/openai/models/chat/chat_completion_prediction_content.rbi b/rbi/lib/openai/models/chat/chat_completion_prediction_content.rbi index 206b2990..9773677d 100644 --- a/rbi/lib/openai/models/chat/chat_completion_prediction_content.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_prediction_content.rbi @@ -52,8 +52,8 @@ module OpenAI # The content that should be matched when generating a model response. If # generated tokens would match this content, the entire model response can be # returned much more quickly. - class Content < OpenAI::Union - abstract! + module Content + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(String, T::Array[OpenAI::Models::Chat::ChatCompletionContentPartText])} } diff --git a/rbi/lib/openai/models/chat/chat_completion_role.rbi b/rbi/lib/openai/models/chat/chat_completion_role.rbi index e2a2c70e..dd316075 100644 --- a/rbi/lib/openai/models/chat/chat_completion_role.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_role.rbi @@ -4,17 +4,18 @@ module OpenAI module Models module Chat # The role of the author of a message - class ChatCompletionRole < OpenAI::Enum - abstract! + module ChatCompletionRole + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Chat::ChatCompletionRole) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Chat::ChatCompletionRole::TaggedSymbol) } - DEVELOPER = :developer - SYSTEM = :system - USER = :user - ASSISTANT = :assistant - TOOL = :tool - FUNCTION = :function + DEVELOPER = T.let(:developer, OpenAI::Models::Chat::ChatCompletionRole::OrSymbol) + SYSTEM = T.let(:system, OpenAI::Models::Chat::ChatCompletionRole::OrSymbol) + USER = T.let(:user, OpenAI::Models::Chat::ChatCompletionRole::OrSymbol) + ASSISTANT = T.let(:assistant, OpenAI::Models::Chat::ChatCompletionRole::OrSymbol) + TOOL = T.let(:tool, OpenAI::Models::Chat::ChatCompletionRole::OrSymbol) + FUNCTION = T.let(:function, OpenAI::Models::Chat::ChatCompletionRole::OrSymbol) end end diff --git a/rbi/lib/openai/models/chat/chat_completion_system_message_param.rbi b/rbi/lib/openai/models/chat/chat_completion_system_message_param.rbi index 9d79c62a..ca2dc2e7 100644 --- a/rbi/lib/openai/models/chat/chat_completion_system_message_param.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_system_message_param.rbi @@ -63,8 +63,8 @@ module OpenAI end # The contents of the system message. - class Content < OpenAI::Union - abstract! + module Content + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(String, T::Array[OpenAI::Models::Chat::ChatCompletionContentPartText])} } diff --git a/rbi/lib/openai/models/chat/chat_completion_tool_choice_option.rbi b/rbi/lib/openai/models/chat/chat_completion_tool_choice_option.rbi index c9ad2647..9a79b1ff 100644 --- a/rbi/lib/openai/models/chat/chat_completion_tool_choice_option.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_tool_choice_option.rbi @@ -12,23 +12,32 @@ module OpenAI # # `none` is the default when no tools are present. `auto` is the default if tools # are present. - class ChatCompletionToolChoiceOption < OpenAI::Union - abstract! + module ChatCompletionToolChoiceOption + extend OpenAI::Union Variants = - type_template(:out) { {fixed: T.any(Symbol, OpenAI::Models::Chat::ChatCompletionNamedToolChoice)} } + type_template(:out) do + { + fixed: T.any( + OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Chat::ChatCompletionNamedToolChoice + ) + } + end # `none` means the model will not call any tool and instead generates a message. # `auto` means the model can pick between generating a message or calling one or # more tools. `required` means the model must call one or more tools. - class Auto < OpenAI::Enum - abstract! + module Auto + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto::TaggedSymbol) } - NONE = :none - AUTO = :auto - REQUIRED = :required + NONE = T.let(:none, OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto::OrSymbol) + AUTO = T.let(:auto, OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto::OrSymbol) + REQUIRED = T.let(:required, OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto::OrSymbol) end end end diff --git a/rbi/lib/openai/models/chat/chat_completion_tool_message_param.rbi b/rbi/lib/openai/models/chat/chat_completion_tool_message_param.rbi index 7c447076..6f5f249b 100644 --- a/rbi/lib/openai/models/chat/chat_completion_tool_message_param.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_tool_message_param.rbi @@ -59,8 +59,8 @@ module OpenAI end # The contents of the tool message. - class Content < OpenAI::Union - abstract! + module Content + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(String, T::Array[OpenAI::Models::Chat::ChatCompletionContentPartText])} } diff --git a/rbi/lib/openai/models/chat/chat_completion_user_message_param.rbi b/rbi/lib/openai/models/chat/chat_completion_user_message_param.rbi index 53c7c3a7..dde9e769 100644 --- a/rbi/lib/openai/models/chat/chat_completion_user_message_param.rbi +++ b/rbi/lib/openai/models/chat/chat_completion_user_message_param.rbi @@ -120,8 +120,8 @@ module OpenAI end # The contents of the user message. - class Content < OpenAI::Union - abstract! + module Content + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/chat/completion_create_params.rbi b/rbi/lib/openai/models/chat/completion_create_params.rbi index f0e77033..851c6948 100644 --- a/rbi/lib/openai/models/chat/completion_create_params.rbi +++ b/rbi/lib/openai/models/chat/completion_create_params.rbi @@ -64,11 +64,14 @@ module OpenAI # and price points. Refer to the # [model guide](https://platform.openai.com/docs/models) to browse and compare # available models. - sig { returns(T.any(String, Symbol)) } + sig { returns(T.any(String, OpenAI::Models::ChatModel::OrSymbol)) } def model end - sig { params(_: T.any(String, Symbol)).returns(T.any(String, Symbol)) } + sig do + params(_: T.any(String, OpenAI::Models::ChatModel::OrSymbol)) + .returns(T.any(String, OpenAI::Models::ChatModel::OrSymbol)) + end def model=(_) end @@ -111,13 +114,32 @@ module OpenAI # # `none` is the default when no functions are present. `auto` is the default if # functions are present. - sig { returns(T.nilable(T.any(Symbol, OpenAI::Models::Chat::ChatCompletionFunctionCallOption))) } + sig do + returns( + T.nilable( + T.any( + OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode::OrSymbol, + OpenAI::Models::Chat::ChatCompletionFunctionCallOption + ) + ) + ) + end def function_call end sig do - params(_: T.any(Symbol, OpenAI::Models::Chat::ChatCompletionFunctionCallOption)) - .returns(T.any(Symbol, OpenAI::Models::Chat::ChatCompletionFunctionCallOption)) + params( + _: T.any( + OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode::OrSymbol, + OpenAI::Models::Chat::ChatCompletionFunctionCallOption + ) + ) + .returns( + T.any( + OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode::OrSymbol, + OpenAI::Models::Chat::ChatCompletionFunctionCallOption + ) + ) end def function_call=(_) end @@ -213,11 +235,14 @@ module OpenAI # this model generate both text and audio responses, you can use: # # `["text", "audio"]` - sig { returns(T.nilable(T::Array[Symbol])) } + sig { returns(T.nilable(T::Array[OpenAI::Models::Chat::CompletionCreateParams::Modality::OrSymbol])) } def modalities end - sig { params(_: T.nilable(T::Array[Symbol])).returns(T.nilable(T::Array[Symbol])) } + sig do + params(_: T.nilable(T::Array[OpenAI::Models::Chat::CompletionCreateParams::Modality::OrSymbol])) + .returns(T.nilable(T::Array[OpenAI::Models::Chat::CompletionCreateParams::Modality::OrSymbol])) + end def modalities=(_) end @@ -273,11 +298,14 @@ module OpenAI # [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently # supported values are `low`, `medium`, and `high`. Reducing reasoning effort can # result in faster responses and fewer tokens used on reasoning in a response. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) } def reasoning_effort end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) + .returns(T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) + end def reasoning_effort=(_) end @@ -351,11 +379,14 @@ module OpenAI # # When this parameter is set, the response body will include the `service_tier` # utilized. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Chat::CompletionCreateParams::ServiceTier::OrSymbol)) } def service_tier end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::Chat::CompletionCreateParams::ServiceTier::OrSymbol)) + .returns(T.nilable(OpenAI::Models::Chat::CompletionCreateParams::ServiceTier::OrSymbol)) + end def service_tier=(_) end @@ -422,13 +453,32 @@ module OpenAI # # `none` is the default when no tools are present. `auto` is the default if tools # are present. - sig { returns(T.nilable(T.any(Symbol, OpenAI::Models::Chat::ChatCompletionNamedToolChoice))) } + sig do + returns( + T.nilable( + T.any( + OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Chat::ChatCompletionNamedToolChoice + ) + ) + ) + end def tool_choice end sig do - params(_: T.any(Symbol, OpenAI::Models::Chat::ChatCompletionNamedToolChoice)) - .returns(T.any(Symbol, OpenAI::Models::Chat::ChatCompletionNamedToolChoice)) + params( + _: T.any( + OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Chat::ChatCompletionNamedToolChoice + ) + ) + .returns( + T.any( + OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Chat::ChatCompletionNamedToolChoice + ) + ) end def tool_choice=(_) end @@ -508,34 +558,40 @@ module OpenAI OpenAI::Models::Chat::ChatCompletionFunctionMessageParam ) ], - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::ChatModel::OrSymbol), audio: T.nilable(OpenAI::Models::Chat::ChatCompletionAudioParam), frequency_penalty: T.nilable(Float), - function_call: T.any(Symbol, OpenAI::Models::Chat::ChatCompletionFunctionCallOption), + function_call: T.any( + OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode::OrSymbol, + OpenAI::Models::Chat::ChatCompletionFunctionCallOption + ), functions: T::Array[OpenAI::Models::Chat::CompletionCreateParams::Function], logit_bias: T.nilable(T::Hash[Symbol, Integer]), logprobs: T.nilable(T::Boolean), max_completion_tokens: T.nilable(Integer), max_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), - modalities: T.nilable(T::Array[Symbol]), + modalities: T.nilable(T::Array[OpenAI::Models::Chat::CompletionCreateParams::Modality::OrSymbol]), n: T.nilable(Integer), parallel_tool_calls: T::Boolean, prediction: T.nilable(OpenAI::Models::Chat::ChatCompletionPredictionContent), presence_penalty: T.nilable(Float), - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.any( OpenAI::Models::ResponseFormatText, OpenAI::Models::ResponseFormatJSONSchema, OpenAI::Models::ResponseFormatJSONObject ), seed: T.nilable(Integer), - service_tier: T.nilable(Symbol), + service_tier: T.nilable(OpenAI::Models::Chat::CompletionCreateParams::ServiceTier::OrSymbol), stop: T.nilable(T.any(String, T::Array[String])), store: T.nilable(T::Boolean), stream_options: T.nilable(OpenAI::Models::Chat::ChatCompletionStreamOptions), temperature: T.nilable(Float), - tool_choice: T.any(Symbol, OpenAI::Models::Chat::ChatCompletionNamedToolChoice), + tool_choice: T.any( + OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Chat::ChatCompletionNamedToolChoice + ), tools: T::Array[OpenAI::Models::Chat::ChatCompletionTool], top_logprobs: T.nilable(Integer), top_p: T.nilable(Float), @@ -594,34 +650,40 @@ module OpenAI OpenAI::Models::Chat::ChatCompletionFunctionMessageParam ) ], - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::ChatModel::OrSymbol), audio: T.nilable(OpenAI::Models::Chat::ChatCompletionAudioParam), frequency_penalty: T.nilable(Float), - function_call: T.any(Symbol, OpenAI::Models::Chat::ChatCompletionFunctionCallOption), + function_call: T.any( + OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode::OrSymbol, + OpenAI::Models::Chat::ChatCompletionFunctionCallOption + ), functions: T::Array[OpenAI::Models::Chat::CompletionCreateParams::Function], logit_bias: T.nilable(T::Hash[Symbol, Integer]), logprobs: T.nilable(T::Boolean), max_completion_tokens: T.nilable(Integer), max_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), - modalities: T.nilable(T::Array[Symbol]), + modalities: T.nilable(T::Array[OpenAI::Models::Chat::CompletionCreateParams::Modality::OrSymbol]), n: T.nilable(Integer), parallel_tool_calls: T::Boolean, prediction: T.nilable(OpenAI::Models::Chat::ChatCompletionPredictionContent), presence_penalty: T.nilable(Float), - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.any( OpenAI::Models::ResponseFormatText, OpenAI::Models::ResponseFormatJSONSchema, OpenAI::Models::ResponseFormatJSONObject ), seed: T.nilable(Integer), - service_tier: T.nilable(Symbol), + service_tier: T.nilable(OpenAI::Models::Chat::CompletionCreateParams::ServiceTier::OrSymbol), stop: T.nilable(T.any(String, T::Array[String])), store: T.nilable(T::Boolean), stream_options: T.nilable(OpenAI::Models::Chat::ChatCompletionStreamOptions), temperature: T.nilable(Float), - tool_choice: T.any(Symbol, OpenAI::Models::Chat::ChatCompletionNamedToolChoice), + tool_choice: T.any( + OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Chat::ChatCompletionNamedToolChoice + ), tools: T::Array[OpenAI::Models::Chat::ChatCompletionTool], top_logprobs: T.nilable(Integer), top_p: T.nilable(Float), @@ -639,10 +701,10 @@ module OpenAI # and price points. Refer to the # [model guide](https://platform.openai.com/docs/models) to browse and compare # available models. - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = type_template(:out) { {fixed: T.any(String, OpenAI::Models::ChatModel::OrSymbol)} } end # Deprecated in favor of `tool_choice`. @@ -659,22 +721,34 @@ module OpenAI # # `none` is the default when no functions are present. `auto` is the default if # functions are present. - class FunctionCall < OpenAI::Union - abstract! + module FunctionCall + extend OpenAI::Union Variants = - type_template(:out) { {fixed: T.any(Symbol, OpenAI::Models::Chat::ChatCompletionFunctionCallOption)} } + type_template(:out) do + { + fixed: T.any( + OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode::OrSymbol, + OpenAI::Models::Chat::ChatCompletionFunctionCallOption + ) + } + end # `none` means the model will not call a function and instead generates a message. # `auto` means the model can pick between generating a message or calling a # function. - class FunctionCallMode < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - NONE = :none - AUTO = :auto + module FunctionCallMode + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode::TaggedSymbol) } + + NONE = + T.let(:none, OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode::OrSymbol) + AUTO = + T.let(:auto, OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode::OrSymbol) end end @@ -728,13 +802,15 @@ module OpenAI end end - class Modality < OpenAI::Enum - abstract! + module Modality + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Chat::CompletionCreateParams::Modality) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::CompletionCreateParams::Modality::TaggedSymbol) } - TEXT = :text - AUDIO = :audio + TEXT = T.let(:text, OpenAI::Models::Chat::CompletionCreateParams::Modality::OrSymbol) + AUDIO = T.let(:audio, OpenAI::Models::Chat::CompletionCreateParams::Modality::OrSymbol) end # An object specifying the format that the model must output. @@ -747,8 +823,8 @@ module OpenAI # Setting to `{ "type": "json_object" }` enables the older JSON mode, which # ensures the message the model generates is valid JSON. Using `json_schema` is # preferred for models that support it. - class ResponseFormat < OpenAI::Union - abstract! + module ResponseFormat + extend OpenAI::Union Variants = type_template(:out) do @@ -776,19 +852,21 @@ module OpenAI # # When this parameter is set, the response body will include the `service_tier` # utilized. - class ServiceTier < OpenAI::Enum - abstract! + module ServiceTier + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Chat::CompletionCreateParams::ServiceTier) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::CompletionCreateParams::ServiceTier::TaggedSymbol) } - AUTO = :auto - DEFAULT = :default + AUTO = T.let(:auto, OpenAI::Models::Chat::CompletionCreateParams::ServiceTier::OrSymbol) + DEFAULT = T.let(:default, OpenAI::Models::Chat::CompletionCreateParams::ServiceTier::OrSymbol) end # Up to 4 sequences where the API will stop generating further tokens. The # returned text will not contain the stop sequence. - class Stop < OpenAI::Union - abstract! + module Stop + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.nilable(T.any(String, T::Array[String]))} } @@ -798,11 +876,18 @@ module OpenAI class WebSearchOptions < OpenAI::BaseModel # High level guidance for the amount of context window space to use for the # search. One of `low`, `medium`, or `high`. `medium` is the default. - sig { returns(T.nilable(Symbol)) } + sig do + returns( + T.nilable(OpenAI::Models::Chat::CompletionCreateParams::WebSearchOptions::SearchContextSize::OrSymbol) + ) + end def search_context_size end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Chat::CompletionCreateParams::WebSearchOptions::SearchContextSize::OrSymbol) + .returns(OpenAI::Models::Chat::CompletionCreateParams::WebSearchOptions::SearchContextSize::OrSymbol) + end def search_context_size=(_) end @@ -823,7 +908,7 @@ module OpenAI # [web search tool](https://platform.openai.com/docs/guides/tools-web-search?api-mode=chat). sig do params( - search_context_size: Symbol, + search_context_size: OpenAI::Models::Chat::CompletionCreateParams::WebSearchOptions::SearchContextSize::OrSymbol, user_location: T.nilable(OpenAI::Models::Chat::CompletionCreateParams::WebSearchOptions::UserLocation) ) .returns(T.attached_class) @@ -835,7 +920,7 @@ module OpenAI override .returns( { - search_context_size: Symbol, + search_context_size: OpenAI::Models::Chat::CompletionCreateParams::WebSearchOptions::SearchContextSize::OrSymbol, user_location: T.nilable(OpenAI::Models::Chat::CompletionCreateParams::WebSearchOptions::UserLocation) } ) @@ -845,14 +930,28 @@ module OpenAI # High level guidance for the amount of context window space to use for the # search. One of `low`, `medium`, or `high`. `medium` is the default. - class SearchContextSize < OpenAI::Enum - abstract! + module SearchContextSize + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Chat::CompletionCreateParams::WebSearchOptions::SearchContextSize) } + OrSymbol = + T.type_alias do + T.any( + Symbol, + OpenAI::Models::Chat::CompletionCreateParams::WebSearchOptions::SearchContextSize::TaggedSymbol + ) + end - LOW = :low - MEDIUM = :medium - HIGH = :high + LOW = + T.let(:low, OpenAI::Models::Chat::CompletionCreateParams::WebSearchOptions::SearchContextSize::OrSymbol) + MEDIUM = + T.let( + :medium, + OpenAI::Models::Chat::CompletionCreateParams::WebSearchOptions::SearchContextSize::OrSymbol + ) + HIGH = + T.let(:high, OpenAI::Models::Chat::CompletionCreateParams::WebSearchOptions::SearchContextSize::OrSymbol) end class UserLocation < OpenAI::BaseModel diff --git a/rbi/lib/openai/models/chat/completion_list_params.rbi b/rbi/lib/openai/models/chat/completion_list_params.rbi index d4ce52ba..096a12f8 100644 --- a/rbi/lib/openai/models/chat/completion_list_params.rbi +++ b/rbi/lib/openai/models/chat/completion_list_params.rbi @@ -47,11 +47,14 @@ module OpenAI # Sort order for Chat Completions by timestamp. Use `asc` for ascending order or # `desc` for descending order. Defaults to `asc`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Chat::CompletionListParams::Order::OrSymbol)) } def order end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Chat::CompletionListParams::Order::OrSymbol) + .returns(OpenAI::Models::Chat::CompletionListParams::Order::OrSymbol) + end def order=(_) end @@ -61,7 +64,7 @@ module OpenAI limit: Integer, metadata: T.nilable(T::Hash[Symbol, String]), model: String, - order: Symbol, + order: OpenAI::Models::Chat::CompletionListParams::Order::OrSymbol, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -77,7 +80,7 @@ module OpenAI limit: Integer, metadata: T.nilable(T::Hash[Symbol, String]), model: String, - order: Symbol, + order: OpenAI::Models::Chat::CompletionListParams::Order::OrSymbol, request_options: OpenAI::RequestOptions } ) @@ -87,13 +90,15 @@ module OpenAI # Sort order for Chat Completions by timestamp. Use `asc` for ascending order or # `desc` for descending order. Defaults to `asc`. - class Order < OpenAI::Enum - abstract! + module Order + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Chat::CompletionListParams::Order) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::CompletionListParams::Order::TaggedSymbol) } - ASC = :asc - DESC = :desc + ASC = T.let(:asc, OpenAI::Models::Chat::CompletionListParams::Order::OrSymbol) + DESC = T.let(:desc, OpenAI::Models::Chat::CompletionListParams::Order::OrSymbol) end end end diff --git a/rbi/lib/openai/models/chat/completions/message_list_params.rbi b/rbi/lib/openai/models/chat/completions/message_list_params.rbi index 014bdbc9..d0cfdba1 100644 --- a/rbi/lib/openai/models/chat/completions/message_list_params.rbi +++ b/rbi/lib/openai/models/chat/completions/message_list_params.rbi @@ -28,11 +28,14 @@ module OpenAI # Sort order for messages by timestamp. Use `asc` for ascending order or `desc` # for descending order. Defaults to `asc`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Chat::Completions::MessageListParams::Order::OrSymbol)) } def order end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Chat::Completions::MessageListParams::Order::OrSymbol) + .returns(OpenAI::Models::Chat::Completions::MessageListParams::Order::OrSymbol) + end def order=(_) end @@ -40,7 +43,7 @@ module OpenAI params( after: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Chat::Completions::MessageListParams::Order::OrSymbol, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -49,27 +52,31 @@ module OpenAI end sig do - override.returns( - { - after: String, - limit: Integer, - order: Symbol, - request_options: OpenAI::RequestOptions - } - ) + override + .returns( + { + after: String, + limit: Integer, + order: OpenAI::Models::Chat::Completions::MessageListParams::Order::OrSymbol, + request_options: OpenAI::RequestOptions + } + ) end def to_hash end # Sort order for messages by timestamp. Use `asc` for ascending order or `desc` # for descending order. Defaults to `asc`. - class Order < OpenAI::Enum - abstract! + module Order + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Chat::Completions::MessageListParams::Order) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Chat::Completions::MessageListParams::Order::TaggedSymbol) } - ASC = :asc - DESC = :desc + ASC = T.let(:asc, OpenAI::Models::Chat::Completions::MessageListParams::Order::OrSymbol) + DESC = T.let(:desc, OpenAI::Models::Chat::Completions::MessageListParams::Order::OrSymbol) end end end diff --git a/rbi/lib/openai/models/chat_model.rbi b/rbi/lib/openai/models/chat_model.rbi index 9ec815a5..20705fb9 100644 --- a/rbi/lib/openai/models/chat_model.rbi +++ b/rbi/lib/openai/models/chat_model.rbi @@ -2,54 +2,60 @@ module OpenAI module Models - class ChatModel < OpenAI::Enum - abstract! + module ChatModel + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ChatModel) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::ChatModel::TaggedSymbol) } - O3_MINI = :"o3-mini" - O3_MINI_2025_01_31 = :"o3-mini-2025-01-31" - O1 = :o1 - O1_2024_12_17 = :"o1-2024-12-17" - O1_PREVIEW = :"o1-preview" - O1_PREVIEW_2024_09_12 = :"o1-preview-2024-09-12" - O1_MINI = :"o1-mini" - O1_MINI_2024_09_12 = :"o1-mini-2024-09-12" - GPT_4O = :"gpt-4o" - GPT_4O_2024_11_20 = :"gpt-4o-2024-11-20" - GPT_4O_2024_08_06 = :"gpt-4o-2024-08-06" - GPT_4O_2024_05_13 = :"gpt-4o-2024-05-13" - GPT_4O_AUDIO_PREVIEW = :"gpt-4o-audio-preview" - GPT_4O_AUDIO_PREVIEW_2024_10_01 = :"gpt-4o-audio-preview-2024-10-01" - GPT_4O_AUDIO_PREVIEW_2024_12_17 = :"gpt-4o-audio-preview-2024-12-17" - GPT_4O_MINI_AUDIO_PREVIEW = :"gpt-4o-mini-audio-preview" - GPT_4O_MINI_AUDIO_PREVIEW_2024_12_17 = :"gpt-4o-mini-audio-preview-2024-12-17" - GPT_4O_SEARCH_PREVIEW = :"gpt-4o-search-preview" - GPT_4O_MINI_SEARCH_PREVIEW = :"gpt-4o-mini-search-preview" - GPT_4O_SEARCH_PREVIEW_2025_03_11 = :"gpt-4o-search-preview-2025-03-11" - GPT_4O_MINI_SEARCH_PREVIEW_2025_03_11 = :"gpt-4o-mini-search-preview-2025-03-11" - CHATGPT_4O_LATEST = :"chatgpt-4o-latest" - GPT_4O_MINI = :"gpt-4o-mini" - GPT_4O_MINI_2024_07_18 = :"gpt-4o-mini-2024-07-18" - GPT_4_TURBO = :"gpt-4-turbo" - GPT_4_TURBO_2024_04_09 = :"gpt-4-turbo-2024-04-09" - GPT_4_0125_PREVIEW = :"gpt-4-0125-preview" - GPT_4_TURBO_PREVIEW = :"gpt-4-turbo-preview" - GPT_4_1106_PREVIEW = :"gpt-4-1106-preview" - GPT_4_VISION_PREVIEW = :"gpt-4-vision-preview" - GPT_4 = :"gpt-4" - GPT_4_0314 = :"gpt-4-0314" - GPT_4_0613 = :"gpt-4-0613" - GPT_4_32K = :"gpt-4-32k" - GPT_4_32K_0314 = :"gpt-4-32k-0314" - GPT_4_32K_0613 = :"gpt-4-32k-0613" - GPT_3_5_TURBO = :"gpt-3.5-turbo" - GPT_3_5_TURBO_16K = :"gpt-3.5-turbo-16k" - GPT_3_5_TURBO_0301 = :"gpt-3.5-turbo-0301" - GPT_3_5_TURBO_0613 = :"gpt-3.5-turbo-0613" - GPT_3_5_TURBO_1106 = :"gpt-3.5-turbo-1106" - GPT_3_5_TURBO_0125 = :"gpt-3.5-turbo-0125" - GPT_3_5_TURBO_16K_0613 = :"gpt-3.5-turbo-16k-0613" + O3_MINI = T.let(:"o3-mini", OpenAI::Models::ChatModel::OrSymbol) + O3_MINI_2025_01_31 = T.let(:"o3-mini-2025-01-31", OpenAI::Models::ChatModel::OrSymbol) + O1 = T.let(:o1, OpenAI::Models::ChatModel::OrSymbol) + O1_2024_12_17 = T.let(:"o1-2024-12-17", OpenAI::Models::ChatModel::OrSymbol) + O1_PREVIEW = T.let(:"o1-preview", OpenAI::Models::ChatModel::OrSymbol) + O1_PREVIEW_2024_09_12 = T.let(:"o1-preview-2024-09-12", OpenAI::Models::ChatModel::OrSymbol) + O1_MINI = T.let(:"o1-mini", OpenAI::Models::ChatModel::OrSymbol) + O1_MINI_2024_09_12 = T.let(:"o1-mini-2024-09-12", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O = T.let(:"gpt-4o", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_2024_11_20 = T.let(:"gpt-4o-2024-11-20", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_2024_08_06 = T.let(:"gpt-4o-2024-08-06", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_2024_05_13 = T.let(:"gpt-4o-2024-05-13", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_AUDIO_PREVIEW = T.let(:"gpt-4o-audio-preview", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_AUDIO_PREVIEW_2024_10_01 = + T.let(:"gpt-4o-audio-preview-2024-10-01", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_AUDIO_PREVIEW_2024_12_17 = + T.let(:"gpt-4o-audio-preview-2024-12-17", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_MINI_AUDIO_PREVIEW = T.let(:"gpt-4o-mini-audio-preview", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_MINI_AUDIO_PREVIEW_2024_12_17 = + T.let(:"gpt-4o-mini-audio-preview-2024-12-17", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_SEARCH_PREVIEW = T.let(:"gpt-4o-search-preview", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_MINI_SEARCH_PREVIEW = T.let(:"gpt-4o-mini-search-preview", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_SEARCH_PREVIEW_2025_03_11 = + T.let(:"gpt-4o-search-preview-2025-03-11", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_MINI_SEARCH_PREVIEW_2025_03_11 = + T.let(:"gpt-4o-mini-search-preview-2025-03-11", OpenAI::Models::ChatModel::OrSymbol) + CHATGPT_4O_LATEST = T.let(:"chatgpt-4o-latest", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_MINI = T.let(:"gpt-4o-mini", OpenAI::Models::ChatModel::OrSymbol) + GPT_4O_MINI_2024_07_18 = T.let(:"gpt-4o-mini-2024-07-18", OpenAI::Models::ChatModel::OrSymbol) + GPT_4_TURBO = T.let(:"gpt-4-turbo", OpenAI::Models::ChatModel::OrSymbol) + GPT_4_TURBO_2024_04_09 = T.let(:"gpt-4-turbo-2024-04-09", OpenAI::Models::ChatModel::OrSymbol) + GPT_4_0125_PREVIEW = T.let(:"gpt-4-0125-preview", OpenAI::Models::ChatModel::OrSymbol) + GPT_4_TURBO_PREVIEW = T.let(:"gpt-4-turbo-preview", OpenAI::Models::ChatModel::OrSymbol) + GPT_4_1106_PREVIEW = T.let(:"gpt-4-1106-preview", OpenAI::Models::ChatModel::OrSymbol) + GPT_4_VISION_PREVIEW = T.let(:"gpt-4-vision-preview", OpenAI::Models::ChatModel::OrSymbol) + GPT_4 = T.let(:"gpt-4", OpenAI::Models::ChatModel::OrSymbol) + GPT_4_0314 = T.let(:"gpt-4-0314", OpenAI::Models::ChatModel::OrSymbol) + GPT_4_0613 = T.let(:"gpt-4-0613", OpenAI::Models::ChatModel::OrSymbol) + GPT_4_32K = T.let(:"gpt-4-32k", OpenAI::Models::ChatModel::OrSymbol) + GPT_4_32K_0314 = T.let(:"gpt-4-32k-0314", OpenAI::Models::ChatModel::OrSymbol) + GPT_4_32K_0613 = T.let(:"gpt-4-32k-0613", OpenAI::Models::ChatModel::OrSymbol) + GPT_3_5_TURBO = T.let(:"gpt-3.5-turbo", OpenAI::Models::ChatModel::OrSymbol) + GPT_3_5_TURBO_16K = T.let(:"gpt-3.5-turbo-16k", OpenAI::Models::ChatModel::OrSymbol) + GPT_3_5_TURBO_0301 = T.let(:"gpt-3.5-turbo-0301", OpenAI::Models::ChatModel::OrSymbol) + GPT_3_5_TURBO_0613 = T.let(:"gpt-3.5-turbo-0613", OpenAI::Models::ChatModel::OrSymbol) + GPT_3_5_TURBO_1106 = T.let(:"gpt-3.5-turbo-1106", OpenAI::Models::ChatModel::OrSymbol) + GPT_3_5_TURBO_0125 = T.let(:"gpt-3.5-turbo-0125", OpenAI::Models::ChatModel::OrSymbol) + GPT_3_5_TURBO_16K_0613 = T.let(:"gpt-3.5-turbo-16k-0613", OpenAI::Models::ChatModel::OrSymbol) end end end diff --git a/rbi/lib/openai/models/comparison_filter.rbi b/rbi/lib/openai/models/comparison_filter.rbi index bbb84c5d..8ceb7ea4 100644 --- a/rbi/lib/openai/models/comparison_filter.rbi +++ b/rbi/lib/openai/models/comparison_filter.rbi @@ -20,11 +20,14 @@ module OpenAI # - `gte`: greater than or equal # - `lt`: less than # - `lte`: less than or equal - sig { returns(Symbol) } + sig { returns(OpenAI::Models::ComparisonFilter::Type::OrSymbol) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::ComparisonFilter::Type::OrSymbol) + .returns(OpenAI::Models::ComparisonFilter::Type::OrSymbol) + end def type=(_) end @@ -41,12 +44,22 @@ module OpenAI # A filter used to compare a specified attribute key to a given value using a # defined comparison operation. sig do - params(key: String, type: Symbol, value: T.any(String, Float, T::Boolean)).returns(T.attached_class) + params( + key: String, + type: OpenAI::Models::ComparisonFilter::Type::OrSymbol, + value: T.any(String, Float, T::Boolean) + ) + .returns(T.attached_class) end def self.new(key:, type:, value:) end - sig { override.returns({key: String, type: Symbol, value: T.any(String, Float, T::Boolean)}) } + sig do + override + .returns( + {key: String, type: OpenAI::Models::ComparisonFilter::Type::OrSymbol, value: T.any(String, Float, T::Boolean)} + ) + end def to_hash end @@ -58,23 +71,24 @@ module OpenAI # - `gte`: greater than or equal # - `lt`: less than # - `lte`: less than or equal - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ComparisonFilter::Type) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::ComparisonFilter::Type::TaggedSymbol) } - EQ = :eq - NE = :ne - GT = :gt - GTE = :gte - LT = :lt - LTE = :lte + EQ = T.let(:eq, OpenAI::Models::ComparisonFilter::Type::OrSymbol) + NE = T.let(:ne, OpenAI::Models::ComparisonFilter::Type::OrSymbol) + GT = T.let(:gt, OpenAI::Models::ComparisonFilter::Type::OrSymbol) + GTE = T.let(:gte, OpenAI::Models::ComparisonFilter::Type::OrSymbol) + LT = T.let(:lt, OpenAI::Models::ComparisonFilter::Type::OrSymbol) + LTE = T.let(:lte, OpenAI::Models::ComparisonFilter::Type::OrSymbol) end # The value to compare against the attribute key; supports string, number, or # boolean types. - class Value < OpenAI::Union - abstract! + module Value + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(String, Float, T::Boolean)} } end diff --git a/rbi/lib/openai/models/completion_choice.rbi b/rbi/lib/openai/models/completion_choice.rbi index 93b41ebf..a03a5dd9 100644 --- a/rbi/lib/openai/models/completion_choice.rbi +++ b/rbi/lib/openai/models/completion_choice.rbi @@ -7,11 +7,14 @@ module OpenAI # hit a natural stop point or a provided stop sequence, `length` if the maximum # number of tokens specified in the request was reached, or `content_filter` if # content was omitted due to a flag from our content filters. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::CompletionChoice::FinishReason::TaggedSymbol) } def finish_reason end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::CompletionChoice::FinishReason::TaggedSymbol) + .returns(OpenAI::Models::CompletionChoice::FinishReason::TaggedSymbol) + end def finish_reason=(_) end @@ -44,7 +47,7 @@ module OpenAI sig do params( - finish_reason: Symbol, + finish_reason: OpenAI::Models::CompletionChoice::FinishReason::TaggedSymbol, index: Integer, logprobs: T.nilable(OpenAI::Models::CompletionChoice::Logprobs), text: String @@ -58,7 +61,7 @@ module OpenAI override .returns( { - finish_reason: Symbol, + finish_reason: OpenAI::Models::CompletionChoice::FinishReason::TaggedSymbol, index: Integer, logprobs: T.nilable(OpenAI::Models::CompletionChoice::Logprobs), text: String @@ -72,14 +75,15 @@ module OpenAI # hit a natural stop point or a provided stop sequence, `length` if the maximum # number of tokens specified in the request was reached, or `content_filter` if # content was omitted due to a flag from our content filters. - class FinishReason < OpenAI::Enum - abstract! + module FinishReason + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::CompletionChoice::FinishReason) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::CompletionChoice::FinishReason::TaggedSymbol) } - STOP = :stop - LENGTH = :length - CONTENT_FILTER = :content_filter + STOP = T.let(:stop, OpenAI::Models::CompletionChoice::FinishReason::TaggedSymbol) + LENGTH = T.let(:length, OpenAI::Models::CompletionChoice::FinishReason::TaggedSymbol) + CONTENT_FILTER = T.let(:content_filter, OpenAI::Models::CompletionChoice::FinishReason::TaggedSymbol) end class Logprobs < OpenAI::BaseModel diff --git a/rbi/lib/openai/models/completion_create_params.rbi b/rbi/lib/openai/models/completion_create_params.rbi index eb7a6ceb..4b26334b 100644 --- a/rbi/lib/openai/models/completion_create_params.rbi +++ b/rbi/lib/openai/models/completion_create_params.rbi @@ -11,11 +11,14 @@ module OpenAI # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. - sig { returns(T.any(String, Symbol)) } + sig { returns(T.any(String, OpenAI::Models::CompletionCreateParams::Model::OrSymbol)) } def model end - sig { params(_: T.any(String, Symbol)).returns(T.any(String, Symbol)) } + sig do + params(_: T.any(String, OpenAI::Models::CompletionCreateParams::Model::OrSymbol)) + .returns(T.any(String, OpenAI::Models::CompletionCreateParams::Model::OrSymbol)) + end def model=(_) end @@ -247,7 +250,7 @@ module OpenAI sig do params( - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::CompletionCreateParams::Model::OrSymbol), prompt: T.nilable( T.any( String, @@ -301,7 +304,7 @@ module OpenAI override .returns( { - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::CompletionCreateParams::Model::OrSymbol), prompt: T.nilable( T.any( String, @@ -337,14 +340,19 @@ module OpenAI # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union + + Variants = + type_template(:out) { {fixed: T.any(String, OpenAI::Models::CompletionCreateParams::Model::OrSymbol)} } - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::CompletionCreateParams::Model) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::CompletionCreateParams::Model::TaggedSymbol) } - GPT_3_5_TURBO_INSTRUCT = :"gpt-3.5-turbo-instruct" - DAVINCI_002 = :"davinci-002" - BABBAGE_002 = :"babbage-002" + GPT_3_5_TURBO_INSTRUCT = + T.let(:"gpt-3.5-turbo-instruct", OpenAI::Models::CompletionCreateParams::Model::OrSymbol) + DAVINCI_002 = T.let(:"davinci-002", OpenAI::Models::CompletionCreateParams::Model::OrSymbol) + BABBAGE_002 = T.let(:"babbage-002", OpenAI::Models::CompletionCreateParams::Model::OrSymbol) end # The prompt(s) to generate completions for, encoded as a string, array of @@ -353,8 +361,8 @@ module OpenAI # Note that <|endoftext|> is the document separator that the model sees during # training, so if a prompt is not specified the model will generate as if from the # beginning of a new document. - class Prompt < OpenAI::Union - abstract! + module Prompt + extend OpenAI::Union Variants = type_template(:out) do @@ -370,8 +378,8 @@ module OpenAI # Up to 4 sequences where the API will stop generating further tokens. The # returned text will not contain the stop sequence. - class Stop < OpenAI::Union - abstract! + module Stop + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.nilable(T.any(String, T::Array[String]))} } diff --git a/rbi/lib/openai/models/compound_filter.rbi b/rbi/lib/openai/models/compound_filter.rbi index 6722f10d..6a79164a 100644 --- a/rbi/lib/openai/models/compound_filter.rbi +++ b/rbi/lib/openai/models/compound_filter.rbi @@ -17,42 +17,57 @@ module OpenAI end # Type of operation: `and` or `or`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::CompoundFilter::Type::OrSymbol) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::CompoundFilter::Type::OrSymbol) + .returns(OpenAI::Models::CompoundFilter::Type::OrSymbol) + end def type=(_) end # Combine multiple filters using `and` or `or`. sig do - params(filters: T::Array[T.any(OpenAI::Models::ComparisonFilter, T.anything)], type: Symbol) + params( + filters: T::Array[T.any(OpenAI::Models::ComparisonFilter, T.anything)], + type: OpenAI::Models::CompoundFilter::Type::OrSymbol + ) .returns(T.attached_class) end def self.new(filters:, type:) end - sig { override.returns({filters: T::Array[T.any(OpenAI::Models::ComparisonFilter, T.anything)], type: Symbol}) } + sig do + override + .returns( + { + filters: T::Array[T.any(OpenAI::Models::ComparisonFilter, T.anything)], + type: OpenAI::Models::CompoundFilter::Type::OrSymbol + } + ) + end def to_hash end # A filter used to compare a specified attribute key to a given value using a # defined comparison operation. - class Filter < OpenAI::Union - abstract! + module Filter + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(OpenAI::Models::ComparisonFilter, T.anything)} } end # Type of operation: `and` or `or`. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::CompoundFilter::Type) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::CompoundFilter::Type::TaggedSymbol) } - AND = :and - OR = :or + AND = T.let(:and, OpenAI::Models::CompoundFilter::Type::OrSymbol) + OR = T.let(:or, OpenAI::Models::CompoundFilter::Type::OrSymbol) end end end diff --git a/rbi/lib/openai/models/embedding_create_params.rbi b/rbi/lib/openai/models/embedding_create_params.rbi index 3f30f067..bc8012b1 100644 --- a/rbi/lib/openai/models/embedding_create_params.rbi +++ b/rbi/lib/openai/models/embedding_create_params.rbi @@ -30,11 +30,14 @@ module OpenAI # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. - sig { returns(T.any(String, Symbol)) } + sig { returns(T.any(String, OpenAI::Models::EmbeddingModel::OrSymbol)) } def model end - sig { params(_: T.any(String, Symbol)).returns(T.any(String, Symbol)) } + sig do + params(_: T.any(String, OpenAI::Models::EmbeddingModel::OrSymbol)) + .returns(T.any(String, OpenAI::Models::EmbeddingModel::OrSymbol)) + end def model=(_) end @@ -50,11 +53,14 @@ module OpenAI # The format to return the embeddings in. Can be either `float` or # [`base64`](https://pypi.org/project/pybase64/). - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::EmbeddingCreateParams::EncodingFormat::OrSymbol)) } def encoding_format end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::EmbeddingCreateParams::EncodingFormat::OrSymbol) + .returns(OpenAI::Models::EmbeddingCreateParams::EncodingFormat::OrSymbol) + end def encoding_format=(_) end @@ -72,9 +78,9 @@ module OpenAI sig do params( input: T.any(String, T::Array[String], T::Array[Integer], T::Array[T::Array[Integer]]), - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::EmbeddingModel::OrSymbol), dimensions: Integer, - encoding_format: Symbol, + encoding_format: OpenAI::Models::EmbeddingCreateParams::EncodingFormat::OrSymbol, user: String, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) @@ -88,9 +94,9 @@ module OpenAI .returns( { input: T.any(String, T::Array[String], T::Array[Integer], T::Array[T::Array[Integer]]), - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::EmbeddingModel::OrSymbol), dimensions: Integer, - encoding_format: Symbol, + encoding_format: OpenAI::Models::EmbeddingCreateParams::EncodingFormat::OrSymbol, user: String, request_options: OpenAI::RequestOptions } @@ -107,8 +113,8 @@ module OpenAI # [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) # for counting tokens. Some models may also impose a limit on total number of # tokens summed across inputs. - class Input < OpenAI::Union - abstract! + module Input + extend OpenAI::Union Variants = type_template(:out) do @@ -127,21 +133,23 @@ module OpenAI # see all of your available models, or see our # [Model overview](https://platform.openai.com/docs/models) for descriptions of # them. - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = type_template(:out) { {fixed: T.any(String, OpenAI::Models::EmbeddingModel::OrSymbol)} } end # The format to return the embeddings in. Can be either `float` or # [`base64`](https://pypi.org/project/pybase64/). - class EncodingFormat < OpenAI::Enum - abstract! + module EncodingFormat + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::EmbeddingCreateParams::EncodingFormat) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::EmbeddingCreateParams::EncodingFormat::TaggedSymbol) } - FLOAT = :float - BASE64 = :base64 + FLOAT = T.let(:float, OpenAI::Models::EmbeddingCreateParams::EncodingFormat::OrSymbol) + BASE64 = T.let(:base64, OpenAI::Models::EmbeddingCreateParams::EncodingFormat::OrSymbol) end end end diff --git a/rbi/lib/openai/models/embedding_model.rbi b/rbi/lib/openai/models/embedding_model.rbi index 1bd2eac2..2b064f56 100644 --- a/rbi/lib/openai/models/embedding_model.rbi +++ b/rbi/lib/openai/models/embedding_model.rbi @@ -2,14 +2,15 @@ module OpenAI module Models - class EmbeddingModel < OpenAI::Enum - abstract! + module EmbeddingModel + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::EmbeddingModel) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::EmbeddingModel::TaggedSymbol) } - TEXT_EMBEDDING_ADA_002 = :"text-embedding-ada-002" - TEXT_EMBEDDING_3_SMALL = :"text-embedding-3-small" - TEXT_EMBEDDING_3_LARGE = :"text-embedding-3-large" + TEXT_EMBEDDING_ADA_002 = T.let(:"text-embedding-ada-002", OpenAI::Models::EmbeddingModel::OrSymbol) + TEXT_EMBEDDING_3_SMALL = T.let(:"text-embedding-3-small", OpenAI::Models::EmbeddingModel::OrSymbol) + TEXT_EMBEDDING_3_LARGE = T.let(:"text-embedding-3-large", OpenAI::Models::EmbeddingModel::OrSymbol) end end end diff --git a/rbi/lib/openai/models/file_chunking_strategy.rbi b/rbi/lib/openai/models/file_chunking_strategy.rbi index aad68d3d..eb1f53b5 100644 --- a/rbi/lib/openai/models/file_chunking_strategy.rbi +++ b/rbi/lib/openai/models/file_chunking_strategy.rbi @@ -3,8 +3,8 @@ module OpenAI module Models # The strategy used to chunk the file. - class FileChunkingStrategy < OpenAI::Union - abstract! + module FileChunkingStrategy + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/file_chunking_strategy_param.rbi b/rbi/lib/openai/models/file_chunking_strategy_param.rbi index 07560304..211e8f69 100644 --- a/rbi/lib/openai/models/file_chunking_strategy_param.rbi +++ b/rbi/lib/openai/models/file_chunking_strategy_param.rbi @@ -4,8 +4,8 @@ module OpenAI module Models # The chunking strategy used to chunk the file(s). If not set, will use the `auto` # strategy. Only applicable if `file_ids` is non-empty. - class FileChunkingStrategyParam < OpenAI::Union - abstract! + module FileChunkingStrategyParam + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/file_create_params.rbi b/rbi/lib/openai/models/file_create_params.rbi index 98619f88..fbd7b9d0 100644 --- a/rbi/lib/openai/models/file_create_params.rbi +++ b/rbi/lib/openai/models/file_create_params.rbi @@ -19,18 +19,18 @@ module OpenAI # Assistants API - `batch`: Used in the Batch API - `fine-tune`: Used for # fine-tuning - `vision`: Images used for vision fine-tuning - `user_data`: # Flexible file type for any purpose - `evals`: Used for eval data sets - sig { returns(Symbol) } + sig { returns(OpenAI::Models::FilePurpose::OrSymbol) } def purpose end - sig { params(_: Symbol).returns(Symbol) } + sig { params(_: OpenAI::Models::FilePurpose::OrSymbol).returns(OpenAI::Models::FilePurpose::OrSymbol) } def purpose=(_) end sig do params( file: T.any(IO, StringIO), - purpose: Symbol, + purpose: OpenAI::Models::FilePurpose::OrSymbol, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -39,13 +39,14 @@ module OpenAI end sig do - override.returns( - { - file: T.any(IO, StringIO), - purpose: Symbol, - request_options: OpenAI::RequestOptions - } - ) + override + .returns( + { + file: T.any(IO, StringIO), + purpose: OpenAI::Models::FilePurpose::OrSymbol, + request_options: OpenAI::RequestOptions + } + ) end def to_hash end diff --git a/rbi/lib/openai/models/file_list_params.rbi b/rbi/lib/openai/models/file_list_params.rbi index 48b8106e..4af7b2fc 100644 --- a/rbi/lib/openai/models/file_list_params.rbi +++ b/rbi/lib/openai/models/file_list_params.rbi @@ -30,11 +30,14 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::FileListParams::Order::OrSymbol)) } def order end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::FileListParams::Order::OrSymbol) + .returns(OpenAI::Models::FileListParams::Order::OrSymbol) + end def order=(_) end @@ -51,7 +54,7 @@ module OpenAI params( after: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::FileListParams::Order::OrSymbol, purpose: String, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) @@ -66,7 +69,7 @@ module OpenAI { after: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::FileListParams::Order::OrSymbol, purpose: String, request_options: OpenAI::RequestOptions } @@ -77,13 +80,14 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum - abstract! + module Order + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::FileListParams::Order) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::FileListParams::Order::TaggedSymbol) } - ASC = :asc - DESC = :desc + ASC = T.let(:asc, OpenAI::Models::FileListParams::Order::OrSymbol) + DESC = T.let(:desc, OpenAI::Models::FileListParams::Order::OrSymbol) end end end diff --git a/rbi/lib/openai/models/file_object.rbi b/rbi/lib/openai/models/file_object.rbi index b31df148..2918d2f0 100644 --- a/rbi/lib/openai/models/file_object.rbi +++ b/rbi/lib/openai/models/file_object.rbi @@ -51,21 +51,27 @@ module OpenAI # The intended purpose of the file. Supported values are `assistants`, # `assistants_output`, `batch`, `batch_output`, `fine-tune`, `fine-tune-results` # and `vision`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::FileObject::Purpose::TaggedSymbol) } def purpose end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::FileObject::Purpose::TaggedSymbol) + .returns(OpenAI::Models::FileObject::Purpose::TaggedSymbol) + end def purpose=(_) end # Deprecated. The current status of the file, which can be either `uploaded`, # `processed`, or `error`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::FileObject::Status::TaggedSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::FileObject::Status::TaggedSymbol) + .returns(OpenAI::Models::FileObject::Status::TaggedSymbol) + end def status=(_) end @@ -95,8 +101,8 @@ module OpenAI bytes: Integer, created_at: Integer, filename: String, - purpose: Symbol, - status: Symbol, + purpose: OpenAI::Models::FileObject::Purpose::TaggedSymbol, + status: OpenAI::Models::FileObject::Status::TaggedSymbol, expires_at: Integer, status_details: String, object: Symbol @@ -125,8 +131,8 @@ module OpenAI created_at: Integer, filename: String, object: Symbol, - purpose: Symbol, - status: Symbol, + purpose: OpenAI::Models::FileObject::Purpose::TaggedSymbol, + status: OpenAI::Models::FileObject::Status::TaggedSymbol, expires_at: Integer, status_details: String } @@ -138,30 +144,32 @@ module OpenAI # The intended purpose of the file. Supported values are `assistants`, # `assistants_output`, `batch`, `batch_output`, `fine-tune`, `fine-tune-results` # and `vision`. - class Purpose < OpenAI::Enum - abstract! + module Purpose + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::FileObject::Purpose) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::FileObject::Purpose::TaggedSymbol) } - ASSISTANTS = :assistants - ASSISTANTS_OUTPUT = :assistants_output - BATCH = :batch - BATCH_OUTPUT = :batch_output - FINE_TUNE = :"fine-tune" - FINE_TUNE_RESULTS = :"fine-tune-results" - VISION = :vision + ASSISTANTS = T.let(:assistants, OpenAI::Models::FileObject::Purpose::TaggedSymbol) + ASSISTANTS_OUTPUT = T.let(:assistants_output, OpenAI::Models::FileObject::Purpose::TaggedSymbol) + BATCH = T.let(:batch, OpenAI::Models::FileObject::Purpose::TaggedSymbol) + BATCH_OUTPUT = T.let(:batch_output, OpenAI::Models::FileObject::Purpose::TaggedSymbol) + FINE_TUNE = T.let(:"fine-tune", OpenAI::Models::FileObject::Purpose::TaggedSymbol) + FINE_TUNE_RESULTS = T.let(:"fine-tune-results", OpenAI::Models::FileObject::Purpose::TaggedSymbol) + VISION = T.let(:vision, OpenAI::Models::FileObject::Purpose::TaggedSymbol) end # Deprecated. The current status of the file, which can be either `uploaded`, # `processed`, or `error`. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::FileObject::Status) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::FileObject::Status::TaggedSymbol) } - UPLOADED = :uploaded - PROCESSED = :processed - ERROR = :error + UPLOADED = T.let(:uploaded, OpenAI::Models::FileObject::Status::TaggedSymbol) + PROCESSED = T.let(:processed, OpenAI::Models::FileObject::Status::TaggedSymbol) + ERROR = T.let(:error, OpenAI::Models::FileObject::Status::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/file_purpose.rbi b/rbi/lib/openai/models/file_purpose.rbi index 07bd11c5..77bba00f 100644 --- a/rbi/lib/openai/models/file_purpose.rbi +++ b/rbi/lib/openai/models/file_purpose.rbi @@ -6,17 +6,18 @@ module OpenAI # Assistants API - `batch`: Used in the Batch API - `fine-tune`: Used for # fine-tuning - `vision`: Images used for vision fine-tuning - `user_data`: # Flexible file type for any purpose - `evals`: Used for eval data sets - class FilePurpose < OpenAI::Enum - abstract! + module FilePurpose + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::FilePurpose) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::FilePurpose::TaggedSymbol) } - ASSISTANTS = :assistants - BATCH = :batch - FINE_TUNE = :"fine-tune" - VISION = :vision - USER_DATA = :user_data - EVALS = :evals + ASSISTANTS = T.let(:assistants, OpenAI::Models::FilePurpose::OrSymbol) + BATCH = T.let(:batch, OpenAI::Models::FilePurpose::OrSymbol) + FINE_TUNE = T.let(:"fine-tune", OpenAI::Models::FilePurpose::OrSymbol) + VISION = T.let(:vision, OpenAI::Models::FilePurpose::OrSymbol) + USER_DATA = T.let(:user_data, OpenAI::Models::FilePurpose::OrSymbol) + EVALS = T.let(:evals, OpenAI::Models::FilePurpose::OrSymbol) end end end diff --git a/rbi/lib/openai/models/fine_tuning/fine_tuning_job.rbi b/rbi/lib/openai/models/fine_tuning/fine_tuning_job.rbi index b4326f0b..f688b4b2 100644 --- a/rbi/lib/openai/models/fine_tuning/fine_tuning_job.rbi +++ b/rbi/lib/openai/models/fine_tuning/fine_tuning_job.rbi @@ -117,11 +117,14 @@ module OpenAI # The current status of the fine-tuning job, which can be either # `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::FineTuning::FineTuningJob::Status::TaggedSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::FineTuning::FineTuningJob::Status::TaggedSymbol) + .returns(OpenAI::Models::FineTuning::FineTuningJob::Status::TaggedSymbol) + end def status=(_) end @@ -218,7 +221,7 @@ module OpenAI organization_id: String, result_files: T::Array[String], seed: Integer, - status: Symbol, + status: OpenAI::Models::FineTuning::FineTuningJob::Status::TaggedSymbol, trained_tokens: T.nilable(Integer), training_file: String, validation_file: T.nilable(String), @@ -268,7 +271,7 @@ module OpenAI organization_id: String, result_files: T::Array[String], seed: Integer, - status: Symbol, + status: OpenAI::Models::FineTuning::FineTuningJob::Status::TaggedSymbol, trained_tokens: T.nilable(Integer), training_file: String, validation_file: T.nilable(String), @@ -381,24 +384,24 @@ module OpenAI # Number of examples in each batch. A larger batch size means that model # parameters are updated less frequently, but with lower variance. - class BatchSize < OpenAI::Union - abstract! + module BatchSize + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Integer)} } end # Scaling factor for the learning rate. A smaller learning rate may be useful to # avoid overfitting. - class LearningRateMultiplier < OpenAI::Union - abstract! + module LearningRateMultiplier + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Float)} } end # The number of epochs to train the model for. An epoch refers to one full cycle # through the training dataset. - class NEpochs < OpenAI::Union - abstract! + module NEpochs + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Integer)} } end @@ -406,17 +409,20 @@ module OpenAI # The current status of the fine-tuning job, which can be either # `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::FineTuning::FineTuningJob::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::FineTuning::FineTuningJob::Status::TaggedSymbol) } - VALIDATING_FILES = :validating_files - QUEUED = :queued - RUNNING = :running - SUCCEEDED = :succeeded - FAILED = :failed - CANCELLED = :cancelled + VALIDATING_FILES = + T.let(:validating_files, OpenAI::Models::FineTuning::FineTuningJob::Status::TaggedSymbol) + QUEUED = T.let(:queued, OpenAI::Models::FineTuning::FineTuningJob::Status::TaggedSymbol) + RUNNING = T.let(:running, OpenAI::Models::FineTuning::FineTuningJob::Status::TaggedSymbol) + SUCCEEDED = T.let(:succeeded, OpenAI::Models::FineTuning::FineTuningJob::Status::TaggedSymbol) + FAILED = T.let(:failed, OpenAI::Models::FineTuning::FineTuningJob::Status::TaggedSymbol) + CANCELLED = T.let(:cancelled, OpenAI::Models::FineTuning::FineTuningJob::Status::TaggedSymbol) end class Method < OpenAI::BaseModel @@ -445,11 +451,14 @@ module OpenAI end # The type of method. Is either `supervised` or `dpo`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::FineTuning::FineTuningJob::Method::Type::TaggedSymbol)) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::FineTuning::FineTuningJob::Method::Type::TaggedSymbol) + .returns(OpenAI::Models::FineTuning::FineTuningJob::Method::Type::TaggedSymbol) + end def type=(_) end @@ -458,7 +467,7 @@ module OpenAI params( dpo: OpenAI::Models::FineTuning::FineTuningJob::Method::Dpo, supervised: OpenAI::Models::FineTuning::FineTuningJob::Method::Supervised, - type: Symbol + type: OpenAI::Models::FineTuning::FineTuningJob::Method::Type::TaggedSymbol ) .returns(T.attached_class) end @@ -471,7 +480,7 @@ module OpenAI { dpo: OpenAI::Models::FineTuning::FineTuningJob::Method::Dpo, supervised: OpenAI::Models::FineTuning::FineTuningJob::Method::Supervised, - type: Symbol + type: OpenAI::Models::FineTuning::FineTuningJob::Method::Type::TaggedSymbol } ) end @@ -576,32 +585,32 @@ module OpenAI # Number of examples in each batch. A larger batch size means that model # parameters are updated less frequently, but with lower variance. - class BatchSize < OpenAI::Union - abstract! + module BatchSize + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Integer)} } end # The beta value for the DPO method. A higher beta value will increase the weight # of the penalty between the policy and reference model. - class Beta < OpenAI::Union - abstract! + module Beta + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Float)} } end # Scaling factor for the learning rate. A smaller learning rate may be useful to # avoid overfitting. - class LearningRateMultiplier < OpenAI::Union - abstract! + module LearningRateMultiplier + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Float)} } end # The number of epochs to train the model for. An epoch refers to one full cycle # through the training dataset. - class NEpochs < OpenAI::Union - abstract! + module NEpochs + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Integer)} } end @@ -694,24 +703,24 @@ module OpenAI # Number of examples in each batch. A larger batch size means that model # parameters are updated less frequently, but with lower variance. - class BatchSize < OpenAI::Union - abstract! + module BatchSize + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Integer)} } end # Scaling factor for the learning rate. A smaller learning rate may be useful to # avoid overfitting. - class LearningRateMultiplier < OpenAI::Union - abstract! + module LearningRateMultiplier + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Float)} } end # The number of epochs to train the model for. An epoch refers to one full cycle # through the training dataset. - class NEpochs < OpenAI::Union - abstract! + module NEpochs + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Integer)} } end @@ -719,13 +728,15 @@ module OpenAI end # The type of method. Is either `supervised` or `dpo`. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::FineTuning::FineTuningJob::Method::Type) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::FineTuning::FineTuningJob::Method::Type::TaggedSymbol) } - SUPERVISED = :supervised - DPO = :dpo + SUPERVISED = T.let(:supervised, OpenAI::Models::FineTuning::FineTuningJob::Method::Type::TaggedSymbol) + DPO = T.let(:dpo, OpenAI::Models::FineTuning::FineTuningJob::Method::Type::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/fine_tuning/fine_tuning_job_event.rbi b/rbi/lib/openai/models/fine_tuning/fine_tuning_job_event.rbi index fb1daf42..7bedb937 100644 --- a/rbi/lib/openai/models/fine_tuning/fine_tuning_job_event.rbi +++ b/rbi/lib/openai/models/fine_tuning/fine_tuning_job_event.rbi @@ -23,11 +23,14 @@ module OpenAI end # The log level of the event. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::FineTuning::FineTuningJobEvent::Level::TaggedSymbol) } def level end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::FineTuning::FineTuningJobEvent::Level::TaggedSymbol) + .returns(OpenAI::Models::FineTuning::FineTuningJobEvent::Level::TaggedSymbol) + end def level=(_) end @@ -59,11 +62,14 @@ module OpenAI end # The type of event. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::FineTuning::FineTuningJobEvent::Type::TaggedSymbol)) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::FineTuning::FineTuningJobEvent::Type::TaggedSymbol) + .returns(OpenAI::Models::FineTuning::FineTuningJobEvent::Type::TaggedSymbol) + end def type=(_) end @@ -72,10 +78,10 @@ module OpenAI params( id: String, created_at: Integer, - level: Symbol, + level: OpenAI::Models::FineTuning::FineTuningJobEvent::Level::TaggedSymbol, message: String, data: T.anything, - type: Symbol, + type: OpenAI::Models::FineTuning::FineTuningJobEvent::Type::TaggedSymbol, object: Symbol ) .returns(T.attached_class) @@ -89,11 +95,11 @@ module OpenAI { id: String, created_at: Integer, - level: Symbol, + level: OpenAI::Models::FineTuning::FineTuningJobEvent::Level::TaggedSymbol, message: String, object: Symbol, data: T.anything, - type: Symbol + type: OpenAI::Models::FineTuning::FineTuningJobEvent::Type::TaggedSymbol } ) end @@ -101,24 +107,28 @@ module OpenAI end # The log level of the event. - class Level < OpenAI::Enum - abstract! + module Level + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::FineTuning::FineTuningJobEvent::Level) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::FineTuning::FineTuningJobEvent::Level::TaggedSymbol) } - INFO = :info - WARN = :warn - ERROR = :error + INFO = T.let(:info, OpenAI::Models::FineTuning::FineTuningJobEvent::Level::TaggedSymbol) + WARN = T.let(:warn, OpenAI::Models::FineTuning::FineTuningJobEvent::Level::TaggedSymbol) + ERROR = T.let(:error, OpenAI::Models::FineTuning::FineTuningJobEvent::Level::TaggedSymbol) end # The type of event. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::FineTuning::FineTuningJobEvent::Type) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::FineTuning::FineTuningJobEvent::Type::TaggedSymbol) } - MESSAGE = :message - METRICS = :metrics + MESSAGE = T.let(:message, OpenAI::Models::FineTuning::FineTuningJobEvent::Type::TaggedSymbol) + METRICS = T.let(:metrics, OpenAI::Models::FineTuning::FineTuningJobEvent::Type::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/fine_tuning/job_create_params.rbi b/rbi/lib/openai/models/fine_tuning/job_create_params.rbi index 29a4f7bf..9142e294 100644 --- a/rbi/lib/openai/models/fine_tuning/job_create_params.rbi +++ b/rbi/lib/openai/models/fine_tuning/job_create_params.rbi @@ -9,11 +9,14 @@ module OpenAI # The name of the model to fine-tune. You can select one of the # [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned). - sig { returns(T.any(String, Symbol)) } + sig { returns(T.any(String, OpenAI::Models::FineTuning::JobCreateParams::Model::OrSymbol)) } def model end - sig { params(_: T.any(String, Symbol)).returns(T.any(String, Symbol)) } + sig do + params(_: T.any(String, OpenAI::Models::FineTuning::JobCreateParams::Model::OrSymbol)) + .returns(T.any(String, OpenAI::Models::FineTuning::JobCreateParams::Model::OrSymbol)) + end def model=(_) end @@ -139,7 +142,7 @@ module OpenAI sig do params( - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::FineTuning::JobCreateParams::Model::OrSymbol), training_file: String, hyperparameters: OpenAI::Models::FineTuning::JobCreateParams::Hyperparameters, integrations: T.nilable(T::Array[OpenAI::Models::FineTuning::JobCreateParams::Integration]), @@ -170,7 +173,7 @@ module OpenAI override .returns( { - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::FineTuning::JobCreateParams::Model::OrSymbol), training_file: String, hyperparameters: OpenAI::Models::FineTuning::JobCreateParams::Hyperparameters, integrations: T.nilable(T::Array[OpenAI::Models::FineTuning::JobCreateParams::Integration]), @@ -188,15 +191,20 @@ module OpenAI # The name of the model to fine-tune. You can select one of the # [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned). - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union + + Variants = + type_template(:out) { {fixed: T.any(String, OpenAI::Models::FineTuning::JobCreateParams::Model::OrSymbol)} } - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::FineTuning::JobCreateParams::Model) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::FineTuning::JobCreateParams::Model::TaggedSymbol) } - BABBAGE_002 = :"babbage-002" - DAVINCI_002 = :"davinci-002" - GPT_3_5_TURBO = :"gpt-3.5-turbo" - GPT_4O_MINI = :"gpt-4o-mini" + BABBAGE_002 = T.let(:"babbage-002", OpenAI::Models::FineTuning::JobCreateParams::Model::OrSymbol) + DAVINCI_002 = T.let(:"davinci-002", OpenAI::Models::FineTuning::JobCreateParams::Model::OrSymbol) + GPT_3_5_TURBO = T.let(:"gpt-3.5-turbo", OpenAI::Models::FineTuning::JobCreateParams::Model::OrSymbol) + GPT_4O_MINI = T.let(:"gpt-4o-mini", OpenAI::Models::FineTuning::JobCreateParams::Model::OrSymbol) end class Hyperparameters < OpenAI::BaseModel @@ -258,24 +266,24 @@ module OpenAI # Number of examples in each batch. A larger batch size means that model # parameters are updated less frequently, but with lower variance. - class BatchSize < OpenAI::Union - abstract! + module BatchSize + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Integer)} } end # Scaling factor for the learning rate. A smaller learning rate may be useful to # avoid overfitting. - class LearningRateMultiplier < OpenAI::Union - abstract! + module LearningRateMultiplier + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Float)} } end # The number of epochs to train the model for. An epoch refers to one full cycle # through the training dataset. - class NEpochs < OpenAI::Union - abstract! + module NEpochs + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Integer)} } end @@ -416,11 +424,14 @@ module OpenAI end # The type of method. Is either `supervised` or `dpo`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::FineTuning::JobCreateParams::Method::Type::OrSymbol)) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::FineTuning::JobCreateParams::Method::Type::OrSymbol) + .returns(OpenAI::Models::FineTuning::JobCreateParams::Method::Type::OrSymbol) + end def type=(_) end @@ -429,7 +440,7 @@ module OpenAI params( dpo: OpenAI::Models::FineTuning::JobCreateParams::Method::Dpo, supervised: OpenAI::Models::FineTuning::JobCreateParams::Method::Supervised, - type: Symbol + type: OpenAI::Models::FineTuning::JobCreateParams::Method::Type::OrSymbol ) .returns(T.attached_class) end @@ -442,7 +453,7 @@ module OpenAI { dpo: OpenAI::Models::FineTuning::JobCreateParams::Method::Dpo, supervised: OpenAI::Models::FineTuning::JobCreateParams::Method::Supervised, - type: Symbol + type: OpenAI::Models::FineTuning::JobCreateParams::Method::Type::OrSymbol } ) end @@ -547,32 +558,32 @@ module OpenAI # Number of examples in each batch. A larger batch size means that model # parameters are updated less frequently, but with lower variance. - class BatchSize < OpenAI::Union - abstract! + module BatchSize + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Integer)} } end # The beta value for the DPO method. A higher beta value will increase the weight # of the penalty between the policy and reference model. - class Beta < OpenAI::Union - abstract! + module Beta + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Float)} } end # Scaling factor for the learning rate. A smaller learning rate may be useful to # avoid overfitting. - class LearningRateMultiplier < OpenAI::Union - abstract! + module LearningRateMultiplier + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Float)} } end # The number of epochs to train the model for. An epoch refers to one full cycle # through the training dataset. - class NEpochs < OpenAI::Union - abstract! + module NEpochs + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Integer)} } end @@ -667,24 +678,24 @@ module OpenAI # Number of examples in each batch. A larger batch size means that model # parameters are updated less frequently, but with lower variance. - class BatchSize < OpenAI::Union - abstract! + module BatchSize + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Integer)} } end # Scaling factor for the learning rate. A smaller learning rate may be useful to # avoid overfitting. - class LearningRateMultiplier < OpenAI::Union - abstract! + module LearningRateMultiplier + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Float)} } end # The number of epochs to train the model for. An epoch refers to one full cycle # through the training dataset. - class NEpochs < OpenAI::Union - abstract! + module NEpochs + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(Symbol, Integer)} } end @@ -692,13 +703,15 @@ module OpenAI end # The type of method. Is either `supervised` or `dpo`. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::FineTuning::JobCreateParams::Method::Type) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::FineTuning::JobCreateParams::Method::Type::TaggedSymbol) } - SUPERVISED = :supervised - DPO = :dpo + SUPERVISED = T.let(:supervised, OpenAI::Models::FineTuning::JobCreateParams::Method::Type::OrSymbol) + DPO = T.let(:dpo, OpenAI::Models::FineTuning::JobCreateParams::Method::Type::OrSymbol) end end end diff --git a/rbi/lib/openai/models/image_create_variation_params.rbi b/rbi/lib/openai/models/image_create_variation_params.rbi index 285e3c70..09479fbe 100644 --- a/rbi/lib/openai/models/image_create_variation_params.rbi +++ b/rbi/lib/openai/models/image_create_variation_params.rbi @@ -18,11 +18,14 @@ module OpenAI # The model to use for image generation. Only `dall-e-2` is supported at this # time. - sig { returns(T.nilable(T.any(String, Symbol))) } + sig { returns(T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol))) } def model end - sig { params(_: T.nilable(T.any(String, Symbol))).returns(T.nilable(T.any(String, Symbol))) } + sig do + params(_: T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol))) + .returns(T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol))) + end def model=(_) end @@ -39,21 +42,27 @@ module OpenAI # The format in which the generated images are returned. Must be one of `url` or # `b64_json`. URLs are only valid for 60 minutes after the image has been # generated. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::ImageCreateVariationParams::ResponseFormat::OrSymbol)) } def response_format end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::ImageCreateVariationParams::ResponseFormat::OrSymbol)) + .returns(T.nilable(OpenAI::Models::ImageCreateVariationParams::ResponseFormat::OrSymbol)) + end def response_format=(_) end # The size of the generated images. Must be one of `256x256`, `512x512`, or # `1024x1024`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::ImageCreateVariationParams::Size::OrSymbol)) } def size end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::ImageCreateVariationParams::Size::OrSymbol)) + .returns(T.nilable(OpenAI::Models::ImageCreateVariationParams::Size::OrSymbol)) + end def size=(_) end @@ -71,10 +80,10 @@ module OpenAI sig do params( image: T.any(IO, StringIO), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol)), n: T.nilable(Integer), - response_format: T.nilable(Symbol), - size: T.nilable(Symbol), + response_format: T.nilable(OpenAI::Models::ImageCreateVariationParams::ResponseFormat::OrSymbol), + size: T.nilable(OpenAI::Models::ImageCreateVariationParams::Size::OrSymbol), user: String, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) @@ -88,10 +97,10 @@ module OpenAI .returns( { image: T.any(IO, StringIO), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol)), n: T.nilable(Integer), - response_format: T.nilable(Symbol), - size: T.nilable(Symbol), + response_format: T.nilable(OpenAI::Models::ImageCreateVariationParams::ResponseFormat::OrSymbol), + size: T.nilable(OpenAI::Models::ImageCreateVariationParams::Size::OrSymbol), user: String, request_options: OpenAI::RequestOptions } @@ -102,34 +111,37 @@ module OpenAI # The model to use for image generation. Only `dall-e-2` is supported at this # time. - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = type_template(:out) { {fixed: T.any(String, OpenAI::Models::ImageModel::OrSymbol)} } end # The format in which the generated images are returned. Must be one of `url` or # `b64_json`. URLs are only valid for 60 minutes after the image has been # generated. - class ResponseFormat < OpenAI::Enum - abstract! + module ResponseFormat + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ImageCreateVariationParams::ResponseFormat) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::ImageCreateVariationParams::ResponseFormat::TaggedSymbol) } - URL = :url - B64_JSON = :b64_json + URL = T.let(:url, OpenAI::Models::ImageCreateVariationParams::ResponseFormat::OrSymbol) + B64_JSON = T.let(:b64_json, OpenAI::Models::ImageCreateVariationParams::ResponseFormat::OrSymbol) end # The size of the generated images. Must be one of `256x256`, `512x512`, or # `1024x1024`. - class Size < OpenAI::Enum - abstract! + module Size + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ImageCreateVariationParams::Size) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::ImageCreateVariationParams::Size::TaggedSymbol) } - NUMBER_256X256 = :"256x256" - NUMBER_512X512 = :"512x512" - NUMBER_1024X1024 = :"1024x1024" + NUMBER_256X256 = T.let(:"256x256", OpenAI::Models::ImageCreateVariationParams::Size::OrSymbol) + NUMBER_512X512 = T.let(:"512x512", OpenAI::Models::ImageCreateVariationParams::Size::OrSymbol) + NUMBER_1024X1024 = T.let(:"1024x1024", OpenAI::Models::ImageCreateVariationParams::Size::OrSymbol) end end end diff --git a/rbi/lib/openai/models/image_edit_params.rbi b/rbi/lib/openai/models/image_edit_params.rbi index b672e912..02a9dc31 100644 --- a/rbi/lib/openai/models/image_edit_params.rbi +++ b/rbi/lib/openai/models/image_edit_params.rbi @@ -39,11 +39,14 @@ module OpenAI # The model to use for image generation. Only `dall-e-2` is supported at this # time. - sig { returns(T.nilable(T.any(String, Symbol))) } + sig { returns(T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol))) } def model end - sig { params(_: T.nilable(T.any(String, Symbol))).returns(T.nilable(T.any(String, Symbol))) } + sig do + params(_: T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol))) + .returns(T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol))) + end def model=(_) end @@ -59,21 +62,27 @@ module OpenAI # The format in which the generated images are returned. Must be one of `url` or # `b64_json`. URLs are only valid for 60 minutes after the image has been # generated. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::ImageEditParams::ResponseFormat::OrSymbol)) } def response_format end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::ImageEditParams::ResponseFormat::OrSymbol)) + .returns(T.nilable(OpenAI::Models::ImageEditParams::ResponseFormat::OrSymbol)) + end def response_format=(_) end # The size of the generated images. Must be one of `256x256`, `512x512`, or # `1024x1024`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::ImageEditParams::Size::OrSymbol)) } def size end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::ImageEditParams::Size::OrSymbol)) + .returns(T.nilable(OpenAI::Models::ImageEditParams::Size::OrSymbol)) + end def size=(_) end @@ -93,10 +102,10 @@ module OpenAI image: T.any(IO, StringIO), prompt: String, mask: T.any(IO, StringIO), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol)), n: T.nilable(Integer), - response_format: T.nilable(Symbol), - size: T.nilable(Symbol), + response_format: T.nilable(OpenAI::Models::ImageEditParams::ResponseFormat::OrSymbol), + size: T.nilable(OpenAI::Models::ImageEditParams::Size::OrSymbol), user: String, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) @@ -122,10 +131,10 @@ module OpenAI image: T.any(IO, StringIO), prompt: String, mask: T.any(IO, StringIO), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol)), n: T.nilable(Integer), - response_format: T.nilable(Symbol), - size: T.nilable(Symbol), + response_format: T.nilable(OpenAI::Models::ImageEditParams::ResponseFormat::OrSymbol), + size: T.nilable(OpenAI::Models::ImageEditParams::Size::OrSymbol), user: String, request_options: OpenAI::RequestOptions } @@ -136,34 +145,36 @@ module OpenAI # The model to use for image generation. Only `dall-e-2` is supported at this # time. - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = type_template(:out) { {fixed: T.any(String, OpenAI::Models::ImageModel::OrSymbol)} } end # The format in which the generated images are returned. Must be one of `url` or # `b64_json`. URLs are only valid for 60 minutes after the image has been # generated. - class ResponseFormat < OpenAI::Enum - abstract! + module ResponseFormat + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ImageEditParams::ResponseFormat) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::ImageEditParams::ResponseFormat::TaggedSymbol) } - URL = :url - B64_JSON = :b64_json + URL = T.let(:url, OpenAI::Models::ImageEditParams::ResponseFormat::OrSymbol) + B64_JSON = T.let(:b64_json, OpenAI::Models::ImageEditParams::ResponseFormat::OrSymbol) end # The size of the generated images. Must be one of `256x256`, `512x512`, or # `1024x1024`. - class Size < OpenAI::Enum - abstract! + module Size + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ImageEditParams::Size) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::ImageEditParams::Size::TaggedSymbol) } - NUMBER_256X256 = :"256x256" - NUMBER_512X512 = :"512x512" - NUMBER_1024X1024 = :"1024x1024" + NUMBER_256X256 = T.let(:"256x256", OpenAI::Models::ImageEditParams::Size::OrSymbol) + NUMBER_512X512 = T.let(:"512x512", OpenAI::Models::ImageEditParams::Size::OrSymbol) + NUMBER_1024X1024 = T.let(:"1024x1024", OpenAI::Models::ImageEditParams::Size::OrSymbol) end end end diff --git a/rbi/lib/openai/models/image_generate_params.rbi b/rbi/lib/openai/models/image_generate_params.rbi index 7fccc54c..4754ce0e 100644 --- a/rbi/lib/openai/models/image_generate_params.rbi +++ b/rbi/lib/openai/models/image_generate_params.rbi @@ -17,11 +17,14 @@ module OpenAI end # The model to use for image generation. - sig { returns(T.nilable(T.any(String, Symbol))) } + sig { returns(T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol))) } def model end - sig { params(_: T.nilable(T.any(String, Symbol))).returns(T.nilable(T.any(String, Symbol))) } + sig do + params(_: T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol))) + .returns(T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol))) + end def model=(_) end @@ -38,33 +41,42 @@ module OpenAI # The quality of the image that will be generated. `hd` creates images with finer # details and greater consistency across the image. This param is only supported # for `dall-e-3`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::ImageGenerateParams::Quality::OrSymbol)) } def quality end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::ImageGenerateParams::Quality::OrSymbol) + .returns(OpenAI::Models::ImageGenerateParams::Quality::OrSymbol) + end def quality=(_) end # The format in which the generated images are returned. Must be one of `url` or # `b64_json`. URLs are only valid for 60 minutes after the image has been # generated. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::ImageGenerateParams::ResponseFormat::OrSymbol)) } def response_format end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::ImageGenerateParams::ResponseFormat::OrSymbol)) + .returns(T.nilable(OpenAI::Models::ImageGenerateParams::ResponseFormat::OrSymbol)) + end def response_format=(_) end # The size of the generated images. Must be one of `256x256`, `512x512`, or # `1024x1024` for `dall-e-2`. Must be one of `1024x1024`, `1792x1024`, or # `1024x1792` for `dall-e-3` models. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::ImageGenerateParams::Size::OrSymbol)) } def size end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::ImageGenerateParams::Size::OrSymbol)) + .returns(T.nilable(OpenAI::Models::ImageGenerateParams::Size::OrSymbol)) + end def size=(_) end @@ -72,11 +84,14 @@ module OpenAI # causes the model to lean towards generating hyper-real and dramatic images. # Natural causes the model to produce more natural, less hyper-real looking # images. This param is only supported for `dall-e-3`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::ImageGenerateParams::Style::OrSymbol)) } def style end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::ImageGenerateParams::Style::OrSymbol)) + .returns(T.nilable(OpenAI::Models::ImageGenerateParams::Style::OrSymbol)) + end def style=(_) end @@ -94,12 +109,12 @@ module OpenAI sig do params( prompt: String, - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol)), n: T.nilable(Integer), - quality: Symbol, - response_format: T.nilable(Symbol), - size: T.nilable(Symbol), - style: T.nilable(Symbol), + quality: OpenAI::Models::ImageGenerateParams::Quality::OrSymbol, + response_format: T.nilable(OpenAI::Models::ImageGenerateParams::ResponseFormat::OrSymbol), + size: T.nilable(OpenAI::Models::ImageGenerateParams::Size::OrSymbol), + style: T.nilable(OpenAI::Models::ImageGenerateParams::Style::OrSymbol), user: String, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) @@ -123,12 +138,12 @@ module OpenAI .returns( { prompt: String, - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol)), n: T.nilable(Integer), - quality: Symbol, - response_format: T.nilable(Symbol), - size: T.nilable(Symbol), - style: T.nilable(Symbol), + quality: OpenAI::Models::ImageGenerateParams::Quality::OrSymbol, + response_format: T.nilable(OpenAI::Models::ImageGenerateParams::ResponseFormat::OrSymbol), + size: T.nilable(OpenAI::Models::ImageGenerateParams::Size::OrSymbol), + style: T.nilable(OpenAI::Models::ImageGenerateParams::Style::OrSymbol), user: String, request_options: OpenAI::RequestOptions } @@ -138,62 +153,67 @@ module OpenAI end # The model to use for image generation. - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = type_template(:out) { {fixed: T.any(String, OpenAI::Models::ImageModel::OrSymbol)} } end # The quality of the image that will be generated. `hd` creates images with finer # details and greater consistency across the image. This param is only supported # for `dall-e-3`. - class Quality < OpenAI::Enum - abstract! + module Quality + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ImageGenerateParams::Quality) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::ImageGenerateParams::Quality::TaggedSymbol) } - STANDARD = :standard - HD = :hd + STANDARD = T.let(:standard, OpenAI::Models::ImageGenerateParams::Quality::OrSymbol) + HD = T.let(:hd, OpenAI::Models::ImageGenerateParams::Quality::OrSymbol) end # The format in which the generated images are returned. Must be one of `url` or # `b64_json`. URLs are only valid for 60 minutes after the image has been # generated. - class ResponseFormat < OpenAI::Enum - abstract! + module ResponseFormat + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ImageGenerateParams::ResponseFormat) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::ImageGenerateParams::ResponseFormat::TaggedSymbol) } - URL = :url - B64_JSON = :b64_json + URL = T.let(:url, OpenAI::Models::ImageGenerateParams::ResponseFormat::OrSymbol) + B64_JSON = T.let(:b64_json, OpenAI::Models::ImageGenerateParams::ResponseFormat::OrSymbol) end # The size of the generated images. Must be one of `256x256`, `512x512`, or # `1024x1024` for `dall-e-2`. Must be one of `1024x1024`, `1792x1024`, or # `1024x1792` for `dall-e-3` models. - class Size < OpenAI::Enum - abstract! + module Size + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ImageGenerateParams::Size) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::ImageGenerateParams::Size::TaggedSymbol) } - NUMBER_256X256 = :"256x256" - NUMBER_512X512 = :"512x512" - NUMBER_1024X1024 = :"1024x1024" - NUMBER_1792X1024 = :"1792x1024" - NUMBER_1024X1792 = :"1024x1792" + NUMBER_256X256 = T.let(:"256x256", OpenAI::Models::ImageGenerateParams::Size::OrSymbol) + NUMBER_512X512 = T.let(:"512x512", OpenAI::Models::ImageGenerateParams::Size::OrSymbol) + NUMBER_1024X1024 = T.let(:"1024x1024", OpenAI::Models::ImageGenerateParams::Size::OrSymbol) + NUMBER_1792X1024 = T.let(:"1792x1024", OpenAI::Models::ImageGenerateParams::Size::OrSymbol) + NUMBER_1024X1792 = T.let(:"1024x1792", OpenAI::Models::ImageGenerateParams::Size::OrSymbol) end # The style of the generated images. Must be one of `vivid` or `natural`. Vivid # causes the model to lean towards generating hyper-real and dramatic images. # Natural causes the model to produce more natural, less hyper-real looking # images. This param is only supported for `dall-e-3`. - class Style < OpenAI::Enum - abstract! + module Style + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ImageGenerateParams::Style) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::ImageGenerateParams::Style::TaggedSymbol) } - VIVID = :vivid - NATURAL = :natural + VIVID = T.let(:vivid, OpenAI::Models::ImageGenerateParams::Style::OrSymbol) + NATURAL = T.let(:natural, OpenAI::Models::ImageGenerateParams::Style::OrSymbol) end end end diff --git a/rbi/lib/openai/models/image_model.rbi b/rbi/lib/openai/models/image_model.rbi index 6716a390..3cc4d5f4 100644 --- a/rbi/lib/openai/models/image_model.rbi +++ b/rbi/lib/openai/models/image_model.rbi @@ -2,13 +2,14 @@ module OpenAI module Models - class ImageModel < OpenAI::Enum - abstract! + module ImageModel + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ImageModel) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::ImageModel::TaggedSymbol) } - DALL_E_2 = :"dall-e-2" - DALL_E_3 = :"dall-e-3" + DALL_E_2 = T.let(:"dall-e-2", OpenAI::Models::ImageModel::OrSymbol) + DALL_E_3 = T.let(:"dall-e-3", OpenAI::Models::ImageModel::OrSymbol) end end end diff --git a/rbi/lib/openai/models/moderation.rbi b/rbi/lib/openai/models/moderation.rbi index c430dd8a..0ebd7ee8 100644 --- a/rbi/lib/openai/models/moderation.rbi +++ b/rbi/lib/openai/models/moderation.rbi @@ -265,138 +265,193 @@ module OpenAI class CategoryAppliedInputTypes < OpenAI::BaseModel # The applied input type(s) for the category 'harassment'. - sig { returns(T::Array[Symbol]) } + sig { returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Harassment::TaggedSymbol]) } def harassment end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Harassment::TaggedSymbol]) + .returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Harassment::TaggedSymbol]) + end def harassment=(_) end # The applied input type(s) for the category 'harassment/threatening'. - sig { returns(T::Array[Symbol]) } + sig do + returns( + T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::HarassmentThreatening::TaggedSymbol] + ) + end def harassment_threatening end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params( + _: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::HarassmentThreatening::TaggedSymbol] + ) + .returns( + T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::HarassmentThreatening::TaggedSymbol] + ) + end def harassment_threatening=(_) end # The applied input type(s) for the category 'hate'. - sig { returns(T::Array[Symbol]) } + sig { returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Hate::TaggedSymbol]) } def hate end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Hate::TaggedSymbol]) + .returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Hate::TaggedSymbol]) + end def hate=(_) end # The applied input type(s) for the category 'hate/threatening'. - sig { returns(T::Array[Symbol]) } + sig { returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::HateThreatening::TaggedSymbol]) } def hate_threatening end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::HateThreatening::TaggedSymbol]) + .returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::HateThreatening::TaggedSymbol]) + end def hate_threatening=(_) end # The applied input type(s) for the category 'illicit'. - sig { returns(T::Array[Symbol]) } + sig { returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Illicit::TaggedSymbol]) } def illicit end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Illicit::TaggedSymbol]) + .returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Illicit::TaggedSymbol]) + end def illicit=(_) end # The applied input type(s) for the category 'illicit/violent'. - sig { returns(T::Array[Symbol]) } + sig { returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::IllicitViolent::TaggedSymbol]) } def illicit_violent end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::IllicitViolent::TaggedSymbol]) + .returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::IllicitViolent::TaggedSymbol]) + end def illicit_violent=(_) end # The applied input type(s) for the category 'self-harm'. - sig { returns(T::Array[Symbol]) } + sig { returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarm::TaggedSymbol]) } def self_harm end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarm::TaggedSymbol]) + .returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarm::TaggedSymbol]) + end def self_harm=(_) end # The applied input type(s) for the category 'self-harm/instructions'. - sig { returns(T::Array[Symbol]) } + sig do + returns( + T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmInstruction::TaggedSymbol] + ) + end def self_harm_instructions end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params( + _: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmInstruction::TaggedSymbol] + ) + .returns( + T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmInstruction::TaggedSymbol] + ) + end def self_harm_instructions=(_) end # The applied input type(s) for the category 'self-harm/intent'. - sig { returns(T::Array[Symbol]) } + sig { returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmIntent::TaggedSymbol]) } def self_harm_intent end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmIntent::TaggedSymbol]) + .returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmIntent::TaggedSymbol]) + end def self_harm_intent=(_) end # The applied input type(s) for the category 'sexual'. - sig { returns(T::Array[Symbol]) } + sig { returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Sexual::TaggedSymbol]) } def sexual end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Sexual::TaggedSymbol]) + .returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Sexual::TaggedSymbol]) + end def sexual=(_) end # The applied input type(s) for the category 'sexual/minors'. - sig { returns(T::Array[Symbol]) } + sig { returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SexualMinor::TaggedSymbol]) } def sexual_minors end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SexualMinor::TaggedSymbol]) + .returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SexualMinor::TaggedSymbol]) + end def sexual_minors=(_) end # The applied input type(s) for the category 'violence'. - sig { returns(T::Array[Symbol]) } + sig { returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Violence::TaggedSymbol]) } def violence end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Violence::TaggedSymbol]) + .returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Violence::TaggedSymbol]) + end def violence=(_) end # The applied input type(s) for the category 'violence/graphic'. - sig { returns(T::Array[Symbol]) } + sig { returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::ViolenceGraphic::TaggedSymbol]) } def violence_graphic end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::ViolenceGraphic::TaggedSymbol]) + .returns(T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::ViolenceGraphic::TaggedSymbol]) + end def violence_graphic=(_) end # A list of the categories along with the input type(s) that the score applies to. sig do params( - harassment: T::Array[Symbol], - harassment_threatening: T::Array[Symbol], - hate: T::Array[Symbol], - hate_threatening: T::Array[Symbol], - illicit: T::Array[Symbol], - illicit_violent: T::Array[Symbol], - self_harm: T::Array[Symbol], - self_harm_instructions: T::Array[Symbol], - self_harm_intent: T::Array[Symbol], - sexual: T::Array[Symbol], - sexual_minors: T::Array[Symbol], - violence: T::Array[Symbol], - violence_graphic: T::Array[Symbol] + harassment: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Harassment::TaggedSymbol], + harassment_threatening: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::HarassmentThreatening::TaggedSymbol], + hate: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Hate::TaggedSymbol], + hate_threatening: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::HateThreatening::TaggedSymbol], + illicit: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Illicit::TaggedSymbol], + illicit_violent: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::IllicitViolent::TaggedSymbol], + self_harm: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarm::TaggedSymbol], + self_harm_instructions: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmInstruction::TaggedSymbol], + self_harm_intent: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmIntent::TaggedSymbol], + sexual: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Sexual::TaggedSymbol], + sexual_minors: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SexualMinor::TaggedSymbol], + violence: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Violence::TaggedSymbol], + violence_graphic: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::ViolenceGraphic::TaggedSymbol] ) .returns(T.attached_class) end @@ -421,133 +476,177 @@ module OpenAI override .returns( { - harassment: T::Array[Symbol], - harassment_threatening: T::Array[Symbol], - hate: T::Array[Symbol], - hate_threatening: T::Array[Symbol], - illicit: T::Array[Symbol], - illicit_violent: T::Array[Symbol], - self_harm: T::Array[Symbol], - self_harm_instructions: T::Array[Symbol], - self_harm_intent: T::Array[Symbol], - sexual: T::Array[Symbol], - sexual_minors: T::Array[Symbol], - violence: T::Array[Symbol], - violence_graphic: T::Array[Symbol] + harassment: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Harassment::TaggedSymbol], + harassment_threatening: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::HarassmentThreatening::TaggedSymbol], + hate: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Hate::TaggedSymbol], + hate_threatening: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::HateThreatening::TaggedSymbol], + illicit: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Illicit::TaggedSymbol], + illicit_violent: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::IllicitViolent::TaggedSymbol], + self_harm: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarm::TaggedSymbol], + self_harm_instructions: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmInstruction::TaggedSymbol], + self_harm_intent: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmIntent::TaggedSymbol], + sexual: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Sexual::TaggedSymbol], + sexual_minors: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::SexualMinor::TaggedSymbol], + violence: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::Violence::TaggedSymbol], + violence_graphic: T::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::ViolenceGraphic::TaggedSymbol] } ) end def to_hash end - class Harassment < OpenAI::Enum - abstract! + module Harassment + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Harassment) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Harassment::TaggedSymbol) } - TEXT = :text + TEXT = T.let(:text, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Harassment::TaggedSymbol) end - class HarassmentThreatening < OpenAI::Enum - abstract! + module HarassmentThreatening + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::HarassmentThreatening) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::HarassmentThreatening::TaggedSymbol) } - TEXT = :text + TEXT = + T.let(:text, OpenAI::Models::Moderation::CategoryAppliedInputTypes::HarassmentThreatening::TaggedSymbol) end - class Hate < OpenAI::Enum - abstract! + module Hate + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Hate) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Hate::TaggedSymbol) } - TEXT = :text + TEXT = T.let(:text, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Hate::TaggedSymbol) end - class HateThreatening < OpenAI::Enum - abstract! + module HateThreatening + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::HateThreatening) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::HateThreatening::TaggedSymbol) } - TEXT = :text + TEXT = T.let(:text, OpenAI::Models::Moderation::CategoryAppliedInputTypes::HateThreatening::TaggedSymbol) end - class Illicit < OpenAI::Enum - abstract! + module Illicit + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Illicit) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Illicit::TaggedSymbol) } - TEXT = :text + TEXT = T.let(:text, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Illicit::TaggedSymbol) end - class IllicitViolent < OpenAI::Enum - abstract! + module IllicitViolent + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::IllicitViolent) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::IllicitViolent::TaggedSymbol) } - TEXT = :text + TEXT = T.let(:text, OpenAI::Models::Moderation::CategoryAppliedInputTypes::IllicitViolent::TaggedSymbol) end - class SelfHarm < OpenAI::Enum - abstract! + module SelfHarm + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarm) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarm::TaggedSymbol) } - TEXT = :text - IMAGE = :image + TEXT = T.let(:text, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarm::TaggedSymbol) + IMAGE = T.let(:image, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarm::TaggedSymbol) end - class SelfHarmInstruction < OpenAI::Enum - abstract! + module SelfHarmInstruction + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmInstruction) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmInstruction::TaggedSymbol) } - TEXT = :text - IMAGE = :image + TEXT = + T.let(:text, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmInstruction::TaggedSymbol) + IMAGE = + T.let(:image, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmInstruction::TaggedSymbol) end - class SelfHarmIntent < OpenAI::Enum - abstract! + module SelfHarmIntent + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmIntent) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmIntent::TaggedSymbol) } - TEXT = :text - IMAGE = :image + TEXT = T.let(:text, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmIntent::TaggedSymbol) + IMAGE = + T.let(:image, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SelfHarmIntent::TaggedSymbol) end - class Sexual < OpenAI::Enum - abstract! + module Sexual + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Sexual) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Sexual::TaggedSymbol) } - TEXT = :text - IMAGE = :image + TEXT = T.let(:text, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Sexual::TaggedSymbol) + IMAGE = T.let(:image, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Sexual::TaggedSymbol) end - class SexualMinor < OpenAI::Enum - abstract! + module SexualMinor + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SexualMinor) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SexualMinor::TaggedSymbol) } - TEXT = :text + TEXT = T.let(:text, OpenAI::Models::Moderation::CategoryAppliedInputTypes::SexualMinor::TaggedSymbol) end - class Violence < OpenAI::Enum - abstract! + module Violence + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Violence) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Violence::TaggedSymbol) } - TEXT = :text - IMAGE = :image + TEXT = T.let(:text, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Violence::TaggedSymbol) + IMAGE = T.let(:image, OpenAI::Models::Moderation::CategoryAppliedInputTypes::Violence::TaggedSymbol) end - class ViolenceGraphic < OpenAI::Enum - abstract! + module ViolenceGraphic + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::ViolenceGraphic) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Moderation::CategoryAppliedInputTypes::ViolenceGraphic::TaggedSymbol) } - TEXT = :text - IMAGE = :image + TEXT = T.let(:text, OpenAI::Models::Moderation::CategoryAppliedInputTypes::ViolenceGraphic::TaggedSymbol) + IMAGE = + T.let(:image, OpenAI::Models::Moderation::CategoryAppliedInputTypes::ViolenceGraphic::TaggedSymbol) end end diff --git a/rbi/lib/openai/models/moderation_create_params.rbi b/rbi/lib/openai/models/moderation_create_params.rbi index 3a7a01a9..a23b68a0 100644 --- a/rbi/lib/openai/models/moderation_create_params.rbi +++ b/rbi/lib/openai/models/moderation_create_params.rbi @@ -43,11 +43,14 @@ module OpenAI # [the moderation guide](https://platform.openai.com/docs/guides/moderation), and # learn about available models # [here](https://platform.openai.com/docs/models#moderation). - sig { returns(T.nilable(T.any(String, Symbol))) } + sig { returns(T.nilable(T.any(String, OpenAI::Models::ModerationModel::OrSymbol))) } def model end - sig { params(_: T.any(String, Symbol)).returns(T.any(String, Symbol)) } + sig do + params(_: T.any(String, OpenAI::Models::ModerationModel::OrSymbol)) + .returns(T.any(String, OpenAI::Models::ModerationModel::OrSymbol)) + end def model=(_) end @@ -58,7 +61,7 @@ module OpenAI T::Array[String], T::Array[T.any(OpenAI::Models::ModerationImageURLInput, OpenAI::Models::ModerationTextInput)] ), - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::ModerationModel::OrSymbol), request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -75,7 +78,7 @@ module OpenAI T::Array[String], T::Array[T.any(OpenAI::Models::ModerationImageURLInput, OpenAI::Models::ModerationTextInput)] ), - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::ModerationModel::OrSymbol), request_options: OpenAI::RequestOptions } ) @@ -85,8 +88,8 @@ module OpenAI # Input (or inputs) to classify. Can be a single string, an array of strings, or # an array of multi-modal input objects similar to other models. - class Input < OpenAI::Union - abstract! + module Input + extend OpenAI::Union Variants = type_template(:out) do @@ -109,10 +112,10 @@ module OpenAI # [the moderation guide](https://platform.openai.com/docs/guides/moderation), and # learn about available models # [here](https://platform.openai.com/docs/models#moderation). - class Model < OpenAI::Union - abstract! + module Model + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = type_template(:out) { {fixed: T.any(String, OpenAI::Models::ModerationModel::OrSymbol)} } end end end diff --git a/rbi/lib/openai/models/moderation_model.rbi b/rbi/lib/openai/models/moderation_model.rbi index a34a1f36..a08f4a80 100644 --- a/rbi/lib/openai/models/moderation_model.rbi +++ b/rbi/lib/openai/models/moderation_model.rbi @@ -2,15 +2,17 @@ module OpenAI module Models - class ModerationModel < OpenAI::Enum - abstract! + module ModerationModel + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ModerationModel) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::ModerationModel::TaggedSymbol) } - OMNI_MODERATION_LATEST = :"omni-moderation-latest" - OMNI_MODERATION_2024_09_26 = :"omni-moderation-2024-09-26" - TEXT_MODERATION_LATEST = :"text-moderation-latest" - TEXT_MODERATION_STABLE = :"text-moderation-stable" + OMNI_MODERATION_LATEST = T.let(:"omni-moderation-latest", OpenAI::Models::ModerationModel::OrSymbol) + OMNI_MODERATION_2024_09_26 = + T.let(:"omni-moderation-2024-09-26", OpenAI::Models::ModerationModel::OrSymbol) + TEXT_MODERATION_LATEST = T.let(:"text-moderation-latest", OpenAI::Models::ModerationModel::OrSymbol) + TEXT_MODERATION_STABLE = T.let(:"text-moderation-stable", OpenAI::Models::ModerationModel::OrSymbol) end end end diff --git a/rbi/lib/openai/models/moderation_multi_modal_input.rbi b/rbi/lib/openai/models/moderation_multi_modal_input.rbi index 861ae45d..705b6af9 100644 --- a/rbi/lib/openai/models/moderation_multi_modal_input.rbi +++ b/rbi/lib/openai/models/moderation_multi_modal_input.rbi @@ -3,8 +3,8 @@ module OpenAI module Models # An object describing an image to classify. - class ModerationMultiModalInput < OpenAI::Union - abstract! + module ModerationMultiModalInput + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(OpenAI::Models::ModerationImageURLInput, OpenAI::Models::ModerationTextInput)} } diff --git a/rbi/lib/openai/models/reasoning.rbi b/rbi/lib/openai/models/reasoning.rbi index 38290949..909f27d4 100644 --- a/rbi/lib/openai/models/reasoning.rbi +++ b/rbi/lib/openai/models/reasoning.rbi @@ -9,11 +9,14 @@ module OpenAI # [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently # supported values are `low`, `medium`, and `high`. Reducing reasoning effort can # result in faster responses and fewer tokens used on reasoning in a response. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) } def effort end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) + .returns(T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol)) + end def effort=(_) end @@ -22,11 +25,14 @@ module OpenAI # A summary of the reasoning performed by the model. This can be useful for # debugging and understanding the model's reasoning process. One of `concise` or # `detailed`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Reasoning::GenerateSummary::OrSymbol)) } def generate_summary end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::Reasoning::GenerateSummary::OrSymbol)) + .returns(T.nilable(OpenAI::Models::Reasoning::GenerateSummary::OrSymbol)) + end def generate_summary=(_) end @@ -34,11 +40,25 @@ module OpenAI # # Configuration options for # [reasoning models](https://platform.openai.com/docs/guides/reasoning). - sig { params(effort: T.nilable(Symbol), generate_summary: T.nilable(Symbol)).returns(T.attached_class) } + sig do + params( + effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), + generate_summary: T.nilable(OpenAI::Models::Reasoning::GenerateSummary::OrSymbol) + ) + .returns(T.attached_class) + end def self.new(effort: nil, generate_summary: nil) end - sig { override.returns({effort: T.nilable(Symbol), generate_summary: T.nilable(Symbol)}) } + sig do + override + .returns( + { + effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), + generate_summary: T.nilable(OpenAI::Models::Reasoning::GenerateSummary::OrSymbol) + } + ) + end def to_hash end @@ -47,13 +67,14 @@ module OpenAI # A summary of the reasoning performed by the model. This can be useful for # debugging and understanding the model's reasoning process. One of `concise` or # `detailed`. - class GenerateSummary < OpenAI::Enum - abstract! + module GenerateSummary + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Reasoning::GenerateSummary) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Reasoning::GenerateSummary::TaggedSymbol) } - CONCISE = :concise - DETAILED = :detailed + CONCISE = T.let(:concise, OpenAI::Models::Reasoning::GenerateSummary::OrSymbol) + DETAILED = T.let(:detailed, OpenAI::Models::Reasoning::GenerateSummary::OrSymbol) end end end diff --git a/rbi/lib/openai/models/reasoning_effort.rbi b/rbi/lib/openai/models/reasoning_effort.rbi index dcca18c9..2cf29ee5 100644 --- a/rbi/lib/openai/models/reasoning_effort.rbi +++ b/rbi/lib/openai/models/reasoning_effort.rbi @@ -8,14 +8,15 @@ module OpenAI # [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently # supported values are `low`, `medium`, and `high`. Reducing reasoning effort can # result in faster responses and fewer tokens used on reasoning in a response. - class ReasoningEffort < OpenAI::Enum - abstract! + module ReasoningEffort + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ReasoningEffort) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::ReasoningEffort::TaggedSymbol) } - LOW = :low - MEDIUM = :medium - HIGH = :high + LOW = T.let(:low, OpenAI::Models::ReasoningEffort::OrSymbol) + MEDIUM = T.let(:medium, OpenAI::Models::ReasoningEffort::OrSymbol) + HIGH = T.let(:high, OpenAI::Models::ReasoningEffort::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/computer_tool.rbi b/rbi/lib/openai/models/responses/computer_tool.rbi index 40b9918f..638039d3 100644 --- a/rbi/lib/openai/models/responses/computer_tool.rbi +++ b/rbi/lib/openai/models/responses/computer_tool.rbi @@ -23,11 +23,14 @@ module OpenAI end # The type of computer environment to control. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ComputerTool::Environment::OrSymbol) } def environment end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ComputerTool::Environment::OrSymbol) + .returns(OpenAI::Models::Responses::ComputerTool::Environment::OrSymbol) + end def environment=(_) end @@ -43,28 +46,43 @@ module OpenAI # A tool that controls a virtual computer. Learn more about the # [computer tool](https://platform.openai.com/docs/guides/tools-computer-use). sig do - params(display_height: Float, display_width: Float, environment: Symbol, type: Symbol) + params( + display_height: Float, + display_width: Float, + environment: OpenAI::Models::Responses::ComputerTool::Environment::OrSymbol, + type: Symbol + ) .returns(T.attached_class) end def self.new(display_height:, display_width:, environment:, type: :computer_use_preview) end sig do - override.returns({display_height: Float, display_width: Float, environment: Symbol, type: Symbol}) + override + .returns( + { + display_height: Float, + display_width: Float, + environment: OpenAI::Models::Responses::ComputerTool::Environment::OrSymbol, + type: Symbol + } + ) end def to_hash end # The type of computer environment to control. - class Environment < OpenAI::Enum - abstract! + module Environment + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ComputerTool::Environment) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ComputerTool::Environment::TaggedSymbol) } - MAC = :mac - WINDOWS = :windows - UBUNTU = :ubuntu - BROWSER = :browser + MAC = T.let(:mac, OpenAI::Models::Responses::ComputerTool::Environment::OrSymbol) + WINDOWS = T.let(:windows, OpenAI::Models::Responses::ComputerTool::Environment::OrSymbol) + UBUNTU = T.let(:ubuntu, OpenAI::Models::Responses::ComputerTool::Environment::OrSymbol) + BROWSER = T.let(:browser, OpenAI::Models::Responses::ComputerTool::Environment::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/easy_input_message.rbi b/rbi/lib/openai/models/responses/easy_input_message.rbi index 5b3386f8..42bb10de 100644 --- a/rbi/lib/openai/models/responses/easy_input_message.rbi +++ b/rbi/lib/openai/models/responses/easy_input_message.rbi @@ -54,20 +54,26 @@ module OpenAI # The role of the message input. One of `user`, `assistant`, `system`, or # `developer`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::EasyInputMessage::Role::OrSymbol) } def role end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::EasyInputMessage::Role::OrSymbol) + .returns(OpenAI::Models::Responses::EasyInputMessage::Role::OrSymbol) + end def role=(_) end # The type of the message input. Always `message`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::EasyInputMessage::Type::OrSymbol)) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::EasyInputMessage::Type::OrSymbol) + .returns(OpenAI::Models::Responses::EasyInputMessage::Type::OrSymbol) + end def type=(_) end @@ -88,8 +94,8 @@ module OpenAI ) ] ), - role: Symbol, - type: Symbol + role: OpenAI::Models::Responses::EasyInputMessage::Role::OrSymbol, + type: OpenAI::Models::Responses::EasyInputMessage::Type::OrSymbol ) .returns(T.attached_class) end @@ -110,8 +116,8 @@ module OpenAI ) ] ), - role: Symbol, - type: Symbol + role: OpenAI::Models::Responses::EasyInputMessage::Role::OrSymbol, + type: OpenAI::Models::Responses::EasyInputMessage::Type::OrSymbol } ) end @@ -120,8 +126,8 @@ module OpenAI # Text, image, or audio input to the model, used to generate a response. Can also # contain previous assistant responses. - class Content < OpenAI::Union - abstract! + module Content + extend OpenAI::Union Variants = type_template(:out) do @@ -142,24 +148,28 @@ module OpenAI # The role of the message input. One of `user`, `assistant`, `system`, or # `developer`. - class Role < OpenAI::Enum - abstract! + module Role + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::EasyInputMessage::Role) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::EasyInputMessage::Role::TaggedSymbol) } - USER = :user - ASSISTANT = :assistant - SYSTEM = :system - DEVELOPER = :developer + USER = T.let(:user, OpenAI::Models::Responses::EasyInputMessage::Role::OrSymbol) + ASSISTANT = T.let(:assistant, OpenAI::Models::Responses::EasyInputMessage::Role::OrSymbol) + SYSTEM = T.let(:system, OpenAI::Models::Responses::EasyInputMessage::Role::OrSymbol) + DEVELOPER = T.let(:developer, OpenAI::Models::Responses::EasyInputMessage::Role::OrSymbol) end # The type of the message input. Always `message`. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::EasyInputMessage::Type) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::EasyInputMessage::Type::TaggedSymbol) } - MESSAGE = :message + MESSAGE = T.let(:message, OpenAI::Models::Responses::EasyInputMessage::Type::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/file_search_tool.rbi b/rbi/lib/openai/models/responses/file_search_tool.rbi index 4085e59c..71be889d 100644 --- a/rbi/lib/openai/models/responses/file_search_tool.rbi +++ b/rbi/lib/openai/models/responses/file_search_tool.rbi @@ -88,8 +88,8 @@ module OpenAI end # A filter to apply based on file attributes. - class Filters < OpenAI::Union - abstract! + module Filters + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(OpenAI::Models::ComparisonFilter, OpenAI::Models::CompoundFilter)} } @@ -97,11 +97,14 @@ module OpenAI class RankingOptions < OpenAI::BaseModel # The ranker to use for the file search. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::FileSearchTool::RankingOptions::Ranker::OrSymbol)) } def ranker end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::FileSearchTool::RankingOptions::Ranker::OrSymbol) + .returns(OpenAI::Models::Responses::FileSearchTool::RankingOptions::Ranker::OrSymbol) + end def ranker=(_) end @@ -117,22 +120,37 @@ module OpenAI end # Ranking options for search. - sig { params(ranker: Symbol, score_threshold: Float).returns(T.attached_class) } + sig do + params( + ranker: OpenAI::Models::Responses::FileSearchTool::RankingOptions::Ranker::OrSymbol, + score_threshold: Float + ) + .returns(T.attached_class) + end def self.new(ranker: nil, score_threshold: nil) end - sig { override.returns({ranker: Symbol, score_threshold: Float}) } + sig do + override + .returns( + {ranker: OpenAI::Models::Responses::FileSearchTool::RankingOptions::Ranker::OrSymbol, score_threshold: Float} + ) + end def to_hash end # The ranker to use for the file search. - class Ranker < OpenAI::Enum - abstract! + module Ranker + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::FileSearchTool::RankingOptions::Ranker) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::FileSearchTool::RankingOptions::Ranker::TaggedSymbol) } - AUTO = :auto - DEFAULT_2024_11_15 = :"default-2024-11-15" + AUTO = T.let(:auto, OpenAI::Models::Responses::FileSearchTool::RankingOptions::Ranker::OrSymbol) + DEFAULT_2024_11_15 = + T.let(:"default-2024-11-15", OpenAI::Models::Responses::FileSearchTool::RankingOptions::Ranker::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/input_item_list_params.rbi b/rbi/lib/openai/models/responses/input_item_list_params.rbi index 1162dc6a..dfee9da7 100644 --- a/rbi/lib/openai/models/responses/input_item_list_params.rbi +++ b/rbi/lib/openai/models/responses/input_item_list_params.rbi @@ -39,11 +39,14 @@ module OpenAI # # - `asc`: Return the input items in ascending order. # - `desc`: Return the input items in descending order. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::InputItemListParams::Order::OrSymbol)) } def order end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::InputItemListParams::Order::OrSymbol) + .returns(OpenAI::Models::Responses::InputItemListParams::Order::OrSymbol) + end def order=(_) end @@ -52,7 +55,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Responses::InputItemListParams::Order::OrSymbol, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -67,7 +70,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Responses::InputItemListParams::Order::OrSymbol, request_options: OpenAI::RequestOptions } ) @@ -79,13 +82,15 @@ module OpenAI # # - `asc`: Return the input items in ascending order. # - `desc`: Return the input items in descending order. - class Order < OpenAI::Enum - abstract! + module Order + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::InputItemListParams::Order) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::InputItemListParams::Order::TaggedSymbol) } - ASC = :asc - DESC = :desc + ASC = T.let(:asc, OpenAI::Models::Responses::InputItemListParams::Order::OrSymbol) + DESC = T.let(:desc, OpenAI::Models::Responses::InputItemListParams::Order::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response.rbi b/rbi/lib/openai/models/responses/response.rbi index 29aba874..e785499b 100644 --- a/rbi/lib/openai/models/responses/response.rbi +++ b/rbi/lib/openai/models/responses/response.rbi @@ -79,11 +79,34 @@ module OpenAI # and price points. Refer to the # [model guide](https://platform.openai.com/docs/models) to browse and compare # available models. - sig { returns(T.any(String, Symbol)) } + sig do + returns( + T.any( + String, + OpenAI::Models::ChatModel::TaggedSymbol, + OpenAI::Models::ResponsesModel::UnionMember2::TaggedSymbol + ) + ) + end def model end - sig { params(_: T.any(String, Symbol)).returns(T.any(String, Symbol)) } + sig do + params( + _: T.any( + String, + OpenAI::Models::ChatModel::TaggedSymbol, + OpenAI::Models::ResponsesModel::UnionMember2::TaggedSymbol + ) + ) + .returns( + T.any( + String, + OpenAI::Models::ChatModel::TaggedSymbol, + OpenAI::Models::ResponsesModel::UnionMember2::TaggedSymbol + ) + ) + end def model=(_) end @@ -175,7 +198,11 @@ module OpenAI # can call. sig do returns( - T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction) + T.any( + OpenAI::Models::Responses::ToolChoiceOptions::TaggedSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ) ) end def tool_choice @@ -183,10 +210,18 @@ module OpenAI sig do params( - _: T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction) + _: T.any( + OpenAI::Models::Responses::ToolChoiceOptions::TaggedSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ) ) .returns( - T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction) + T.any( + OpenAI::Models::Responses::ToolChoiceOptions::TaggedSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ) ) end def tool_choice=(_) @@ -295,11 +330,14 @@ module OpenAI # The status of the response generation. One of `completed`, `failed`, # `in_progress`, or `incomplete`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::ResponseStatus::TaggedSymbol)) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseStatus::TaggedSymbol) + .returns(OpenAI::Models::Responses::ResponseStatus::TaggedSymbol) + end def status=(_) end @@ -326,11 +364,14 @@ module OpenAI # window by dropping input items in the middle of the conversation. # - `disabled` (default): If a model response will exceed the context window size # for a model, the request will fail with a 400 error. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::Response::Truncation::TaggedSymbol)) } def truncation end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::Responses::Response::Truncation::TaggedSymbol)) + .returns(T.nilable(OpenAI::Models::Responses::Response::Truncation::TaggedSymbol)) + end def truncation=(_) end @@ -363,7 +404,11 @@ module OpenAI incomplete_details: T.nilable(OpenAI::Models::Responses::Response::IncompleteDetails), instructions: T.nilable(String), metadata: T.nilable(T::Hash[Symbol, String]), - model: T.any(String, Symbol), + model: T.any( + String, + OpenAI::Models::ChatModel::TaggedSymbol, + OpenAI::Models::ResponsesModel::UnionMember2::TaggedSymbol + ), output: T::Array[ T.any( OpenAI::Models::Responses::ResponseOutputMessage, @@ -376,7 +421,11 @@ module OpenAI ], parallel_tool_calls: T::Boolean, temperature: T.nilable(Float), - tool_choice: T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction), + tool_choice: T.any( + OpenAI::Models::Responses::ToolChoiceOptions::TaggedSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ), tools: T::Array[ T.any( OpenAI::Models::Responses::FileSearchTool, @@ -389,9 +438,9 @@ module OpenAI max_output_tokens: T.nilable(Integer), previous_response_id: T.nilable(String), reasoning: T.nilable(OpenAI::Models::Reasoning), - status: Symbol, + status: OpenAI::Models::Responses::ResponseStatus::TaggedSymbol, text: OpenAI::Models::Responses::ResponseTextConfig, - truncation: T.nilable(Symbol), + truncation: T.nilable(OpenAI::Models::Responses::Response::Truncation::TaggedSymbol), usage: OpenAI::Models::Responses::ResponseUsage, user: String, object: Symbol @@ -434,7 +483,11 @@ module OpenAI incomplete_details: T.nilable(OpenAI::Models::Responses::Response::IncompleteDetails), instructions: T.nilable(String), metadata: T.nilable(T::Hash[Symbol, String]), - model: T.any(String, Symbol), + model: T.any( + String, + OpenAI::Models::ChatModel::TaggedSymbol, + OpenAI::Models::ResponsesModel::UnionMember2::TaggedSymbol + ), object: Symbol, output: T::Array[ T.any( @@ -448,7 +501,11 @@ module OpenAI ], parallel_tool_calls: T::Boolean, temperature: T.nilable(Float), - tool_choice: T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction), + tool_choice: T.any( + OpenAI::Models::Responses::ToolChoiceOptions::TaggedSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ), tools: T::Array[ T.any( OpenAI::Models::Responses::FileSearchTool, @@ -461,9 +518,9 @@ module OpenAI max_output_tokens: T.nilable(Integer), previous_response_id: T.nilable(String), reasoning: T.nilable(OpenAI::Models::Reasoning), - status: Symbol, + status: OpenAI::Models::Responses::ResponseStatus::TaggedSymbol, text: OpenAI::Models::Responses::ResponseTextConfig, - truncation: T.nilable(Symbol), + truncation: T.nilable(OpenAI::Models::Responses::Response::Truncation::TaggedSymbol), usage: OpenAI::Models::Responses::ResponseUsage, user: String } @@ -474,44 +531,59 @@ module OpenAI class IncompleteDetails < OpenAI::BaseModel # The reason why the response is incomplete. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::Response::IncompleteDetails::Reason::TaggedSymbol)) } def reason end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::Response::IncompleteDetails::Reason::TaggedSymbol) + .returns(OpenAI::Models::Responses::Response::IncompleteDetails::Reason::TaggedSymbol) + end def reason=(_) end # Details about why the response is incomplete. - sig { params(reason: Symbol).returns(T.attached_class) } + sig do + params(reason: OpenAI::Models::Responses::Response::IncompleteDetails::Reason::TaggedSymbol) + .returns(T.attached_class) + end def self.new(reason: nil) end - sig { override.returns({reason: Symbol}) } + sig { override.returns({reason: OpenAI::Models::Responses::Response::IncompleteDetails::Reason::TaggedSymbol}) } def to_hash end # The reason why the response is incomplete. - class Reason < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - MAX_OUTPUT_TOKENS = :max_output_tokens - CONTENT_FILTER = :content_filter + module Reason + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::Response::IncompleteDetails::Reason) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::Response::IncompleteDetails::Reason::TaggedSymbol) } + + MAX_OUTPUT_TOKENS = + T.let(:max_output_tokens, OpenAI::Models::Responses::Response::IncompleteDetails::Reason::TaggedSymbol) + CONTENT_FILTER = + T.let(:content_filter, OpenAI::Models::Responses::Response::IncompleteDetails::Reason::TaggedSymbol) end end # How the model should select which tool (or tools) to use when generating a # response. See the `tools` parameter to see how to specify which tools the model # can call. - class ToolChoice < OpenAI::Union - abstract! + module ToolChoice + extend OpenAI::Union Variants = type_template(:out) do { - fixed: T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction) + fixed: T.any( + OpenAI::Models::Responses::ToolChoiceOptions::TaggedSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ) } end end @@ -523,13 +595,14 @@ module OpenAI # window by dropping input items in the middle of the conversation. # - `disabled` (default): If a model response will exceed the context window size # for a model, the request will fail with a 400 error. - class Truncation < OpenAI::Enum - abstract! + module Truncation + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::Response::Truncation) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Responses::Response::Truncation::TaggedSymbol) } - AUTO = :auto - DISABLED = :disabled + AUTO = T.let(:auto, OpenAI::Models::Responses::Response::Truncation::TaggedSymbol) + DISABLED = T.let(:disabled, OpenAI::Models::Responses::Response::Truncation::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_code_interpreter_tool_call.rbi b/rbi/lib/openai/models/responses/response_code_interpreter_tool_call.rbi index 8b5451ff..42fee896 100644 --- a/rbi/lib/openai/models/responses/response_code_interpreter_tool_call.rbi +++ b/rbi/lib/openai/models/responses/response_code_interpreter_tool_call.rbi @@ -58,11 +58,14 @@ module OpenAI end # The status of the code interpreter tool call. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Status::TaggedSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Status::TaggedSymbol) + .returns(OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Status::TaggedSymbol) + end def status=(_) end @@ -86,7 +89,7 @@ module OpenAI OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Result::Files ) ], - status: Symbol, + status: OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Status::TaggedSymbol, type: Symbol ) .returns(T.attached_class) @@ -106,7 +109,7 @@ module OpenAI OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Result::Files ) ], - status: Symbol, + status: OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Status::TaggedSymbol, type: Symbol } ) @@ -115,8 +118,8 @@ module OpenAI end # The output of a code interpreter tool call that is text. - class Result < OpenAI::Union - abstract! + module Result + extend OpenAI::Union Variants = type_template(:out) do @@ -232,14 +235,20 @@ module OpenAI end # The status of the code interpreter tool call. - class Status < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - IN_PROGRESS = :in_progress - INTERPRETING = :interpreting - COMPLETED = :completed + module Status + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Status::TaggedSymbol) } + + IN_PROGRESS = + T.let(:in_progress, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Status::TaggedSymbol) + INTERPRETING = + T.let(:interpreting, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Status::TaggedSymbol) + COMPLETED = + T.let(:completed, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Status::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_computer_tool_call.rbi b/rbi/lib/openai/models/responses/response_computer_tool_call.rbi index c0e726fe..63676938 100644 --- a/rbi/lib/openai/models/responses/response_computer_tool_call.rbi +++ b/rbi/lib/openai/models/responses/response_computer_tool_call.rbi @@ -86,20 +86,26 @@ module OpenAI # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ResponseComputerToolCall::Status::OrSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseComputerToolCall::Status::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseComputerToolCall::Status::OrSymbol) + end def status=(_) end # The type of the computer call. Always `computer_call`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ResponseComputerToolCall::Type::OrSymbol) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseComputerToolCall::Type::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseComputerToolCall::Type::OrSymbol) + end def type=(_) end @@ -122,8 +128,8 @@ module OpenAI ), call_id: String, pending_safety_checks: T::Array[OpenAI::Models::Responses::ResponseComputerToolCall::PendingSafetyCheck], - status: Symbol, - type: Symbol + status: OpenAI::Models::Responses::ResponseComputerToolCall::Status::OrSymbol, + type: OpenAI::Models::Responses::ResponseComputerToolCall::Type::OrSymbol ) .returns(T.attached_class) end @@ -148,8 +154,8 @@ module OpenAI ), call_id: String, pending_safety_checks: T::Array[OpenAI::Models::Responses::ResponseComputerToolCall::PendingSafetyCheck], - status: Symbol, - type: Symbol + status: OpenAI::Models::Responses::ResponseComputerToolCall::Status::OrSymbol, + type: OpenAI::Models::Responses::ResponseComputerToolCall::Type::OrSymbol } ) end @@ -157,8 +163,8 @@ module OpenAI end # A click action. - class Action < OpenAI::Union - abstract! + module Action + extend OpenAI::Union Variants = type_template(:out) do @@ -180,11 +186,14 @@ module OpenAI class Click < OpenAI::BaseModel # Indicates which mouse button was pressed during the click. One of `left`, # `right`, `wheel`, `back`, or `forward`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::Button::OrSymbol) } def button end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::Button::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::Button::OrSymbol) + end def button=(_) end @@ -217,26 +226,50 @@ module OpenAI end # A click action. - sig { params(button: Symbol, x: Integer, y_: Integer, type: Symbol).returns(T.attached_class) } + sig do + params( + button: OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::Button::OrSymbol, + x: Integer, + y_: Integer, + type: Symbol + ) + .returns(T.attached_class) + end def self.new(button:, x:, y_:, type: :click) end - sig { override.returns({button: Symbol, type: Symbol, x: Integer, y_: Integer}) } + sig do + override + .returns( + { + button: OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::Button::OrSymbol, + type: Symbol, + x: Integer, + y_: Integer + } + ) + end def to_hash end # Indicates which mouse button was pressed during the click. One of `left`, # `right`, `wheel`, `back`, or `forward`. - class Button < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - LEFT = :left - RIGHT = :right - WHEEL = :wheel - BACK = :back - FORWARD = :forward + module Button + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::Button) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::Button::TaggedSymbol) } + + LEFT = T.let(:left, OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::Button::OrSymbol) + RIGHT = + T.let(:right, OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::Button::OrSymbol) + WHEEL = + T.let(:wheel, OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::Button::OrSymbol) + BACK = T.let(:back, OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::Button::OrSymbol) + FORWARD = + T.let(:forward, OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::Button::OrSymbol) end end @@ -605,23 +638,29 @@ module OpenAI # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseComputerToolCall::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseComputerToolCall::Status::TaggedSymbol) } - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete + IN_PROGRESS = T.let(:in_progress, OpenAI::Models::Responses::ResponseComputerToolCall::Status::OrSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::Responses::ResponseComputerToolCall::Status::OrSymbol) + INCOMPLETE = T.let(:incomplete, OpenAI::Models::Responses::ResponseComputerToolCall::Status::OrSymbol) end # The type of the computer call. Always `computer_call`. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseComputerToolCall::Type) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseComputerToolCall::Type::TaggedSymbol) } - COMPUTER_CALL = :computer_call + COMPUTER_CALL = + T.let(:computer_call, OpenAI::Models::Responses::ResponseComputerToolCall::Type::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_computer_tool_call_output_item.rbi b/rbi/lib/openai/models/responses/response_computer_tool_call_output_item.rbi index 4e5be0f8..9cdcacd2 100644 --- a/rbi/lib/openai/models/responses/response_computer_tool_call_output_item.rbi +++ b/rbi/lib/openai/models/responses/response_computer_tool_call_output_item.rbi @@ -66,11 +66,14 @@ module OpenAI # The status of the message input. One of `in_progress`, `completed`, or # `incomplete`. Populated when input items are returned via API. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status::TaggedSymbol)) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status::TaggedSymbol) + .returns(OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status::TaggedSymbol) + end def status=(_) end @@ -80,7 +83,7 @@ module OpenAI call_id: String, output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot, acknowledged_safety_checks: T::Array[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck], - status: Symbol, + status: OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status::TaggedSymbol, type: Symbol ) .returns(T.attached_class) @@ -97,7 +100,7 @@ module OpenAI output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot, type: Symbol, acknowledged_safety_checks: T::Array[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck], - status: Symbol + status: OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status::TaggedSymbol } ) end @@ -144,14 +147,20 @@ module OpenAI # The status of the message input. One of `in_progress`, `completed`, or # `incomplete`. Populated when input items are returned via API. - class Status < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete + module Status + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status::TaggedSymbol) } + + IN_PROGRESS = + T.let(:in_progress, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status::TaggedSymbol) + COMPLETED = + T.let(:completed, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status::TaggedSymbol) + INCOMPLETE = + T.let(:incomplete, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_content.rbi b/rbi/lib/openai/models/responses/response_content.rbi index 92cf9df2..0cc16286 100644 --- a/rbi/lib/openai/models/responses/response_content.rbi +++ b/rbi/lib/openai/models/responses/response_content.rbi @@ -4,8 +4,8 @@ module OpenAI module Models module Responses # Multi-modal input and output contents. - class ResponseContent < OpenAI::Union - abstract! + module ResponseContent + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/responses/response_content_part_added_event.rbi b/rbi/lib/openai/models/responses/response_content_part_added_event.rbi index 9e79484e..b040d85c 100644 --- a/rbi/lib/openai/models/responses/response_content_part_added_event.rbi +++ b/rbi/lib/openai/models/responses/response_content_part_added_event.rbi @@ -90,8 +90,8 @@ module OpenAI end # The content part that was added. - class Part < OpenAI::Union - abstract! + module Part + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/responses/response_content_part_done_event.rbi b/rbi/lib/openai/models/responses/response_content_part_done_event.rbi index 5661d776..6f2a4562 100644 --- a/rbi/lib/openai/models/responses/response_content_part_done_event.rbi +++ b/rbi/lib/openai/models/responses/response_content_part_done_event.rbi @@ -90,8 +90,8 @@ module OpenAI end # The content part that is done. - class Part < OpenAI::Union - abstract! + module Part + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/responses/response_create_params.rbi b/rbi/lib/openai/models/responses/response_create_params.rbi index dbd9ed7b..9c2938bb 100644 --- a/rbi/lib/openai/models/responses/response_create_params.rbi +++ b/rbi/lib/openai/models/responses/response_create_params.rbi @@ -91,11 +91,22 @@ module OpenAI # and price points. Refer to the # [model guide](https://platform.openai.com/docs/models) to browse and compare # available models. - sig { returns(T.any(String, Symbol)) } + sig do + returns( + T.any(String, OpenAI::Models::ChatModel::OrSymbol, OpenAI::Models::ResponsesModel::UnionMember2::OrSymbol) + ) + end def model end - sig { params(_: T.any(String, Symbol)).returns(T.any(String, Symbol)) } + sig do + params( + _: T.any(String, OpenAI::Models::ChatModel::OrSymbol, OpenAI::Models::ResponsesModel::UnionMember2::OrSymbol) + ) + .returns( + T.any(String, OpenAI::Models::ChatModel::OrSymbol, OpenAI::Models::ResponsesModel::UnionMember2::OrSymbol) + ) + end def model=(_) end @@ -107,11 +118,14 @@ module OpenAI # - `message.input_image.image_url`: Include image urls from the input message. # - `computer_call_output.output.image_url`: Include image urls from the computer # call output. - sig { returns(T.nilable(T::Array[Symbol])) } + sig { returns(T.nilable(T::Array[OpenAI::Models::Responses::ResponseIncludable::OrSymbol])) } def include end - sig { params(_: T.nilable(T::Array[Symbol])).returns(T.nilable(T::Array[Symbol])) } + sig do + params(_: T.nilable(T::Array[OpenAI::Models::Responses::ResponseIncludable::OrSymbol])) + .returns(T.nilable(T::Array[OpenAI::Models::Responses::ResponseIncludable::OrSymbol])) + end def include=(_) end @@ -229,7 +243,11 @@ module OpenAI sig do returns( T.nilable( - T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction) + T.any( + OpenAI::Models::Responses::ToolChoiceOptions::OrSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ) ) ) end @@ -238,10 +256,18 @@ module OpenAI sig do params( - _: T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction) + _: T.any( + OpenAI::Models::Responses::ToolChoiceOptions::OrSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ) ) .returns( - T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction) + T.any( + OpenAI::Models::Responses::ToolChoiceOptions::OrSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ) ) end def tool_choice=(_) @@ -323,11 +349,14 @@ module OpenAI # window by dropping input items in the middle of the conversation. # - `disabled` (default): If a model response will exceed the context window size # for a model, the request will fail with a 400 error. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::ResponseCreateParams::Truncation::OrSymbol)) } def truncation end - sig { params(_: T.nilable(Symbol)).returns(T.nilable(Symbol)) } + sig do + params(_: T.nilable(OpenAI::Models::Responses::ResponseCreateParams::Truncation::OrSymbol)) + .returns(T.nilable(OpenAI::Models::Responses::ResponseCreateParams::Truncation::OrSymbol)) + end def truncation=(_) end @@ -362,8 +391,8 @@ module OpenAI ) ] ), - model: T.any(String, Symbol), - include: T.nilable(T::Array[Symbol]), + model: T.any(String, OpenAI::Models::ChatModel::OrSymbol, OpenAI::Models::ResponsesModel::UnionMember2::OrSymbol), + include: T.nilable(T::Array[OpenAI::Models::Responses::ResponseIncludable::OrSymbol]), instructions: T.nilable(String), max_output_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), @@ -373,7 +402,11 @@ module OpenAI store: T.nilable(T::Boolean), temperature: T.nilable(Float), text: OpenAI::Models::Responses::ResponseTextConfig, - tool_choice: T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction), + tool_choice: T.any( + OpenAI::Models::Responses::ToolChoiceOptions::OrSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ), tools: T::Array[ T.any( OpenAI::Models::Responses::FileSearchTool, @@ -383,7 +416,7 @@ module OpenAI ) ], top_p: T.nilable(Float), - truncation: T.nilable(Symbol), + truncation: T.nilable(OpenAI::Models::Responses::ResponseCreateParams::Truncation::OrSymbol), user: String, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) @@ -433,8 +466,8 @@ module OpenAI ) ] ), - model: T.any(String, Symbol), - include: T.nilable(T::Array[Symbol]), + model: T.any(String, OpenAI::Models::ChatModel::OrSymbol, OpenAI::Models::ResponsesModel::UnionMember2::OrSymbol), + include: T.nilable(T::Array[OpenAI::Models::Responses::ResponseIncludable::OrSymbol]), instructions: T.nilable(String), max_output_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), @@ -444,7 +477,11 @@ module OpenAI store: T.nilable(T::Boolean), temperature: T.nilable(Float), text: OpenAI::Models::Responses::ResponseTextConfig, - tool_choice: T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction), + tool_choice: T.any( + OpenAI::Models::Responses::ToolChoiceOptions::OrSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ), tools: T::Array[ T.any( OpenAI::Models::Responses::FileSearchTool, @@ -454,7 +491,7 @@ module OpenAI ) ], top_p: T.nilable(Float), - truncation: T.nilable(Symbol), + truncation: T.nilable(OpenAI::Models::Responses::ResponseCreateParams::Truncation::OrSymbol), user: String, request_options: OpenAI::RequestOptions } @@ -472,8 +509,8 @@ module OpenAI # - [File inputs](https://platform.openai.com/docs/guides/pdf-files) # - [Conversation state](https://platform.openai.com/docs/guides/conversation-state) # - [Function calling](https://platform.openai.com/docs/guides/function-calling) - class Input < OpenAI::Union - abstract! + module Input + extend OpenAI::Union Variants = type_template(:out) do @@ -503,13 +540,17 @@ module OpenAI # How the model should select which tool (or tools) to use when generating a # response. See the `tools` parameter to see how to specify which tools the model # can call. - class ToolChoice < OpenAI::Union - abstract! + module ToolChoice + extend OpenAI::Union Variants = type_template(:out) do { - fixed: T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction) + fixed: T.any( + OpenAI::Models::Responses::ToolChoiceOptions::OrSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ) } end end @@ -521,13 +562,16 @@ module OpenAI # window by dropping input items in the middle of the conversation. # - `disabled` (default): If a model response will exceed the context window size # for a model, the request will fail with a 400 error. - class Truncation < OpenAI::Enum - abstract! + module Truncation + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseCreateParams::Truncation) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseCreateParams::Truncation::TaggedSymbol) } - AUTO = :auto - DISABLED = :disabled + AUTO = T.let(:auto, OpenAI::Models::Responses::ResponseCreateParams::Truncation::OrSymbol) + DISABLED = T.let(:disabled, OpenAI::Models::Responses::ResponseCreateParams::Truncation::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_error.rbi b/rbi/lib/openai/models/responses/response_error.rbi index 7f9b2db2..90d6cf33 100644 --- a/rbi/lib/openai/models/responses/response_error.rbi +++ b/rbi/lib/openai/models/responses/response_error.rbi @@ -5,11 +5,14 @@ module OpenAI module Responses class ResponseError < OpenAI::BaseModel # The error code for the response. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) } def code end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + .returns(OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + end def code=(_) end @@ -23,38 +26,54 @@ module OpenAI end # An error object returned when the model fails to generate a Response. - sig { params(code: Symbol, message: String).returns(T.attached_class) } + sig do + params(code: OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol, message: String) + .returns(T.attached_class) + end def self.new(code:, message:) end - sig { override.returns({code: Symbol, message: String}) } + sig { override.returns({code: OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol, message: String}) } def to_hash end # The error code for the response. - class Code < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - SERVER_ERROR = :server_error - RATE_LIMIT_EXCEEDED = :rate_limit_exceeded - INVALID_PROMPT = :invalid_prompt - VECTOR_STORE_TIMEOUT = :vector_store_timeout - INVALID_IMAGE = :invalid_image - INVALID_IMAGE_FORMAT = :invalid_image_format - INVALID_BASE64_IMAGE = :invalid_base64_image - INVALID_IMAGE_URL = :invalid_image_url - IMAGE_TOO_LARGE = :image_too_large - IMAGE_TOO_SMALL = :image_too_small - IMAGE_PARSE_ERROR = :image_parse_error - IMAGE_CONTENT_POLICY_VIOLATION = :image_content_policy_violation - INVALID_IMAGE_MODE = :invalid_image_mode - IMAGE_FILE_TOO_LARGE = :image_file_too_large - UNSUPPORTED_IMAGE_MEDIA_TYPE = :unsupported_image_media_type - EMPTY_IMAGE_FILE = :empty_image_file - FAILED_TO_DOWNLOAD_IMAGE = :failed_to_download_image - IMAGE_FILE_NOT_FOUND = :image_file_not_found + module Code + extend OpenAI::Enum + + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseError::Code) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) } + + SERVER_ERROR = T.let(:server_error, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + RATE_LIMIT_EXCEEDED = + T.let(:rate_limit_exceeded, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + INVALID_PROMPT = T.let(:invalid_prompt, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + VECTOR_STORE_TIMEOUT = + T.let(:vector_store_timeout, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + INVALID_IMAGE = T.let(:invalid_image, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + INVALID_IMAGE_FORMAT = + T.let(:invalid_image_format, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + INVALID_BASE64_IMAGE = + T.let(:invalid_base64_image, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + INVALID_IMAGE_URL = + T.let(:invalid_image_url, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + IMAGE_TOO_LARGE = T.let(:image_too_large, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + IMAGE_TOO_SMALL = T.let(:image_too_small, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + IMAGE_PARSE_ERROR = + T.let(:image_parse_error, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + IMAGE_CONTENT_POLICY_VIOLATION = + T.let(:image_content_policy_violation, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + INVALID_IMAGE_MODE = + T.let(:invalid_image_mode, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + IMAGE_FILE_TOO_LARGE = + T.let(:image_file_too_large, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + UNSUPPORTED_IMAGE_MEDIA_TYPE = + T.let(:unsupported_image_media_type, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + EMPTY_IMAGE_FILE = T.let(:empty_image_file, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + FAILED_TO_DOWNLOAD_IMAGE = + T.let(:failed_to_download_image, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) + IMAGE_FILE_NOT_FOUND = + T.let(:image_file_not_found, OpenAI::Models::Responses::ResponseError::Code::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_file_search_tool_call.rbi b/rbi/lib/openai/models/responses/response_file_search_tool_call.rbi index 17a4bdb2..439cbcd7 100644 --- a/rbi/lib/openai/models/responses/response_file_search_tool_call.rbi +++ b/rbi/lib/openai/models/responses/response_file_search_tool_call.rbi @@ -24,11 +24,14 @@ module OpenAI # The status of the file search tool call. One of `in_progress`, `searching`, # `incomplete` or `failed`, - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ResponseFileSearchToolCall::Status::OrSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseFileSearchToolCall::Status::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseFileSearchToolCall::Status::OrSymbol) + end def status=(_) end @@ -60,7 +63,7 @@ module OpenAI params( id: String, queries: T::Array[String], - status: Symbol, + status: OpenAI::Models::Responses::ResponseFileSearchToolCall::Status::OrSymbol, results: T.nilable(T::Array[OpenAI::Models::Responses::ResponseFileSearchToolCall::Result]), type: Symbol ) @@ -75,7 +78,7 @@ module OpenAI { id: String, queries: T::Array[String], - status: Symbol, + status: OpenAI::Models::Responses::ResponseFileSearchToolCall::Status::OrSymbol, type: Symbol, results: T.nilable(T::Array[OpenAI::Models::Responses::ResponseFileSearchToolCall::Result]) } @@ -86,16 +89,20 @@ module OpenAI # The status of the file search tool call. One of `in_progress`, `searching`, # `incomplete` or `failed`, - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseFileSearchToolCall::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseFileSearchToolCall::Status::TaggedSymbol) } - IN_PROGRESS = :in_progress - SEARCHING = :searching - COMPLETED = :completed - INCOMPLETE = :incomplete - FAILED = :failed + IN_PROGRESS = + T.let(:in_progress, OpenAI::Models::Responses::ResponseFileSearchToolCall::Status::OrSymbol) + SEARCHING = T.let(:searching, OpenAI::Models::Responses::ResponseFileSearchToolCall::Status::OrSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::Responses::ResponseFileSearchToolCall::Status::OrSymbol) + INCOMPLETE = T.let(:incomplete, OpenAI::Models::Responses::ResponseFileSearchToolCall::Status::OrSymbol) + FAILED = T.let(:failed, OpenAI::Models::Responses::ResponseFileSearchToolCall::Status::OrSymbol) end class Result < OpenAI::BaseModel @@ -179,8 +186,8 @@ module OpenAI def to_hash end - class Attribute < OpenAI::Union - abstract! + module Attribute + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(String, Float, T::Boolean)} } end diff --git a/rbi/lib/openai/models/responses/response_format_text_config.rbi b/rbi/lib/openai/models/responses/response_format_text_config.rbi index fea986b1..8c4e9b9a 100644 --- a/rbi/lib/openai/models/responses/response_format_text_config.rbi +++ b/rbi/lib/openai/models/responses/response_format_text_config.rbi @@ -16,8 +16,8 @@ module OpenAI # Setting to `{ "type": "json_object" }` enables the older JSON mode, which # ensures the message the model generates is valid JSON. Using `json_schema` is # preferred for models that support it. - class ResponseFormatTextConfig < OpenAI::Union - abstract! + module ResponseFormatTextConfig + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/responses/response_function_tool_call.rbi b/rbi/lib/openai/models/responses/response_function_tool_call.rbi index 7f65d691..e2fb2951 100644 --- a/rbi/lib/openai/models/responses/response_function_tool_call.rbi +++ b/rbi/lib/openai/models/responses/response_function_tool_call.rbi @@ -51,11 +51,14 @@ module OpenAI # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::ResponseFunctionToolCall::Status::OrSymbol)) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseFunctionToolCall::Status::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseFunctionToolCall::Status::OrSymbol) + end def status=(_) end @@ -63,7 +66,14 @@ module OpenAI # [function calling guide](https://platform.openai.com/docs/guides/function-calling) # for more information. sig do - params(arguments: String, call_id: String, name: String, id: String, status: Symbol, type: Symbol) + params( + arguments: String, + call_id: String, + name: String, + id: String, + status: OpenAI::Models::Responses::ResponseFunctionToolCall::Status::OrSymbol, + type: Symbol + ) .returns(T.attached_class) end def self.new(arguments:, call_id:, name:, id: nil, status: nil, type: :function_call) @@ -71,28 +81,33 @@ module OpenAI sig do override - .returns({ - arguments: String, - call_id: String, - name: String, - type: Symbol, - id: String, - status: Symbol - }) + .returns( + { + arguments: String, + call_id: String, + name: String, + type: Symbol, + id: String, + status: OpenAI::Models::Responses::ResponseFunctionToolCall::Status::OrSymbol + } + ) end def to_hash end # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseFunctionToolCall::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseFunctionToolCall::Status::TaggedSymbol) } - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete + IN_PROGRESS = T.let(:in_progress, OpenAI::Models::Responses::ResponseFunctionToolCall::Status::OrSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::Responses::ResponseFunctionToolCall::Status::OrSymbol) + INCOMPLETE = T.let(:incomplete, OpenAI::Models::Responses::ResponseFunctionToolCall::Status::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_function_tool_call_output_item.rbi b/rbi/lib/openai/models/responses/response_function_tool_call_output_item.rbi index 89456a9b..4a38931a 100644 --- a/rbi/lib/openai/models/responses/response_function_tool_call_output_item.rbi +++ b/rbi/lib/openai/models/responses/response_function_tool_call_output_item.rbi @@ -42,11 +42,14 @@ module OpenAI # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol)) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol) + .returns(OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol) + end def status=(_) end @@ -55,27 +58,45 @@ module OpenAI id: String, call_id: String, output: String, - status: Symbol, + status: OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol, type: Symbol - ).returns(T.attached_class) + ) + .returns(T.attached_class) end def self.new(id:, call_id:, output:, status: nil, type: :function_call_output) end - sig { override.returns({id: String, call_id: String, output: String, type: Symbol, status: Symbol}) } + sig do + override + .returns( + { + id: String, + call_id: String, + output: String, + type: Symbol, + status: OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol + } + ) + end def to_hash end # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol) } - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete + IN_PROGRESS = + T.let(:in_progress, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol) + COMPLETED = + T.let(:completed, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol) + INCOMPLETE = + T.let(:incomplete, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_function_web_search.rbi b/rbi/lib/openai/models/responses/response_function_web_search.rbi index fa36c718..1a4c8366 100644 --- a/rbi/lib/openai/models/responses/response_function_web_search.rbi +++ b/rbi/lib/openai/models/responses/response_function_web_search.rbi @@ -14,11 +14,14 @@ module OpenAI end # The status of the web search tool call. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ResponseFunctionWebSearch::Status::OrSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseFunctionWebSearch::Status::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseFunctionWebSearch::Status::OrSymbol) + end def status=(_) end @@ -34,24 +37,39 @@ module OpenAI # The results of a web search tool call. See the # [web search guide](https://platform.openai.com/docs/guides/tools-web-search) for # more information. - sig { params(id: String, status: Symbol, type: Symbol).returns(T.attached_class) } + sig do + params( + id: String, + status: OpenAI::Models::Responses::ResponseFunctionWebSearch::Status::OrSymbol, + type: Symbol + ) + .returns(T.attached_class) + end def self.new(id:, status:, type: :web_search_call) end - sig { override.returns({id: String, status: Symbol, type: Symbol}) } + sig do + override + .returns( + {id: String, status: OpenAI::Models::Responses::ResponseFunctionWebSearch::Status::OrSymbol, type: Symbol} + ) + end def to_hash end # The status of the web search tool call. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseFunctionWebSearch::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseFunctionWebSearch::Status::TaggedSymbol) } - IN_PROGRESS = :in_progress - SEARCHING = :searching - COMPLETED = :completed - FAILED = :failed + IN_PROGRESS = T.let(:in_progress, OpenAI::Models::Responses::ResponseFunctionWebSearch::Status::OrSymbol) + SEARCHING = T.let(:searching, OpenAI::Models::Responses::ResponseFunctionWebSearch::Status::OrSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::Responses::ResponseFunctionWebSearch::Status::OrSymbol) + FAILED = T.let(:failed, OpenAI::Models::Responses::ResponseFunctionWebSearch::Status::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_includable.rbi b/rbi/lib/openai/models/responses/response_includable.rbi index 363cdad4..3b6a4039 100644 --- a/rbi/lib/openai/models/responses/response_includable.rbi +++ b/rbi/lib/openai/models/responses/response_includable.rbi @@ -11,14 +11,18 @@ module OpenAI # - `message.input_image.image_url`: Include image urls from the input message. # - `computer_call_output.output.image_url`: Include image urls from the computer # call output. - class ResponseIncludable < OpenAI::Enum - abstract! + module ResponseIncludable + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseIncludable) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseIncludable::TaggedSymbol) } - FILE_SEARCH_CALL_RESULTS = :"file_search_call.results" - MESSAGE_INPUT_IMAGE_IMAGE_URL = :"message.input_image.image_url" - COMPUTER_CALL_OUTPUT_OUTPUT_IMAGE_URL = :"computer_call_output.output.image_url" + FILE_SEARCH_CALL_RESULTS = + T.let(:"file_search_call.results", OpenAI::Models::Responses::ResponseIncludable::OrSymbol) + MESSAGE_INPUT_IMAGE_IMAGE_URL = + T.let(:"message.input_image.image_url", OpenAI::Models::Responses::ResponseIncludable::OrSymbol) + COMPUTER_CALL_OUTPUT_OUTPUT_IMAGE_URL = + T.let(:"computer_call_output.output.image_url", OpenAI::Models::Responses::ResponseIncludable::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_input_audio.rbi b/rbi/lib/openai/models/responses/response_input_audio.rbi index f49d5163..e6db921a 100644 --- a/rbi/lib/openai/models/responses/response_input_audio.rbi +++ b/rbi/lib/openai/models/responses/response_input_audio.rbi @@ -14,11 +14,14 @@ module OpenAI end # The format of the audio data. Currently supported formats are `mp3` and `wav`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ResponseInputAudio::Format::OrSymbol) } def format_ end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseInputAudio::Format::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseInputAudio::Format::OrSymbol) + end def format_=(_) end @@ -32,22 +35,36 @@ module OpenAI end # An audio input to the model. - sig { params(data: String, format_: Symbol, type: Symbol).returns(T.attached_class) } + sig do + params( + data: String, + format_: OpenAI::Models::Responses::ResponseInputAudio::Format::OrSymbol, + type: Symbol + ) + .returns(T.attached_class) + end def self.new(data:, format_:, type: :input_audio) end - sig { override.returns({data: String, format_: Symbol, type: Symbol}) } + sig do + override + .returns( + {data: String, format_: OpenAI::Models::Responses::ResponseInputAudio::Format::OrSymbol, type: Symbol} + ) + end def to_hash end # The format of the audio data. Currently supported formats are `mp3` and `wav`. - class Format < OpenAI::Enum - abstract! + module Format + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseInputAudio::Format) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseInputAudio::Format::TaggedSymbol) } - MP3 = :mp3 - WAV = :wav + MP3 = T.let(:mp3, OpenAI::Models::Responses::ResponseInputAudio::Format::OrSymbol) + WAV = T.let(:wav, OpenAI::Models::Responses::ResponseInputAudio::Format::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_input_content.rbi b/rbi/lib/openai/models/responses/response_input_content.rbi index cba404fb..37ed1a5a 100644 --- a/rbi/lib/openai/models/responses/response_input_content.rbi +++ b/rbi/lib/openai/models/responses/response_input_content.rbi @@ -4,8 +4,8 @@ module OpenAI module Models module Responses # A text input to the model. - class ResponseInputContent < OpenAI::Union - abstract! + module ResponseInputContent + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/responses/response_input_image.rbi b/rbi/lib/openai/models/responses/response_input_image.rbi index f4e450ae..ade87200 100644 --- a/rbi/lib/openai/models/responses/response_input_image.rbi +++ b/rbi/lib/openai/models/responses/response_input_image.rbi @@ -6,11 +6,14 @@ module OpenAI class ResponseInputImage < OpenAI::BaseModel # The detail level of the image to be sent to the model. One of `high`, `low`, or # `auto`. Defaults to `auto`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ResponseInputImage::Detail::OrSymbol) } def detail end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseInputImage::Detail::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseInputImage::Detail::OrSymbol) + end def detail=(_) end @@ -45,35 +48,43 @@ module OpenAI # An image input to the model. Learn about # [image inputs](https://platform.openai.com/docs/guides/vision). sig do - params(detail: Symbol, file_id: T.nilable(String), image_url: T.nilable(String), type: Symbol) + params( + detail: OpenAI::Models::Responses::ResponseInputImage::Detail::OrSymbol, + file_id: T.nilable(String), + image_url: T.nilable(String), + type: Symbol + ) .returns(T.attached_class) end def self.new(detail:, file_id: nil, image_url: nil, type: :input_image) end sig do - override.returns( - { - detail: Symbol, - type: Symbol, - file_id: T.nilable(String), - image_url: T.nilable(String) - } - ) + override + .returns( + { + detail: OpenAI::Models::Responses::ResponseInputImage::Detail::OrSymbol, + type: Symbol, + file_id: T.nilable(String), + image_url: T.nilable(String) + } + ) end def to_hash end # The detail level of the image to be sent to the model. One of `high`, `low`, or # `auto`. Defaults to `auto`. - class Detail < OpenAI::Enum - abstract! + module Detail + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseInputImage::Detail) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseInputImage::Detail::TaggedSymbol) } - HIGH = :high - LOW = :low - AUTO = :auto + HIGH = T.let(:high, OpenAI::Models::Responses::ResponseInputImage::Detail::OrSymbol) + LOW = T.let(:low, OpenAI::Models::Responses::ResponseInputImage::Detail::OrSymbol) + AUTO = T.let(:auto, OpenAI::Models::Responses::ResponseInputImage::Detail::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_input_item.rbi b/rbi/lib/openai/models/responses/response_input_item.rbi index 6ccd31a3..496ac76e 100644 --- a/rbi/lib/openai/models/responses/response_input_item.rbi +++ b/rbi/lib/openai/models/responses/response_input_item.rbi @@ -8,8 +8,8 @@ module OpenAI # precedence over instructions given with the `user` role. Messages with the # `assistant` role are presumed to have been generated by the model in previous # interactions. - class ResponseInputItem < OpenAI::Union - abstract! + module ResponseInputItem + extend OpenAI::Union Variants = type_template(:out) do @@ -71,30 +71,39 @@ module OpenAI end # The role of the message input. One of `user`, `system`, or `developer`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ResponseInputItem::Message::Role::OrSymbol) } def role end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseInputItem::Message::Role::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseInputItem::Message::Role::OrSymbol) + end def role=(_) end # The status of item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::ResponseInputItem::Message::Status::OrSymbol)) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseInputItem::Message::Status::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseInputItem::Message::Status::OrSymbol) + end def status=(_) end # The type of the message input. Always set to `message`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::ResponseInputItem::Message::Type::OrSymbol)) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseInputItem::Message::Type::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseInputItem::Message::Type::OrSymbol) + end def type=(_) end @@ -110,9 +119,9 @@ module OpenAI OpenAI::Models::Responses::ResponseInputFile ) ], - role: Symbol, - status: Symbol, - type: Symbol + role: OpenAI::Models::Responses::ResponseInputItem::Message::Role::OrSymbol, + status: OpenAI::Models::Responses::ResponseInputItem::Message::Status::OrSymbol, + type: OpenAI::Models::Responses::ResponseInputItem::Message::Type::OrSymbol ) .returns(T.attached_class) end @@ -130,9 +139,9 @@ module OpenAI OpenAI::Models::Responses::ResponseInputFile ) ], - role: Symbol, - status: Symbol, - type: Symbol + role: OpenAI::Models::Responses::ResponseInputItem::Message::Role::OrSymbol, + status: OpenAI::Models::Responses::ResponseInputItem::Message::Status::OrSymbol, + type: OpenAI::Models::Responses::ResponseInputItem::Message::Type::OrSymbol } ) end @@ -140,35 +149,45 @@ module OpenAI end # The role of the message input. One of `user`, `system`, or `developer`. - class Role < OpenAI::Enum - abstract! + module Role + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseInputItem::Message::Role) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseInputItem::Message::Role::TaggedSymbol) } - USER = :user - SYSTEM = :system - DEVELOPER = :developer + USER = T.let(:user, OpenAI::Models::Responses::ResponseInputItem::Message::Role::OrSymbol) + SYSTEM = T.let(:system, OpenAI::Models::Responses::ResponseInputItem::Message::Role::OrSymbol) + DEVELOPER = T.let(:developer, OpenAI::Models::Responses::ResponseInputItem::Message::Role::OrSymbol) end # The status of item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseInputItem::Message::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseInputItem::Message::Status::TaggedSymbol) } - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete + IN_PROGRESS = + T.let(:in_progress, OpenAI::Models::Responses::ResponseInputItem::Message::Status::OrSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::Responses::ResponseInputItem::Message::Status::OrSymbol) + INCOMPLETE = T.let(:incomplete, OpenAI::Models::Responses::ResponseInputItem::Message::Status::OrSymbol) end # The type of the message input. Always set to `message`. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseInputItem::Message::Type) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseInputItem::Message::Type::TaggedSymbol) } - MESSAGE = :message + MESSAGE = T.let(:message, OpenAI::Models::Responses::ResponseInputItem::Message::Type::OrSymbol) end end @@ -237,11 +256,14 @@ module OpenAI # The status of the message input. One of `in_progress`, `completed`, or # `incomplete`. Populated when input items are returned via API. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Status::OrSymbol)) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Status::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Status::OrSymbol) + end def status=(_) end @@ -252,7 +274,7 @@ module OpenAI output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot, id: String, acknowledged_safety_checks: T::Array[OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::AcknowledgedSafetyCheck], - status: Symbol, + status: OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Status::OrSymbol, type: Symbol ) .returns(T.attached_class) @@ -269,7 +291,7 @@ module OpenAI type: Symbol, id: String, acknowledged_safety_checks: T::Array[OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::AcknowledgedSafetyCheck], - status: Symbol + status: OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Status::OrSymbol } ) end @@ -316,14 +338,20 @@ module OpenAI # The status of the message input. One of `in_progress`, `completed`, or # `incomplete`. Populated when input items are returned via API. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Status::TaggedSymbol) } - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete + IN_PROGRESS = + T.let(:in_progress, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Status::OrSymbol) + COMPLETED = + T.let(:completed, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Status::OrSymbol) + INCOMPLETE = + T.let(:incomplete, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Status::OrSymbol) end end @@ -367,11 +395,14 @@ module OpenAI # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput::Status::OrSymbol)) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput::Status::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput::Status::OrSymbol) + end def status=(_) end @@ -381,29 +412,45 @@ module OpenAI call_id: String, output: String, id: String, - status: Symbol, + status: OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput::Status::OrSymbol, type: Symbol - ).returns(T.attached_class) + ) + .returns(T.attached_class) end def self.new(call_id:, output:, id: nil, status: nil, type: :function_call_output) end sig do - override.returns({call_id: String, output: String, type: Symbol, id: String, status: Symbol}) + override + .returns( + { + call_id: String, + output: String, + type: Symbol, + id: String, + status: OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput::Status::OrSymbol + } + ) end def to_hash end # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete + module Status + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput::Status::TaggedSymbol) } + + IN_PROGRESS = + T.let(:in_progress, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput::Status::OrSymbol) + COMPLETED = + T.let(:completed, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput::Status::OrSymbol) + INCOMPLETE = + T.let(:incomplete, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput::Status::OrSymbol) end end diff --git a/rbi/lib/openai/models/responses/response_input_message_item.rbi b/rbi/lib/openai/models/responses/response_input_message_item.rbi index cabf1399..0aaaacd6 100644 --- a/rbi/lib/openai/models/responses/response_input_message_item.rbi +++ b/rbi/lib/openai/models/responses/response_input_message_item.rbi @@ -53,30 +53,39 @@ module OpenAI end # The role of the message input. One of `user`, `system`, or `developer`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ResponseInputMessageItem::Role::TaggedSymbol) } def role end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseInputMessageItem::Role::TaggedSymbol) + .returns(OpenAI::Models::Responses::ResponseInputMessageItem::Role::TaggedSymbol) + end def role=(_) end # The status of item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::ResponseInputMessageItem::Status::TaggedSymbol)) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseInputMessageItem::Status::TaggedSymbol) + .returns(OpenAI::Models::Responses::ResponseInputMessageItem::Status::TaggedSymbol) + end def status=(_) end # The type of the message input. Always set to `message`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::ResponseInputMessageItem::Type::TaggedSymbol)) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseInputMessageItem::Type::TaggedSymbol) + .returns(OpenAI::Models::Responses::ResponseInputMessageItem::Type::TaggedSymbol) + end def type=(_) end @@ -90,9 +99,9 @@ module OpenAI OpenAI::Models::Responses::ResponseInputFile ) ], - role: Symbol, - status: Symbol, - type: Symbol + role: OpenAI::Models::Responses::ResponseInputMessageItem::Role::TaggedSymbol, + status: OpenAI::Models::Responses::ResponseInputMessageItem::Status::TaggedSymbol, + type: OpenAI::Models::Responses::ResponseInputMessageItem::Type::TaggedSymbol ) .returns(T.attached_class) end @@ -111,9 +120,9 @@ module OpenAI OpenAI::Models::Responses::ResponseInputFile ) ], - role: Symbol, - status: Symbol, - type: Symbol + role: OpenAI::Models::Responses::ResponseInputMessageItem::Role::TaggedSymbol, + status: OpenAI::Models::Responses::ResponseInputMessageItem::Status::TaggedSymbol, + type: OpenAI::Models::Responses::ResponseInputMessageItem::Type::TaggedSymbol } ) end @@ -121,35 +130,44 @@ module OpenAI end # The role of the message input. One of `user`, `system`, or `developer`. - class Role < OpenAI::Enum - abstract! + module Role + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Role) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Role::TaggedSymbol) } - USER = :user - SYSTEM = :system - DEVELOPER = :developer + USER = T.let(:user, OpenAI::Models::Responses::ResponseInputMessageItem::Role::TaggedSymbol) + SYSTEM = T.let(:system, OpenAI::Models::Responses::ResponseInputMessageItem::Role::TaggedSymbol) + DEVELOPER = T.let(:developer, OpenAI::Models::Responses::ResponseInputMessageItem::Role::TaggedSymbol) end # The status of item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Status::TaggedSymbol) } - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete + IN_PROGRESS = + T.let(:in_progress, OpenAI::Models::Responses::ResponseInputMessageItem::Status::TaggedSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::Responses::ResponseInputMessageItem::Status::TaggedSymbol) + INCOMPLETE = + T.let(:incomplete, OpenAI::Models::Responses::ResponseInputMessageItem::Status::TaggedSymbol) end # The type of the message input. Always set to `message`. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Type) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Type::TaggedSymbol) } - MESSAGE = :message + MESSAGE = T.let(:message, OpenAI::Models::Responses::ResponseInputMessageItem::Type::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_item.rbi b/rbi/lib/openai/models/responses/response_item.rbi index 77bef808..0d59846c 100644 --- a/rbi/lib/openai/models/responses/response_item.rbi +++ b/rbi/lib/openai/models/responses/response_item.rbi @@ -4,8 +4,8 @@ module OpenAI module Models module Responses # Content item used to generate a response. - class ResponseItem < OpenAI::Union - abstract! + module ResponseItem + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/responses/response_output_item.rbi b/rbi/lib/openai/models/responses/response_output_item.rbi index bec1b93e..f4a81f11 100644 --- a/rbi/lib/openai/models/responses/response_output_item.rbi +++ b/rbi/lib/openai/models/responses/response_output_item.rbi @@ -4,8 +4,8 @@ module OpenAI module Models module Responses # An output message from the model. - class ResponseOutputItem < OpenAI::Union - abstract! + module ResponseOutputItem + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/responses/response_output_message.rbi b/rbi/lib/openai/models/responses/response_output_message.rbi index 17bf1ad0..63f0758f 100644 --- a/rbi/lib/openai/models/responses/response_output_message.rbi +++ b/rbi/lib/openai/models/responses/response_output_message.rbi @@ -44,11 +44,14 @@ module OpenAI # The status of the message input. One of `in_progress`, `completed`, or # `incomplete`. Populated when input items are returned via API. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ResponseOutputMessage::Status::OrSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseOutputMessage::Status::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseOutputMessage::Status::OrSymbol) + end def status=(_) end @@ -66,7 +69,7 @@ module OpenAI params( id: String, content: T::Array[T.any(OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal)], - status: Symbol, + status: OpenAI::Models::Responses::ResponseOutputMessage::Status::OrSymbol, role: Symbol, type: Symbol ) @@ -82,7 +85,7 @@ module OpenAI id: String, content: T::Array[T.any(OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal)], role: Symbol, - status: Symbol, + status: OpenAI::Models::Responses::ResponseOutputMessage::Status::OrSymbol, type: Symbol } ) @@ -91,8 +94,8 @@ module OpenAI end # A text output from the model. - class Content < OpenAI::Union - abstract! + module Content + extend OpenAI::Union Variants = type_template(:out) do @@ -104,14 +107,16 @@ module OpenAI # The status of the message input. One of `in_progress`, `completed`, or # `incomplete`. Populated when input items are returned via API. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseOutputMessage::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseOutputMessage::Status::TaggedSymbol) } - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete + IN_PROGRESS = T.let(:in_progress, OpenAI::Models::Responses::ResponseOutputMessage::Status::OrSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::Responses::ResponseOutputMessage::Status::OrSymbol) + INCOMPLETE = T.let(:incomplete, OpenAI::Models::Responses::ResponseOutputMessage::Status::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_output_text.rbi b/rbi/lib/openai/models/responses/response_output_text.rbi index 13eb0a87..78b35143 100644 --- a/rbi/lib/openai/models/responses/response_output_text.rbi +++ b/rbi/lib/openai/models/responses/response_output_text.rbi @@ -98,8 +98,8 @@ module OpenAI end # A citation to a file. - class Annotation < OpenAI::Union - abstract! + module Annotation + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/responses/response_reasoning_item.rbi b/rbi/lib/openai/models/responses/response_reasoning_item.rbi index 66b69b58..aabd22e0 100644 --- a/rbi/lib/openai/models/responses/response_reasoning_item.rbi +++ b/rbi/lib/openai/models/responses/response_reasoning_item.rbi @@ -36,11 +36,14 @@ module OpenAI # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::ResponseReasoningItem::Status::OrSymbol)) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ResponseReasoningItem::Status::OrSymbol) + .returns(OpenAI::Models::Responses::ResponseReasoningItem::Status::OrSymbol) + end def status=(_) end @@ -50,7 +53,7 @@ module OpenAI params( id: String, summary: T::Array[OpenAI::Models::Responses::ResponseReasoningItem::Summary], - status: Symbol, + status: OpenAI::Models::Responses::ResponseReasoningItem::Status::OrSymbol, type: Symbol ) .returns(T.attached_class) @@ -65,7 +68,7 @@ module OpenAI id: String, summary: T::Array[OpenAI::Models::Responses::ResponseReasoningItem::Summary], type: Symbol, - status: Symbol + status: OpenAI::Models::Responses::ResponseReasoningItem::Status::OrSymbol } ) end @@ -102,14 +105,16 @@ module OpenAI # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseReasoningItem::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseReasoningItem::Status::TaggedSymbol) } - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete + IN_PROGRESS = T.let(:in_progress, OpenAI::Models::Responses::ResponseReasoningItem::Status::OrSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::Responses::ResponseReasoningItem::Status::OrSymbol) + INCOMPLETE = T.let(:incomplete, OpenAI::Models::Responses::ResponseReasoningItem::Status::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_retrieve_params.rbi b/rbi/lib/openai/models/responses/response_retrieve_params.rbi index 8e817f0d..d2129c7d 100644 --- a/rbi/lib/openai/models/responses/response_retrieve_params.rbi +++ b/rbi/lib/openai/models/responses/response_retrieve_params.rbi @@ -9,17 +9,20 @@ module OpenAI # Additional fields to include in the response. See the `include` parameter for # Response creation above for more information. - sig { returns(T.nilable(T::Array[Symbol])) } + sig { returns(T.nilable(T::Array[OpenAI::Models::Responses::ResponseIncludable::OrSymbol])) } def include end - sig { params(_: T::Array[Symbol]).returns(T::Array[Symbol]) } + sig do + params(_: T::Array[OpenAI::Models::Responses::ResponseIncludable::OrSymbol]) + .returns(T::Array[OpenAI::Models::Responses::ResponseIncludable::OrSymbol]) + end def include=(_) end sig do params( - include: T::Array[Symbol], + include: T::Array[OpenAI::Models::Responses::ResponseIncludable::OrSymbol], request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -27,7 +30,15 @@ module OpenAI def self.new(include: nil, request_options: {}) end - sig { override.returns({include: T::Array[Symbol], request_options: OpenAI::RequestOptions}) } + sig do + override + .returns( + { + include: T::Array[OpenAI::Models::Responses::ResponseIncludable::OrSymbol], + request_options: OpenAI::RequestOptions + } + ) + end def to_hash end end diff --git a/rbi/lib/openai/models/responses/response_status.rbi b/rbi/lib/openai/models/responses/response_status.rbi index f6a3f6ce..95b80ac1 100644 --- a/rbi/lib/openai/models/responses/response_status.rbi +++ b/rbi/lib/openai/models/responses/response_status.rbi @@ -5,15 +5,16 @@ module OpenAI module Responses # The status of the response generation. One of `completed`, `failed`, # `in_progress`, or `incomplete`. - class ResponseStatus < OpenAI::Enum - abstract! + module ResponseStatus + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ResponseStatus) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ResponseStatus::TaggedSymbol) } - COMPLETED = :completed - FAILED = :failed - IN_PROGRESS = :in_progress - INCOMPLETE = :incomplete + COMPLETED = T.let(:completed, OpenAI::Models::Responses::ResponseStatus::TaggedSymbol) + FAILED = T.let(:failed, OpenAI::Models::Responses::ResponseStatus::TaggedSymbol) + IN_PROGRESS = T.let(:in_progress, OpenAI::Models::Responses::ResponseStatus::TaggedSymbol) + INCOMPLETE = T.let(:incomplete, OpenAI::Models::Responses::ResponseStatus::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/responses/response_stream_event.rbi b/rbi/lib/openai/models/responses/response_stream_event.rbi index ed1980bf..4c87665c 100644 --- a/rbi/lib/openai/models/responses/response_stream_event.rbi +++ b/rbi/lib/openai/models/responses/response_stream_event.rbi @@ -4,8 +4,8 @@ module OpenAI module Models module Responses # Emitted when there is a partial audio response. - class ResponseStreamEvent < OpenAI::Union - abstract! + module ResponseStreamEvent + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/responses/response_text_annotation_delta_event.rbi b/rbi/lib/openai/models/responses/response_text_annotation_delta_event.rbi index ed354df8..f7d64bc8 100644 --- a/rbi/lib/openai/models/responses/response_text_annotation_delta_event.rbi +++ b/rbi/lib/openai/models/responses/response_text_annotation_delta_event.rbi @@ -128,8 +128,8 @@ module OpenAI end # A citation to a file. - class Annotation < OpenAI::Union - abstract! + module Annotation + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/responses/tool.rbi b/rbi/lib/openai/models/responses/tool.rbi index 0085ad60..0d0c2a77 100644 --- a/rbi/lib/openai/models/responses/tool.rbi +++ b/rbi/lib/openai/models/responses/tool.rbi @@ -6,8 +6,8 @@ module OpenAI # A tool that searches for relevant content from uploaded files. Learn more about # the # [file search tool](https://platform.openai.com/docs/guides/tools-file-search). - class Tool < OpenAI::Union - abstract! + module Tool + extend OpenAI::Union Variants = type_template(:out) do diff --git a/rbi/lib/openai/models/responses/tool_choice_options.rbi b/rbi/lib/openai/models/responses/tool_choice_options.rbi index c047abb7..a4acb23d 100644 --- a/rbi/lib/openai/models/responses/tool_choice_options.rbi +++ b/rbi/lib/openai/models/responses/tool_choice_options.rbi @@ -11,14 +11,15 @@ module OpenAI # more tools. # # `required` means the model must call one or more tools. - class ToolChoiceOptions < OpenAI::Enum - abstract! + module ToolChoiceOptions + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ToolChoiceOptions) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ToolChoiceOptions::TaggedSymbol) } - NONE = :none - AUTO = :auto - REQUIRED = :required + NONE = T.let(:none, OpenAI::Models::Responses::ToolChoiceOptions::OrSymbol) + AUTO = T.let(:auto, OpenAI::Models::Responses::ToolChoiceOptions::OrSymbol) + REQUIRED = T.let(:required, OpenAI::Models::Responses::ToolChoiceOptions::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/tool_choice_types.rbi b/rbi/lib/openai/models/responses/tool_choice_types.rbi index 8459293b..45b4ecfc 100644 --- a/rbi/lib/openai/models/responses/tool_choice_types.rbi +++ b/rbi/lib/openai/models/responses/tool_choice_types.rbi @@ -12,21 +12,24 @@ module OpenAI # - `file_search` # - `web_search_preview` # - `computer_use_preview` - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::ToolChoiceTypes::Type::OrSymbol) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::ToolChoiceTypes::Type::OrSymbol) + .returns(OpenAI::Models::Responses::ToolChoiceTypes::Type::OrSymbol) + end def type=(_) end # Indicates that the model should use a built-in tool to generate a response. # [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools). - sig { params(type: Symbol).returns(T.attached_class) } + sig { params(type: OpenAI::Models::Responses::ToolChoiceTypes::Type::OrSymbol).returns(T.attached_class) } def self.new(type:) end - sig { override.returns({type: Symbol}) } + sig { override.returns({type: OpenAI::Models::Responses::ToolChoiceTypes::Type::OrSymbol}) } def to_hash end @@ -38,15 +41,19 @@ module OpenAI # - `file_search` # - `web_search_preview` # - `computer_use_preview` - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::ToolChoiceTypes::Type) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes::Type::TaggedSymbol) } - FILE_SEARCH = :file_search - WEB_SEARCH_PREVIEW = :web_search_preview - COMPUTER_USE_PREVIEW = :computer_use_preview - WEB_SEARCH_PREVIEW_2025_03_11 = :web_search_preview_2025_03_11 + FILE_SEARCH = T.let(:file_search, OpenAI::Models::Responses::ToolChoiceTypes::Type::OrSymbol) + WEB_SEARCH_PREVIEW = + T.let(:web_search_preview, OpenAI::Models::Responses::ToolChoiceTypes::Type::OrSymbol) + COMPUTER_USE_PREVIEW = + T.let(:computer_use_preview, OpenAI::Models::Responses::ToolChoiceTypes::Type::OrSymbol) + WEB_SEARCH_PREVIEW_2025_03_11 = + T.let(:web_search_preview_2025_03_11, OpenAI::Models::Responses::ToolChoiceTypes::Type::OrSymbol) end end end diff --git a/rbi/lib/openai/models/responses/web_search_tool.rbi b/rbi/lib/openai/models/responses/web_search_tool.rbi index cf2fb2f6..a0ae2d7c 100644 --- a/rbi/lib/openai/models/responses/web_search_tool.rbi +++ b/rbi/lib/openai/models/responses/web_search_tool.rbi @@ -8,21 +8,27 @@ module OpenAI # # - `web_search_preview` # - `web_search_preview_2025_03_11` - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Responses::WebSearchTool::Type::OrSymbol) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::WebSearchTool::Type::OrSymbol) + .returns(OpenAI::Models::Responses::WebSearchTool::Type::OrSymbol) + end def type=(_) end # High level guidance for the amount of context window space to use for the # search. One of `low`, `medium`, or `high`. `medium` is the default. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::Responses::WebSearchTool::SearchContextSize::OrSymbol)) } def search_context_size end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Responses::WebSearchTool::SearchContextSize::OrSymbol) + .returns(OpenAI::Models::Responses::WebSearchTool::SearchContextSize::OrSymbol) + end def search_context_size=(_) end @@ -42,8 +48,8 @@ module OpenAI # [web search tool](https://platform.openai.com/docs/guides/tools-web-search). sig do params( - type: Symbol, - search_context_size: Symbol, + type: OpenAI::Models::Responses::WebSearchTool::Type::OrSymbol, + search_context_size: OpenAI::Models::Responses::WebSearchTool::SearchContextSize::OrSymbol, user_location: T.nilable(OpenAI::Models::Responses::WebSearchTool::UserLocation) ) .returns(T.attached_class) @@ -55,8 +61,8 @@ module OpenAI override .returns( { - type: Symbol, - search_context_size: Symbol, + type: OpenAI::Models::Responses::WebSearchTool::Type::OrSymbol, + search_context_size: OpenAI::Models::Responses::WebSearchTool::SearchContextSize::OrSymbol, user_location: T.nilable(OpenAI::Models::Responses::WebSearchTool::UserLocation) } ) @@ -68,25 +74,30 @@ module OpenAI # # - `web_search_preview` # - `web_search_preview_2025_03_11` - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Responses::WebSearchTool::Type) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Responses::WebSearchTool::Type::TaggedSymbol) } - WEB_SEARCH_PREVIEW = :web_search_preview - WEB_SEARCH_PREVIEW_2025_03_11 = :web_search_preview_2025_03_11 + WEB_SEARCH_PREVIEW = T.let(:web_search_preview, OpenAI::Models::Responses::WebSearchTool::Type::OrSymbol) + WEB_SEARCH_PREVIEW_2025_03_11 = + T.let(:web_search_preview_2025_03_11, OpenAI::Models::Responses::WebSearchTool::Type::OrSymbol) end # High level guidance for the amount of context window space to use for the # search. One of `low`, `medium`, or `high`. `medium` is the default. - class SearchContextSize < OpenAI::Enum - abstract! + module SearchContextSize + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::Responses::WebSearchTool::SearchContextSize) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::Responses::WebSearchTool::SearchContextSize::TaggedSymbol) } - LOW = :low - MEDIUM = :medium - HIGH = :high + LOW = T.let(:low, OpenAI::Models::Responses::WebSearchTool::SearchContextSize::OrSymbol) + MEDIUM = T.let(:medium, OpenAI::Models::Responses::WebSearchTool::SearchContextSize::OrSymbol) + HIGH = T.let(:high, OpenAI::Models::Responses::WebSearchTool::SearchContextSize::OrSymbol) end class UserLocation < OpenAI::BaseModel diff --git a/rbi/lib/openai/models/responses_model.rbi b/rbi/lib/openai/models/responses_model.rbi index ecad7412..ddb9e74a 100644 --- a/rbi/lib/openai/models/responses_model.rbi +++ b/rbi/lib/openai/models/responses_model.rbi @@ -2,20 +2,28 @@ module OpenAI module Models - class ResponsesModel < OpenAI::Union - abstract! + module ResponsesModel + extend OpenAI::Union - Variants = type_template(:out) { {fixed: T.any(String, Symbol)} } + Variants = + type_template(:out) do + { + fixed: T.any(String, OpenAI::Models::ChatModel::OrSymbol, OpenAI::Models::ResponsesModel::UnionMember2::OrSymbol) + } + end - class UnionMember2 < OpenAI::Enum - abstract! + module UnionMember2 + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::ResponsesModel::UnionMember2) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::ResponsesModel::UnionMember2::TaggedSymbol) } - O1_PRO = :"o1-pro" - O1_PRO_2025_03_19 = :"o1-pro-2025-03-19" - COMPUTER_USE_PREVIEW = :"computer-use-preview" - COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11" + O1_PRO = T.let(:"o1-pro", OpenAI::Models::ResponsesModel::UnionMember2::OrSymbol) + O1_PRO_2025_03_19 = T.let(:"o1-pro-2025-03-19", OpenAI::Models::ResponsesModel::UnionMember2::OrSymbol) + COMPUTER_USE_PREVIEW = + T.let(:"computer-use-preview", OpenAI::Models::ResponsesModel::UnionMember2::OrSymbol) + COMPUTER_USE_PREVIEW_2025_03_11 = + T.let(:"computer-use-preview-2025-03-11", OpenAI::Models::ResponsesModel::UnionMember2::OrSymbol) end end end diff --git a/rbi/lib/openai/models/upload.rbi b/rbi/lib/openai/models/upload.rbi index 1da23f04..05b6e1e2 100644 --- a/rbi/lib/openai/models/upload.rbi +++ b/rbi/lib/openai/models/upload.rbi @@ -69,11 +69,14 @@ module OpenAI end # The status of the Upload. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::Upload::Status::TaggedSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::Upload::Status::TaggedSymbol) + .returns(OpenAI::Models::Upload::Status::TaggedSymbol) + end def status=(_) end @@ -95,7 +98,7 @@ module OpenAI expires_at: Integer, filename: String, purpose: String, - status: Symbol, + status: OpenAI::Models::Upload::Status::TaggedSymbol, file: T.nilable(OpenAI::Models::FileObject), object: Symbol ) @@ -115,7 +118,7 @@ module OpenAI filename: String, object: Symbol, purpose: String, - status: Symbol, + status: OpenAI::Models::Upload::Status::TaggedSymbol, file: T.nilable(OpenAI::Models::FileObject) } ) @@ -124,15 +127,16 @@ module OpenAI end # The status of the Upload. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::Upload::Status) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::Upload::Status::TaggedSymbol) } - PENDING = :pending - COMPLETED = :completed - CANCELLED = :cancelled - EXPIRED = :expired + PENDING = T.let(:pending, OpenAI::Models::Upload::Status::TaggedSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::Upload::Status::TaggedSymbol) + CANCELLED = T.let(:cancelled, OpenAI::Models::Upload::Status::TaggedSymbol) + EXPIRED = T.let(:expired, OpenAI::Models::Upload::Status::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/upload_create_params.rbi b/rbi/lib/openai/models/upload_create_params.rbi index 22555f0e..93d701d3 100644 --- a/rbi/lib/openai/models/upload_create_params.rbi +++ b/rbi/lib/openai/models/upload_create_params.rbi @@ -40,11 +40,11 @@ module OpenAI # # See the # [documentation on File purposes](https://platform.openai.com/docs/api-reference/files/create#files-create-purpose). - sig { returns(Symbol) } + sig { returns(OpenAI::Models::FilePurpose::OrSymbol) } def purpose end - sig { params(_: Symbol).returns(Symbol) } + sig { params(_: OpenAI::Models::FilePurpose::OrSymbol).returns(OpenAI::Models::FilePurpose::OrSymbol) } def purpose=(_) end @@ -53,7 +53,7 @@ module OpenAI bytes: Integer, filename: String, mime_type: String, - purpose: Symbol, + purpose: OpenAI::Models::FilePurpose::OrSymbol, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -68,7 +68,7 @@ module OpenAI bytes: Integer, filename: String, mime_type: String, - purpose: Symbol, + purpose: OpenAI::Models::FilePurpose::OrSymbol, request_options: OpenAI::RequestOptions } ) diff --git a/rbi/lib/openai/models/vector_store.rbi b/rbi/lib/openai/models/vector_store.rbi index e80d2488..188bfd85 100644 --- a/rbi/lib/openai/models/vector_store.rbi +++ b/rbi/lib/openai/models/vector_store.rbi @@ -73,11 +73,14 @@ module OpenAI # The status of the vector store, which can be either `expired`, `in_progress`, or # `completed`. A status of `completed` indicates that the vector store is ready # for use. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::VectorStore::Status::TaggedSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::VectorStore::Status::TaggedSymbol) + .returns(OpenAI::Models::VectorStore::Status::TaggedSymbol) + end def status=(_) end @@ -118,7 +121,7 @@ module OpenAI last_active_at: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), name: String, - status: Symbol, + status: OpenAI::Models::VectorStore::Status::TaggedSymbol, usage_bytes: Integer, expires_after: OpenAI::Models::VectorStore::ExpiresAfter, expires_at: T.nilable(Integer), @@ -152,7 +155,7 @@ module OpenAI metadata: T.nilable(T::Hash[Symbol, String]), name: String, object: Symbol, - status: Symbol, + status: OpenAI::Models::VectorStore::Status::TaggedSymbol, usage_bytes: Integer, expires_after: OpenAI::Models::VectorStore::ExpiresAfter, expires_at: T.nilable(Integer) @@ -238,14 +241,15 @@ module OpenAI # The status of the vector store, which can be either `expired`, `in_progress`, or # `completed`. A status of `completed` indicates that the vector store is ready # for use. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::VectorStore::Status) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::VectorStore::Status::TaggedSymbol) } - EXPIRED = :expired - IN_PROGRESS = :in_progress - COMPLETED = :completed + EXPIRED = T.let(:expired, OpenAI::Models::VectorStore::Status::TaggedSymbol) + IN_PROGRESS = T.let(:in_progress, OpenAI::Models::VectorStore::Status::TaggedSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::VectorStore::Status::TaggedSymbol) end class ExpiresAfter < OpenAI::BaseModel diff --git a/rbi/lib/openai/models/vector_store_list_params.rbi b/rbi/lib/openai/models/vector_store_list_params.rbi index 5749ce8a..c2400193 100644 --- a/rbi/lib/openai/models/vector_store_list_params.rbi +++ b/rbi/lib/openai/models/vector_store_list_params.rbi @@ -42,11 +42,14 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::VectorStoreListParams::Order::OrSymbol)) } def order end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::VectorStoreListParams::Order::OrSymbol) + .returns(OpenAI::Models::VectorStoreListParams::Order::OrSymbol) + end def order=(_) end @@ -55,7 +58,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::VectorStoreListParams::Order::OrSymbol, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -70,7 +73,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::VectorStoreListParams::Order::OrSymbol, request_options: OpenAI::RequestOptions } ) @@ -80,13 +83,14 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum - abstract! + module Order + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::VectorStoreListParams::Order) } + OrSymbol = T.type_alias { T.any(Symbol, OpenAI::Models::VectorStoreListParams::Order::TaggedSymbol) } - ASC = :asc - DESC = :desc + ASC = T.let(:asc, OpenAI::Models::VectorStoreListParams::Order::OrSymbol) + DESC = T.let(:desc, OpenAI::Models::VectorStoreListParams::Order::OrSymbol) end end end diff --git a/rbi/lib/openai/models/vector_store_search_params.rbi b/rbi/lib/openai/models/vector_store_search_params.rbi index 029b5b83..1e785923 100644 --- a/rbi/lib/openai/models/vector_store_search_params.rbi +++ b/rbi/lib/openai/models/vector_store_search_params.rbi @@ -89,8 +89,8 @@ module OpenAI end # A query string for a search - class Query < OpenAI::Union - abstract! + module Query + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(String, T::Array[String])} } @@ -98,19 +98,22 @@ module OpenAI end # A filter to apply based on file attributes. - class Filters < OpenAI::Union - abstract! + module Filters + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(OpenAI::Models::ComparisonFilter, OpenAI::Models::CompoundFilter)} } end class RankingOptions < OpenAI::BaseModel - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::VectorStoreSearchParams::RankingOptions::Ranker::OrSymbol)) } def ranker end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::VectorStoreSearchParams::RankingOptions::Ranker::OrSymbol) + .returns(OpenAI::Models::VectorStoreSearchParams::RankingOptions::Ranker::OrSymbol) + end def ranker=(_) end @@ -123,21 +126,36 @@ module OpenAI end # Ranking options for search. - sig { params(ranker: Symbol, score_threshold: Float).returns(T.attached_class) } + sig do + params( + ranker: OpenAI::Models::VectorStoreSearchParams::RankingOptions::Ranker::OrSymbol, + score_threshold: Float + ) + .returns(T.attached_class) + end def self.new(ranker: nil, score_threshold: nil) end - sig { override.returns({ranker: Symbol, score_threshold: Float}) } + sig do + override + .returns( + {ranker: OpenAI::Models::VectorStoreSearchParams::RankingOptions::Ranker::OrSymbol, score_threshold: Float} + ) + end def to_hash end - class Ranker < OpenAI::Enum - abstract! + module Ranker + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::VectorStoreSearchParams::RankingOptions::Ranker) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::VectorStoreSearchParams::RankingOptions::Ranker::TaggedSymbol) } - AUTO = :auto - DEFAULT_2024_11_15 = :"default-2024-11-15" + AUTO = T.let(:auto, OpenAI::Models::VectorStoreSearchParams::RankingOptions::Ranker::OrSymbol) + DEFAULT_2024_11_15 = + T.let(:"default-2024-11-15", OpenAI::Models::VectorStoreSearchParams::RankingOptions::Ranker::OrSymbol) end end end diff --git a/rbi/lib/openai/models/vector_store_search_response.rbi b/rbi/lib/openai/models/vector_store_search_response.rbi index a2443437..e4039a7c 100644 --- a/rbi/lib/openai/models/vector_store_search_response.rbi +++ b/rbi/lib/openai/models/vector_store_search_response.rbi @@ -86,8 +86,8 @@ module OpenAI def to_hash end - class Attribute < OpenAI::Union - abstract! + module Attribute + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(String, Float, T::Boolean)} } end @@ -103,29 +103,40 @@ module OpenAI end # The type of content. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::VectorStoreSearchResponse::Content::Type::TaggedSymbol) } def type end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::VectorStoreSearchResponse::Content::Type::TaggedSymbol) + .returns(OpenAI::Models::VectorStoreSearchResponse::Content::Type::TaggedSymbol) + end def type=(_) end - sig { params(text: String, type: Symbol).returns(T.attached_class) } + sig do + params(text: String, type: OpenAI::Models::VectorStoreSearchResponse::Content::Type::TaggedSymbol) + .returns(T.attached_class) + end def self.new(text:, type:) end - sig { override.returns({text: String, type: Symbol}) } + sig do + override + .returns({text: String, type: OpenAI::Models::VectorStoreSearchResponse::Content::Type::TaggedSymbol}) + end def to_hash end # The type of content. - class Type < OpenAI::Enum - abstract! + module Type + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::VectorStoreSearchResponse::Content::Type) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::VectorStoreSearchResponse::Content::Type::TaggedSymbol) } - TEXT = :text + TEXT = T.let(:text, OpenAI::Models::VectorStoreSearchResponse::Content::Type::TaggedSymbol) end end end diff --git a/rbi/lib/openai/models/vector_stores/file_batch_create_params.rbi b/rbi/lib/openai/models/vector_stores/file_batch_create_params.rbi index 4be0dcb6..f2dd4d99 100644 --- a/rbi/lib/openai/models/vector_stores/file_batch_create_params.rbi +++ b/rbi/lib/openai/models/vector_stores/file_batch_create_params.rbi @@ -98,8 +98,8 @@ module OpenAI def to_hash end - class Attribute < OpenAI::Union - abstract! + module Attribute + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(String, Float, T::Boolean)} } end diff --git a/rbi/lib/openai/models/vector_stores/file_batch_list_files_params.rbi b/rbi/lib/openai/models/vector_stores/file_batch_list_files_params.rbi index c7da2f41..22045ec2 100644 --- a/rbi/lib/openai/models/vector_stores/file_batch_list_files_params.rbi +++ b/rbi/lib/openai/models/vector_stores/file_batch_list_files_params.rbi @@ -40,11 +40,14 @@ module OpenAI end # Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::VectorStores::FileBatchListFilesParams::Filter::OrSymbol)) } def filter end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::VectorStores::FileBatchListFilesParams::Filter::OrSymbol) + .returns(OpenAI::Models::VectorStores::FileBatchListFilesParams::Filter::OrSymbol) + end def filter=(_) end @@ -60,11 +63,14 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::VectorStores::FileBatchListFilesParams::Order::OrSymbol)) } def order end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::VectorStores::FileBatchListFilesParams::Order::OrSymbol) + .returns(OpenAI::Models::VectorStores::FileBatchListFilesParams::Order::OrSymbol) + end def order=(_) end @@ -73,9 +79,9 @@ module OpenAI vector_store_id: String, after: String, before: String, - filter: Symbol, + filter: OpenAI::Models::VectorStores::FileBatchListFilesParams::Filter::OrSymbol, limit: Integer, - order: Symbol, + order: OpenAI::Models::VectorStores::FileBatchListFilesParams::Order::OrSymbol, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -90,9 +96,9 @@ module OpenAI vector_store_id: String, after: String, before: String, - filter: Symbol, + filter: OpenAI::Models::VectorStores::FileBatchListFilesParams::Filter::OrSymbol, limit: Integer, - order: Symbol, + order: OpenAI::Models::VectorStores::FileBatchListFilesParams::Order::OrSymbol, request_options: OpenAI::RequestOptions } ) @@ -101,26 +107,33 @@ module OpenAI end # Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. - class Filter < OpenAI::Enum - abstract! + module Filter + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::VectorStores::FileBatchListFilesParams::Filter) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::VectorStores::FileBatchListFilesParams::Filter::TaggedSymbol) } - IN_PROGRESS = :in_progress - COMPLETED = :completed - FAILED = :failed - CANCELLED = :cancelled + IN_PROGRESS = + T.let(:in_progress, OpenAI::Models::VectorStores::FileBatchListFilesParams::Filter::OrSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::VectorStores::FileBatchListFilesParams::Filter::OrSymbol) + FAILED = T.let(:failed, OpenAI::Models::VectorStores::FileBatchListFilesParams::Filter::OrSymbol) + CANCELLED = T.let(:cancelled, OpenAI::Models::VectorStores::FileBatchListFilesParams::Filter::OrSymbol) end # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum - abstract! + module Order + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::VectorStores::FileBatchListFilesParams::Order) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::VectorStores::FileBatchListFilesParams::Order::TaggedSymbol) } - ASC = :asc - DESC = :desc + ASC = T.let(:asc, OpenAI::Models::VectorStores::FileBatchListFilesParams::Order::OrSymbol) + DESC = T.let(:desc, OpenAI::Models::VectorStores::FileBatchListFilesParams::Order::OrSymbol) end end end diff --git a/rbi/lib/openai/models/vector_stores/file_create_params.rbi b/rbi/lib/openai/models/vector_stores/file_create_params.rbi index 57e35c52..d8ec4fba 100644 --- a/rbi/lib/openai/models/vector_stores/file_create_params.rbi +++ b/rbi/lib/openai/models/vector_stores/file_create_params.rbi @@ -98,8 +98,8 @@ module OpenAI def to_hash end - class Attribute < OpenAI::Union - abstract! + module Attribute + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(String, Float, T::Boolean)} } end diff --git a/rbi/lib/openai/models/vector_stores/file_list_params.rbi b/rbi/lib/openai/models/vector_stores/file_list_params.rbi index 0f62a65d..20a4bce5 100644 --- a/rbi/lib/openai/models/vector_stores/file_list_params.rbi +++ b/rbi/lib/openai/models/vector_stores/file_list_params.rbi @@ -32,11 +32,14 @@ module OpenAI end # Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::VectorStores::FileListParams::Filter::OrSymbol)) } def filter end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::VectorStores::FileListParams::Filter::OrSymbol) + .returns(OpenAI::Models::VectorStores::FileListParams::Filter::OrSymbol) + end def filter=(_) end @@ -52,11 +55,14 @@ module OpenAI # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - sig { returns(T.nilable(Symbol)) } + sig { returns(T.nilable(OpenAI::Models::VectorStores::FileListParams::Order::OrSymbol)) } def order end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::VectorStores::FileListParams::Order::OrSymbol) + .returns(OpenAI::Models::VectorStores::FileListParams::Order::OrSymbol) + end def order=(_) end @@ -64,9 +70,9 @@ module OpenAI params( after: String, before: String, - filter: Symbol, + filter: OpenAI::Models::VectorStores::FileListParams::Filter::OrSymbol, limit: Integer, - order: Symbol, + order: OpenAI::Models::VectorStores::FileListParams::Order::OrSymbol, request_options: T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything]) ) .returns(T.attached_class) @@ -80,9 +86,9 @@ module OpenAI { after: String, before: String, - filter: Symbol, + filter: OpenAI::Models::VectorStores::FileListParams::Filter::OrSymbol, limit: Integer, - order: Symbol, + order: OpenAI::Models::VectorStores::FileListParams::Order::OrSymbol, request_options: OpenAI::RequestOptions } ) @@ -91,26 +97,30 @@ module OpenAI end # Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. - class Filter < OpenAI::Enum - abstract! + module Filter + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::VectorStores::FileListParams::Filter) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::VectorStores::FileListParams::Filter::TaggedSymbol) } - IN_PROGRESS = :in_progress - COMPLETED = :completed - FAILED = :failed - CANCELLED = :cancelled + IN_PROGRESS = T.let(:in_progress, OpenAI::Models::VectorStores::FileListParams::Filter::OrSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::VectorStores::FileListParams::Filter::OrSymbol) + FAILED = T.let(:failed, OpenAI::Models::VectorStores::FileListParams::Filter::OrSymbol) + CANCELLED = T.let(:cancelled, OpenAI::Models::VectorStores::FileListParams::Filter::OrSymbol) end # Sort order by the `created_at` timestamp of the objects. `asc` for ascending # order and `desc` for descending order. - class Order < OpenAI::Enum - abstract! + module Order + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::VectorStores::FileListParams::Order) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::VectorStores::FileListParams::Order::TaggedSymbol) } - ASC = :asc - DESC = :desc + ASC = T.let(:asc, OpenAI::Models::VectorStores::FileListParams::Order::OrSymbol) + DESC = T.let(:desc, OpenAI::Models::VectorStores::FileListParams::Order::OrSymbol) end end end diff --git a/rbi/lib/openai/models/vector_stores/file_update_params.rbi b/rbi/lib/openai/models/vector_stores/file_update_params.rbi index e3693815..fe35965e 100644 --- a/rbi/lib/openai/models/vector_stores/file_update_params.rbi +++ b/rbi/lib/openai/models/vector_stores/file_update_params.rbi @@ -55,8 +55,8 @@ module OpenAI def to_hash end - class Attribute < OpenAI::Union - abstract! + module Attribute + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(String, Float, T::Boolean)} } end diff --git a/rbi/lib/openai/models/vector_stores/vector_store_file.rbi b/rbi/lib/openai/models/vector_stores/vector_store_file.rbi index 4e1a4a36..fc8ccf5a 100644 --- a/rbi/lib/openai/models/vector_stores/vector_store_file.rbi +++ b/rbi/lib/openai/models/vector_stores/vector_store_file.rbi @@ -47,11 +47,14 @@ module OpenAI # The status of the vector store file, which can be either `in_progress`, # `completed`, `cancelled`, or `failed`. The status `completed` indicates that the # vector store file is ready for use. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::VectorStores::VectorStoreFile::Status::TaggedSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::VectorStores::VectorStoreFile::Status::TaggedSymbol) + .returns(OpenAI::Models::VectorStores::VectorStoreFile::Status::TaggedSymbol) + end def status=(_) end @@ -121,7 +124,7 @@ module OpenAI id: String, created_at: Integer, last_error: T.nilable(OpenAI::Models::VectorStores::VectorStoreFile::LastError), - status: Symbol, + status: OpenAI::Models::VectorStores::VectorStoreFile::Status::TaggedSymbol, usage_bytes: Integer, vector_store_id: String, attributes: T.nilable(T::Hash[Symbol, T.any(String, Float, T::Boolean)]), @@ -151,7 +154,7 @@ module OpenAI created_at: Integer, last_error: T.nilable(OpenAI::Models::VectorStores::VectorStoreFile::LastError), object: Symbol, - status: Symbol, + status: OpenAI::Models::VectorStores::VectorStoreFile::Status::TaggedSymbol, usage_bytes: Integer, vector_store_id: String, attributes: T.nilable(T::Hash[Symbol, T.any(String, Float, T::Boolean)]), @@ -164,11 +167,14 @@ module OpenAI class LastError < OpenAI::BaseModel # One of `server_error` or `rate_limit_exceeded`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::VectorStores::VectorStoreFile::LastError::Code::TaggedSymbol) } def code end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::VectorStores::VectorStoreFile::LastError::Code::TaggedSymbol) + .returns(OpenAI::Models::VectorStores::VectorStoreFile::LastError::Code::TaggedSymbol) + end def code=(_) end @@ -183,42 +189,61 @@ module OpenAI # The last error associated with this vector store file. Will be `null` if there # are no errors. - sig { params(code: Symbol, message: String).returns(T.attached_class) } + sig do + params( + code: OpenAI::Models::VectorStores::VectorStoreFile::LastError::Code::TaggedSymbol, + message: String + ) + .returns(T.attached_class) + end def self.new(code:, message:) end - sig { override.returns({code: Symbol, message: String}) } + sig do + override + .returns( + {code: OpenAI::Models::VectorStores::VectorStoreFile::LastError::Code::TaggedSymbol, message: String} + ) + end def to_hash end # One of `server_error` or `rate_limit_exceeded`. - class Code < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - SERVER_ERROR = :server_error - UNSUPPORTED_FILE = :unsupported_file - INVALID_FILE = :invalid_file + module Code + extend OpenAI::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, OpenAI::Models::VectorStores::VectorStoreFile::LastError::Code) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::VectorStores::VectorStoreFile::LastError::Code::TaggedSymbol) } + + SERVER_ERROR = + T.let(:server_error, OpenAI::Models::VectorStores::VectorStoreFile::LastError::Code::TaggedSymbol) + UNSUPPORTED_FILE = + T.let(:unsupported_file, OpenAI::Models::VectorStores::VectorStoreFile::LastError::Code::TaggedSymbol) + INVALID_FILE = + T.let(:invalid_file, OpenAI::Models::VectorStores::VectorStoreFile::LastError::Code::TaggedSymbol) end end # The status of the vector store file, which can be either `in_progress`, # `completed`, `cancelled`, or `failed`. The status `completed` indicates that the # vector store file is ready for use. - class Status < OpenAI::Enum - abstract! + module Status + extend OpenAI::Enum - Value = type_template(:out) { {fixed: Symbol} } + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::VectorStores::VectorStoreFile::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::VectorStores::VectorStoreFile::Status::TaggedSymbol) } - IN_PROGRESS = :in_progress - COMPLETED = :completed - CANCELLED = :cancelled - FAILED = :failed + IN_PROGRESS = T.let(:in_progress, OpenAI::Models::VectorStores::VectorStoreFile::Status::TaggedSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::VectorStores::VectorStoreFile::Status::TaggedSymbol) + CANCELLED = T.let(:cancelled, OpenAI::Models::VectorStores::VectorStoreFile::Status::TaggedSymbol) + FAILED = T.let(:failed, OpenAI::Models::VectorStores::VectorStoreFile::Status::TaggedSymbol) end - class Attribute < OpenAI::Union - abstract! + module Attribute + extend OpenAI::Union Variants = type_template(:out) { {fixed: T.any(String, Float, T::Boolean)} } end diff --git a/rbi/lib/openai/models/vector_stores/vector_store_file_batch.rbi b/rbi/lib/openai/models/vector_stores/vector_store_file_batch.rbi index 2e5ce798..4627b63f 100644 --- a/rbi/lib/openai/models/vector_stores/vector_store_file_batch.rbi +++ b/rbi/lib/openai/models/vector_stores/vector_store_file_batch.rbi @@ -45,11 +45,14 @@ module OpenAI # The status of the vector store files batch, which can be either `in_progress`, # `completed`, `cancelled` or `failed`. - sig { returns(Symbol) } + sig { returns(OpenAI::Models::VectorStores::VectorStoreFileBatch::Status::TaggedSymbol) } def status end - sig { params(_: Symbol).returns(Symbol) } + sig do + params(_: OpenAI::Models::VectorStores::VectorStoreFileBatch::Status::TaggedSymbol) + .returns(OpenAI::Models::VectorStores::VectorStoreFileBatch::Status::TaggedSymbol) + end def status=(_) end @@ -71,7 +74,7 @@ module OpenAI id: String, created_at: Integer, file_counts: OpenAI::Models::VectorStores::VectorStoreFileBatch::FileCounts, - status: Symbol, + status: OpenAI::Models::VectorStores::VectorStoreFileBatch::Status::TaggedSymbol, vector_store_id: String, object: Symbol ) @@ -88,7 +91,7 @@ module OpenAI created_at: Integer, file_counts: OpenAI::Models::VectorStores::VectorStoreFileBatch::FileCounts, object: Symbol, - status: Symbol, + status: OpenAI::Models::VectorStores::VectorStoreFileBatch::Status::TaggedSymbol, vector_store_id: String } ) @@ -171,15 +174,18 @@ module OpenAI # The status of the vector store files batch, which can be either `in_progress`, # `completed`, `cancelled` or `failed`. - class Status < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - IN_PROGRESS = :in_progress - COMPLETED = :completed - CANCELLED = :cancelled - FAILED = :failed + module Status + extend OpenAI::Enum + + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Models::VectorStores::VectorStoreFileBatch::Status) } + OrSymbol = + T.type_alias { T.any(Symbol, OpenAI::Models::VectorStores::VectorStoreFileBatch::Status::TaggedSymbol) } + + IN_PROGRESS = + T.let(:in_progress, OpenAI::Models::VectorStores::VectorStoreFileBatch::Status::TaggedSymbol) + COMPLETED = T.let(:completed, OpenAI::Models::VectorStores::VectorStoreFileBatch::Status::TaggedSymbol) + CANCELLED = T.let(:cancelled, OpenAI::Models::VectorStores::VectorStoreFileBatch::Status::TaggedSymbol) + FAILED = T.let(:failed, OpenAI::Models::VectorStores::VectorStoreFileBatch::Status::TaggedSymbol) end end end diff --git a/rbi/lib/openai/resources/audio/speech.rbi b/rbi/lib/openai/resources/audio/speech.rbi index e2e85216..c434cedb 100644 --- a/rbi/lib/openai/resources/audio/speech.rbi +++ b/rbi/lib/openai/resources/audio/speech.rbi @@ -8,10 +8,10 @@ module OpenAI sig do params( input: String, - model: T.any(String, Symbol), - voice: Symbol, + model: T.any(String, OpenAI::Models::Audio::SpeechModel::OrSymbol), + voice: OpenAI::Models::Audio::SpeechCreateParams::Voice::OrSymbol, instructions: String, - response_format: Symbol, + response_format: OpenAI::Models::Audio::SpeechCreateParams::ResponseFormat::OrSymbol, speed: Float, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) diff --git a/rbi/lib/openai/resources/audio/transcriptions.rbi b/rbi/lib/openai/resources/audio/transcriptions.rbi index a1340034..38f106b4 100644 --- a/rbi/lib/openai/resources/audio/transcriptions.rbi +++ b/rbi/lib/openai/resources/audio/transcriptions.rbi @@ -8,13 +8,13 @@ module OpenAI sig do params( file: T.any(IO, StringIO), - model: T.any(String, Symbol), - include: T::Array[Symbol], + model: T.any(String, OpenAI::Models::AudioModel::OrSymbol), + include: T::Array[OpenAI::Models::Audio::TranscriptionInclude::OrSymbol], language: String, prompt: String, - response_format: Symbol, + response_format: OpenAI::Models::AudioResponseFormat::OrSymbol, temperature: Float, - timestamp_granularities: T::Array[Symbol], + timestamp_granularities: T::Array[OpenAI::Models::Audio::TranscriptionCreateParams::TimestampGranularity::OrSymbol], stream: T.noreturn, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) @@ -70,13 +70,13 @@ module OpenAI sig do params( file: T.any(IO, StringIO), - model: T.any(String, Symbol), - include: T::Array[Symbol], + model: T.any(String, OpenAI::Models::AudioModel::OrSymbol), + include: T::Array[OpenAI::Models::Audio::TranscriptionInclude::OrSymbol], language: String, prompt: String, - response_format: Symbol, + response_format: OpenAI::Models::AudioResponseFormat::OrSymbol, temperature: Float, - timestamp_granularities: T::Array[Symbol], + timestamp_granularities: T::Array[OpenAI::Models::Audio::TranscriptionCreateParams::TimestampGranularity::OrSymbol], stream: T.noreturn, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) diff --git a/rbi/lib/openai/resources/audio/translations.rbi b/rbi/lib/openai/resources/audio/translations.rbi index 278e3855..baf563ad 100644 --- a/rbi/lib/openai/resources/audio/translations.rbi +++ b/rbi/lib/openai/resources/audio/translations.rbi @@ -8,9 +8,9 @@ module OpenAI sig do params( file: T.any(IO, StringIO), - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::AudioModel::OrSymbol), prompt: String, - response_format: Symbol, + response_format: OpenAI::Models::Audio::TranslationCreateParams::ResponseFormat::OrSymbol, temperature: Float, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) diff --git a/rbi/lib/openai/resources/batches.rbi b/rbi/lib/openai/resources/batches.rbi index 10691913..1a12c440 100644 --- a/rbi/lib/openai/resources/batches.rbi +++ b/rbi/lib/openai/resources/batches.rbi @@ -6,8 +6,8 @@ module OpenAI # Creates and executes a batch from an uploaded file of requests sig do params( - completion_window: Symbol, - endpoint: Symbol, + completion_window: OpenAI::Models::BatchCreateParams::CompletionWindow::OrSymbol, + endpoint: OpenAI::Models::BatchCreateParams::Endpoint::OrSymbol, input_file_id: String, metadata: T.nilable(T::Hash[Symbol, String]), request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) diff --git a/rbi/lib/openai/resources/beta/assistants.rbi b/rbi/lib/openai/resources/beta/assistants.rbi index 5ddd1f14..5179a450 100644 --- a/rbi/lib/openai/resources/beta/assistants.rbi +++ b/rbi/lib/openai/resources/beta/assistants.rbi @@ -7,12 +7,12 @@ module OpenAI # Create an assistant with a model and instructions. sig do params( - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::ChatModel::OrSymbol), description: T.nilable(String), instructions: T.nilable(String), metadata: T.nilable(T::Hash[Symbol, String]), name: T.nilable(String), - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.nilable( T.any( Symbol, @@ -129,9 +129,9 @@ module OpenAI description: T.nilable(String), instructions: T.nilable(String), metadata: T.nilable(T::Hash[Symbol, String]), - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::Beta::AssistantUpdateParams::Model::OrSymbol), name: T.nilable(String), - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.nilable( T.any( Symbol, @@ -234,7 +234,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Beta::AssistantListParams::Order::OrSymbol, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns(OpenAI::CursorPage[OpenAI::Models::Beta::Assistant]) diff --git a/rbi/lib/openai/resources/beta/threads.rbi b/rbi/lib/openai/resources/beta/threads.rbi index 1479fd01..6db707e7 100644 --- a/rbi/lib/openai/resources/beta/threads.rbi +++ b/rbi/lib/openai/resources/beta/threads.rbi @@ -109,7 +109,7 @@ module OpenAI max_completion_tokens: T.nilable(Integer), max_prompt_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol)), parallel_tool_calls: T::Boolean, response_format: T.nilable( T.any( @@ -121,7 +121,12 @@ module OpenAI ), temperature: T.nilable(Float), thread: OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread, - tool_choice: T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice)), + tool_choice: T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ), tool_resources: T.nilable(OpenAI::Models::Beta::ThreadCreateAndRunParams::ToolResources), tools: T.nilable( T::Array[ @@ -243,7 +248,7 @@ module OpenAI max_completion_tokens: T.nilable(Integer), max_prompt_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol)), parallel_tool_calls: T::Boolean, response_format: T.nilable( T.any( @@ -255,7 +260,12 @@ module OpenAI ), temperature: T.nilable(Float), thread: OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread, - tool_choice: T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice)), + tool_choice: T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ), tool_resources: T.nilable(OpenAI::Models::Beta::ThreadCreateAndRunParams::ToolResources), tools: T.nilable( T::Array[ diff --git a/rbi/lib/openai/resources/beta/threads/messages.rbi b/rbi/lib/openai/resources/beta/threads/messages.rbi index 3ec7bab4..68fd1790 100644 --- a/rbi/lib/openai/resources/beta/threads/messages.rbi +++ b/rbi/lib/openai/resources/beta/threads/messages.rbi @@ -19,7 +19,7 @@ module OpenAI ) ] ), - role: Symbol, + role: OpenAI::Models::Beta::Threads::MessageCreateParams::Role::OrSymbol, attachments: T.nilable(T::Array[OpenAI::Models::Beta::Threads::MessageCreateParams::Attachment]), metadata: T.nilable(T::Hash[Symbol, String]), request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) @@ -104,7 +104,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Beta::Threads::MessageListParams::Order::OrSymbol, run_id: String, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) diff --git a/rbi/lib/openai/resources/beta/threads/runs.rbi b/rbi/lib/openai/resources/beta/threads/runs.rbi index cd747220..f5d012a0 100644 --- a/rbi/lib/openai/resources/beta/threads/runs.rbi +++ b/rbi/lib/openai/resources/beta/threads/runs.rbi @@ -14,16 +14,16 @@ module OpenAI params( thread_id: String, assistant_id: String, - include: T::Array[Symbol], + include: T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol], additional_instructions: T.nilable(String), additional_messages: T.nilable(T::Array[OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage]), instructions: T.nilable(String), max_completion_tokens: T.nilable(Integer), max_prompt_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol)), parallel_tool_calls: T::Boolean, - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.nilable( T.any( Symbol, @@ -33,7 +33,12 @@ module OpenAI ) ), temperature: T.nilable(Float), - tool_choice: T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice)), + tool_choice: T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ), tools: T.nilable( T::Array[ T.any( @@ -171,16 +176,16 @@ module OpenAI params( thread_id: String, assistant_id: String, - include: T::Array[Symbol], + include: T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol], additional_instructions: T.nilable(String), additional_messages: T.nilable(T::Array[OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage]), instructions: T.nilable(String), max_completion_tokens: T.nilable(Integer), max_prompt_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ChatModel::OrSymbol)), parallel_tool_calls: T::Boolean, - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.nilable( T.any( Symbol, @@ -190,7 +195,12 @@ module OpenAI ) ), temperature: T.nilable(Float), - tool_choice: T.nilable(T.any(Symbol, OpenAI::Models::Beta::AssistantToolChoice)), + tool_choice: T.nilable( + T.any( + OpenAI::Models::Beta::AssistantToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Beta::AssistantToolChoice + ) + ), tools: T.nilable( T::Array[ T.any( @@ -405,7 +415,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Beta::Threads::RunListParams::Order::OrSymbol, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns(OpenAI::CursorPage[OpenAI::Models::Beta::Threads::Run]) diff --git a/rbi/lib/openai/resources/beta/threads/runs/steps.rbi b/rbi/lib/openai/resources/beta/threads/runs/steps.rbi index 4833b5fb..5dfa9a8a 100644 --- a/rbi/lib/openai/resources/beta/threads/runs/steps.rbi +++ b/rbi/lib/openai/resources/beta/threads/runs/steps.rbi @@ -12,7 +12,7 @@ module OpenAI step_id: String, thread_id: String, run_id: String, - include: T::Array[Symbol], + include: T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol], request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns(OpenAI::Models::Beta::Threads::Runs::RunStep) @@ -44,9 +44,9 @@ module OpenAI thread_id: String, after: String, before: String, - include: T::Array[Symbol], + include: T::Array[OpenAI::Models::Beta::Threads::Runs::RunStepInclude::OrSymbol], limit: Integer, - order: Symbol, + order: OpenAI::Models::Beta::Threads::Runs::StepListParams::Order::OrSymbol, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns(OpenAI::CursorPage[OpenAI::Models::Beta::Threads::Runs::RunStep]) diff --git a/rbi/lib/openai/resources/chat/completions.rbi b/rbi/lib/openai/resources/chat/completions.rbi index fff5ad69..8fc9878c 100644 --- a/rbi/lib/openai/resources/chat/completions.rbi +++ b/rbi/lib/openai/resources/chat/completions.rbi @@ -37,34 +37,40 @@ module OpenAI OpenAI::Models::Chat::ChatCompletionFunctionMessageParam ) ], - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::ChatModel::OrSymbol), audio: T.nilable(OpenAI::Models::Chat::ChatCompletionAudioParam), frequency_penalty: T.nilable(Float), - function_call: T.any(Symbol, OpenAI::Models::Chat::ChatCompletionFunctionCallOption), + function_call: T.any( + OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode::OrSymbol, + OpenAI::Models::Chat::ChatCompletionFunctionCallOption + ), functions: T::Array[OpenAI::Models::Chat::CompletionCreateParams::Function], logit_bias: T.nilable(T::Hash[Symbol, Integer]), logprobs: T.nilable(T::Boolean), max_completion_tokens: T.nilable(Integer), max_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), - modalities: T.nilable(T::Array[Symbol]), + modalities: T.nilable(T::Array[OpenAI::Models::Chat::CompletionCreateParams::Modality::OrSymbol]), n: T.nilable(Integer), parallel_tool_calls: T::Boolean, prediction: T.nilable(OpenAI::Models::Chat::ChatCompletionPredictionContent), presence_penalty: T.nilable(Float), - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.any( OpenAI::Models::ResponseFormatText, OpenAI::Models::ResponseFormatJSONSchema, OpenAI::Models::ResponseFormatJSONObject ), seed: T.nilable(Integer), - service_tier: T.nilable(Symbol), + service_tier: T.nilable(OpenAI::Models::Chat::CompletionCreateParams::ServiceTier::OrSymbol), stop: T.nilable(T.any(String, T::Array[String])), store: T.nilable(T::Boolean), stream_options: T.nilable(OpenAI::Models::Chat::ChatCompletionStreamOptions), temperature: T.nilable(Float), - tool_choice: T.any(Symbol, OpenAI::Models::Chat::ChatCompletionNamedToolChoice), + tool_choice: T.any( + OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Chat::ChatCompletionNamedToolChoice + ), tools: T::Array[OpenAI::Models::Chat::ChatCompletionTool], top_logprobs: T.nilable(Integer), top_p: T.nilable(Float), @@ -295,34 +301,40 @@ module OpenAI OpenAI::Models::Chat::ChatCompletionFunctionMessageParam ) ], - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::ChatModel::OrSymbol), audio: T.nilable(OpenAI::Models::Chat::ChatCompletionAudioParam), frequency_penalty: T.nilable(Float), - function_call: T.any(Symbol, OpenAI::Models::Chat::ChatCompletionFunctionCallOption), + function_call: T.any( + OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode::OrSymbol, + OpenAI::Models::Chat::ChatCompletionFunctionCallOption + ), functions: T::Array[OpenAI::Models::Chat::CompletionCreateParams::Function], logit_bias: T.nilable(T::Hash[Symbol, Integer]), logprobs: T.nilable(T::Boolean), max_completion_tokens: T.nilable(Integer), max_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), - modalities: T.nilable(T::Array[Symbol]), + modalities: T.nilable(T::Array[OpenAI::Models::Chat::CompletionCreateParams::Modality::OrSymbol]), n: T.nilable(Integer), parallel_tool_calls: T::Boolean, prediction: T.nilable(OpenAI::Models::Chat::ChatCompletionPredictionContent), presence_penalty: T.nilable(Float), - reasoning_effort: T.nilable(Symbol), + reasoning_effort: T.nilable(OpenAI::Models::ReasoningEffort::OrSymbol), response_format: T.any( OpenAI::Models::ResponseFormatText, OpenAI::Models::ResponseFormatJSONSchema, OpenAI::Models::ResponseFormatJSONObject ), seed: T.nilable(Integer), - service_tier: T.nilable(Symbol), + service_tier: T.nilable(OpenAI::Models::Chat::CompletionCreateParams::ServiceTier::OrSymbol), stop: T.nilable(T.any(String, T::Array[String])), store: T.nilable(T::Boolean), stream_options: T.nilable(OpenAI::Models::Chat::ChatCompletionStreamOptions), temperature: T.nilable(Float), - tool_choice: T.any(Symbol, OpenAI::Models::Chat::ChatCompletionNamedToolChoice), + tool_choice: T.any( + OpenAI::Models::Chat::ChatCompletionToolChoiceOption::Auto::OrSymbol, + OpenAI::Models::Chat::ChatCompletionNamedToolChoice + ), tools: T::Array[OpenAI::Models::Chat::ChatCompletionTool], top_logprobs: T.nilable(Integer), top_p: T.nilable(Float), @@ -573,7 +585,7 @@ module OpenAI limit: Integer, metadata: T.nilable(T::Hash[Symbol, String]), model: String, - order: Symbol, + order: OpenAI::Models::Chat::CompletionListParams::Order::OrSymbol, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns(OpenAI::CursorPage[OpenAI::Models::Chat::ChatCompletion]) diff --git a/rbi/lib/openai/resources/chat/completions/messages.rbi b/rbi/lib/openai/resources/chat/completions/messages.rbi index 3e7c16e2..0667ddbc 100644 --- a/rbi/lib/openai/resources/chat/completions/messages.rbi +++ b/rbi/lib/openai/resources/chat/completions/messages.rbi @@ -12,7 +12,7 @@ module OpenAI completion_id: String, after: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Chat::Completions::MessageListParams::Order::OrSymbol, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns(OpenAI::CursorPage[OpenAI::Models::Chat::ChatCompletionStoreMessage]) diff --git a/rbi/lib/openai/resources/completions.rbi b/rbi/lib/openai/resources/completions.rbi index 8e9e52d4..b894675b 100644 --- a/rbi/lib/openai/resources/completions.rbi +++ b/rbi/lib/openai/resources/completions.rbi @@ -6,7 +6,7 @@ module OpenAI # Creates a completion for the provided prompt and parameters. sig do params( - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::CompletionCreateParams::Model::OrSymbol), prompt: T.nilable( T.any( String, @@ -149,7 +149,7 @@ module OpenAI # Creates a completion for the provided prompt and parameters. sig do params( - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::CompletionCreateParams::Model::OrSymbol), prompt: T.nilable( T.any( String, diff --git a/rbi/lib/openai/resources/embeddings.rbi b/rbi/lib/openai/resources/embeddings.rbi index 025c37a7..65a19f1d 100644 --- a/rbi/lib/openai/resources/embeddings.rbi +++ b/rbi/lib/openai/resources/embeddings.rbi @@ -7,9 +7,9 @@ module OpenAI sig do params( input: T.any(String, T::Array[String], T::Array[Integer], T::Array[T::Array[Integer]]), - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::EmbeddingModel::OrSymbol), dimensions: Integer, - encoding_format: Symbol, + encoding_format: OpenAI::Models::EmbeddingCreateParams::EncodingFormat::OrSymbol, user: String, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) diff --git a/rbi/lib/openai/resources/files.rbi b/rbi/lib/openai/resources/files.rbi index 441f93e0..da0efe9d 100644 --- a/rbi/lib/openai/resources/files.rbi +++ b/rbi/lib/openai/resources/files.rbi @@ -27,7 +27,7 @@ module OpenAI sig do params( file: T.any(IO, StringIO), - purpose: Symbol, + purpose: OpenAI::Models::FilePurpose::OrSymbol, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns(OpenAI::Models::FileObject) @@ -64,7 +64,7 @@ module OpenAI params( after: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::FileListParams::Order::OrSymbol, purpose: String, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) diff --git a/rbi/lib/openai/resources/fine_tuning/jobs.rbi b/rbi/lib/openai/resources/fine_tuning/jobs.rbi index b3f7cc15..1c55189e 100644 --- a/rbi/lib/openai/resources/fine_tuning/jobs.rbi +++ b/rbi/lib/openai/resources/fine_tuning/jobs.rbi @@ -17,7 +17,7 @@ module OpenAI # [Learn more about fine-tuning](https://platform.openai.com/docs/guides/fine-tuning) sig do params( - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::FineTuning::JobCreateParams::Model::OrSymbol), training_file: String, hyperparameters: OpenAI::Models::FineTuning::JobCreateParams::Hyperparameters, integrations: T.nilable(T::Array[OpenAI::Models::FineTuning::JobCreateParams::Integration]), diff --git a/rbi/lib/openai/resources/images.rbi b/rbi/lib/openai/resources/images.rbi index 396f2edd..1944e5f2 100644 --- a/rbi/lib/openai/resources/images.rbi +++ b/rbi/lib/openai/resources/images.rbi @@ -7,10 +7,10 @@ module OpenAI sig do params( image: T.any(IO, StringIO), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol)), n: T.nilable(Integer), - response_format: T.nilable(Symbol), - size: T.nilable(Symbol), + response_format: T.nilable(OpenAI::Models::ImageCreateVariationParams::ResponseFormat::OrSymbol), + size: T.nilable(OpenAI::Models::ImageCreateVariationParams::Size::OrSymbol), user: String, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) @@ -47,10 +47,10 @@ module OpenAI image: T.any(IO, StringIO), prompt: String, mask: T.any(IO, StringIO), - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol)), n: T.nilable(Integer), - response_format: T.nilable(Symbol), - size: T.nilable(Symbol), + response_format: T.nilable(OpenAI::Models::ImageEditParams::ResponseFormat::OrSymbol), + size: T.nilable(OpenAI::Models::ImageEditParams::Size::OrSymbol), user: String, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) @@ -91,12 +91,12 @@ module OpenAI sig do params( prompt: String, - model: T.nilable(T.any(String, Symbol)), + model: T.nilable(T.any(String, OpenAI::Models::ImageModel::OrSymbol)), n: T.nilable(Integer), - quality: Symbol, - response_format: T.nilable(Symbol), - size: T.nilable(Symbol), - style: T.nilable(Symbol), + quality: OpenAI::Models::ImageGenerateParams::Quality::OrSymbol, + response_format: T.nilable(OpenAI::Models::ImageGenerateParams::ResponseFormat::OrSymbol), + size: T.nilable(OpenAI::Models::ImageGenerateParams::Size::OrSymbol), + style: T.nilable(OpenAI::Models::ImageGenerateParams::Style::OrSymbol), user: String, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) diff --git a/rbi/lib/openai/resources/moderations.rbi b/rbi/lib/openai/resources/moderations.rbi index 3b9b2bd0..b57441a5 100644 --- a/rbi/lib/openai/resources/moderations.rbi +++ b/rbi/lib/openai/resources/moderations.rbi @@ -12,7 +12,7 @@ module OpenAI T::Array[String], T::Array[T.any(OpenAI::Models::ModerationImageURLInput, OpenAI::Models::ModerationTextInput)] ), - model: T.any(String, Symbol), + model: T.any(String, OpenAI::Models::ModerationModel::OrSymbol), request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns(OpenAI::Models::ModerationCreateResponse) diff --git a/rbi/lib/openai/resources/responses.rbi b/rbi/lib/openai/resources/responses.rbi index 64ab5c27..701c8406 100644 --- a/rbi/lib/openai/resources/responses.rbi +++ b/rbi/lib/openai/resources/responses.rbi @@ -38,8 +38,8 @@ module OpenAI ) ] ), - model: T.any(String, Symbol), - include: T.nilable(T::Array[Symbol]), + model: T.any(String, OpenAI::Models::ChatModel::OrSymbol, OpenAI::Models::ResponsesModel::UnionMember2::OrSymbol), + include: T.nilable(T::Array[OpenAI::Models::Responses::ResponseIncludable::OrSymbol]), instructions: T.nilable(String), max_output_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), @@ -49,7 +49,11 @@ module OpenAI store: T.nilable(T::Boolean), temperature: T.nilable(Float), text: OpenAI::Models::Responses::ResponseTextConfig, - tool_choice: T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction), + tool_choice: T.any( + OpenAI::Models::Responses::ToolChoiceOptions::OrSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ), tools: T::Array[ T.any( OpenAI::Models::Responses::FileSearchTool, @@ -59,7 +63,7 @@ module OpenAI ) ], top_p: T.nilable(Float), - truncation: T.nilable(Symbol), + truncation: T.nilable(OpenAI::Models::Responses::ResponseCreateParams::Truncation::OrSymbol), user: String, stream: T.noreturn, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) @@ -209,8 +213,8 @@ module OpenAI ) ] ), - model: T.any(String, Symbol), - include: T.nilable(T::Array[Symbol]), + model: T.any(String, OpenAI::Models::ChatModel::OrSymbol, OpenAI::Models::ResponsesModel::UnionMember2::OrSymbol), + include: T.nilable(T::Array[OpenAI::Models::Responses::ResponseIncludable::OrSymbol]), instructions: T.nilable(String), max_output_tokens: T.nilable(Integer), metadata: T.nilable(T::Hash[Symbol, String]), @@ -220,7 +224,11 @@ module OpenAI store: T.nilable(T::Boolean), temperature: T.nilable(Float), text: OpenAI::Models::Responses::ResponseTextConfig, - tool_choice: T.any(Symbol, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction), + tool_choice: T.any( + OpenAI::Models::Responses::ToolChoiceOptions::OrSymbol, + OpenAI::Models::Responses::ToolChoiceTypes, + OpenAI::Models::Responses::ToolChoiceFunction + ), tools: T::Array[ T.any( OpenAI::Models::Responses::FileSearchTool, @@ -230,7 +238,7 @@ module OpenAI ) ], top_p: T.nilable(Float), - truncation: T.nilable(Symbol), + truncation: T.nilable(OpenAI::Models::Responses::ResponseCreateParams::Truncation::OrSymbol), user: String, stream: T.noreturn, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) @@ -390,7 +398,7 @@ module OpenAI sig do params( response_id: String, - include: T::Array[Symbol], + include: T::Array[OpenAI::Models::Responses::ResponseIncludable::OrSymbol], request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns(OpenAI::Models::Responses::Response) diff --git a/rbi/lib/openai/resources/responses/input_items.rbi b/rbi/lib/openai/resources/responses/input_items.rbi index 44e41eb2..7f92008d 100644 --- a/rbi/lib/openai/resources/responses/input_items.rbi +++ b/rbi/lib/openai/resources/responses/input_items.rbi @@ -11,7 +11,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::Responses::InputItemListParams::Order::OrSymbol, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns( diff --git a/rbi/lib/openai/resources/uploads.rbi b/rbi/lib/openai/resources/uploads.rbi index 98a58dc5..6ee12473 100644 --- a/rbi/lib/openai/resources/uploads.rbi +++ b/rbi/lib/openai/resources/uploads.rbi @@ -31,7 +31,7 @@ module OpenAI bytes: Integer, filename: String, mime_type: String, - purpose: Symbol, + purpose: OpenAI::Models::FilePurpose::OrSymbol, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns(OpenAI::Models::Upload) diff --git a/rbi/lib/openai/resources/vector_stores.rbi b/rbi/lib/openai/resources/vector_stores.rbi index 86418315..7e24de66 100644 --- a/rbi/lib/openai/resources/vector_stores.rbi +++ b/rbi/lib/openai/resources/vector_stores.rbi @@ -99,7 +99,7 @@ module OpenAI after: String, before: String, limit: Integer, - order: Symbol, + order: OpenAI::Models::VectorStoreListParams::Order::OrSymbol, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns(OpenAI::CursorPage[OpenAI::Models::VectorStore]) diff --git a/rbi/lib/openai/resources/vector_stores/file_batches.rbi b/rbi/lib/openai/resources/vector_stores/file_batches.rbi index ec4e8e7a..c8a0af8b 100644 --- a/rbi/lib/openai/resources/vector_stores/file_batches.rbi +++ b/rbi/lib/openai/resources/vector_stores/file_batches.rbi @@ -82,9 +82,9 @@ module OpenAI vector_store_id: String, after: String, before: String, - filter: Symbol, + filter: OpenAI::Models::VectorStores::FileBatchListFilesParams::Filter::OrSymbol, limit: Integer, - order: Symbol, + order: OpenAI::Models::VectorStores::FileBatchListFilesParams::Order::OrSymbol, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns(OpenAI::CursorPage[OpenAI::Models::VectorStores::VectorStoreFile]) diff --git a/rbi/lib/openai/resources/vector_stores/files.rbi b/rbi/lib/openai/resources/vector_stores/files.rbi index 2fc3ae57..88902be4 100644 --- a/rbi/lib/openai/resources/vector_stores/files.rbi +++ b/rbi/lib/openai/resources/vector_stores/files.rbi @@ -89,9 +89,9 @@ module OpenAI vector_store_id: String, after: String, before: String, - filter: Symbol, + filter: OpenAI::Models::VectorStores::FileListParams::Filter::OrSymbol, limit: Integer, - order: Symbol, + order: OpenAI::Models::VectorStores::FileListParams::Order::OrSymbol, request_options: T.nilable(T.any(OpenAI::RequestOptions, T::Hash[Symbol, T.anything])) ) .returns(OpenAI::CursorPage[OpenAI::Models::VectorStores::VectorStoreFile]) diff --git a/sig/openai/base_model.rbs b/sig/openai/base_model.rbs index ba62241d..ff01cbf3 100644 --- a/sig/openai/base_model.rbs +++ b/sig/openai/base_model.rbs @@ -62,28 +62,28 @@ module OpenAI ) -> ([true, top, nil] | [false, bool, Integer]) end - class Enum - extend OpenAI::Converter + module Enum + include OpenAI::Converter def self.values: -> ::Array[(nil | bool | Integer | Float | Symbol)] private def self.finalize!: -> void - def self.===: (top other) -> bool + def ===: (top other) -> bool - def self.==: (top other) -> bool + def ==: (top other) -> bool - def self.coerce: (String | Symbol | top value) -> (Symbol | top) + def coerce: (String | Symbol | top value) -> (Symbol | top) - def self.dump: (Symbol | top value) -> (Symbol | top) + def dump: (Symbol | top value) -> (Symbol | top) - def self.try_strict_coerce: ( + def try_strict_coerce: ( top value ) -> ([true, top, nil] | [false, bool, Integer]) end - class Union - extend OpenAI::Converter + module Union + include OpenAI::Converter private def self.known_variants: -> ::Array[[Symbol?, (^-> OpenAI::Converter::input)]] @@ -105,15 +105,15 @@ module OpenAI private def self.resolve_variant: (top value) -> OpenAI::Converter::input? - def self.===: (top other) -> bool + def ===: (top other) -> bool - def self.==: (top other) -> bool + def ==: (top other) -> bool - def self.coerce: (top value) -> top + def coerce: (top value) -> top - def self.dump: (top value) -> top + def dump: (top value) -> top - def self.try_strict_coerce: ( + def try_strict_coerce: ( top value ) -> ([true, top, nil] | [false, bool, Integer]) end diff --git a/sig/openai/models/all_models.rbs b/sig/openai/models/all_models.rbs index 817c97a9..7427ba06 100644 --- a/sig/openai/models/all_models.rbs +++ b/sig/openai/models/all_models.rbs @@ -5,14 +5,18 @@ module OpenAI | OpenAI::Models::chat_model | OpenAI::Models::AllModels::union_member2 - class AllModels < OpenAI::Union + module AllModels + extend OpenAI::Union + type union_member2 = :"o1-pro" | :"o1-pro-2025-03-19" | :"computer-use-preview" | :"computer-use-preview-2025-03-11" - class UnionMember2 < OpenAI::Enum + module UnionMember2 + extend OpenAI::Enum + O1_PRO: :"o1-pro" O1_PRO_2025_03_19: :"o1-pro-2025-03-19" COMPUTER_USE_PREVIEW: :"computer-use-preview" diff --git a/sig/openai/models/audio/speech_create_params.rbs b/sig/openai/models/audio/speech_create_params.rbs index eb21a97f..30772347 100644 --- a/sig/openai/models/audio/speech_create_params.rbs +++ b/sig/openai/models/audio/speech_create_params.rbs @@ -50,7 +50,9 @@ module OpenAI type model = String | OpenAI::Models::Audio::speech_model - class Model < OpenAI::Union + module Model + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::Audio::speech_model] end @@ -65,7 +67,9 @@ module OpenAI | :sage | :shimmer - class Voice < OpenAI::Enum + module Voice + extend OpenAI::Enum + ALLOY: :alloy ASH: :ash CORAL: :coral @@ -81,7 +85,9 @@ module OpenAI type response_format = :mp3 | :opus | :aac | :flac | :wav | :pcm - class ResponseFormat < OpenAI::Enum + module ResponseFormat + extend OpenAI::Enum + MP3: :mp3 OPUS: :opus AAC: :aac diff --git a/sig/openai/models/audio/speech_model.rbs b/sig/openai/models/audio/speech_model.rbs index 357eaa4c..51c913a4 100644 --- a/sig/openai/models/audio/speech_model.rbs +++ b/sig/openai/models/audio/speech_model.rbs @@ -3,7 +3,9 @@ module OpenAI module Audio type speech_model = :"tts-1" | :"tts-1-hd" | :"gpt-4o-mini-tts" - class SpeechModel < OpenAI::Enum + module SpeechModel + extend OpenAI::Enum + TTS_1: :"tts-1" TTS_1_HD: :"tts-1-hd" GPT_4O_MINI_TTS: :"gpt-4o-mini-tts" diff --git a/sig/openai/models/audio/transcription_create_params.rbs b/sig/openai/models/audio/transcription_create_params.rbs index 28f79a92..3834d3cc 100644 --- a/sig/openai/models/audio/transcription_create_params.rbs +++ b/sig/openai/models/audio/transcription_create_params.rbs @@ -68,13 +68,17 @@ module OpenAI type model = String | OpenAI::Models::audio_model - class Model < OpenAI::Union + module Model + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::audio_model] end type timestamp_granularity = :word | :segment - class TimestampGranularity < OpenAI::Enum + module TimestampGranularity + extend OpenAI::Enum + WORD: :word SEGMENT: :segment diff --git a/sig/openai/models/audio/transcription_create_response.rbs b/sig/openai/models/audio/transcription_create_response.rbs index f0179c81..32f15ab6 100644 --- a/sig/openai/models/audio/transcription_create_response.rbs +++ b/sig/openai/models/audio/transcription_create_response.rbs @@ -5,7 +5,9 @@ module OpenAI OpenAI::Models::Audio::Transcription | OpenAI::Models::Audio::TranscriptionVerbose - class TranscriptionCreateResponse < OpenAI::Union + module TranscriptionCreateResponse + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Audio::Transcription, OpenAI::Models::Audio::TranscriptionVerbose] end end diff --git a/sig/openai/models/audio/transcription_include.rbs b/sig/openai/models/audio/transcription_include.rbs index cf06a929..1fc83e72 100644 --- a/sig/openai/models/audio/transcription_include.rbs +++ b/sig/openai/models/audio/transcription_include.rbs @@ -3,7 +3,9 @@ module OpenAI module Audio type transcription_include = :logprobs - class TranscriptionInclude < OpenAI::Enum + module TranscriptionInclude + extend OpenAI::Enum + LOGPROBS: :logprobs def self.values: -> ::Array[OpenAI::Models::Audio::transcription_include] diff --git a/sig/openai/models/audio/transcription_stream_event.rbs b/sig/openai/models/audio/transcription_stream_event.rbs index b9233feb..caffcd1f 100644 --- a/sig/openai/models/audio/transcription_stream_event.rbs +++ b/sig/openai/models/audio/transcription_stream_event.rbs @@ -5,7 +5,9 @@ module OpenAI OpenAI::Models::Audio::TranscriptionTextDeltaEvent | OpenAI::Models::Audio::TranscriptionTextDoneEvent - class TranscriptionStreamEvent < OpenAI::Union + module TranscriptionStreamEvent + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Audio::TranscriptionTextDeltaEvent, OpenAI::Models::Audio::TranscriptionTextDoneEvent] end end diff --git a/sig/openai/models/audio/translation_create_params.rbs b/sig/openai/models/audio/translation_create_params.rbs index 83dc3322..d5dcc175 100644 --- a/sig/openai/models/audio/translation_create_params.rbs +++ b/sig/openai/models/audio/translation_create_params.rbs @@ -46,13 +46,17 @@ module OpenAI type model = String | OpenAI::Models::audio_model - class Model < OpenAI::Union + module Model + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::audio_model] end type response_format = :json | :text | :srt | :verbose_json | :vtt - class ResponseFormat < OpenAI::Enum + module ResponseFormat + extend OpenAI::Enum + JSON: :json TEXT: :text SRT: :srt diff --git a/sig/openai/models/audio/translation_create_response.rbs b/sig/openai/models/audio/translation_create_response.rbs index d80690b9..6c26f34d 100644 --- a/sig/openai/models/audio/translation_create_response.rbs +++ b/sig/openai/models/audio/translation_create_response.rbs @@ -5,7 +5,9 @@ module OpenAI OpenAI::Models::Audio::Translation | OpenAI::Models::Audio::TranslationVerbose - class TranslationCreateResponse < OpenAI::Union + module TranslationCreateResponse + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Audio::Translation, OpenAI::Models::Audio::TranslationVerbose] end end diff --git a/sig/openai/models/audio_model.rbs b/sig/openai/models/audio_model.rbs index 72b67344..7c47323a 100644 --- a/sig/openai/models/audio_model.rbs +++ b/sig/openai/models/audio_model.rbs @@ -3,7 +3,9 @@ module OpenAI type audio_model = :"whisper-1" | :"gpt-4o-transcribe" | :"gpt-4o-mini-transcribe" - class AudioModel < OpenAI::Enum + module AudioModel + extend OpenAI::Enum + WHISPER_1: :"whisper-1" GPT_4O_TRANSCRIBE: :"gpt-4o-transcribe" GPT_4O_MINI_TRANSCRIBE: :"gpt-4o-mini-transcribe" diff --git a/sig/openai/models/audio_response_format.rbs b/sig/openai/models/audio_response_format.rbs index e91a52b8..ee7b583f 100644 --- a/sig/openai/models/audio_response_format.rbs +++ b/sig/openai/models/audio_response_format.rbs @@ -2,7 +2,9 @@ module OpenAI module Models type audio_response_format = :json | :text | :srt | :verbose_json | :vtt - class AudioResponseFormat < OpenAI::Enum + module AudioResponseFormat + extend OpenAI::Enum + JSON: :json TEXT: :text SRT: :srt diff --git a/sig/openai/models/batch.rbs b/sig/openai/models/batch.rbs index 278b30f0..2a3d4888 100644 --- a/sig/openai/models/batch.rbs +++ b/sig/openai/models/batch.rbs @@ -128,7 +128,9 @@ module OpenAI | :cancelling | :cancelled - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + VALIDATING: :validating FAILED: :failed IN_PROGRESS: :in_progress diff --git a/sig/openai/models/batch_create_params.rbs b/sig/openai/models/batch_create_params.rbs index 5a459418..c73264e6 100644 --- a/sig/openai/models/batch_create_params.rbs +++ b/sig/openai/models/batch_create_params.rbs @@ -33,7 +33,9 @@ module OpenAI type completion_window = :"24h" - class CompletionWindow < OpenAI::Enum + module CompletionWindow + extend OpenAI::Enum + NUMBER_24H: :"24h" def self.values: -> ::Array[OpenAI::Models::BatchCreateParams::completion_window] @@ -45,7 +47,9 @@ module OpenAI | :"/v1/embeddings" | :"/v1/completions" - class Endpoint < OpenAI::Enum + module Endpoint + extend OpenAI::Enum + V1_RESPONSES: :"/v1/responses" V1_CHAT_COMPLETIONS: :"/v1/chat/completions" V1_EMBEDDINGS: :"/v1/embeddings" diff --git a/sig/openai/models/beta/assistant_create_params.rbs b/sig/openai/models/beta/assistant_create_params.rbs index 4b7f8d01..afeba91e 100644 --- a/sig/openai/models/beta/assistant_create_params.rbs +++ b/sig/openai/models/beta/assistant_create_params.rbs @@ -66,7 +66,9 @@ module OpenAI type model = String | OpenAI::Models::chat_model - class Model < OpenAI::Union + module Model + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::chat_model] end end diff --git a/sig/openai/models/beta/assistant_list_params.rbs b/sig/openai/models/beta/assistant_list_params.rbs index 89fbdc93..c8869670 100644 --- a/sig/openai/models/beta/assistant_list_params.rbs +++ b/sig/openai/models/beta/assistant_list_params.rbs @@ -44,7 +44,9 @@ module OpenAI type order = :asc | :desc - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC: :asc DESC: :desc diff --git a/sig/openai/models/beta/assistant_response_format_option.rbs b/sig/openai/models/beta/assistant_response_format_option.rbs index 158a3a03..d5b4a073 100644 --- a/sig/openai/models/beta/assistant_response_format_option.rbs +++ b/sig/openai/models/beta/assistant_response_format_option.rbs @@ -7,7 +7,9 @@ module OpenAI | OpenAI::Models::ResponseFormatJSONObject | OpenAI::Models::ResponseFormatJSONSchema - class AssistantResponseFormatOption < OpenAI::Union + module AssistantResponseFormatOption + extend OpenAI::Union + def self.variants: -> [:auto, OpenAI::Models::ResponseFormatText, OpenAI::Models::ResponseFormatJSONObject, OpenAI::Models::ResponseFormatJSONSchema] end end diff --git a/sig/openai/models/beta/assistant_stream_event.rbs b/sig/openai/models/beta/assistant_stream_event.rbs index 3cff7d58..4ed62507 100644 --- a/sig/openai/models/beta/assistant_stream_event.rbs +++ b/sig/openai/models/beta/assistant_stream_event.rbs @@ -27,7 +27,9 @@ module OpenAI | OpenAI::Models::Beta::AssistantStreamEvent::ThreadMessageIncomplete | OpenAI::Models::Beta::AssistantStreamEvent::ErrorEvent - class AssistantStreamEvent < OpenAI::Union + module AssistantStreamEvent + extend OpenAI::Union + type thread_created = { data: OpenAI::Models::Beta::Thread, diff --git a/sig/openai/models/beta/assistant_tool.rbs b/sig/openai/models/beta/assistant_tool.rbs index 5421e7bc..48827d7f 100644 --- a/sig/openai/models/beta/assistant_tool.rbs +++ b/sig/openai/models/beta/assistant_tool.rbs @@ -6,7 +6,9 @@ module OpenAI | OpenAI::Models::Beta::FileSearchTool | OpenAI::Models::Beta::FunctionTool - class AssistantTool < OpenAI::Union + module AssistantTool + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Beta::CodeInterpreterTool, OpenAI::Models::Beta::FileSearchTool, OpenAI::Models::Beta::FunctionTool] end end diff --git a/sig/openai/models/beta/assistant_tool_choice.rbs b/sig/openai/models/beta/assistant_tool_choice.rbs index eabceb53..ab690c71 100644 --- a/sig/openai/models/beta/assistant_tool_choice.rbs +++ b/sig/openai/models/beta/assistant_tool_choice.rbs @@ -25,7 +25,9 @@ module OpenAI type type_ = :function | :code_interpreter | :file_search - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + FUNCTION: :function CODE_INTERPRETER: :code_interpreter FILE_SEARCH: :file_search diff --git a/sig/openai/models/beta/assistant_tool_choice_option.rbs b/sig/openai/models/beta/assistant_tool_choice_option.rbs index f7886116..ee421612 100644 --- a/sig/openai/models/beta/assistant_tool_choice_option.rbs +++ b/sig/openai/models/beta/assistant_tool_choice_option.rbs @@ -5,10 +5,14 @@ module OpenAI OpenAI::Models::Beta::AssistantToolChoiceOption::auto | OpenAI::Models::Beta::AssistantToolChoice - class AssistantToolChoiceOption < OpenAI::Union + module AssistantToolChoiceOption + extend OpenAI::Union + type auto = :none | :auto | :required - class Auto < OpenAI::Enum + module Auto + extend OpenAI::Enum + NONE: :none AUTO: :auto REQUIRED: :required diff --git a/sig/openai/models/beta/assistant_update_params.rbs b/sig/openai/models/beta/assistant_update_params.rbs index e67f47e5..d3efa3c2 100644 --- a/sig/openai/models/beta/assistant_update_params.rbs +++ b/sig/openai/models/beta/assistant_update_params.rbs @@ -101,7 +101,9 @@ module OpenAI | :"gpt-3.5-turbo-0125" | :"gpt-3.5-turbo-16k-0613" - class Model < OpenAI::Union + module Model + extend OpenAI::Union + O3_MINI: :"o3-mini" O3_MINI_2025_01_31: :"o3-mini-2025-01-31" O1: :o1 diff --git a/sig/openai/models/beta/file_search_tool.rbs b/sig/openai/models/beta/file_search_tool.rbs index b042a2f7..bd1238f4 100644 --- a/sig/openai/models/beta/file_search_tool.rbs +++ b/sig/openai/models/beta/file_search_tool.rbs @@ -71,7 +71,9 @@ module OpenAI type ranker = :auto | :default_2024_08_21 - class Ranker < OpenAI::Enum + module Ranker + extend OpenAI::Enum + AUTO: :auto DEFAULT_2024_08_21: :default_2024_08_21 diff --git a/sig/openai/models/beta/message_stream_event.rbs b/sig/openai/models/beta/message_stream_event.rbs index ad12cf61..edd61dcf 100644 --- a/sig/openai/models/beta/message_stream_event.rbs +++ b/sig/openai/models/beta/message_stream_event.rbs @@ -8,7 +8,9 @@ module OpenAI | OpenAI::Models::Beta::MessageStreamEvent::ThreadMessageCompleted | OpenAI::Models::Beta::MessageStreamEvent::ThreadMessageIncomplete - class MessageStreamEvent < OpenAI::Union + module MessageStreamEvent + extend OpenAI::Union + type thread_message_created = { data: OpenAI::Models::Beta::Threads::Message, diff --git a/sig/openai/models/beta/run_step_stream_event.rbs b/sig/openai/models/beta/run_step_stream_event.rbs index 51f78cb2..9207cecc 100644 --- a/sig/openai/models/beta/run_step_stream_event.rbs +++ b/sig/openai/models/beta/run_step_stream_event.rbs @@ -10,7 +10,9 @@ module OpenAI | OpenAI::Models::Beta::RunStepStreamEvent::ThreadRunStepCancelled | OpenAI::Models::Beta::RunStepStreamEvent::ThreadRunStepExpired - class RunStepStreamEvent < OpenAI::Union + module RunStepStreamEvent + extend OpenAI::Union + type thread_run_step_created = { data: OpenAI::Models::Beta::Threads::Runs::RunStep, diff --git a/sig/openai/models/beta/run_stream_event.rbs b/sig/openai/models/beta/run_stream_event.rbs index 46793589..4081dbf8 100644 --- a/sig/openai/models/beta/run_stream_event.rbs +++ b/sig/openai/models/beta/run_stream_event.rbs @@ -13,7 +13,9 @@ module OpenAI | OpenAI::Models::Beta::RunStreamEvent::ThreadRunCancelled | OpenAI::Models::Beta::RunStreamEvent::ThreadRunExpired - class RunStreamEvent < OpenAI::Union + module RunStreamEvent + extend OpenAI::Union + type thread_run_created = { data: OpenAI::Models::Beta::Threads::Run, diff --git a/sig/openai/models/beta/thread_create_and_run_params.rbs b/sig/openai/models/beta/thread_create_and_run_params.rbs index 6a0d9895..9884c6c7 100644 --- a/sig/openai/models/beta/thread_create_and_run_params.rbs +++ b/sig/openai/models/beta/thread_create_and_run_params.rbs @@ -84,7 +84,9 @@ module OpenAI type model = String | OpenAI::Models::chat_model - class Model < OpenAI::Union + module Model + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::chat_model] end @@ -144,7 +146,9 @@ module OpenAI String | ::Array[OpenAI::Models::Beta::Threads::message_content_part_param] - class Content < OpenAI::Union + module Content + extend OpenAI::Union + type message_content_part_param_array = ::Array[OpenAI::Models::Beta::Threads::message_content_part_param] @@ -155,7 +159,9 @@ module OpenAI type role = :user | :assistant - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER: :user ASSISTANT: :assistant @@ -190,7 +196,9 @@ module OpenAI OpenAI::Models::Beta::CodeInterpreterTool | OpenAI::Models::Beta::ThreadCreateAndRunParams::Thread::Message::Attachment::Tool::FileSearch - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + type file_search = { type: :file_search } class FileSearch < OpenAI::BaseModel @@ -356,7 +364,9 @@ module OpenAI | OpenAI::Models::Beta::FileSearchTool | OpenAI::Models::Beta::FunctionTool - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Beta::CodeInterpreterTool, OpenAI::Models::Beta::FileSearchTool, OpenAI::Models::Beta::FunctionTool] end @@ -380,7 +390,9 @@ module OpenAI type type_ = :auto | :last_messages - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + AUTO: :auto LAST_MESSAGES: :last_messages diff --git a/sig/openai/models/beta/thread_create_params.rbs b/sig/openai/models/beta/thread_create_params.rbs index a85cc624..db23bcde 100644 --- a/sig/openai/models/beta/thread_create_params.rbs +++ b/sig/openai/models/beta/thread_create_params.rbs @@ -62,7 +62,9 @@ module OpenAI String | ::Array[OpenAI::Models::Beta::Threads::message_content_part_param] - class Content < OpenAI::Union + module Content + extend OpenAI::Union + type message_content_part_param_array = ::Array[OpenAI::Models::Beta::Threads::message_content_part_param] @@ -73,7 +75,9 @@ module OpenAI type role = :user | :assistant - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER: :user ASSISTANT: :assistant @@ -108,7 +112,9 @@ module OpenAI OpenAI::Models::Beta::CodeInterpreterTool | OpenAI::Models::Beta::ThreadCreateParams::Message::Attachment::Tool::FileSearch - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + type file_search = { type: :file_search } class FileSearch < OpenAI::BaseModel diff --git a/sig/openai/models/beta/threads/annotation.rbs b/sig/openai/models/beta/threads/annotation.rbs index 527a6e58..cde96d26 100644 --- a/sig/openai/models/beta/threads/annotation.rbs +++ b/sig/openai/models/beta/threads/annotation.rbs @@ -6,7 +6,9 @@ module OpenAI OpenAI::Models::Beta::Threads::FileCitationAnnotation | OpenAI::Models::Beta::Threads::FilePathAnnotation - class Annotation < OpenAI::Union + module Annotation + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Beta::Threads::FileCitationAnnotation, OpenAI::Models::Beta::Threads::FilePathAnnotation] end end diff --git a/sig/openai/models/beta/threads/annotation_delta.rbs b/sig/openai/models/beta/threads/annotation_delta.rbs index 21dee9df..22600103 100644 --- a/sig/openai/models/beta/threads/annotation_delta.rbs +++ b/sig/openai/models/beta/threads/annotation_delta.rbs @@ -6,7 +6,9 @@ module OpenAI OpenAI::Models::Beta::Threads::FileCitationDeltaAnnotation | OpenAI::Models::Beta::Threads::FilePathDeltaAnnotation - class AnnotationDelta < OpenAI::Union + module AnnotationDelta + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Beta::Threads::FileCitationDeltaAnnotation, OpenAI::Models::Beta::Threads::FilePathDeltaAnnotation] end end diff --git a/sig/openai/models/beta/threads/image_file.rbs b/sig/openai/models/beta/threads/image_file.rbs index ce6ca5d5..0b0987a7 100644 --- a/sig/openai/models/beta/threads/image_file.rbs +++ b/sig/openai/models/beta/threads/image_file.rbs @@ -26,7 +26,9 @@ module OpenAI type detail = :auto | :low | :high - class Detail < OpenAI::Enum + module Detail + extend OpenAI::Enum + AUTO: :auto LOW: :low HIGH: :high diff --git a/sig/openai/models/beta/threads/image_file_delta.rbs b/sig/openai/models/beta/threads/image_file_delta.rbs index 3b996b60..d0870c96 100644 --- a/sig/openai/models/beta/threads/image_file_delta.rbs +++ b/sig/openai/models/beta/threads/image_file_delta.rbs @@ -28,7 +28,9 @@ module OpenAI type detail = :auto | :low | :high - class Detail < OpenAI::Enum + module Detail + extend OpenAI::Enum + AUTO: :auto LOW: :low HIGH: :high diff --git a/sig/openai/models/beta/threads/image_url.rbs b/sig/openai/models/beta/threads/image_url.rbs index 9aec42d8..36929cf8 100644 --- a/sig/openai/models/beta/threads/image_url.rbs +++ b/sig/openai/models/beta/threads/image_url.rbs @@ -26,7 +26,9 @@ module OpenAI type detail = :auto | :low | :high - class Detail < OpenAI::Enum + module Detail + extend OpenAI::Enum + AUTO: :auto LOW: :low HIGH: :high diff --git a/sig/openai/models/beta/threads/image_url_delta.rbs b/sig/openai/models/beta/threads/image_url_delta.rbs index c7d07d96..3f1fcbdc 100644 --- a/sig/openai/models/beta/threads/image_url_delta.rbs +++ b/sig/openai/models/beta/threads/image_url_delta.rbs @@ -28,7 +28,9 @@ module OpenAI type detail = :auto | :low | :high - class Detail < OpenAI::Enum + module Detail + extend OpenAI::Enum + AUTO: :auto LOW: :low HIGH: :high diff --git a/sig/openai/models/beta/threads/message.rbs b/sig/openai/models/beta/threads/message.rbs index e6c155a8..29fa0135 100644 --- a/sig/openai/models/beta/threads/message.rbs +++ b/sig/openai/models/beta/threads/message.rbs @@ -96,7 +96,9 @@ module OpenAI OpenAI::Models::Beta::CodeInterpreterTool | OpenAI::Models::Beta::Threads::Message::Attachment::Tool::AssistantToolsFileSearchTypeOnly - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + type assistant_tools_file_search_type_only = { type: :file_search } @@ -133,7 +135,9 @@ module OpenAI | :run_expired | :run_failed - class Reason < OpenAI::Enum + module Reason + extend OpenAI::Enum + CONTENT_FILTER: :content_filter MAX_TOKENS: :max_tokens RUN_CANCELLED: :run_cancelled @@ -146,7 +150,9 @@ module OpenAI type role = :user | :assistant - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER: :user ASSISTANT: :assistant @@ -155,7 +161,9 @@ module OpenAI type status = :in_progress | :incomplete | :completed - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress INCOMPLETE: :incomplete COMPLETED: :completed diff --git a/sig/openai/models/beta/threads/message_content.rbs b/sig/openai/models/beta/threads/message_content.rbs index 252bb7ff..dc2a9215 100644 --- a/sig/openai/models/beta/threads/message_content.rbs +++ b/sig/openai/models/beta/threads/message_content.rbs @@ -8,7 +8,9 @@ module OpenAI | OpenAI::Models::Beta::Threads::TextContentBlock | OpenAI::Models::Beta::Threads::RefusalContentBlock - class MessageContent < OpenAI::Union + module MessageContent + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Beta::Threads::ImageFileContentBlock, OpenAI::Models::Beta::Threads::ImageURLContentBlock, OpenAI::Models::Beta::Threads::TextContentBlock, OpenAI::Models::Beta::Threads::RefusalContentBlock] end end diff --git a/sig/openai/models/beta/threads/message_content_delta.rbs b/sig/openai/models/beta/threads/message_content_delta.rbs index aab10ba6..1357cfba 100644 --- a/sig/openai/models/beta/threads/message_content_delta.rbs +++ b/sig/openai/models/beta/threads/message_content_delta.rbs @@ -8,7 +8,9 @@ module OpenAI | OpenAI::Models::Beta::Threads::RefusalDeltaBlock | OpenAI::Models::Beta::Threads::ImageURLDeltaBlock - class MessageContentDelta < OpenAI::Union + module MessageContentDelta + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Beta::Threads::ImageFileDeltaBlock, OpenAI::Models::Beta::Threads::TextDeltaBlock, OpenAI::Models::Beta::Threads::RefusalDeltaBlock, OpenAI::Models::Beta::Threads::ImageURLDeltaBlock] end end diff --git a/sig/openai/models/beta/threads/message_content_part_param.rbs b/sig/openai/models/beta/threads/message_content_part_param.rbs index 39228e33..76a88822 100644 --- a/sig/openai/models/beta/threads/message_content_part_param.rbs +++ b/sig/openai/models/beta/threads/message_content_part_param.rbs @@ -7,7 +7,9 @@ module OpenAI | OpenAI::Models::Beta::Threads::ImageURLContentBlock | OpenAI::Models::Beta::Threads::TextContentBlockParam - class MessageContentPartParam < OpenAI::Union + module MessageContentPartParam + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Beta::Threads::ImageFileContentBlock, OpenAI::Models::Beta::Threads::ImageURLContentBlock, OpenAI::Models::Beta::Threads::TextContentBlockParam] end end diff --git a/sig/openai/models/beta/threads/message_create_params.rbs b/sig/openai/models/beta/threads/message_create_params.rbs index fb2276f9..3e6288ac 100644 --- a/sig/openai/models/beta/threads/message_create_params.rbs +++ b/sig/openai/models/beta/threads/message_create_params.rbs @@ -37,7 +37,9 @@ module OpenAI String | ::Array[OpenAI::Models::Beta::Threads::message_content_part_param] - class Content < OpenAI::Union + module Content + extend OpenAI::Union + type message_content_part_param_array = ::Array[OpenAI::Models::Beta::Threads::message_content_part_param] @@ -48,7 +50,9 @@ module OpenAI type role = :user | :assistant - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER: :user ASSISTANT: :assistant @@ -83,7 +87,9 @@ module OpenAI OpenAI::Models::Beta::CodeInterpreterTool | OpenAI::Models::Beta::Threads::MessageCreateParams::Attachment::Tool::FileSearch - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + type file_search = { type: :file_search } class FileSearch < OpenAI::BaseModel diff --git a/sig/openai/models/beta/threads/message_delta.rbs b/sig/openai/models/beta/threads/message_delta.rbs index e053ee9b..0487cbfd 100644 --- a/sig/openai/models/beta/threads/message_delta.rbs +++ b/sig/openai/models/beta/threads/message_delta.rbs @@ -30,7 +30,9 @@ module OpenAI type role = :user | :assistant - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER: :user ASSISTANT: :assistant diff --git a/sig/openai/models/beta/threads/message_list_params.rbs b/sig/openai/models/beta/threads/message_list_params.rbs index dca2c571..c8146f4e 100644 --- a/sig/openai/models/beta/threads/message_list_params.rbs +++ b/sig/openai/models/beta/threads/message_list_params.rbs @@ -51,7 +51,9 @@ module OpenAI type order = :asc | :desc - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC: :asc DESC: :desc diff --git a/sig/openai/models/beta/threads/run.rbs b/sig/openai/models/beta/threads/run.rbs index deae5170..e84c343f 100644 --- a/sig/openai/models/beta/threads/run.rbs +++ b/sig/openai/models/beta/threads/run.rbs @@ -140,7 +140,9 @@ module OpenAI type reason = :max_completion_tokens | :max_prompt_tokens - class Reason < OpenAI::Enum + module Reason + extend OpenAI::Enum + MAX_COMPLETION_TOKENS: :max_completion_tokens MAX_PROMPT_TOKENS: :max_prompt_tokens @@ -168,7 +170,9 @@ module OpenAI type code = :server_error | :rate_limit_exceeded | :invalid_prompt - class Code < OpenAI::Enum + module Code + extend OpenAI::Enum + SERVER_ERROR: :server_error RATE_LIMIT_EXCEEDED: :rate_limit_exceeded INVALID_PROMPT: :invalid_prompt @@ -231,7 +235,9 @@ module OpenAI type type_ = :auto | :last_messages - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + AUTO: :auto LAST_MESSAGES: :last_messages diff --git a/sig/openai/models/beta/threads/run_create_params.rbs b/sig/openai/models/beta/threads/run_create_params.rbs index c9f5247b..5dfe9de6 100644 --- a/sig/openai/models/beta/threads/run_create_params.rbs +++ b/sig/openai/models/beta/threads/run_create_params.rbs @@ -121,7 +121,9 @@ module OpenAI String | ::Array[OpenAI::Models::Beta::Threads::message_content_part_param] - class Content < OpenAI::Union + module Content + extend OpenAI::Union + type message_content_part_param_array = ::Array[OpenAI::Models::Beta::Threads::message_content_part_param] @@ -132,7 +134,9 @@ module OpenAI type role = :user | :assistant - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER: :user ASSISTANT: :assistant @@ -167,7 +171,9 @@ module OpenAI OpenAI::Models::Beta::CodeInterpreterTool | OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Attachment::Tool::FileSearch - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + type file_search = { type: :file_search } class FileSearch < OpenAI::BaseModel @@ -185,7 +191,9 @@ module OpenAI type model = String | OpenAI::Models::chat_model - class Model < OpenAI::Union + module Model + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::chat_model] end @@ -209,7 +217,9 @@ module OpenAI type type_ = :auto | :last_messages - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + AUTO: :auto LAST_MESSAGES: :last_messages diff --git a/sig/openai/models/beta/threads/run_list_params.rbs b/sig/openai/models/beta/threads/run_list_params.rbs index fc43edb9..54dd93bc 100644 --- a/sig/openai/models/beta/threads/run_list_params.rbs +++ b/sig/openai/models/beta/threads/run_list_params.rbs @@ -45,7 +45,9 @@ module OpenAI type order = :asc | :desc - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC: :asc DESC: :desc diff --git a/sig/openai/models/beta/threads/run_status.rbs b/sig/openai/models/beta/threads/run_status.rbs index cfc75c7b..d7433b66 100644 --- a/sig/openai/models/beta/threads/run_status.rbs +++ b/sig/openai/models/beta/threads/run_status.rbs @@ -13,7 +13,9 @@ module OpenAI | :incomplete | :expired - class RunStatus < OpenAI::Enum + module RunStatus + extend OpenAI::Enum + QUEUED: :queued IN_PROGRESS: :in_progress REQUIRES_ACTION: :requires_action diff --git a/sig/openai/models/beta/threads/runs/code_interpreter_tool_call.rbs b/sig/openai/models/beta/threads/runs/code_interpreter_tool_call.rbs index 67d18341..ddc03a7d 100644 --- a/sig/openai/models/beta/threads/runs/code_interpreter_tool_call.rbs +++ b/sig/openai/models/beta/threads/runs/code_interpreter_tool_call.rbs @@ -47,7 +47,9 @@ module OpenAI OpenAI::Models::Beta::Threads::Runs::CodeInterpreterToolCall::CodeInterpreter::Output::Logs | OpenAI::Models::Beta::Threads::Runs::CodeInterpreterToolCall::CodeInterpreter::Output::Image - class Output < OpenAI::Union + module Output + extend OpenAI::Union + type logs = { logs: String, type: :logs } class Logs < OpenAI::BaseModel diff --git a/sig/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rbs b/sig/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rbs index d8884223..81324a83 100644 --- a/sig/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rbs +++ b/sig/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rbs @@ -63,7 +63,9 @@ module OpenAI OpenAI::Models::Beta::Threads::Runs::CodeInterpreterLogs | OpenAI::Models::Beta::Threads::Runs::CodeInterpreterOutputImage - class Output < OpenAI::Union + module Output + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Beta::Threads::Runs::CodeInterpreterLogs, OpenAI::Models::Beta::Threads::Runs::CodeInterpreterOutputImage] end end diff --git a/sig/openai/models/beta/threads/runs/file_search_tool_call.rbs b/sig/openai/models/beta/threads/runs/file_search_tool_call.rbs index 5b6c9102..8952fadb 100644 --- a/sig/openai/models/beta/threads/runs/file_search_tool_call.rbs +++ b/sig/openai/models/beta/threads/runs/file_search_tool_call.rbs @@ -71,7 +71,9 @@ module OpenAI type ranker = :auto | :default_2024_08_21 - class Ranker < OpenAI::Enum + module Ranker + extend OpenAI::Enum + AUTO: :auto DEFAULT_2024_08_21: :default_2024_08_21 @@ -135,7 +137,9 @@ module OpenAI type type_ = :text - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + TEXT: :text def self.values: -> ::Array[OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::Result::Content::type_] diff --git a/sig/openai/models/beta/threads/runs/run_step.rbs b/sig/openai/models/beta/threads/runs/run_step.rbs index 4216d33b..36dd9a60 100644 --- a/sig/openai/models/beta/threads/runs/run_step.rbs +++ b/sig/openai/models/beta/threads/runs/run_step.rbs @@ -2,7 +2,6 @@ module OpenAI module Models module Beta module Threads - class RunStep = Runs::RunStep module Runs @@ -100,7 +99,9 @@ module OpenAI type code = :server_error | :rate_limit_exceeded - class Code < OpenAI::Enum + module Code + extend OpenAI::Enum + SERVER_ERROR: :server_error RATE_LIMIT_EXCEEDED: :rate_limit_exceeded @@ -111,7 +112,9 @@ module OpenAI type status = :in_progress | :cancelled | :failed | :completed | :expired - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress CANCELLED: :cancelled FAILED: :failed @@ -125,13 +128,17 @@ module OpenAI OpenAI::Models::Beta::Threads::Runs::MessageCreationStepDetails | OpenAI::Models::Beta::Threads::Runs::ToolCallsStepDetails - class StepDetails < OpenAI::Union + module StepDetails + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Beta::Threads::Runs::MessageCreationStepDetails, OpenAI::Models::Beta::Threads::Runs::ToolCallsStepDetails] end type type_ = :message_creation | :tool_calls - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + MESSAGE_CREATION: :message_creation TOOL_CALLS: :tool_calls diff --git a/sig/openai/models/beta/threads/runs/run_step_delta.rbs b/sig/openai/models/beta/threads/runs/run_step_delta.rbs index 7f45537b..171b4303 100644 --- a/sig/openai/models/beta/threads/runs/run_step_delta.rbs +++ b/sig/openai/models/beta/threads/runs/run_step_delta.rbs @@ -2,7 +2,6 @@ module OpenAI module Models module Beta module Threads - class RunStepDelta = Runs::RunStepDelta module Runs @@ -28,7 +27,9 @@ module OpenAI OpenAI::Models::Beta::Threads::Runs::RunStepDeltaMessageDelta | OpenAI::Models::Beta::Threads::Runs::ToolCallDeltaObject - class StepDetails < OpenAI::Union + module StepDetails + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Beta::Threads::Runs::RunStepDeltaMessageDelta, OpenAI::Models::Beta::Threads::Runs::ToolCallDeltaObject] end end diff --git a/sig/openai/models/beta/threads/runs/run_step_delta_event.rbs b/sig/openai/models/beta/threads/runs/run_step_delta_event.rbs index f3f75aab..295594a8 100644 --- a/sig/openai/models/beta/threads/runs/run_step_delta_event.rbs +++ b/sig/openai/models/beta/threads/runs/run_step_delta_event.rbs @@ -2,7 +2,6 @@ module OpenAI module Models module Beta module Threads - class RunStepDeltaEvent = Runs::RunStepDeltaEvent module Runs diff --git a/sig/openai/models/beta/threads/runs/run_step_delta_message_delta.rbs b/sig/openai/models/beta/threads/runs/run_step_delta_message_delta.rbs index 5dd59c8c..d1daf15e 100644 --- a/sig/openai/models/beta/threads/runs/run_step_delta_message_delta.rbs +++ b/sig/openai/models/beta/threads/runs/run_step_delta_message_delta.rbs @@ -2,7 +2,6 @@ module OpenAI module Models module Beta module Threads - class RunStepDeltaMessageDelta = Runs::RunStepDeltaMessageDelta module Runs diff --git a/sig/openai/models/beta/threads/runs/run_step_include.rbs b/sig/openai/models/beta/threads/runs/run_step_include.rbs index be00b41f..ed1e3934 100644 --- a/sig/openai/models/beta/threads/runs/run_step_include.rbs +++ b/sig/openai/models/beta/threads/runs/run_step_include.rbs @@ -2,14 +2,15 @@ module OpenAI module Models module Beta module Threads - - class RunStepInclude = Runs::RunStepInclude + module RunStepInclude = Runs::RunStepInclude module Runs type run_step_include = :"step_details.tool_calls[*].file_search.results[*].content" - class RunStepInclude < OpenAI::Enum + module RunStepInclude + extend OpenAI::Enum + STEP_DETAILS_TOOL_CALLS_FILE_SEARCH_RESULTS_CONTENT: :"step_details.tool_calls[*].file_search.results[*].content" def self.values: -> ::Array[OpenAI::Models::Beta::Threads::Runs::run_step_include] diff --git a/sig/openai/models/beta/threads/runs/step_list_params.rbs b/sig/openai/models/beta/threads/runs/step_list_params.rbs index bd65efbf..641b3530 100644 --- a/sig/openai/models/beta/threads/runs/step_list_params.rbs +++ b/sig/openai/models/beta/threads/runs/step_list_params.rbs @@ -58,7 +58,9 @@ module OpenAI type order = :asc | :desc - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC: :asc DESC: :desc diff --git a/sig/openai/models/beta/threads/runs/tool_call.rbs b/sig/openai/models/beta/threads/runs/tool_call.rbs index 42300b3c..081dbbdf 100644 --- a/sig/openai/models/beta/threads/runs/tool_call.rbs +++ b/sig/openai/models/beta/threads/runs/tool_call.rbs @@ -8,7 +8,9 @@ module OpenAI | OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall | OpenAI::Models::Beta::Threads::Runs::FunctionToolCall - class ToolCall < OpenAI::Union + module ToolCall + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Beta::Threads::Runs::CodeInterpreterToolCall, OpenAI::Models::Beta::Threads::Runs::FileSearchToolCall, OpenAI::Models::Beta::Threads::Runs::FunctionToolCall] end end diff --git a/sig/openai/models/beta/threads/runs/tool_call_delta.rbs b/sig/openai/models/beta/threads/runs/tool_call_delta.rbs index 6c3c0ec7..472aee5f 100644 --- a/sig/openai/models/beta/threads/runs/tool_call_delta.rbs +++ b/sig/openai/models/beta/threads/runs/tool_call_delta.rbs @@ -8,7 +8,9 @@ module OpenAI | OpenAI::Models::Beta::Threads::Runs::FileSearchToolCallDelta | OpenAI::Models::Beta::Threads::Runs::FunctionToolCallDelta - class ToolCallDelta < OpenAI::Union + module ToolCallDelta + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Beta::Threads::Runs::CodeInterpreterToolCallDelta, OpenAI::Models::Beta::Threads::Runs::FileSearchToolCallDelta, OpenAI::Models::Beta::Threads::Runs::FunctionToolCallDelta] end end diff --git a/sig/openai/models/chat/chat_completion.rbs b/sig/openai/models/chat/chat_completion.rbs index 6c256523..ed15fbfe 100644 --- a/sig/openai/models/chat/chat_completion.rbs +++ b/sig/openai/models/chat/chat_completion.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletion = Chat::ChatCompletion module Chat @@ -81,7 +80,9 @@ module OpenAI type finish_reason = :stop | :length | :tool_calls | :content_filter | :function_call - class FinishReason < OpenAI::Enum + module FinishReason + extend OpenAI::Enum + STOP: :stop LENGTH: :length TOOL_CALLS: :tool_calls @@ -113,7 +114,9 @@ module OpenAI type service_tier = :scale | :default - class ServiceTier < OpenAI::Enum + module ServiceTier + extend OpenAI::Enum + SCALE: :scale DEFAULT: :default diff --git a/sig/openai/models/chat/chat_completion_assistant_message_param.rbs b/sig/openai/models/chat/chat_completion_assistant_message_param.rbs index fbe3c3f8..e05d98b5 100644 --- a/sig/openai/models/chat/chat_completion_assistant_message_param.rbs +++ b/sig/openai/models/chat/chat_completion_assistant_message_param.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionAssistantMessageParam = Chat::ChatCompletionAssistantMessageParam module Chat @@ -62,7 +61,9 @@ module OpenAI String | ::Array[OpenAI::Models::Chat::ChatCompletionAssistantMessageParam::Content::array_of_content_part] - class Content < OpenAI::Union + module Content + extend OpenAI::Union + type array_of_content_part_array = ::Array[OpenAI::Models::Chat::ChatCompletionAssistantMessageParam::Content::array_of_content_part] @@ -72,7 +73,9 @@ module OpenAI OpenAI::Models::Chat::ChatCompletionContentPartText | OpenAI::Models::Chat::ChatCompletionContentPartRefusal - class ArrayOfContentPart < OpenAI::Union + module ArrayOfContentPart + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Chat::ChatCompletionContentPartText, OpenAI::Models::Chat::ChatCompletionContentPartRefusal] end diff --git a/sig/openai/models/chat/chat_completion_audio.rbs b/sig/openai/models/chat/chat_completion_audio.rbs index 856fe6c8..a3b3cda4 100644 --- a/sig/openai/models/chat/chat_completion_audio.rbs +++ b/sig/openai/models/chat/chat_completion_audio.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionAudio = Chat::ChatCompletionAudio module Chat diff --git a/sig/openai/models/chat/chat_completion_audio_param.rbs b/sig/openai/models/chat/chat_completion_audio_param.rbs index d90d22b0..5f2424d0 100644 --- a/sig/openai/models/chat/chat_completion_audio_param.rbs +++ b/sig/openai/models/chat/chat_completion_audio_param.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionAudioParam = Chat::ChatCompletionAudioParam module Chat @@ -24,7 +23,9 @@ module OpenAI type format_ = :wav | :mp3 | :flac | :opus | :pcm16 - class Format < OpenAI::Enum + module Format + extend OpenAI::Enum + WAV: :wav MP3: :mp3 FLAC: :flac @@ -37,7 +38,9 @@ module OpenAI type voice = :alloy | :ash | :ballad | :coral | :echo | :sage | :shimmer | :verse - class Voice < OpenAI::Enum + module Voice + extend OpenAI::Enum + ALLOY: :alloy ASH: :ash BALLAD: :ballad diff --git a/sig/openai/models/chat/chat_completion_chunk.rbs b/sig/openai/models/chat/chat_completion_chunk.rbs index fa2494d9..c85a596e 100644 --- a/sig/openai/models/chat/chat_completion_chunk.rbs +++ b/sig/openai/models/chat/chat_completion_chunk.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionChunk = Chat::ChatCompletionChunk module Chat @@ -134,7 +133,9 @@ module OpenAI type role = :developer | :system | :user | :assistant | :tool - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + DEVELOPER: :developer SYSTEM: :system USER: :user @@ -198,7 +199,9 @@ module OpenAI type type_ = :function - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + FUNCTION: :function def self.values: -> ::Array[OpenAI::Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall::type_] @@ -209,7 +212,9 @@ module OpenAI type finish_reason = :stop | :length | :tool_calls | :content_filter | :function_call - class FinishReason < OpenAI::Enum + module FinishReason + extend OpenAI::Enum + STOP: :stop LENGTH: :length TOOL_CALLS: :tool_calls @@ -241,7 +246,9 @@ module OpenAI type service_tier = :scale | :default - class ServiceTier < OpenAI::Enum + module ServiceTier + extend OpenAI::Enum + SCALE: :scale DEFAULT: :default diff --git a/sig/openai/models/chat/chat_completion_content_part.rbs b/sig/openai/models/chat/chat_completion_content_part.rbs index 01231844..348780aa 100644 --- a/sig/openai/models/chat/chat_completion_content_part.rbs +++ b/sig/openai/models/chat/chat_completion_content_part.rbs @@ -1,7 +1,6 @@ module OpenAI module Models - - class ChatCompletionContentPart = Chat::ChatCompletionContentPart + module ChatCompletionContentPart = Chat::ChatCompletionContentPart module Chat type chat_completion_content_part = @@ -10,7 +9,9 @@ module OpenAI | OpenAI::Models::Chat::ChatCompletionContentPartInputAudio | OpenAI::Models::Chat::ChatCompletionContentPart::File - class ChatCompletionContentPart < OpenAI::Union + module ChatCompletionContentPart + extend OpenAI::Union + type file = { file: OpenAI::Models::Chat::ChatCompletionContentPart::File::File, diff --git a/sig/openai/models/chat/chat_completion_content_part_image.rbs b/sig/openai/models/chat/chat_completion_content_part_image.rbs index b80ee986..1bde5081 100644 --- a/sig/openai/models/chat/chat_completion_content_part_image.rbs +++ b/sig/openai/models/chat/chat_completion_content_part_image.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionContentPartImage = Chat::ChatCompletionContentPartImage module Chat @@ -46,7 +45,9 @@ module OpenAI type detail = :auto | :low | :high - class Detail < OpenAI::Enum + module Detail + extend OpenAI::Enum + AUTO: :auto LOW: :low HIGH: :high diff --git a/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs b/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs index bb409774..85902db7 100644 --- a/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +++ b/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionContentPartInputAudio = Chat::ChatCompletionContentPartInputAudio module Chat @@ -42,7 +41,9 @@ module OpenAI type format_ = :wav | :mp3 - class Format < OpenAI::Enum + module Format + extend OpenAI::Enum + WAV: :wav MP3: :mp3 diff --git a/sig/openai/models/chat/chat_completion_content_part_refusal.rbs b/sig/openai/models/chat/chat_completion_content_part_refusal.rbs index e69c1ee3..e715e480 100644 --- a/sig/openai/models/chat/chat_completion_content_part_refusal.rbs +++ b/sig/openai/models/chat/chat_completion_content_part_refusal.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionContentPartRefusal = Chat::ChatCompletionContentPartRefusal module Chat diff --git a/sig/openai/models/chat/chat_completion_content_part_text.rbs b/sig/openai/models/chat/chat_completion_content_part_text.rbs index 9c723c66..638f5e4e 100644 --- a/sig/openai/models/chat/chat_completion_content_part_text.rbs +++ b/sig/openai/models/chat/chat_completion_content_part_text.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionContentPartText = Chat::ChatCompletionContentPartText module Chat diff --git a/sig/openai/models/chat/chat_completion_deleted.rbs b/sig/openai/models/chat/chat_completion_deleted.rbs index 2d8a2cf3..e776fc71 100644 --- a/sig/openai/models/chat/chat_completion_deleted.rbs +++ b/sig/openai/models/chat/chat_completion_deleted.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionDeleted = Chat::ChatCompletionDeleted module Chat diff --git a/sig/openai/models/chat/chat_completion_developer_message_param.rbs b/sig/openai/models/chat/chat_completion_developer_message_param.rbs index e9cbba0a..aa1379e0 100644 --- a/sig/openai/models/chat/chat_completion_developer_message_param.rbs +++ b/sig/openai/models/chat/chat_completion_developer_message_param.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionDeveloperMessageParam = Chat::ChatCompletionDeveloperMessageParam module Chat @@ -31,7 +30,9 @@ module OpenAI type content = String | ::Array[OpenAI::Models::Chat::ChatCompletionContentPartText] - class Content < OpenAI::Union + module Content + extend OpenAI::Union + type chat_completion_content_part_text_array = ::Array[OpenAI::Models::Chat::ChatCompletionContentPartText] diff --git a/sig/openai/models/chat/chat_completion_function_call_option.rbs b/sig/openai/models/chat/chat_completion_function_call_option.rbs index b5e722fb..e7067a87 100644 --- a/sig/openai/models/chat/chat_completion_function_call_option.rbs +++ b/sig/openai/models/chat/chat_completion_function_call_option.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionFunctionCallOption = Chat::ChatCompletionFunctionCallOption module Chat diff --git a/sig/openai/models/chat/chat_completion_function_message_param.rbs b/sig/openai/models/chat/chat_completion_function_message_param.rbs index b9ac7154..fad91c63 100644 --- a/sig/openai/models/chat/chat_completion_function_message_param.rbs +++ b/sig/openai/models/chat/chat_completion_function_message_param.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionFunctionMessageParam = Chat::ChatCompletionFunctionMessageParam module Chat diff --git a/sig/openai/models/chat/chat_completion_message.rbs b/sig/openai/models/chat/chat_completion_message.rbs index b13a6e43..d3668749 100644 --- a/sig/openai/models/chat/chat_completion_message.rbs +++ b/sig/openai/models/chat/chat_completion_message.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionMessage = Chat::ChatCompletionMessage module Chat diff --git a/sig/openai/models/chat/chat_completion_message_param.rbs b/sig/openai/models/chat/chat_completion_message_param.rbs index a42d88ca..c8d7612a 100644 --- a/sig/openai/models/chat/chat_completion_message_param.rbs +++ b/sig/openai/models/chat/chat_completion_message_param.rbs @@ -1,7 +1,6 @@ module OpenAI module Models - - class ChatCompletionMessageParam = Chat::ChatCompletionMessageParam + module ChatCompletionMessageParam = Chat::ChatCompletionMessageParam module Chat type chat_completion_message_param = @@ -12,7 +11,9 @@ module OpenAI | OpenAI::Models::Chat::ChatCompletionToolMessageParam | OpenAI::Models::Chat::ChatCompletionFunctionMessageParam - class ChatCompletionMessageParam < OpenAI::Union + module ChatCompletionMessageParam + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Chat::ChatCompletionDeveloperMessageParam, OpenAI::Models::Chat::ChatCompletionSystemMessageParam, OpenAI::Models::Chat::ChatCompletionUserMessageParam, OpenAI::Models::Chat::ChatCompletionAssistantMessageParam, OpenAI::Models::Chat::ChatCompletionToolMessageParam, OpenAI::Models::Chat::ChatCompletionFunctionMessageParam] end end diff --git a/sig/openai/models/chat/chat_completion_message_tool_call.rbs b/sig/openai/models/chat/chat_completion_message_tool_call.rbs index 4ed4b2d2..cd147e2d 100644 --- a/sig/openai/models/chat/chat_completion_message_tool_call.rbs +++ b/sig/openai/models/chat/chat_completion_message_tool_call.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionMessageToolCall = Chat::ChatCompletionMessageToolCall module Chat diff --git a/sig/openai/models/chat/chat_completion_modality.rbs b/sig/openai/models/chat/chat_completion_modality.rbs index e8df5962..7075d723 100644 --- a/sig/openai/models/chat/chat_completion_modality.rbs +++ b/sig/openai/models/chat/chat_completion_modality.rbs @@ -1,12 +1,13 @@ module OpenAI module Models - - class ChatCompletionModality = Chat::ChatCompletionModality + module ChatCompletionModality = Chat::ChatCompletionModality module Chat type chat_completion_modality = :text | :audio - class ChatCompletionModality < OpenAI::Enum + module ChatCompletionModality + extend OpenAI::Enum + TEXT: :text AUDIO: :audio diff --git a/sig/openai/models/chat/chat_completion_named_tool_choice.rbs b/sig/openai/models/chat/chat_completion_named_tool_choice.rbs index 8da9abd2..62feb1bf 100644 --- a/sig/openai/models/chat/chat_completion_named_tool_choice.rbs +++ b/sig/openai/models/chat/chat_completion_named_tool_choice.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionNamedToolChoice = Chat::ChatCompletionNamedToolChoice module Chat diff --git a/sig/openai/models/chat/chat_completion_prediction_content.rbs b/sig/openai/models/chat/chat_completion_prediction_content.rbs index e38d1c31..f49bc614 100644 --- a/sig/openai/models/chat/chat_completion_prediction_content.rbs +++ b/sig/openai/models/chat/chat_completion_prediction_content.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionPredictionContent = Chat::ChatCompletionPredictionContent module Chat @@ -25,7 +24,9 @@ module OpenAI type content = String | ::Array[OpenAI::Models::Chat::ChatCompletionContentPartText] - class Content < OpenAI::Union + module Content + extend OpenAI::Union + type chat_completion_content_part_text_array = ::Array[OpenAI::Models::Chat::ChatCompletionContentPartText] diff --git a/sig/openai/models/chat/chat_completion_reasoning_effort.rbs b/sig/openai/models/chat/chat_completion_reasoning_effort.rbs index 0d91a009..28d9e504 100644 --- a/sig/openai/models/chat/chat_completion_reasoning_effort.rbs +++ b/sig/openai/models/chat/chat_completion_reasoning_effort.rbs @@ -1,11 +1,9 @@ module OpenAI module Models - - class ChatCompletionReasoningEffort = Chat::ChatCompletionReasoningEffort + module ChatCompletionReasoningEffort = Chat::ChatCompletionReasoningEffort module Chat - - class ChatCompletionReasoningEffort = OpenAI::Models::ReasoningEffort + module ChatCompletionReasoningEffort = OpenAI::Models::ReasoningEffort end end end diff --git a/sig/openai/models/chat/chat_completion_role.rbs b/sig/openai/models/chat/chat_completion_role.rbs index be395c69..d805ec9e 100644 --- a/sig/openai/models/chat/chat_completion_role.rbs +++ b/sig/openai/models/chat/chat_completion_role.rbs @@ -1,13 +1,14 @@ module OpenAI module Models - - class ChatCompletionRole = Chat::ChatCompletionRole + module ChatCompletionRole = Chat::ChatCompletionRole module Chat type chat_completion_role = :developer | :system | :user | :assistant | :tool | :function - class ChatCompletionRole < OpenAI::Enum + module ChatCompletionRole + extend OpenAI::Enum + DEVELOPER: :developer SYSTEM: :system USER: :user diff --git a/sig/openai/models/chat/chat_completion_store_message.rbs b/sig/openai/models/chat/chat_completion_store_message.rbs index 2719aa2e..75e77b6c 100644 --- a/sig/openai/models/chat/chat_completion_store_message.rbs +++ b/sig/openai/models/chat/chat_completion_store_message.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionStoreMessage = Chat::ChatCompletionStoreMessage module Chat diff --git a/sig/openai/models/chat/chat_completion_stream_options.rbs b/sig/openai/models/chat/chat_completion_stream_options.rbs index ed0721bc..7fed3536 100644 --- a/sig/openai/models/chat/chat_completion_stream_options.rbs +++ b/sig/openai/models/chat/chat_completion_stream_options.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionStreamOptions = Chat::ChatCompletionStreamOptions module Chat diff --git a/sig/openai/models/chat/chat_completion_system_message_param.rbs b/sig/openai/models/chat/chat_completion_system_message_param.rbs index b3ae49f9..f889a520 100644 --- a/sig/openai/models/chat/chat_completion_system_message_param.rbs +++ b/sig/openai/models/chat/chat_completion_system_message_param.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionSystemMessageParam = Chat::ChatCompletionSystemMessageParam module Chat @@ -31,7 +30,9 @@ module OpenAI type content = String | ::Array[OpenAI::Models::Chat::ChatCompletionContentPartText] - class Content < OpenAI::Union + module Content + extend OpenAI::Union + type chat_completion_content_part_text_array = ::Array[OpenAI::Models::Chat::ChatCompletionContentPartText] diff --git a/sig/openai/models/chat/chat_completion_token_logprob.rbs b/sig/openai/models/chat/chat_completion_token_logprob.rbs index 4695ba6a..a076afef 100644 --- a/sig/openai/models/chat/chat_completion_token_logprob.rbs +++ b/sig/openai/models/chat/chat_completion_token_logprob.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionTokenLogprob = Chat::ChatCompletionTokenLogprob module Chat diff --git a/sig/openai/models/chat/chat_completion_tool.rbs b/sig/openai/models/chat/chat_completion_tool.rbs index f690d128..d465043d 100644 --- a/sig/openai/models/chat/chat_completion_tool.rbs +++ b/sig/openai/models/chat/chat_completion_tool.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionTool = Chat::ChatCompletionTool module Chat diff --git a/sig/openai/models/chat/chat_completion_tool_choice_option.rbs b/sig/openai/models/chat/chat_completion_tool_choice_option.rbs index e6c246ee..001520b8 100644 --- a/sig/openai/models/chat/chat_completion_tool_choice_option.rbs +++ b/sig/openai/models/chat/chat_completion_tool_choice_option.rbs @@ -1,17 +1,20 @@ module OpenAI module Models - - class ChatCompletionToolChoiceOption = Chat::ChatCompletionToolChoiceOption + module ChatCompletionToolChoiceOption = Chat::ChatCompletionToolChoiceOption module Chat type chat_completion_tool_choice_option = OpenAI::Models::Chat::ChatCompletionToolChoiceOption::auto | OpenAI::Models::Chat::ChatCompletionNamedToolChoice - class ChatCompletionToolChoiceOption < OpenAI::Union + module ChatCompletionToolChoiceOption + extend OpenAI::Union + type auto = :none | :auto | :required - class Auto < OpenAI::Enum + module Auto + extend OpenAI::Enum + NONE: :none AUTO: :auto REQUIRED: :required diff --git a/sig/openai/models/chat/chat_completion_tool_message_param.rbs b/sig/openai/models/chat/chat_completion_tool_message_param.rbs index 86a425de..8dc39541 100644 --- a/sig/openai/models/chat/chat_completion_tool_message_param.rbs +++ b/sig/openai/models/chat/chat_completion_tool_message_param.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionToolMessageParam = Chat::ChatCompletionToolMessageParam module Chat @@ -29,7 +28,9 @@ module OpenAI type content = String | ::Array[OpenAI::Models::Chat::ChatCompletionContentPartText] - class Content < OpenAI::Union + module Content + extend OpenAI::Union + type chat_completion_content_part_text_array = ::Array[OpenAI::Models::Chat::ChatCompletionContentPartText] diff --git a/sig/openai/models/chat/chat_completion_user_message_param.rbs b/sig/openai/models/chat/chat_completion_user_message_param.rbs index 53192647..b359b18e 100644 --- a/sig/openai/models/chat/chat_completion_user_message_param.rbs +++ b/sig/openai/models/chat/chat_completion_user_message_param.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ChatCompletionUserMessageParam = Chat::ChatCompletionUserMessageParam module Chat @@ -31,7 +30,9 @@ module OpenAI type content = String | ::Array[OpenAI::Models::Chat::chat_completion_content_part] - class Content < OpenAI::Union + module Content + extend OpenAI::Union + type chat_completion_content_part_array = ::Array[OpenAI::Models::Chat::chat_completion_content_part] diff --git a/sig/openai/models/chat/completion_create_params.rbs b/sig/openai/models/chat/completion_create_params.rbs index 56982b45..9d777b19 100644 --- a/sig/openai/models/chat/completion_create_params.rbs +++ b/sig/openai/models/chat/completion_create_params.rbs @@ -166,7 +166,9 @@ module OpenAI type model = String | OpenAI::Models::chat_model - class Model < OpenAI::Union + module Model + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::chat_model] end @@ -174,10 +176,14 @@ module OpenAI OpenAI::Models::Chat::CompletionCreateParams::FunctionCall::function_call_mode | OpenAI::Models::Chat::ChatCompletionFunctionCallOption - class FunctionCall < OpenAI::Union + module FunctionCall + extend OpenAI::Union + type function_call_mode = :none | :auto - class FunctionCallMode < OpenAI::Enum + module FunctionCallMode + extend OpenAI::Enum + NONE: :none AUTO: :auto @@ -218,7 +224,9 @@ module OpenAI type modality = :text | :audio - class Modality < OpenAI::Enum + module Modality + extend OpenAI::Enum + TEXT: :text AUDIO: :audio @@ -230,13 +238,17 @@ module OpenAI | OpenAI::Models::ResponseFormatJSONSchema | OpenAI::Models::ResponseFormatJSONObject - class ResponseFormat < OpenAI::Union + module ResponseFormat + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::ResponseFormatText, OpenAI::Models::ResponseFormatJSONSchema, OpenAI::Models::ResponseFormatJSONObject] end type service_tier = :auto | :default - class ServiceTier < OpenAI::Enum + module ServiceTier + extend OpenAI::Enum + AUTO: :auto DEFAULT: :default @@ -245,7 +257,9 @@ module OpenAI type stop = (String | ::Array[String])? - class Stop < OpenAI::Union + module Stop + extend OpenAI::Union + type string_array = ::Array[String] StringArray: string_array @@ -277,7 +291,9 @@ module OpenAI type search_context_size = :low | :medium | :high - class SearchContextSize < OpenAI::Enum + module SearchContextSize + extend OpenAI::Enum + LOW: :low MEDIUM: :medium HIGH: :high diff --git a/sig/openai/models/chat/completion_list_params.rbs b/sig/openai/models/chat/completion_list_params.rbs index 9540d790..bb536c64 100644 --- a/sig/openai/models/chat/completion_list_params.rbs +++ b/sig/openai/models/chat/completion_list_params.rbs @@ -48,7 +48,9 @@ module OpenAI type order = :asc | :desc - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC: :asc DESC: :desc diff --git a/sig/openai/models/chat/completions/message_list_params.rbs b/sig/openai/models/chat/completions/message_list_params.rbs index 88456945..c066a38c 100644 --- a/sig/openai/models/chat/completions/message_list_params.rbs +++ b/sig/openai/models/chat/completions/message_list_params.rbs @@ -39,7 +39,9 @@ module OpenAI type order = :asc | :desc - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC: :asc DESC: :desc diff --git a/sig/openai/models/chat_model.rbs b/sig/openai/models/chat_model.rbs index 75caff71..1578b25d 100644 --- a/sig/openai/models/chat_model.rbs +++ b/sig/openai/models/chat_model.rbs @@ -45,7 +45,9 @@ module OpenAI | :"gpt-3.5-turbo-0125" | :"gpt-3.5-turbo-16k-0613" - class ChatModel < OpenAI::Enum + module ChatModel + extend OpenAI::Enum + O3_MINI: :"o3-mini" O3_MINI_2025_01_31: :"o3-mini-2025-01-31" O1: :o1 diff --git a/sig/openai/models/comparison_filter.rbs b/sig/openai/models/comparison_filter.rbs index a3873e2d..20f33540 100644 --- a/sig/openai/models/comparison_filter.rbs +++ b/sig/openai/models/comparison_filter.rbs @@ -24,7 +24,9 @@ module OpenAI type type_ = :eq | :ne | :gt | :gte | :lt | :lte - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + EQ: :eq NE: :ne GT: :gt @@ -37,7 +39,9 @@ module OpenAI type value = String | Float | bool - class Value < OpenAI::Union + module Value + extend OpenAI::Union + def self.variants: -> [String, Float, bool] end end diff --git a/sig/openai/models/completion_choice.rbs b/sig/openai/models/completion_choice.rbs index 05e3ac68..700baf43 100644 --- a/sig/openai/models/completion_choice.rbs +++ b/sig/openai/models/completion_choice.rbs @@ -28,7 +28,9 @@ module OpenAI type finish_reason = :stop | :length | :content_filter - class FinishReason < OpenAI::Enum + module FinishReason + extend OpenAI::Enum + STOP: :stop LENGTH: :length CONTENT_FILTER: :content_filter diff --git a/sig/openai/models/completion_create_params.rbs b/sig/openai/models/completion_create_params.rbs index fd2677d3..358e6503 100644 --- a/sig/openai/models/completion_create_params.rbs +++ b/sig/openai/models/completion_create_params.rbs @@ -88,7 +88,9 @@ module OpenAI type model = String | :"gpt-3.5-turbo-instruct" | :"davinci-002" | :"babbage-002" - class Model < OpenAI::Union + module Model + extend OpenAI::Union + GPT_3_5_TURBO_INSTRUCT: :"gpt-3.5-turbo-instruct" DAVINCI_002: :"davinci-002" BABBAGE_002: :"babbage-002" @@ -101,7 +103,9 @@ module OpenAI type prompt = String | ::Array[String] | ::Array[Integer] | ::Array[::Array[Integer]] - class Prompt < OpenAI::Union + module Prompt + extend OpenAI::Union + type string_array = ::Array[String] StringArray: string_array @@ -119,7 +123,9 @@ module OpenAI type stop = (String | ::Array[String])? - class Stop < OpenAI::Union + module Stop + extend OpenAI::Union + type string_array = ::Array[String] StringArray: string_array diff --git a/sig/openai/models/compound_filter.rbs b/sig/openai/models/compound_filter.rbs index 35aba042..80a9c41e 100644 --- a/sig/openai/models/compound_filter.rbs +++ b/sig/openai/models/compound_filter.rbs @@ -20,13 +20,17 @@ module OpenAI type filter = OpenAI::Models::ComparisonFilter | top - class Filter < OpenAI::Union + module Filter + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::ComparisonFilter, top] end type type_ = :and | :or - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + AND: :and OR: :or diff --git a/sig/openai/models/embedding_create_params.rbs b/sig/openai/models/embedding_create_params.rbs index 59ae7a9f..d08604d9 100644 --- a/sig/openai/models/embedding_create_params.rbs +++ b/sig/openai/models/embedding_create_params.rbs @@ -46,7 +46,9 @@ module OpenAI type input = String | ::Array[String] | ::Array[Integer] | ::Array[::Array[Integer]] - class Input < OpenAI::Union + module Input + extend OpenAI::Union + type string_array = ::Array[String] StringArray: string_array @@ -64,13 +66,17 @@ module OpenAI type model = String | OpenAI::Models::embedding_model - class Model < OpenAI::Union + module Model + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::embedding_model] end type encoding_format = :float | :base64 - class EncodingFormat < OpenAI::Enum + module EncodingFormat + extend OpenAI::Enum + FLOAT: :float BASE64: :base64 diff --git a/sig/openai/models/embedding_model.rbs b/sig/openai/models/embedding_model.rbs index c334a8a5..ed029cea 100644 --- a/sig/openai/models/embedding_model.rbs +++ b/sig/openai/models/embedding_model.rbs @@ -5,7 +5,9 @@ module OpenAI | :"text-embedding-3-small" | :"text-embedding-3-large" - class EmbeddingModel < OpenAI::Enum + module EmbeddingModel + extend OpenAI::Enum + TEXT_EMBEDDING_ADA_002: :"text-embedding-ada-002" TEXT_EMBEDDING_3_SMALL: :"text-embedding-3-small" TEXT_EMBEDDING_3_LARGE: :"text-embedding-3-large" diff --git a/sig/openai/models/file_chunking_strategy.rbs b/sig/openai/models/file_chunking_strategy.rbs index d287b675..5efd7f51 100644 --- a/sig/openai/models/file_chunking_strategy.rbs +++ b/sig/openai/models/file_chunking_strategy.rbs @@ -4,7 +4,9 @@ module OpenAI OpenAI::Models::StaticFileChunkingStrategyObject | OpenAI::Models::OtherFileChunkingStrategyObject - class FileChunkingStrategy < OpenAI::Union + module FileChunkingStrategy + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::StaticFileChunkingStrategyObject, OpenAI::Models::OtherFileChunkingStrategyObject] end end diff --git a/sig/openai/models/file_chunking_strategy_param.rbs b/sig/openai/models/file_chunking_strategy_param.rbs index f5f9f28a..818b7c90 100644 --- a/sig/openai/models/file_chunking_strategy_param.rbs +++ b/sig/openai/models/file_chunking_strategy_param.rbs @@ -4,7 +4,9 @@ module OpenAI OpenAI::Models::AutoFileChunkingStrategyParam | OpenAI::Models::StaticFileChunkingStrategyObjectParam - class FileChunkingStrategyParam < OpenAI::Union + module FileChunkingStrategyParam + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::AutoFileChunkingStrategyParam, OpenAI::Models::StaticFileChunkingStrategyObjectParam] end end diff --git a/sig/openai/models/file_list_params.rbs b/sig/openai/models/file_list_params.rbs index 2f36b51c..9d793064 100644 --- a/sig/openai/models/file_list_params.rbs +++ b/sig/openai/models/file_list_params.rbs @@ -43,7 +43,9 @@ module OpenAI type order = :asc | :desc - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC: :asc DESC: :desc diff --git a/sig/openai/models/file_object.rbs b/sig/openai/models/file_object.rbs index f229d68d..3bb22b13 100644 --- a/sig/openai/models/file_object.rbs +++ b/sig/openai/models/file_object.rbs @@ -59,7 +59,9 @@ module OpenAI | :"fine-tune-results" | :vision - class Purpose < OpenAI::Enum + module Purpose + extend OpenAI::Enum + ASSISTANTS: :assistants ASSISTANTS_OUTPUT: :assistants_output BATCH: :batch @@ -73,7 +75,9 @@ module OpenAI type status = :uploaded | :processed | :error - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + UPLOADED: :uploaded PROCESSED: :processed ERROR: :error diff --git a/sig/openai/models/file_purpose.rbs b/sig/openai/models/file_purpose.rbs index cf532f5b..527e5d11 100644 --- a/sig/openai/models/file_purpose.rbs +++ b/sig/openai/models/file_purpose.rbs @@ -3,7 +3,9 @@ module OpenAI type file_purpose = :assistants | :batch | :"fine-tune" | :vision | :user_data | :evals - class FilePurpose < OpenAI::Enum + module FilePurpose + extend OpenAI::Enum + ASSISTANTS: :assistants BATCH: :batch FINE_TUNE: :"fine-tune" diff --git a/sig/openai/models/fine_tuning/fine_tuning_job.rbs b/sig/openai/models/fine_tuning/fine_tuning_job.rbs index 3b4f5915..b696b25a 100644 --- a/sig/openai/models/fine_tuning/fine_tuning_job.rbs +++ b/sig/openai/models/fine_tuning/fine_tuning_job.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class FineTuningJob = FineTuning::FineTuningJob module FineTuning @@ -148,19 +147,25 @@ module OpenAI type batch_size = :auto | Integer - class BatchSize < OpenAI::Union + module BatchSize + extend OpenAI::Union + def self.variants: -> [:auto, Integer] end type learning_rate_multiplier = :auto | Float - class LearningRateMultiplier < OpenAI::Union + module LearningRateMultiplier + extend OpenAI::Union + def self.variants: -> [:auto, Float] end type n_epochs = :auto | Integer - class NEpochs < OpenAI::Union + module NEpochs + extend OpenAI::Union + def self.variants: -> [:auto, Integer] end end @@ -173,7 +178,9 @@ module OpenAI | :failed | :cancelled - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + VALIDATING_FILES: :validating_files QUEUED: :queued RUNNING: :running @@ -280,25 +287,33 @@ module OpenAI type batch_size = :auto | Integer - class BatchSize < OpenAI::Union + module BatchSize + extend OpenAI::Union + def self.variants: -> [:auto, Integer] end type beta = :auto | Float - class Beta < OpenAI::Union + module Beta + extend OpenAI::Union + def self.variants: -> [:auto, Float] end type learning_rate_multiplier = :auto | Float - class LearningRateMultiplier < OpenAI::Union + module LearningRateMultiplier + extend OpenAI::Union + def self.variants: -> [:auto, Float] end type n_epochs = :auto | Integer - class NEpochs < OpenAI::Union + module NEpochs + extend OpenAI::Union + def self.variants: -> [:auto, Integer] end end @@ -358,19 +373,25 @@ module OpenAI type batch_size = :auto | Integer - class BatchSize < OpenAI::Union + module BatchSize + extend OpenAI::Union + def self.variants: -> [:auto, Integer] end type learning_rate_multiplier = :auto | Float - class LearningRateMultiplier < OpenAI::Union + module LearningRateMultiplier + extend OpenAI::Union + def self.variants: -> [:auto, Float] end type n_epochs = :auto | Integer - class NEpochs < OpenAI::Union + module NEpochs + extend OpenAI::Union + def self.variants: -> [:auto, Integer] end end @@ -378,7 +399,9 @@ module OpenAI type type_ = :supervised | :dpo - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + SUPERVISED: :supervised DPO: :dpo diff --git a/sig/openai/models/fine_tuning/fine_tuning_job_event.rbs b/sig/openai/models/fine_tuning/fine_tuning_job_event.rbs index 239f0331..e70febc9 100644 --- a/sig/openai/models/fine_tuning/fine_tuning_job_event.rbs +++ b/sig/openai/models/fine_tuning/fine_tuning_job_event.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class FineTuningJobEvent = FineTuning::FineTuningJobEvent module FineTuning @@ -50,7 +49,9 @@ module OpenAI type level = :info | :warn | :error - class Level < OpenAI::Enum + module Level + extend OpenAI::Enum + INFO: :info WARN: :warn ERROR: :error @@ -60,7 +61,9 @@ module OpenAI type type_ = :message | :metrics - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + MESSAGE: :message METRICS: :metrics diff --git a/sig/openai/models/fine_tuning/fine_tuning_job_integration.rbs b/sig/openai/models/fine_tuning/fine_tuning_job_integration.rbs index 55ed40a2..ada2b1f0 100644 --- a/sig/openai/models/fine_tuning/fine_tuning_job_integration.rbs +++ b/sig/openai/models/fine_tuning/fine_tuning_job_integration.rbs @@ -1,10 +1,8 @@ module OpenAI module Models - class FineTuningJobIntegration = FineTuning::FineTuningJobIntegration module FineTuning - class FineTuningJobIntegration = OpenAI::Models::FineTuning::FineTuningJobWandbIntegrationObject end end diff --git a/sig/openai/models/fine_tuning/fine_tuning_job_wandb_integration.rbs b/sig/openai/models/fine_tuning/fine_tuning_job_wandb_integration.rbs index bc0a81a5..f5fc5cec 100644 --- a/sig/openai/models/fine_tuning/fine_tuning_job_wandb_integration.rbs +++ b/sig/openai/models/fine_tuning/fine_tuning_job_wandb_integration.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class FineTuningJobWandbIntegration = FineTuning::FineTuningJobWandbIntegration module FineTuning diff --git a/sig/openai/models/fine_tuning/fine_tuning_job_wandb_integration_object.rbs b/sig/openai/models/fine_tuning/fine_tuning_job_wandb_integration_object.rbs index 18b23c37..e156cf05 100644 --- a/sig/openai/models/fine_tuning/fine_tuning_job_wandb_integration_object.rbs +++ b/sig/openai/models/fine_tuning/fine_tuning_job_wandb_integration_object.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class FineTuningJobWandbIntegrationObject = FineTuning::FineTuningJobWandbIntegrationObject module FineTuning diff --git a/sig/openai/models/fine_tuning/job_create_params.rbs b/sig/openai/models/fine_tuning/job_create_params.rbs index 8942f62f..913d7cd3 100644 --- a/sig/openai/models/fine_tuning/job_create_params.rbs +++ b/sig/openai/models/fine_tuning/job_create_params.rbs @@ -67,7 +67,9 @@ module OpenAI | :"gpt-3.5-turbo" | :"gpt-4o-mini" - class Model < OpenAI::Union + module Model + extend OpenAI::Union + BABBAGE_002: :"babbage-002" DAVINCI_002: :"davinci-002" GPT_3_5_TURBO: :"gpt-3.5-turbo" @@ -115,19 +117,25 @@ module OpenAI type batch_size = :auto | Integer - class BatchSize < OpenAI::Union + module BatchSize + extend OpenAI::Union + def self.variants: -> [:auto, Integer] end type learning_rate_multiplier = :auto | Float - class LearningRateMultiplier < OpenAI::Union + module LearningRateMultiplier + extend OpenAI::Union + def self.variants: -> [:auto, Float] end type n_epochs = :auto | Integer - class NEpochs < OpenAI::Union + module NEpochs + extend OpenAI::Union + def self.variants: -> [:auto, Integer] end end @@ -276,25 +284,33 @@ module OpenAI type batch_size = :auto | Integer - class BatchSize < OpenAI::Union + module BatchSize + extend OpenAI::Union + def self.variants: -> [:auto, Integer] end type beta = :auto | Float - class Beta < OpenAI::Union + module Beta + extend OpenAI::Union + def self.variants: -> [:auto, Float] end type learning_rate_multiplier = :auto | Float - class LearningRateMultiplier < OpenAI::Union + module LearningRateMultiplier + extend OpenAI::Union + def self.variants: -> [:auto, Float] end type n_epochs = :auto | Integer - class NEpochs < OpenAI::Union + module NEpochs + extend OpenAI::Union + def self.variants: -> [:auto, Integer] end end @@ -354,19 +370,25 @@ module OpenAI type batch_size = :auto | Integer - class BatchSize < OpenAI::Union + module BatchSize + extend OpenAI::Union + def self.variants: -> [:auto, Integer] end type learning_rate_multiplier = :auto | Float - class LearningRateMultiplier < OpenAI::Union + module LearningRateMultiplier + extend OpenAI::Union + def self.variants: -> [:auto, Float] end type n_epochs = :auto | Integer - class NEpochs < OpenAI::Union + module NEpochs + extend OpenAI::Union + def self.variants: -> [:auto, Integer] end end @@ -374,7 +396,9 @@ module OpenAI type type_ = :supervised | :dpo - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + SUPERVISED: :supervised DPO: :dpo diff --git a/sig/openai/models/image_create_variation_params.rbs b/sig/openai/models/image_create_variation_params.rbs index 7770fc34..1460783f 100644 --- a/sig/openai/models/image_create_variation_params.rbs +++ b/sig/openai/models/image_create_variation_params.rbs @@ -43,13 +43,17 @@ module OpenAI type model = String | OpenAI::Models::image_model - class Model < OpenAI::Union + module Model + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::image_model] end type response_format = :url | :b64_json - class ResponseFormat < OpenAI::Enum + module ResponseFormat + extend OpenAI::Enum + URL: :url B64_JSON: :b64_json @@ -58,7 +62,9 @@ module OpenAI type size = :"256x256" | :"512x512" | :"1024x1024" - class Size < OpenAI::Enum + module Size + extend OpenAI::Enum + NUMBER_256X256: :"256x256" NUMBER_512X512: :"512x512" NUMBER_1024X1024: :"1024x1024" diff --git a/sig/openai/models/image_edit_params.rbs b/sig/openai/models/image_edit_params.rbs index 63e0fbf0..cebbb406 100644 --- a/sig/openai/models/image_edit_params.rbs +++ b/sig/openai/models/image_edit_params.rbs @@ -53,13 +53,17 @@ module OpenAI type model = String | OpenAI::Models::image_model - class Model < OpenAI::Union + module Model + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::image_model] end type response_format = :url | :b64_json - class ResponseFormat < OpenAI::Enum + module ResponseFormat + extend OpenAI::Enum + URL: :url B64_JSON: :b64_json @@ -68,7 +72,9 @@ module OpenAI type size = :"256x256" | :"512x512" | :"1024x1024" - class Size < OpenAI::Enum + module Size + extend OpenAI::Enum + NUMBER_256X256: :"256x256" NUMBER_512X512: :"512x512" NUMBER_1024X1024: :"1024x1024" diff --git a/sig/openai/models/image_generate_params.rbs b/sig/openai/models/image_generate_params.rbs index 1a3f9162..ea843f0f 100644 --- a/sig/openai/models/image_generate_params.rbs +++ b/sig/openai/models/image_generate_params.rbs @@ -55,13 +55,17 @@ module OpenAI type model = String | OpenAI::Models::image_model - class Model < OpenAI::Union + module Model + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::image_model] end type quality = :standard | :hd - class Quality < OpenAI::Enum + module Quality + extend OpenAI::Enum + STANDARD: :standard HD: :hd @@ -70,7 +74,9 @@ module OpenAI type response_format = :url | :b64_json - class ResponseFormat < OpenAI::Enum + module ResponseFormat + extend OpenAI::Enum + URL: :url B64_JSON: :b64_json @@ -80,7 +86,9 @@ module OpenAI type size = :"256x256" | :"512x512" | :"1024x1024" | :"1792x1024" | :"1024x1792" - class Size < OpenAI::Enum + module Size + extend OpenAI::Enum + NUMBER_256X256: :"256x256" NUMBER_512X512: :"512x512" NUMBER_1024X1024: :"1024x1024" @@ -92,7 +100,9 @@ module OpenAI type style = :vivid | :natural - class Style < OpenAI::Enum + module Style + extend OpenAI::Enum + VIVID: :vivid NATURAL: :natural diff --git a/sig/openai/models/image_model.rbs b/sig/openai/models/image_model.rbs index 1151fd9b..e68710d9 100644 --- a/sig/openai/models/image_model.rbs +++ b/sig/openai/models/image_model.rbs @@ -2,7 +2,9 @@ module OpenAI module Models type image_model = :"dall-e-2" | :"dall-e-3" - class ImageModel < OpenAI::Enum + module ImageModel + extend OpenAI::Enum + DALL_E_2: :"dall-e-2" DALL_E_3: :"dall-e-3" diff --git a/sig/openai/models/moderation.rbs b/sig/openai/models/moderation.rbs index d35f2749..9e7a8041 100644 --- a/sig/openai/models/moderation.rbs +++ b/sig/openai/models/moderation.rbs @@ -153,7 +153,9 @@ module OpenAI type harassment = :text - class Harassment < OpenAI::Enum + module Harassment + extend OpenAI::Enum + TEXT: :text def self.values: -> ::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::harassment] @@ -161,7 +163,9 @@ module OpenAI type harassment_threatening = :text - class HarassmentThreatening < OpenAI::Enum + module HarassmentThreatening + extend OpenAI::Enum + TEXT: :text def self.values: -> ::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::harassment_threatening] @@ -169,7 +173,9 @@ module OpenAI type hate = :text - class Hate < OpenAI::Enum + module Hate + extend OpenAI::Enum + TEXT: :text def self.values: -> ::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::hate] @@ -177,7 +183,9 @@ module OpenAI type hate_threatening = :text - class HateThreatening < OpenAI::Enum + module HateThreatening + extend OpenAI::Enum + TEXT: :text def self.values: -> ::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::hate_threatening] @@ -185,7 +193,9 @@ module OpenAI type illicit = :text - class Illicit < OpenAI::Enum + module Illicit + extend OpenAI::Enum + TEXT: :text def self.values: -> ::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::illicit] @@ -193,7 +203,9 @@ module OpenAI type illicit_violent = :text - class IllicitViolent < OpenAI::Enum + module IllicitViolent + extend OpenAI::Enum + TEXT: :text def self.values: -> ::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::illicit_violent] @@ -201,7 +213,9 @@ module OpenAI type self_harm = :text | :image - class SelfHarm < OpenAI::Enum + module SelfHarm + extend OpenAI::Enum + TEXT: :text IMAGE: :image @@ -210,7 +224,9 @@ module OpenAI type self_harm_instruction = :text | :image - class SelfHarmInstruction < OpenAI::Enum + module SelfHarmInstruction + extend OpenAI::Enum + TEXT: :text IMAGE: :image @@ -219,7 +235,9 @@ module OpenAI type self_harm_intent = :text | :image - class SelfHarmIntent < OpenAI::Enum + module SelfHarmIntent + extend OpenAI::Enum + TEXT: :text IMAGE: :image @@ -228,7 +246,9 @@ module OpenAI type sexual = :text | :image - class Sexual < OpenAI::Enum + module Sexual + extend OpenAI::Enum + TEXT: :text IMAGE: :image @@ -237,7 +257,9 @@ module OpenAI type sexual_minor = :text - class SexualMinor < OpenAI::Enum + module SexualMinor + extend OpenAI::Enum + TEXT: :text def self.values: -> ::Array[OpenAI::Models::Moderation::CategoryAppliedInputTypes::sexual_minor] @@ -245,7 +267,9 @@ module OpenAI type violence = :text | :image - class Violence < OpenAI::Enum + module Violence + extend OpenAI::Enum + TEXT: :text IMAGE: :image @@ -254,7 +278,9 @@ module OpenAI type violence_graphic = :text | :image - class ViolenceGraphic < OpenAI::Enum + module ViolenceGraphic + extend OpenAI::Enum + TEXT: :text IMAGE: :image diff --git a/sig/openai/models/moderation_create_params.rbs b/sig/openai/models/moderation_create_params.rbs index c95e6d3e..41fec7ce 100644 --- a/sig/openai/models/moderation_create_params.rbs +++ b/sig/openai/models/moderation_create_params.rbs @@ -32,7 +32,9 @@ module OpenAI | ::Array[String] | ::Array[OpenAI::Models::moderation_multi_modal_input] - class Input < OpenAI::Union + module Input + extend OpenAI::Union + type string_array = ::Array[String] StringArray: string_array @@ -47,7 +49,9 @@ module OpenAI type model = String | OpenAI::Models::moderation_model - class Model < OpenAI::Union + module Model + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::moderation_model] end end diff --git a/sig/openai/models/moderation_model.rbs b/sig/openai/models/moderation_model.rbs index 6fb884f3..fa7264f2 100644 --- a/sig/openai/models/moderation_model.rbs +++ b/sig/openai/models/moderation_model.rbs @@ -6,7 +6,9 @@ module OpenAI | :"text-moderation-latest" | :"text-moderation-stable" - class ModerationModel < OpenAI::Enum + module ModerationModel + extend OpenAI::Enum + OMNI_MODERATION_LATEST: :"omni-moderation-latest" OMNI_MODERATION_2024_09_26: :"omni-moderation-2024-09-26" TEXT_MODERATION_LATEST: :"text-moderation-latest" diff --git a/sig/openai/models/moderation_multi_modal_input.rbs b/sig/openai/models/moderation_multi_modal_input.rbs index c98cd3a4..9388bae0 100644 --- a/sig/openai/models/moderation_multi_modal_input.rbs +++ b/sig/openai/models/moderation_multi_modal_input.rbs @@ -4,7 +4,9 @@ module OpenAI OpenAI::Models::ModerationImageURLInput | OpenAI::Models::ModerationTextInput - class ModerationMultiModalInput < OpenAI::Union + module ModerationMultiModalInput + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::ModerationImageURLInput, OpenAI::Models::ModerationTextInput] end end diff --git a/sig/openai/models/reasoning.rbs b/sig/openai/models/reasoning.rbs index a4184fb6..8452d648 100644 --- a/sig/openai/models/reasoning.rbs +++ b/sig/openai/models/reasoning.rbs @@ -20,7 +20,9 @@ module OpenAI type generate_summary = :concise | :detailed - class GenerateSummary < OpenAI::Enum + module GenerateSummary + extend OpenAI::Enum + CONCISE: :concise DETAILED: :detailed diff --git a/sig/openai/models/reasoning_effort.rbs b/sig/openai/models/reasoning_effort.rbs index 57327554..27d712d0 100644 --- a/sig/openai/models/reasoning_effort.rbs +++ b/sig/openai/models/reasoning_effort.rbs @@ -2,7 +2,9 @@ module OpenAI module Models type reasoning_effort = :low | :medium | :high - class ReasoningEffort < OpenAI::Enum + module ReasoningEffort + extend OpenAI::Enum + LOW: :low MEDIUM: :medium HIGH: :high diff --git a/sig/openai/models/responses/computer_tool.rbs b/sig/openai/models/responses/computer_tool.rbs index dbfd8278..944fbd51 100644 --- a/sig/openai/models/responses/computer_tool.rbs +++ b/sig/openai/models/responses/computer_tool.rbs @@ -29,7 +29,9 @@ module OpenAI type environment = :mac | :windows | :ubuntu | :browser - class Environment < OpenAI::Enum + module Environment + extend OpenAI::Enum + MAC: :mac WINDOWS: :windows UBUNTU: :ubuntu diff --git a/sig/openai/models/responses/easy_input_message.rbs b/sig/openai/models/responses/easy_input_message.rbs index 8e5bc808..10931508 100644 --- a/sig/openai/models/responses/easy_input_message.rbs +++ b/sig/openai/models/responses/easy_input_message.rbs @@ -31,13 +31,17 @@ module OpenAI String | OpenAI::Models::Responses::response_input_message_content_list - class Content < OpenAI::Union + module Content + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::Responses::response_input_message_content_list] end type role = :user | :assistant | :system | :developer - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER: :user ASSISTANT: :assistant SYSTEM: :system @@ -48,7 +52,9 @@ module OpenAI type type_ = :message - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + MESSAGE: :message def self.values: -> ::Array[OpenAI::Models::Responses::EasyInputMessage::type_] diff --git a/sig/openai/models/responses/file_search_tool.rbs b/sig/openai/models/responses/file_search_tool.rbs index 8c714006..fbea9c27 100644 --- a/sig/openai/models/responses/file_search_tool.rbs +++ b/sig/openai/models/responses/file_search_tool.rbs @@ -44,7 +44,9 @@ module OpenAI type filters = OpenAI::Models::ComparisonFilter | OpenAI::Models::CompoundFilter - class Filters < OpenAI::Union + module Filters + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::ComparisonFilter, OpenAI::Models::CompoundFilter] end @@ -74,7 +76,9 @@ module OpenAI type ranker = :auto | :"default-2024-11-15" - class Ranker < OpenAI::Enum + module Ranker + extend OpenAI::Enum + AUTO: :auto DEFAULT_2024_11_15: :"default-2024-11-15" diff --git a/sig/openai/models/responses/input_item_list_params.rbs b/sig/openai/models/responses/input_item_list_params.rbs index 2971462e..633f4ef4 100644 --- a/sig/openai/models/responses/input_item_list_params.rbs +++ b/sig/openai/models/responses/input_item_list_params.rbs @@ -44,7 +44,9 @@ module OpenAI type order = :asc | :desc - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC: :asc DESC: :desc diff --git a/sig/openai/models/responses/response.rbs b/sig/openai/models/responses/response.rbs index 39953b70..21f27944 100644 --- a/sig/openai/models/responses/response.rbs +++ b/sig/openai/models/responses/response.rbs @@ -133,7 +133,9 @@ module OpenAI type reason = :max_output_tokens | :content_filter - class Reason < OpenAI::Enum + module Reason + extend OpenAI::Enum + MAX_OUTPUT_TOKENS: :max_output_tokens CONTENT_FILTER: :content_filter @@ -146,13 +148,17 @@ module OpenAI | OpenAI::Models::Responses::ToolChoiceTypes | OpenAI::Models::Responses::ToolChoiceFunction - class ToolChoice < OpenAI::Union + module ToolChoice + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Responses::tool_choice_options, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction] end type truncation = :auto | :disabled - class Truncation < OpenAI::Enum + module Truncation + extend OpenAI::Enum + AUTO: :auto DISABLED: :disabled diff --git a/sig/openai/models/responses/response_code_interpreter_tool_call.rbs b/sig/openai/models/responses/response_code_interpreter_tool_call.rbs index 1201cdfe..3d2f285b 100644 --- a/sig/openai/models/responses/response_code_interpreter_tool_call.rbs +++ b/sig/openai/models/responses/response_code_interpreter_tool_call.rbs @@ -35,7 +35,9 @@ module OpenAI OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Result::Logs | OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::Result::Files - class Result < OpenAI::Union + module Result + extend OpenAI::Union + type logs = { logs: String, type: :logs } class Logs < OpenAI::BaseModel @@ -84,7 +86,9 @@ module OpenAI type status = :in_progress | :interpreting | :completed - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress INTERPRETING: :interpreting COMPLETED: :completed diff --git a/sig/openai/models/responses/response_computer_tool_call.rbs b/sig/openai/models/responses/response_computer_tool_call.rbs index 69f3d3e4..e6b8fd9e 100644 --- a/sig/openai/models/responses/response_computer_tool_call.rbs +++ b/sig/openai/models/responses/response_computer_tool_call.rbs @@ -46,7 +46,9 @@ module OpenAI | OpenAI::Models::Responses::ResponseComputerToolCall::Action::Type | OpenAI::Models::Responses::ResponseComputerToolCall::Action::Wait - class Action < OpenAI::Union + module Action + extend OpenAI::Union + type click = { button: OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::button, @@ -75,7 +77,9 @@ module OpenAI type button = :left | :right | :wheel | :back | :forward - class Button < OpenAI::Enum + module Button + extend OpenAI::Enum + LEFT: :left RIGHT: :right WHEEL: :wheel @@ -244,7 +248,9 @@ module OpenAI type status = :in_progress | :completed | :incomplete - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed INCOMPLETE: :incomplete @@ -254,7 +260,9 @@ module OpenAI type type_ = :computer_call - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + COMPUTER_CALL: :computer_call def self.values: -> ::Array[OpenAI::Models::Responses::ResponseComputerToolCall::type_] diff --git a/sig/openai/models/responses/response_computer_tool_call_output_item.rbs b/sig/openai/models/responses/response_computer_tool_call_output_item.rbs index 0e737186..c4a48c1d 100644 --- a/sig/openai/models/responses/response_computer_tool_call_output_item.rbs +++ b/sig/openai/models/responses/response_computer_tool_call_output_item.rbs @@ -60,7 +60,9 @@ module OpenAI type status = :in_progress | :completed | :incomplete - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed INCOMPLETE: :incomplete diff --git a/sig/openai/models/responses/response_content.rbs b/sig/openai/models/responses/response_content.rbs index c7bb377e..ebfaa85b 100644 --- a/sig/openai/models/responses/response_content.rbs +++ b/sig/openai/models/responses/response_content.rbs @@ -8,7 +8,9 @@ module OpenAI | OpenAI::Models::Responses::ResponseOutputText | OpenAI::Models::Responses::ResponseOutputRefusal - class ResponseContent < OpenAI::Union + module ResponseContent + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Responses::ResponseInputText, OpenAI::Models::Responses::ResponseInputImage, OpenAI::Models::Responses::ResponseInputFile, OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal] end end diff --git a/sig/openai/models/responses/response_content_part_added_event.rbs b/sig/openai/models/responses/response_content_part_added_event.rbs index b221cdc0..2f4c1e05 100644 --- a/sig/openai/models/responses/response_content_part_added_event.rbs +++ b/sig/openai/models/responses/response_content_part_added_event.rbs @@ -35,7 +35,9 @@ module OpenAI OpenAI::Models::Responses::ResponseOutputText | OpenAI::Models::Responses::ResponseOutputRefusal - class Part < OpenAI::Union + module Part + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal] end end diff --git a/sig/openai/models/responses/response_content_part_done_event.rbs b/sig/openai/models/responses/response_content_part_done_event.rbs index f7c71025..792dd89a 100644 --- a/sig/openai/models/responses/response_content_part_done_event.rbs +++ b/sig/openai/models/responses/response_content_part_done_event.rbs @@ -35,7 +35,9 @@ module OpenAI OpenAI::Models::Responses::ResponseOutputText | OpenAI::Models::Responses::ResponseOutputRefusal - class Part < OpenAI::Union + module Part + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal] end end diff --git a/sig/openai/models/responses/response_create_params.rbs b/sig/openai/models/responses/response_create_params.rbs index 697640de..7336a20e 100644 --- a/sig/openai/models/responses/response_create_params.rbs +++ b/sig/openai/models/responses/response_create_params.rbs @@ -100,7 +100,9 @@ module OpenAI type input = String | OpenAI::Models::Responses::response_input - class Input < OpenAI::Union + module Input + extend OpenAI::Union + def self.variants: -> [String, OpenAI::Models::Responses::response_input] end @@ -109,13 +111,17 @@ module OpenAI | OpenAI::Models::Responses::ToolChoiceTypes | OpenAI::Models::Responses::ToolChoiceFunction - class ToolChoice < OpenAI::Union + module ToolChoice + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Responses::tool_choice_options, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction] end type truncation = :auto | :disabled - class Truncation < OpenAI::Enum + module Truncation + extend OpenAI::Enum + AUTO: :auto DISABLED: :disabled diff --git a/sig/openai/models/responses/response_error.rbs b/sig/openai/models/responses/response_error.rbs index 5d705a42..c9461327 100644 --- a/sig/openai/models/responses/response_error.rbs +++ b/sig/openai/models/responses/response_error.rbs @@ -39,7 +39,9 @@ module OpenAI | :failed_to_download_image | :image_file_not_found - class Code < OpenAI::Enum + module Code + extend OpenAI::Enum + SERVER_ERROR: :server_error RATE_LIMIT_EXCEEDED: :rate_limit_exceeded INVALID_PROMPT: :invalid_prompt diff --git a/sig/openai/models/responses/response_file_search_tool_call.rbs b/sig/openai/models/responses/response_file_search_tool_call.rbs index 8bcaf1dc..102ce635 100644 --- a/sig/openai/models/responses/response_file_search_tool_call.rbs +++ b/sig/openai/models/responses/response_file_search_tool_call.rbs @@ -34,7 +34,9 @@ module OpenAI type status = :in_progress | :searching | :completed | :incomplete | :failed - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress SEARCHING: :searching COMPLETED: :completed @@ -84,7 +86,9 @@ module OpenAI type attribute = String | Float | bool - class Attribute < OpenAI::Union + module Attribute + extend OpenAI::Union + def self.variants: -> [String, Float, bool] end end diff --git a/sig/openai/models/responses/response_format_text_config.rbs b/sig/openai/models/responses/response_format_text_config.rbs index 7a38cb8e..ffd41786 100644 --- a/sig/openai/models/responses/response_format_text_config.rbs +++ b/sig/openai/models/responses/response_format_text_config.rbs @@ -6,7 +6,9 @@ module OpenAI | OpenAI::Models::Responses::ResponseFormatTextJSONSchemaConfig | OpenAI::Models::ResponseFormatJSONObject - class ResponseFormatTextConfig < OpenAI::Union + module ResponseFormatTextConfig + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::ResponseFormatText, OpenAI::Models::Responses::ResponseFormatTextJSONSchemaConfig, OpenAI::Models::ResponseFormatJSONObject] end end diff --git a/sig/openai/models/responses/response_function_tool_call.rbs b/sig/openai/models/responses/response_function_tool_call.rbs index acd89dee..a726e572 100644 --- a/sig/openai/models/responses/response_function_tool_call.rbs +++ b/sig/openai/models/responses/response_function_tool_call.rbs @@ -43,7 +43,9 @@ module OpenAI type status = :in_progress | :completed | :incomplete - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed INCOMPLETE: :incomplete diff --git a/sig/openai/models/responses/response_function_tool_call_output_item.rbs b/sig/openai/models/responses/response_function_tool_call_output_item.rbs index 3265f83f..eea6788a 100644 --- a/sig/openai/models/responses/response_function_tool_call_output_item.rbs +++ b/sig/openai/models/responses/response_function_tool_call_output_item.rbs @@ -37,7 +37,9 @@ module OpenAI type status = :in_progress | :completed | :incomplete - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed INCOMPLETE: :incomplete diff --git a/sig/openai/models/responses/response_function_web_search.rbs b/sig/openai/models/responses/response_function_web_search.rbs index 7da9b40d..301b596c 100644 --- a/sig/openai/models/responses/response_function_web_search.rbs +++ b/sig/openai/models/responses/response_function_web_search.rbs @@ -25,7 +25,9 @@ module OpenAI type status = :in_progress | :searching | :completed | :failed - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress SEARCHING: :searching COMPLETED: :completed diff --git a/sig/openai/models/responses/response_includable.rbs b/sig/openai/models/responses/response_includable.rbs index b2a08af5..df76bd92 100644 --- a/sig/openai/models/responses/response_includable.rbs +++ b/sig/openai/models/responses/response_includable.rbs @@ -6,7 +6,9 @@ module OpenAI | :"message.input_image.image_url" | :"computer_call_output.output.image_url" - class ResponseIncludable < OpenAI::Enum + module ResponseIncludable + extend OpenAI::Enum + FILE_SEARCH_CALL_RESULTS: :"file_search_call.results" MESSAGE_INPUT_IMAGE_IMAGE_URL: :"message.input_image.image_url" COMPUTER_CALL_OUTPUT_OUTPUT_IMAGE_URL: :"computer_call_output.output.image_url" diff --git a/sig/openai/models/responses/response_input_audio.rbs b/sig/openai/models/responses/response_input_audio.rbs index b41c744b..e015e2d8 100644 --- a/sig/openai/models/responses/response_input_audio.rbs +++ b/sig/openai/models/responses/response_input_audio.rbs @@ -25,7 +25,9 @@ module OpenAI type format_ = :mp3 | :wav - class Format < OpenAI::Enum + module Format + extend OpenAI::Enum + MP3: :mp3 WAV: :wav diff --git a/sig/openai/models/responses/response_input_content.rbs b/sig/openai/models/responses/response_input_content.rbs index 004cfa5c..6f2fe81c 100644 --- a/sig/openai/models/responses/response_input_content.rbs +++ b/sig/openai/models/responses/response_input_content.rbs @@ -6,7 +6,9 @@ module OpenAI | OpenAI::Models::Responses::ResponseInputImage | OpenAI::Models::Responses::ResponseInputFile - class ResponseInputContent < OpenAI::Union + module ResponseInputContent + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Responses::ResponseInputText, OpenAI::Models::Responses::ResponseInputImage, OpenAI::Models::Responses::ResponseInputFile] end end diff --git a/sig/openai/models/responses/response_input_image.rbs b/sig/openai/models/responses/response_input_image.rbs index 24abed14..fd361d9a 100644 --- a/sig/openai/models/responses/response_input_image.rbs +++ b/sig/openai/models/responses/response_input_image.rbs @@ -29,7 +29,9 @@ module OpenAI type detail = :high | :low | :auto - class Detail < OpenAI::Enum + module Detail + extend OpenAI::Enum + HIGH: :high LOW: :low AUTO: :auto diff --git a/sig/openai/models/responses/response_input_item.rbs b/sig/openai/models/responses/response_input_item.rbs index 869b143f..20caf979 100644 --- a/sig/openai/models/responses/response_input_item.rbs +++ b/sig/openai/models/responses/response_input_item.rbs @@ -14,7 +14,9 @@ module OpenAI | OpenAI::Models::Responses::ResponseReasoningItem | OpenAI::Models::Responses::ResponseInputItem::ItemReference - class ResponseInputItem < OpenAI::Union + module ResponseInputItem + extend OpenAI::Union + type message = { content: OpenAI::Models::Responses::response_input_message_content_list, @@ -51,7 +53,9 @@ module OpenAI type role = :user | :system | :developer - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER: :user SYSTEM: :system DEVELOPER: :developer @@ -61,7 +65,9 @@ module OpenAI type status = :in_progress | :completed | :incomplete - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed INCOMPLETE: :incomplete @@ -71,7 +77,9 @@ module OpenAI type type_ = :message - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + MESSAGE: :message def self.values: -> ::Array[OpenAI::Models::Responses::ResponseInputItem::Message::type_] @@ -139,7 +147,9 @@ module OpenAI type status = :in_progress | :completed | :incomplete - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed INCOMPLETE: :incomplete @@ -186,7 +196,9 @@ module OpenAI type status = :in_progress | :completed | :incomplete - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed INCOMPLETE: :incomplete diff --git a/sig/openai/models/responses/response_input_message_item.rbs b/sig/openai/models/responses/response_input_message_item.rbs index 45e1f023..2671fd84 100644 --- a/sig/openai/models/responses/response_input_message_item.rbs +++ b/sig/openai/models/responses/response_input_message_item.rbs @@ -41,7 +41,9 @@ module OpenAI type role = :user | :system | :developer - class Role < OpenAI::Enum + module Role + extend OpenAI::Enum + USER: :user SYSTEM: :system DEVELOPER: :developer @@ -51,7 +53,9 @@ module OpenAI type status = :in_progress | :completed | :incomplete - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed INCOMPLETE: :incomplete @@ -61,7 +65,9 @@ module OpenAI type type_ = :message - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + MESSAGE: :message def self.values: -> ::Array[OpenAI::Models::Responses::ResponseInputMessageItem::type_] diff --git a/sig/openai/models/responses/response_item.rbs b/sig/openai/models/responses/response_item.rbs index 8fc80907..8d2e807d 100644 --- a/sig/openai/models/responses/response_item.rbs +++ b/sig/openai/models/responses/response_item.rbs @@ -11,7 +11,9 @@ module OpenAI | OpenAI::Models::Responses::ResponseFunctionToolCallItem | OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem - class ResponseItem < OpenAI::Union + module ResponseItem + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem] end end diff --git a/sig/openai/models/responses/response_item_list.rbs b/sig/openai/models/responses/response_item_list.rbs index 37f78a23..dbed0410 100644 --- a/sig/openai/models/responses/response_item_list.rbs +++ b/sig/openai/models/responses/response_item_list.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class ResponseItemList = Responses::ResponseItemList module Responses diff --git a/sig/openai/models/responses/response_output_item.rbs b/sig/openai/models/responses/response_output_item.rbs index e01fe1b2..9868493b 100644 --- a/sig/openai/models/responses/response_output_item.rbs +++ b/sig/openai/models/responses/response_output_item.rbs @@ -9,7 +9,9 @@ module OpenAI | OpenAI::Models::Responses::ResponseComputerToolCall | OpenAI::Models::Responses::ResponseReasoningItem - class ResponseOutputItem < OpenAI::Union + module ResponseOutputItem + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem] end end diff --git a/sig/openai/models/responses/response_output_message.rbs b/sig/openai/models/responses/response_output_message.rbs index b003219c..81eebadd 100644 --- a/sig/openai/models/responses/response_output_message.rbs +++ b/sig/openai/models/responses/response_output_message.rbs @@ -35,13 +35,17 @@ module OpenAI OpenAI::Models::Responses::ResponseOutputText | OpenAI::Models::Responses::ResponseOutputRefusal - class Content < OpenAI::Union + module Content + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal] end type status = :in_progress | :completed | :incomplete - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed INCOMPLETE: :incomplete diff --git a/sig/openai/models/responses/response_output_text.rbs b/sig/openai/models/responses/response_output_text.rbs index a40aee39..3d499c72 100644 --- a/sig/openai/models/responses/response_output_text.rbs +++ b/sig/openai/models/responses/response_output_text.rbs @@ -28,7 +28,9 @@ module OpenAI | OpenAI::Models::Responses::ResponseOutputText::Annotation::URLCitation | OpenAI::Models::Responses::ResponseOutputText::Annotation::FilePath - class Annotation < OpenAI::Union + module Annotation + extend OpenAI::Union + type file_citation = { file_id: String, index: Integer, type: :file_citation } diff --git a/sig/openai/models/responses/response_reasoning_item.rbs b/sig/openai/models/responses/response_reasoning_item.rbs index 23d2dd02..17d8480f 100644 --- a/sig/openai/models/responses/response_reasoning_item.rbs +++ b/sig/openai/models/responses/response_reasoning_item.rbs @@ -45,7 +45,9 @@ module OpenAI type status = :in_progress | :completed | :incomplete - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed INCOMPLETE: :incomplete diff --git a/sig/openai/models/responses/response_status.rbs b/sig/openai/models/responses/response_status.rbs index 17349a0c..3ecc2fc1 100644 --- a/sig/openai/models/responses/response_status.rbs +++ b/sig/openai/models/responses/response_status.rbs @@ -3,7 +3,9 @@ module OpenAI module Responses type response_status = :completed | :failed | :in_progress | :incomplete - class ResponseStatus < OpenAI::Enum + module ResponseStatus + extend OpenAI::Enum + COMPLETED: :completed FAILED: :failed IN_PROGRESS: :in_progress diff --git a/sig/openai/models/responses/response_stream_event.rbs b/sig/openai/models/responses/response_stream_event.rbs index 0d48dfd6..8642b35b 100644 --- a/sig/openai/models/responses/response_stream_event.rbs +++ b/sig/openai/models/responses/response_stream_event.rbs @@ -35,7 +35,9 @@ module OpenAI | OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent | OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent - class ResponseStreamEvent < OpenAI::Union + module ResponseStreamEvent + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Responses::ResponseAudioDeltaEvent, OpenAI::Models::Responses::ResponseAudioDoneEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Responses::ResponseCompletedEvent, OpenAI::Models::Responses::ResponseContentPartAddedEvent, OpenAI::Models::Responses::ResponseContentPartDoneEvent, OpenAI::Models::Responses::ResponseCreatedEvent, OpenAI::Models::Responses::ResponseErrorEvent, OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseInProgressEvent, OpenAI::Models::Responses::ResponseFailedEvent, OpenAI::Models::Responses::ResponseIncompleteEvent, OpenAI::Models::Responses::ResponseOutputItemAddedEvent, OpenAI::Models::Responses::ResponseOutputItemDoneEvent, OpenAI::Models::Responses::ResponseRefusalDeltaEvent, OpenAI::Models::Responses::ResponseRefusalDoneEvent, OpenAI::Models::Responses::ResponseTextAnnotationDeltaEvent, OpenAI::Models::Responses::ResponseTextDeltaEvent, OpenAI::Models::Responses::ResponseTextDoneEvent, OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent] end end diff --git a/sig/openai/models/responses/response_text_annotation_delta_event.rbs b/sig/openai/models/responses/response_text_annotation_delta_event.rbs index d01375b4..17d56582 100644 --- a/sig/openai/models/responses/response_text_annotation_delta_event.rbs +++ b/sig/openai/models/responses/response_text_annotation_delta_event.rbs @@ -40,7 +40,9 @@ module OpenAI | OpenAI::Models::Responses::ResponseTextAnnotationDeltaEvent::Annotation::URLCitation | OpenAI::Models::Responses::ResponseTextAnnotationDeltaEvent::Annotation::FilePath - class Annotation < OpenAI::Union + module Annotation + extend OpenAI::Union + type file_citation = { file_id: String, index: Integer, type: :file_citation } diff --git a/sig/openai/models/responses/tool.rbs b/sig/openai/models/responses/tool.rbs index 642f7196..7cf475b8 100644 --- a/sig/openai/models/responses/tool.rbs +++ b/sig/openai/models/responses/tool.rbs @@ -7,7 +7,9 @@ module OpenAI | OpenAI::Models::Responses::ComputerTool | OpenAI::Models::Responses::WebSearchTool - class Tool < OpenAI::Union + module Tool + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::WebSearchTool] end end diff --git a/sig/openai/models/responses/tool_choice_options.rbs b/sig/openai/models/responses/tool_choice_options.rbs index e902ea2c..412031bf 100644 --- a/sig/openai/models/responses/tool_choice_options.rbs +++ b/sig/openai/models/responses/tool_choice_options.rbs @@ -3,7 +3,9 @@ module OpenAI module Responses type tool_choice_options = :none | :auto | :required - class ToolChoiceOptions < OpenAI::Enum + module ToolChoiceOptions + extend OpenAI::Enum + NONE: :none AUTO: :auto REQUIRED: :required diff --git a/sig/openai/models/responses/tool_choice_types.rbs b/sig/openai/models/responses/tool_choice_types.rbs index ea1e958d..73f15517 100644 --- a/sig/openai/models/responses/tool_choice_types.rbs +++ b/sig/openai/models/responses/tool_choice_types.rbs @@ -19,7 +19,9 @@ module OpenAI | :computer_use_preview | :web_search_preview_2025_03_11 - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + FILE_SEARCH: :file_search WEB_SEARCH_PREVIEW: :web_search_preview COMPUTER_USE_PREVIEW: :computer_use_preview diff --git a/sig/openai/models/responses/web_search_tool.rbs b/sig/openai/models/responses/web_search_tool.rbs index abb3f9a1..20a3b337 100644 --- a/sig/openai/models/responses/web_search_tool.rbs +++ b/sig/openai/models/responses/web_search_tool.rbs @@ -29,7 +29,9 @@ module OpenAI type type_ = :web_search_preview | :web_search_preview_2025_03_11 - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + WEB_SEARCH_PREVIEW: :web_search_preview WEB_SEARCH_PREVIEW_2025_03_11: :web_search_preview_2025_03_11 @@ -38,7 +40,9 @@ module OpenAI type search_context_size = :low | :medium | :high - class SearchContextSize < OpenAI::Enum + module SearchContextSize + extend OpenAI::Enum + LOW: :low MEDIUM: :medium HIGH: :high diff --git a/sig/openai/models/responses_model.rbs b/sig/openai/models/responses_model.rbs index 582ad254..3bfeacd2 100644 --- a/sig/openai/models/responses_model.rbs +++ b/sig/openai/models/responses_model.rbs @@ -5,14 +5,18 @@ module OpenAI | OpenAI::Models::chat_model | OpenAI::Models::ResponsesModel::union_member2 - class ResponsesModel < OpenAI::Union + module ResponsesModel + extend OpenAI::Union + type union_member2 = :"o1-pro" | :"o1-pro-2025-03-19" | :"computer-use-preview" | :"computer-use-preview-2025-03-11" - class UnionMember2 < OpenAI::Enum + module UnionMember2 + extend OpenAI::Enum + O1_PRO: :"o1-pro" O1_PRO_2025_03_19: :"o1-pro-2025-03-19" COMPUTER_USE_PREVIEW: :"computer-use-preview" diff --git a/sig/openai/models/upload.rbs b/sig/openai/models/upload.rbs index eead4b34..a5baefff 100644 --- a/sig/openai/models/upload.rbs +++ b/sig/openai/models/upload.rbs @@ -48,7 +48,9 @@ module OpenAI type status = :pending | :completed | :cancelled | :expired - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + PENDING: :pending COMPLETED: :completed CANCELLED: :cancelled diff --git a/sig/openai/models/uploads/upload_part.rbs b/sig/openai/models/uploads/upload_part.rbs index 94f8bb7b..2a1f9e38 100644 --- a/sig/openai/models/uploads/upload_part.rbs +++ b/sig/openai/models/uploads/upload_part.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class UploadPart = Uploads::UploadPart module Uploads diff --git a/sig/openai/models/vector_store.rbs b/sig/openai/models/vector_store.rbs index 2f4e439b..ba9a3850 100644 --- a/sig/openai/models/vector_store.rbs +++ b/sig/openai/models/vector_store.rbs @@ -91,7 +91,9 @@ module OpenAI type status = :expired | :in_progress | :completed - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + EXPIRED: :expired IN_PROGRESS: :in_progress COMPLETED: :completed diff --git a/sig/openai/models/vector_store_list_params.rbs b/sig/openai/models/vector_store_list_params.rbs index b2ea6f76..b9d2ab90 100644 --- a/sig/openai/models/vector_store_list_params.rbs +++ b/sig/openai/models/vector_store_list_params.rbs @@ -43,7 +43,9 @@ module OpenAI type order = :asc | :desc - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC: :asc DESC: :desc diff --git a/sig/openai/models/vector_store_search_params.rbs b/sig/openai/models/vector_store_search_params.rbs index 0918e4b6..17e51e48 100644 --- a/sig/openai/models/vector_store_search_params.rbs +++ b/sig/openai/models/vector_store_search_params.rbs @@ -49,7 +49,9 @@ module OpenAI type query = String | ::Array[String] - class Query < OpenAI::Union + module Query + extend OpenAI::Union + type string_array = ::Array[String] StringArray: string_array @@ -60,7 +62,9 @@ module OpenAI type filters = OpenAI::Models::ComparisonFilter | OpenAI::Models::CompoundFilter - class Filters < OpenAI::Union + module Filters + extend OpenAI::Union + def self.variants: -> [OpenAI::Models::ComparisonFilter, OpenAI::Models::CompoundFilter] end @@ -90,7 +94,9 @@ module OpenAI type ranker = :auto | :"default-2024-11-15" - class Ranker < OpenAI::Enum + module Ranker + extend OpenAI::Enum + AUTO: :auto DEFAULT_2024_11_15: :"default-2024-11-15" diff --git a/sig/openai/models/vector_store_search_response.rbs b/sig/openai/models/vector_store_search_response.rbs index ae59192d..497e9d9d 100644 --- a/sig/openai/models/vector_store_search_response.rbs +++ b/sig/openai/models/vector_store_search_response.rbs @@ -32,7 +32,9 @@ module OpenAI type attribute = String | Float | bool - class Attribute < OpenAI::Union + module Attribute + extend OpenAI::Union + def self.variants: -> [String, Float, bool] end @@ -56,7 +58,9 @@ module OpenAI type type_ = :text - class Type < OpenAI::Enum + module Type + extend OpenAI::Enum + TEXT: :text def self.values: -> ::Array[OpenAI::Models::VectorStoreSearchResponse::Content::type_] diff --git a/sig/openai/models/vector_stores/file_batch_create_params.rbs b/sig/openai/models/vector_stores/file_batch_create_params.rbs index 80029298..78f70166 100644 --- a/sig/openai/models/vector_stores/file_batch_create_params.rbs +++ b/sig/openai/models/vector_stores/file_batch_create_params.rbs @@ -34,7 +34,9 @@ module OpenAI type attribute = String | Float | bool - class Attribute < OpenAI::Union + module Attribute + extend OpenAI::Union + def self.variants: -> [String, Float, bool] end end diff --git a/sig/openai/models/vector_stores/file_batch_list_files_params.rbs b/sig/openai/models/vector_stores/file_batch_list_files_params.rbs index e642c6f9..d5bdb26b 100644 --- a/sig/openai/models/vector_stores/file_batch_list_files_params.rbs +++ b/sig/openai/models/vector_stores/file_batch_list_files_params.rbs @@ -56,7 +56,9 @@ module OpenAI type filter = :in_progress | :completed | :failed | :cancelled - class Filter < OpenAI::Enum + module Filter + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed FAILED: :failed @@ -67,7 +69,9 @@ module OpenAI type order = :asc | :desc - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC: :asc DESC: :desc diff --git a/sig/openai/models/vector_stores/file_create_params.rbs b/sig/openai/models/vector_stores/file_create_params.rbs index ac3e0e2c..8ecec280 100644 --- a/sig/openai/models/vector_stores/file_create_params.rbs +++ b/sig/openai/models/vector_stores/file_create_params.rbs @@ -34,7 +34,9 @@ module OpenAI type attribute = String | Float | bool - class Attribute < OpenAI::Union + module Attribute + extend OpenAI::Union + def self.variants: -> [String, Float, bool] end end diff --git a/sig/openai/models/vector_stores/file_list_params.rbs b/sig/openai/models/vector_stores/file_list_params.rbs index 0cc01f91..362141a4 100644 --- a/sig/openai/models/vector_stores/file_list_params.rbs +++ b/sig/openai/models/vector_stores/file_list_params.rbs @@ -52,7 +52,9 @@ module OpenAI type filter = :in_progress | :completed | :failed | :cancelled - class Filter < OpenAI::Enum + module Filter + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed FAILED: :failed @@ -63,7 +65,9 @@ module OpenAI type order = :asc | :desc - class Order < OpenAI::Enum + module Order + extend OpenAI::Enum + ASC: :asc DESC: :desc diff --git a/sig/openai/models/vector_stores/file_update_params.rbs b/sig/openai/models/vector_stores/file_update_params.rbs index 6b2b7029..b85d9f01 100644 --- a/sig/openai/models/vector_stores/file_update_params.rbs +++ b/sig/openai/models/vector_stores/file_update_params.rbs @@ -26,7 +26,9 @@ module OpenAI type attribute = String | Float | bool - class Attribute < OpenAI::Union + module Attribute + extend OpenAI::Union + def self.variants: -> [String, Float, bool] end end diff --git a/sig/openai/models/vector_stores/vector_store_file.rbs b/sig/openai/models/vector_stores/vector_store_file.rbs index 79940901..79b4b73c 100644 --- a/sig/openai/models/vector_stores/vector_store_file.rbs +++ b/sig/openai/models/vector_stores/vector_store_file.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class VectorStoreFile = VectorStores::VectorStoreFile module VectorStores @@ -74,7 +73,9 @@ module OpenAI type code = :server_error | :unsupported_file | :invalid_file - class Code < OpenAI::Enum + module Code + extend OpenAI::Enum + SERVER_ERROR: :server_error UNSUPPORTED_FILE: :unsupported_file INVALID_FILE: :invalid_file @@ -85,7 +86,9 @@ module OpenAI type status = :in_progress | :completed | :cancelled | :failed - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed CANCELLED: :cancelled @@ -96,7 +99,9 @@ module OpenAI type attribute = String | Float | bool - class Attribute < OpenAI::Union + module Attribute + extend OpenAI::Union + def self.variants: -> [String, Float, bool] end end diff --git a/sig/openai/models/vector_stores/vector_store_file_batch.rbs b/sig/openai/models/vector_stores/vector_store_file_batch.rbs index 497f5dc3..cc689671 100644 --- a/sig/openai/models/vector_stores/vector_store_file_batch.rbs +++ b/sig/openai/models/vector_stores/vector_store_file_batch.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class VectorStoreFileBatch = VectorStores::VectorStoreFileBatch module VectorStores @@ -71,7 +70,9 @@ module OpenAI type status = :in_progress | :completed | :cancelled | :failed - class Status < OpenAI::Enum + module Status + extend OpenAI::Enum + IN_PROGRESS: :in_progress COMPLETED: :completed CANCELLED: :cancelled diff --git a/sig/openai/models/vector_stores/vector_store_file_deleted.rbs b/sig/openai/models/vector_stores/vector_store_file_deleted.rbs index dde63be2..19257a53 100644 --- a/sig/openai/models/vector_stores/vector_store_file_deleted.rbs +++ b/sig/openai/models/vector_stores/vector_store_file_deleted.rbs @@ -1,6 +1,5 @@ module OpenAI module Models - class VectorStoreFileDeleted = VectorStores::VectorStoreFileDeleted module VectorStores diff --git a/test/openai/base_model_test.rb b/test/openai/base_model_test.rb index 1a3c623e..bb5fb2a6 100644 --- a/test/openai/base_model_test.rb +++ b/test/openai/base_model_test.rb @@ -3,7 +3,9 @@ require_relative "test_helper" class OpenAI::Test::BaseModelTest < Minitest::Test - class E1 < OpenAI::Enum + module E1 + extend OpenAI::Enum + A = :a B = :b end @@ -242,13 +244,17 @@ class M3 < M1 optional :b, E1, api_name: :renamed_again end - class U1 < OpenAI::Union + module U1 + extend OpenAI::Union + discriminator :type variant :a, M1 variant :b, M3 end - class U2 < OpenAI::Union + module U2 + extend OpenAI::Union + variant A1 variant A3 end @@ -330,12 +336,16 @@ def test_basic_const end end - class E2 < OpenAI::Enum + module E2 + extend OpenAI::Enum + A = :a B = :b end - class U3 < OpenAI::Union + module U3 + extend OpenAI::Union + discriminator :type variant :a, M1 variant :b, M3 @@ -353,7 +363,9 @@ def test_basic_eql assert_equal(U1, U3) end - class U4 < OpenAI::Union + module U4 + extend OpenAI::Union + variant :a, const: :a variant :b, const: :b end