diff --git a/lib/openai/internal/type/base_model.rb b/lib/openai/internal/type/base_model.rb index d7dade74..1f4f669f 100644 --- a/lib/openai/internal/type/base_model.rb +++ b/lib/openai/internal/type/base_model.rb @@ -258,6 +258,7 @@ def dump(value) return super end + is_param = singleton_class <= OpenAI::Internal::Type::RequestParameters::Converter acc = {} coerced.each do |key, val| @@ -266,19 +267,21 @@ def dump(value) in nil acc.store(name, super(val)) else - mode, api_name, type_fn = field.fetch_values(:mode, :api_name, :type_fn) + mode, type_fn = field.fetch_values(:mode, :type_fn) case mode in :coerce next else target = type_fn.call + api_name = is_param ? name : field.fetch(:api_name) acc.store(api_name, OpenAI::Internal::Type::Converter.dump(target, val)) end end end - known_fields.each_value do |field| - mode, api_name, const = field.fetch_values(:mode, :api_name, :const) + known_fields.each do |name, field| + mode, const = field.fetch_values(:mode, :const) + api_name = is_param ? name : field.fetch(:api_name) next if mode == :coerce || acc.key?(api_name) || const == OpenAI::Internal::OMIT acc.store(api_name, const) end diff --git a/lib/openai/resources/fine_tuning/jobs.rb b/lib/openai/resources/fine_tuning/jobs.rb index 8e28f8c7..8032932a 100644 --- a/lib/openai/resources/fine_tuning/jobs.rb +++ b/lib/openai/resources/fine_tuning/jobs.rb @@ -36,7 +36,7 @@ def create(params) @client.request( method: :post, path: "fine_tuning/jobs", - body: parsed, + body: parsed.transform_keys(method_: :method), model: OpenAI::Models::FineTuning::FineTuningJob, options: options )