openai 0.62.0 → 0.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b8ba7d86e2a095f264f3249f65a5b7023ed92f5d72b254537d2131343d008d1
4
- data.tar.gz: b2473fbb12916be311368b3ce12ec183118c94fecba86145f0765ddb261d34be
3
+ metadata.gz: 203d9e376cc905b1f7e8ab54ea027ef0fa34f8805af1f5f5b3fd059ca2fd14ce
4
+ data.tar.gz: d8e36ae499dafbd17b0dedbfa936d56477d9fe1321f9f7be250131fb32a11166
5
5
  SHA512:
6
- metadata.gz: 4c6c2cdd0fb69bcf6df1bedab9f82904812aedcca80e43dc378eb36c213b1975b439040c26432ab29ddac79c938c361000f7de2508255632eea04dc220593bfa
7
- data.tar.gz: 99dba44fb87261cefba089bfea34b90d09848e85e4be6e682f277c1a8f9a6cbfb9d7a51b9f99b918e0fe5ebc80f3321180af4ebde21268d920ed9e09cf103321
6
+ metadata.gz: 99c9d82e00bd89dab3cad83c519d4d297ca7beff234305489701ae7a0378f2aa3c2966d8cb4badba04bc24ef64006816f472f837a5f2ddaacd5d397b17852013
7
+ data.tar.gz: 9b4f401e37a6fe5dd082226782cbef164b0fffae137f98f5c789157bcda5e78d8d82dcc1639ea495d3ce2225eb2251d44bb19a4b6a6aa2e3030175bcc8c373bb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.63.0 (2026-05-13)
4
+
5
+ Full Changelog: [v0.62.0...v0.63.0](https://github.com/openai/openai-ruby/compare/v0.62.0...v0.63.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** add service_tier parameter to responses compact method ([b0ed0cb](https://github.com/openai/openai-ruby/commit/b0ed0cbce8afbf6a2d099dbfed4c4d734ac10d0d))
10
+
3
11
  ## 0.62.0 (2026-05-07)
4
12
 
5
13
  Full Changelog: [v0.61.0...v0.62.0](https://github.com/openai/openai-ruby/compare/v0.61.0...v0.62.0)
data/README.md CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "openai", "~> 0.62.0"
18
+ gem "openai", "~> 0.63.0"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -111,6 +111,7 @@ Note that you can also pass a raw `IO` descriptor, but this disables retries, as
111
111
 
112
112
  For secure, automated environments like cloud-managed Kubernetes, Azure, and GCP, you can use workload identity authentication with short-lived tokens from cloud identity providers instead of long-lived API keys.
113
113
 
114
+ `client_id` remains available as an optional parameter for token exchange setups that require an explicit OAuth client ID.
114
115
 
115
116
  ### Kubernetes Service Account
116
117
 
@@ -121,7 +122,6 @@ require "openai"
121
122
  provider = OpenAI::Auth::SubjectTokenProviders::K8sServiceAccountTokenProvider.new
122
123
 
123
124
  workload_identity = OpenAI::Auth::WorkloadIdentity.new(
124
- client_id: ENV["OAUTH_CLIENT_ID"], # This is the default and can be omitted
125
125
  identity_provider_id: ENV["IDENTITY_PROVIDER_ID"], # This is the default and can be omitted
126
126
  service_account_id: ENV["SERVICE_ACCOUNT_ID"], # This is the default and can be omitted
127
127
  provider: provider
@@ -143,7 +143,6 @@ response = client.chat.completions.create(
143
143
  provider = OpenAI::Auth::SubjectTokenProviders::AzureManagedIdentityTokenProvider.new
144
144
 
145
145
  workload_identity = OpenAI::Auth::WorkloadIdentity.new(
146
- client_id: ENV["OAUTH_CLIENT_ID"], # This is the default and can be omitted
147
146
  identity_provider_id: ENV["IDENTITY_PROVIDER_ID"], # This is the default and can be omitted
148
147
  service_account_id: ENV["SERVICE_ACCOUNT_ID"], # This is the default and can be omitted
149
148
  provider: provider
@@ -160,7 +159,6 @@ client = OpenAI::Client.new(
160
159
  provider = OpenAI::Auth::SubjectTokenProviders::GCPIDTokenProvider.new
161
160
 
162
161
  workload_identity = OpenAI::Auth::WorkloadIdentity.new(
163
- client_id: ENV["OAUTH_CLIENT_ID"], # This is the default and can be omitted
164
162
  identity_provider_id: ENV["IDENTITY_PROVIDER_ID"], # This is the default and can be omitted
165
163
  service_account_id: ENV["SERVICE_ACCOUNT_ID"], # This is the default and can be omitted
166
164
  provider: provider
@@ -191,7 +189,6 @@ end
191
189
  provider = CustomProvider.new
192
190
 
193
191
  workload_identity = OpenAI::Auth::WorkloadIdentity.new(
194
- client_id: ENV["OAUTH_CLIENT_ID"], # This is the default and can be omitted
195
192
  identity_provider_id: ENV["IDENTITY_PROVIDER_ID"], # This is the default and can be omitted
196
193
  service_account_id: ENV["SERVICE_ACCOUNT_ID"], # This is the default and can be omitted
197
194
  provider: provider
@@ -6,13 +6,13 @@ module OpenAI
6
6
  attr_reader :client_id, :identity_provider_id, :service_account_id, :provider, :refresh_buffer_seconds
7
7
 
8
8
  def initialize(
9
- client_id:,
10
9
  identity_provider_id:,
11
10
  service_account_id:,
12
11
  provider:,
12
+ client_id: nil,
13
13
  refresh_buffer_seconds: 1200
14
14
  )
15
- @client_id = client_id.to_s
15
+ @client_id = client_id&.to_s
16
16
  @identity_provider_id = identity_provider_id.to_s
17
17
  @service_account_id = service_account_id.to_s
18
18
  @provider = provider
@@ -92,14 +92,15 @@ module OpenAI
92
92
 
93
93
  request = Net::HTTP::Post.new(@token_exchange_url)
94
94
  request["Content-Type"] = "application/json"
95
- request.body = JSON.generate(
95
+ body = {
96
96
  grant_type: TOKEN_EXCHANGE_GRANT_TYPE,
97
- client_id: @config.client_id,
98
97
  subject_token: subject_token,
99
98
  subject_token_type: subject_token_type,
100
99
  identity_provider_id: @config.identity_provider_id,
101
100
  service_account_id: @config.service_account_id
102
- )
101
+ }
102
+ body[:client_id] = @config.client_id unless @config.client_id.nil?
103
+ request.body = JSON.generate(body)
103
104
 
104
105
  response = Net::HTTP.start(
105
106
  @token_exchange_url.hostname,
@@ -56,7 +56,13 @@ module OpenAI
56
56
  enum: -> { OpenAI::Responses::ResponseCompactParams::PromptCacheRetention },
57
57
  nil?: true
58
58
 
59
- # @!method initialize(model:, input: nil, instructions: nil, previous_response_id: nil, prompt_cache_key: nil, prompt_cache_retention: nil, request_options: {})
59
+ # @!attribute service_tier
60
+ # The service tier to use for this request.
61
+ #
62
+ # @return [Symbol, OpenAI::Models::Responses::ResponseCompactParams::ServiceTier, nil]
63
+ optional :service_tier, enum: -> { OpenAI::Responses::ResponseCompactParams::ServiceTier }, nil?: true
64
+
65
+ # @!method initialize(model:, input: nil, instructions: nil, previous_response_id: nil, prompt_cache_key: nil, prompt_cache_retention: nil, service_tier: nil, request_options: {})
60
66
  # Some parameter documentations has been truncated, see
61
67
  # {OpenAI::Models::Responses::ResponseCompactParams} for more details.
62
68
  #
@@ -72,6 +78,8 @@ module OpenAI
72
78
  #
73
79
  # @param prompt_cache_retention [Symbol, OpenAI::Models::Responses::ResponseCompactParams::PromptCacheRetention, nil] How long to retain a prompt cache entry created by this request.
74
80
  #
81
+ # @param service_tier [Symbol, OpenAI::Models::Responses::ResponseCompactParams::ServiceTier, nil] The service tier to use for this request.
82
+ #
75
83
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
76
84
 
77
85
  # Model ID used to generate the response, like `gpt-5` or `o3`. OpenAI offers a
@@ -401,6 +409,19 @@ module OpenAI
401
409
  # @!method self.values
402
410
  # @return [Array<Symbol>]
403
411
  end
412
+
413
+ # The service tier to use for this request.
414
+ module ServiceTier
415
+ extend OpenAI::Internal::Type::Enum
416
+
417
+ AUTO = :auto
418
+ DEFAULT = :default
419
+ FLEX = :flex
420
+ PRIORITY = :priority
421
+
422
+ # @!method self.values
423
+ # @return [Array<Symbol>]
424
+ end
404
425
  end
405
426
  end
406
427
  end
@@ -483,7 +483,7 @@ module OpenAI
483
483
  # For ZDR-compatible compaction details, see
484
484
  # [Compaction (advanced)](https://platform.openai.com/docs/guides/conversation-state#compaction-advanced).
485
485
  #
486
- # @overload compact(model:, input: nil, instructions: nil, previous_response_id: nil, prompt_cache_key: nil, prompt_cache_retention: nil, request_options: {})
486
+ # @overload compact(model:, input: nil, instructions: nil, previous_response_id: nil, prompt_cache_key: nil, prompt_cache_retention: nil, service_tier: nil, request_options: {})
487
487
  #
488
488
  # @param model [Symbol, String, OpenAI::Models::Responses::ResponseCompactParams::Model, nil] Model ID used to generate the response, like `gpt-5` or `o3`. OpenAI offers a wi
489
489
  #
@@ -497,6 +497,8 @@ module OpenAI
497
497
  #
498
498
  # @param prompt_cache_retention [Symbol, OpenAI::Models::Responses::ResponseCompactParams::PromptCacheRetention, nil] How long to retain a prompt cache entry created by this request.
499
499
  #
500
+ # @param service_tier [Symbol, OpenAI::Models::Responses::ResponseCompactParams::ServiceTier, nil] The service tier to use for this request.
501
+ #
500
502
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
501
503
  #
502
504
  # @return [OpenAI::Models::Responses::CompactedResponse]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.62.0"
4
+ VERSION = "0.63.0"
5
5
  end
data/rbi/openai/auth.rbi CHANGED
@@ -18,7 +18,7 @@ module OpenAI
18
18
  end
19
19
 
20
20
  class WorkloadIdentity
21
- sig { returns(String) }
21
+ sig { returns(T.nilable(String)) }
22
22
  attr_reader :client_id
23
23
 
24
24
  sig { returns(String) }
@@ -35,18 +35,18 @@ module OpenAI
35
35
 
36
36
  sig do
37
37
  params(
38
- client_id: T.any(String, Symbol),
39
38
  identity_provider_id: T.any(String, Symbol),
40
39
  service_account_id: T.any(String, Symbol),
41
40
  provider: SubjectTokenProvider,
41
+ client_id: T.nilable(T.any(String, Symbol)),
42
42
  refresh_buffer_seconds: Integer
43
43
  ).void
44
44
  end
45
45
  def initialize(
46
- client_id:,
47
46
  identity_provider_id:,
48
47
  service_account_id:,
49
48
  provider:,
49
+ client_id: nil,
50
50
  refresh_buffer_seconds: 1200
51
51
  )
52
52
  end
@@ -68,6 +68,16 @@ module OpenAI
68
68
  end
69
69
  attr_accessor :prompt_cache_retention
70
70
 
71
+ # The service tier to use for this request.
72
+ sig do
73
+ returns(
74
+ T.nilable(
75
+ OpenAI::Responses::ResponseCompactParams::ServiceTier::OrSymbol
76
+ )
77
+ )
78
+ end
79
+ attr_accessor :service_tier
80
+
71
81
  sig do
72
82
  params(
73
83
  model:
@@ -88,6 +98,10 @@ module OpenAI
88
98
  T.nilable(
89
99
  OpenAI::Responses::ResponseCompactParams::PromptCacheRetention::OrSymbol
90
100
  ),
101
+ service_tier:
102
+ T.nilable(
103
+ OpenAI::Responses::ResponseCompactParams::ServiceTier::OrSymbol
104
+ ),
91
105
  request_options: OpenAI::RequestOptions::OrHash
92
106
  ).returns(T.attached_class)
93
107
  end
@@ -114,6 +128,8 @@ module OpenAI
114
128
  prompt_cache_key: nil,
115
129
  # How long to retain a prompt cache entry created by this request.
116
130
  prompt_cache_retention: nil,
131
+ # The service tier to use for this request.
132
+ service_tier: nil,
117
133
  request_options: {}
118
134
  )
119
135
  end
@@ -139,6 +155,10 @@ module OpenAI
139
155
  T.nilable(
140
156
  OpenAI::Responses::ResponseCompactParams::PromptCacheRetention::OrSymbol
141
157
  ),
158
+ service_tier:
159
+ T.nilable(
160
+ OpenAI::Responses::ResponseCompactParams::ServiceTier::OrSymbol
161
+ ),
142
162
  request_options: OpenAI::RequestOptions
143
163
  }
144
164
  )
@@ -705,6 +725,51 @@ module OpenAI
705
725
  def self.values
706
726
  end
707
727
  end
728
+
729
+ # The service tier to use for this request.
730
+ module ServiceTier
731
+ extend OpenAI::Internal::Type::Enum
732
+
733
+ TaggedSymbol =
734
+ T.type_alias do
735
+ T.all(
736
+ Symbol,
737
+ OpenAI::Responses::ResponseCompactParams::ServiceTier
738
+ )
739
+ end
740
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
741
+
742
+ AUTO =
743
+ T.let(
744
+ :auto,
745
+ OpenAI::Responses::ResponseCompactParams::ServiceTier::TaggedSymbol
746
+ )
747
+ DEFAULT =
748
+ T.let(
749
+ :default,
750
+ OpenAI::Responses::ResponseCompactParams::ServiceTier::TaggedSymbol
751
+ )
752
+ FLEX =
753
+ T.let(
754
+ :flex,
755
+ OpenAI::Responses::ResponseCompactParams::ServiceTier::TaggedSymbol
756
+ )
757
+ PRIORITY =
758
+ T.let(
759
+ :priority,
760
+ OpenAI::Responses::ResponseCompactParams::ServiceTier::TaggedSymbol
761
+ )
762
+
763
+ sig do
764
+ override.returns(
765
+ T::Array[
766
+ OpenAI::Responses::ResponseCompactParams::ServiceTier::TaggedSymbol
767
+ ]
768
+ )
769
+ end
770
+ def self.values
771
+ end
772
+ end
708
773
  end
709
774
  end
710
775
  end
@@ -994,6 +994,10 @@ module OpenAI
994
994
  T.nilable(
995
995
  OpenAI::Responses::ResponseCompactParams::PromptCacheRetention::OrSymbol
996
996
  ),
997
+ service_tier:
998
+ T.nilable(
999
+ OpenAI::Responses::ResponseCompactParams::ServiceTier::OrSymbol
1000
+ ),
997
1001
  request_options: OpenAI::RequestOptions::OrHash
998
1002
  ).returns(OpenAI::Responses::CompactedResponse)
999
1003
  end
@@ -1020,6 +1024,8 @@ module OpenAI
1020
1024
  prompt_cache_key: nil,
1021
1025
  # How long to retain a prompt cache entry created by this request.
1022
1026
  prompt_cache_retention: nil,
1027
+ # The service tier to use for this request.
1028
+ service_tier: nil,
1023
1029
  request_options: {}
1024
1030
  )
1025
1031
  end
@@ -8,7 +8,8 @@ module OpenAI
8
8
  instructions: String?,
9
9
  previous_response_id: String?,
10
10
  prompt_cache_key: String?,
11
- prompt_cache_retention: OpenAI::Models::Responses::ResponseCompactParams::prompt_cache_retention?
11
+ prompt_cache_retention: OpenAI::Models::Responses::ResponseCompactParams::prompt_cache_retention?,
12
+ service_tier: OpenAI::Models::Responses::ResponseCompactParams::service_tier?
12
13
  }
13
14
  & OpenAI::Internal::Type::request_parameters
14
15
 
@@ -28,6 +29,8 @@ module OpenAI
28
29
 
29
30
  attr_accessor prompt_cache_retention: OpenAI::Models::Responses::ResponseCompactParams::prompt_cache_retention?
30
31
 
32
+ attr_accessor service_tier: OpenAI::Models::Responses::ResponseCompactParams::service_tier?
33
+
31
34
  def initialize: (
32
35
  model: OpenAI::Models::Responses::ResponseCompactParams::model?,
33
36
  ?input: OpenAI::Models::Responses::ResponseCompactParams::input?,
@@ -35,6 +38,7 @@ module OpenAI
35
38
  ?previous_response_id: String?,
36
39
  ?prompt_cache_key: String?,
37
40
  ?prompt_cache_retention: OpenAI::Models::Responses::ResponseCompactParams::prompt_cache_retention?,
41
+ ?service_tier: OpenAI::Models::Responses::ResponseCompactParams::service_tier?,
38
42
  ?request_options: OpenAI::request_opts
39
43
  ) -> void
40
44
 
@@ -45,6 +49,7 @@ module OpenAI
45
49
  previous_response_id: String?,
46
50
  prompt_cache_key: String?,
47
51
  prompt_cache_retention: OpenAI::Models::Responses::ResponseCompactParams::prompt_cache_retention?,
52
+ service_tier: OpenAI::Models::Responses::ResponseCompactParams::service_tier?,
48
53
  request_options: OpenAI::RequestOptions
49
54
  }
50
55
 
@@ -263,6 +268,19 @@ module OpenAI
263
268
 
264
269
  def self?.values: -> ::Array[OpenAI::Models::Responses::ResponseCompactParams::prompt_cache_retention]
265
270
  end
271
+
272
+ type service_tier = :auto | :default | :flex | :priority
273
+
274
+ module ServiceTier
275
+ extend OpenAI::Internal::Type::Enum
276
+
277
+ AUTO: :auto
278
+ DEFAULT: :default
279
+ FLEX: :flex
280
+ PRIORITY: :priority
281
+
282
+ def self?.values: -> ::Array[OpenAI::Models::Responses::ResponseCompactParams::service_tier]
283
+ end
266
284
  end
267
285
  end
268
286
  end
@@ -130,6 +130,7 @@ module OpenAI
130
130
  ?previous_response_id: String?,
131
131
  ?prompt_cache_key: String?,
132
132
  ?prompt_cache_retention: OpenAI::Models::Responses::ResponseCompactParams::prompt_cache_retention?,
133
+ ?service_tier: OpenAI::Models::Responses::ResponseCompactParams::service_tier?,
133
134
  ?request_options: OpenAI::request_opts
134
135
  ) -> OpenAI::Responses::CompactedResponse
135
136
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.62.0
4
+ version: 0.63.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-07 00:00:00.000000000 Z
11
+ date: 2026-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64