openai 0.117.0 → 0.119.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.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +1 -1
  5. data/lib/openai/helpers/data_residency.rb +4 -1
  6. data/lib/openai/models/admin/organization/projects/project_optional_service_tier.rb +24 -0
  7. data/lib/openai/models/admin/organization/projects/project_service_tier_settings.rb +88 -0
  8. data/lib/openai/models/admin/organization/projects/service_tier_setting_retrieve_params.rb +29 -0
  9. data/lib/openai/models/admin/organization/projects/service_tier_setting_update_params.rb +92 -0
  10. data/lib/openai/models/all_models.rb +1 -0
  11. data/lib/openai/models/beta/beta_compacted_response.rb +34 -1
  12. data/lib/openai/models/beta/beta_response.rb +35 -1
  13. data/lib/openai/models/beta/beta_response_input_item.rb +45 -1
  14. data/lib/openai/models/beta/beta_response_item.rb +45 -1
  15. data/lib/openai/models/beta/beta_response_output_item.rb +45 -1
  16. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +186 -13
  17. data/lib/openai/models/beta/beta_response_usage.rb +33 -1
  18. data/lib/openai/models/beta/beta_responses_client_event.rb +58 -10
  19. data/lib/openai/models/beta/beta_tool.rb +164 -13
  20. data/lib/openai/models/beta/response_compact_params.rb +47 -4
  21. data/lib/openai/models/beta/response_create_params.rb +54 -10
  22. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  23. data/lib/openai/models/chat/completion_create_params.rb +3 -3
  24. data/lib/openai/models/conversations/conversation_item.rb +45 -1
  25. data/lib/openai/models/image_edit_params.rb +72 -16
  26. data/lib/openai/models/image_generate_params.rb +160 -8
  27. data/lib/openai/models/image_model.rb +2 -0
  28. data/lib/openai/models/images_response.rb +55 -4
  29. data/lib/openai/models/realtime/realtime_audio_config_input.rb +14 -1
  30. data/lib/openai/models/realtime/realtime_session_create_response.rb +14 -1
  31. data/lib/openai/models/realtime/realtime_transcription_session_audio_input.rb +14 -1
  32. data/lib/openai/models/realtime/realtime_transcription_session_create_response.rb +14 -1
  33. data/lib/openai/models/realtime/realtime_translation_session.rb +14 -1
  34. data/lib/openai/models/realtime/realtime_translation_session_create_request.rb +14 -1
  35. data/lib/openai/models/realtime/realtime_translation_session_update_request.rb +14 -1
  36. data/lib/openai/models/responses/compacted_response.rb +37 -1
  37. data/lib/openai/models/responses/response.rb +35 -1
  38. data/lib/openai/models/responses/response_compact_params.rb +53 -4
  39. data/lib/openai/models/responses/response_create_params.rb +57 -10
  40. data/lib/openai/models/responses/response_input_item.rb +45 -1
  41. data/lib/openai/models/responses/response_item.rb +45 -1
  42. data/lib/openai/models/responses/response_output_item.rb +45 -1
  43. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +186 -13
  44. data/lib/openai/models/responses/response_usage.rb +33 -1
  45. data/lib/openai/models/responses/responses_client_event.rb +58 -10
  46. data/lib/openai/models/responses/tool.rb +164 -13
  47. data/lib/openai/models/responses_model.rb +1 -0
  48. data/lib/openai/resources/admin/organization/projects/service_tier_settings.rb +77 -0
  49. data/lib/openai/resources/admin/organization/projects.rb +6 -0
  50. data/lib/openai/resources/admin/organization.rb +6 -6
  51. data/lib/openai/resources/beta/responses.rb +18 -9
  52. data/lib/openai/resources/chat/completions.rb +2 -2
  53. data/lib/openai/resources/images.rb +102 -18
  54. data/lib/openai/resources/responses.rb +15 -6
  55. data/lib/openai/version.rb +1 -1
  56. data/lib/openai.rb +5 -0
  57. data/rbi/openai/models/admin/organization/projects/project_optional_service_tier.rbi +45 -0
  58. data/rbi/openai/models/admin/organization/projects/project_service_tier_settings.rbi +143 -0
  59. data/rbi/openai/models/admin/organization/projects/service_tier_setting_retrieve_params.rbi +63 -0
  60. data/rbi/openai/models/admin/organization/projects/service_tier_setting_update_params.rbi +183 -0
  61. data/rbi/openai/models/all_models.rbi +1 -0
  62. data/rbi/openai/models/beta/beta_compacted_response.rbi +67 -1
  63. data/rbi/openai/models/beta/beta_response.rbi +63 -0
  64. data/rbi/openai/models/beta/beta_response_input_item.rbi +82 -1
  65. data/rbi/openai/models/beta/beta_response_item.rbi +82 -1
  66. data/rbi/openai/models/beta/beta_response_output_item.rbi +82 -1
  67. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +338 -13
  68. data/rbi/openai/models/beta/beta_response_usage.rbi +66 -3
  69. data/rbi/openai/models/beta/beta_responses_client_event.rbi +118 -9
  70. data/rbi/openai/models/beta/beta_tool.rbi +245 -13
  71. data/rbi/openai/models/beta/response_compact_params.rbi +84 -3
  72. data/rbi/openai/models/beta/response_create_params.rbi +91 -9
  73. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  74. data/rbi/openai/models/chat/completion_create_params.rbi +3 -3
  75. data/rbi/openai/models/conversations/conversation_item.rbi +84 -1
  76. data/rbi/openai/models/image_edit_params.rbi +76 -14
  77. data/rbi/openai/models/image_generate_params.rbi +218 -6
  78. data/rbi/openai/models/image_model.rbi +2 -0
  79. data/rbi/openai/models/images_response.rbi +90 -3
  80. data/rbi/openai/models/realtime/realtime_audio_config_input.rbi +17 -1
  81. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +17 -1
  82. data/rbi/openai/models/realtime/realtime_transcription_session_audio_input.rbi +17 -1
  83. data/rbi/openai/models/realtime/realtime_transcription_session_create_response.rbi +17 -1
  84. data/rbi/openai/models/realtime/realtime_translation_session.rbi +19 -3
  85. data/rbi/openai/models/realtime/realtime_translation_session_create_request.rbi +19 -3
  86. data/rbi/openai/models/realtime/realtime_translation_session_update_request.rbi +19 -3
  87. data/rbi/openai/models/responses/compacted_response.rbi +67 -1
  88. data/rbi/openai/models/responses/response.rbi +63 -0
  89. data/rbi/openai/models/responses/response_compact_params.rbi +91 -3
  90. data/rbi/openai/models/responses/response_create_params.rbi +97 -9
  91. data/rbi/openai/models/responses/response_input_item.rbi +82 -1
  92. data/rbi/openai/models/responses/response_item.rbi +82 -1
  93. data/rbi/openai/models/responses/response_output_item.rbi +82 -1
  94. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +340 -13
  95. data/rbi/openai/models/responses/response_usage.rbi +66 -3
  96. data/rbi/openai/models/responses/responses_client_event.rbi +118 -9
  97. data/rbi/openai/models/responses/tool.rbi +248 -13
  98. data/rbi/openai/models/responses_model.rbi +1 -0
  99. data/rbi/openai/resources/admin/organization/projects/service_tier_settings.rbi +67 -0
  100. data/rbi/openai/resources/admin/organization/projects.rbi +3 -0
  101. data/rbi/openai/resources/admin/organization.rbi +3 -3
  102. data/rbi/openai/resources/beta/responses.rbi +15 -6
  103. data/rbi/openai/resources/chat/completions.rbi +2 -2
  104. data/rbi/openai/resources/images.rbi +98 -14
  105. data/rbi/openai/resources/responses.rbi +14 -3
  106. data/sig/openai/models/admin/organization/projects/project_optional_service_tier.rbs +23 -0
  107. data/sig/openai/models/admin/organization/projects/project_service_tier_settings.rbs +72 -0
  108. data/sig/openai/models/admin/organization/projects/service_tier_setting_retrieve_params.rbs +32 -0
  109. data/sig/openai/models/admin/organization/projects/service_tier_setting_update_params.rbs +91 -0
  110. data/sig/openai/models/all_models.rbs +2 -0
  111. data/sig/openai/models/beta/beta_compacted_response.rbs +42 -2
  112. data/sig/openai/models/beta/beta_response.rbs +42 -1
  113. data/sig/openai/models/beta/beta_response_input_item.rbs +51 -3
  114. data/sig/openai/models/beta/beta_response_item.rbs +51 -3
  115. data/sig/openai/models/beta/beta_response_output_item.rbs +51 -3
  116. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +188 -15
  117. data/sig/openai/models/beta/beta_response_usage.rbs +40 -3
  118. data/sig/openai/models/beta/beta_responses_client_event.rbs +67 -10
  119. data/sig/openai/models/beta/beta_tool.rbs +188 -15
  120. data/sig/openai/models/beta/response_compact_params.rbs +58 -2
  121. data/sig/openai/models/beta/response_create_params.rbs +67 -10
  122. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  123. data/sig/openai/models/chat/completion_create_params.rbs +3 -3
  124. data/sig/openai/models/conversations/conversation_item.rbs +51 -3
  125. data/sig/openai/models/image_edit_params.rbs +63 -12
  126. data/sig/openai/models/image_generate_params.rbs +150 -5
  127. data/sig/openai/models/image_model.rbs +4 -0
  128. data/sig/openai/models/images_response.rbs +59 -4
  129. data/sig/openai/models/realtime/realtime_audio_config_input.rbs +20 -1
  130. data/sig/openai/models/realtime/realtime_session_create_response.rbs +20 -1
  131. data/sig/openai/models/realtime/realtime_transcription_session_audio_input.rbs +20 -1
  132. data/sig/openai/models/realtime/realtime_transcription_session_create_response.rbs +20 -1
  133. data/sig/openai/models/realtime/realtime_translation_session.rbs +22 -3
  134. data/sig/openai/models/realtime/realtime_translation_session_create_request.rbs +22 -3
  135. data/sig/openai/models/realtime/realtime_translation_session_update_request.rbs +22 -3
  136. data/sig/openai/models/responses/compacted_response.rbs +42 -2
  137. data/sig/openai/models/responses/response.rbs +42 -1
  138. data/sig/openai/models/responses/response_compact_params.rbs +60 -2
  139. data/sig/openai/models/responses/response_create_params.rbs +67 -10
  140. data/sig/openai/models/responses/response_input_item.rbs +51 -3
  141. data/sig/openai/models/responses/response_item.rbs +51 -3
  142. data/sig/openai/models/responses/response_output_item.rbs +51 -3
  143. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +188 -15
  144. data/sig/openai/models/responses/response_usage.rbs +40 -3
  145. data/sig/openai/models/responses/responses_client_event.rbs +67 -10
  146. data/sig/openai/models/responses/tool.rbs +188 -15
  147. data/sig/openai/models/responses_model.rbs +2 -0
  148. data/sig/openai/resources/admin/organization/projects/service_tier_settings.rbs +25 -0
  149. data/sig/openai/resources/admin/organization/projects.rbs +2 -0
  150. data/sig/openai/resources/admin/organization.rbs +2 -2
  151. data/sig/openai/resources/beta/responses.rbs +3 -0
  152. data/sig/openai/resources/images.rbs +14 -0
  153. data/sig/openai/resources/responses.rbs +4 -0
  154. metadata +16 -1
@@ -228,11 +228,22 @@ module OpenAI
228
228
  sig { returns(OpenAI::Realtime::NoiseReductionType::OrSymbol) }
229
229
  attr_accessor :type
230
230
 
231
+ # Input noise suppression strength. Higher values apply more suppression. Defaults
232
+ # to 1 when noise reduction is first enabled. Omitting strength from a session
233
+ # update preserves the current strength.
234
+ sig { returns(T.nilable(Float)) }
235
+ attr_reader :strength
236
+
237
+ sig { params(strength: Float).void }
238
+ attr_writer :strength
239
+
231
240
  # Optional input noise reduction.
232
241
  sig do
233
242
  params(
234
243
 
235
- type: OpenAI::Realtime::NoiseReductionType::OrSymbol
244
+ type: OpenAI::Realtime::NoiseReductionType::OrSymbol,
245
+
246
+ strength: Float
236
247
  )
237
248
  .returns(T.attached_class)
238
249
  end
@@ -241,14 +252,19 @@ module OpenAI
241
252
  # Type of noise reduction. `near_field` is for close-talking microphones such as
242
253
  # headphones, `far_field` is for far-field microphones such as laptop or
243
254
  # conference room microphones.
255
+ type:,
256
+
257
+ # Input noise suppression strength. Higher values apply more suppression. Defaults
258
+ # to 1 when noise reduction is first enabled. Omitting strength from a session
259
+ # update preserves the current strength.
244
260
 
245
- type:
261
+ strength: nil
246
262
  )
247
263
  end
248
264
 
249
265
  sig do
250
266
  override.returns(
251
- {type: OpenAI::Realtime::NoiseReductionType::OrSymbol}
267
+ {type: OpenAI::Realtime::NoiseReductionType::OrSymbol, strength: Float}
252
268
  )
253
269
  end
254
270
  def to_hash
@@ -203,11 +203,22 @@ module OpenAI
203
203
  sig { returns(OpenAI::Realtime::NoiseReductionType::OrSymbol) }
204
204
  attr_accessor :type
205
205
 
206
+ # Input noise suppression strength. Higher values apply more suppression. Defaults
207
+ # to 1 when noise reduction is first enabled. Omitting strength from a session
208
+ # update preserves the current strength.
209
+ sig { returns(T.nilable(Float)) }
210
+ attr_reader :strength
211
+
212
+ sig { params(strength: Float).void }
213
+ attr_writer :strength
214
+
206
215
  # Optional input noise reduction. Set to `null` to disable it.
207
216
  sig do
208
217
  params(
209
218
 
210
- type: OpenAI::Realtime::NoiseReductionType::OrSymbol
219
+ type: OpenAI::Realtime::NoiseReductionType::OrSymbol,
220
+
221
+ strength: Float
211
222
  )
212
223
  .returns(T.attached_class)
213
224
  end
@@ -216,14 +227,19 @@ module OpenAI
216
227
  # Type of noise reduction. `near_field` is for close-talking microphones such as
217
228
  # headphones, `far_field` is for far-field microphones such as laptop or
218
229
  # conference room microphones.
230
+ type:,
231
+
232
+ # Input noise suppression strength. Higher values apply more suppression. Defaults
233
+ # to 1 when noise reduction is first enabled. Omitting strength from a session
234
+ # update preserves the current strength.
219
235
 
220
- type:
236
+ strength: nil
221
237
  )
222
238
  end
223
239
 
224
240
  sig do
225
241
  override.returns(
226
- {type: OpenAI::Realtime::NoiseReductionType::OrSymbol}
242
+ {type: OpenAI::Realtime::NoiseReductionType::OrSymbol, strength: Float}
227
243
  )
228
244
  end
229
245
  def to_hash
@@ -193,11 +193,22 @@ module OpenAI
193
193
  sig { returns(OpenAI::Realtime::NoiseReductionType::OrSymbol) }
194
194
  attr_accessor :type
195
195
 
196
+ # Input noise suppression strength. Higher values apply more suppression. Defaults
197
+ # to 1 when noise reduction is first enabled. Omitting strength from a session
198
+ # update preserves the current strength.
199
+ sig { returns(T.nilable(Float)) }
200
+ attr_reader :strength
201
+
202
+ sig { params(strength: Float).void }
203
+ attr_writer :strength
204
+
196
205
  # Optional input noise reduction. Set to `null` to disable it.
197
206
  sig do
198
207
  params(
199
208
 
200
- type: OpenAI::Realtime::NoiseReductionType::OrSymbol
209
+ type: OpenAI::Realtime::NoiseReductionType::OrSymbol,
210
+
211
+ strength: Float
201
212
  )
202
213
  .returns(T.attached_class)
203
214
  end
@@ -206,14 +217,19 @@ module OpenAI
206
217
  # Type of noise reduction. `near_field` is for close-talking microphones such as
207
218
  # headphones, `far_field` is for far-field microphones such as laptop or
208
219
  # conference room microphones.
220
+ type:,
221
+
222
+ # Input noise suppression strength. Higher values apply more suppression. Defaults
223
+ # to 1 when noise reduction is first enabled. Omitting strength from a session
224
+ # update preserves the current strength.
209
225
 
210
- type:
226
+ strength: nil
211
227
  )
212
228
  end
213
229
 
214
230
  sig do
215
231
  override.returns(
216
- {type: OpenAI::Realtime::NoiseReductionType::OrSymbol}
232
+ {type: OpenAI::Realtime::NoiseReductionType::OrSymbol, strength: Float}
217
233
  )
218
234
  end
219
235
  def to_hash
@@ -39,6 +39,12 @@ module OpenAI
39
39
  sig { params(usage: OpenAI::Responses::ResponseUsage::OrHash).void }
40
40
  attr_writer :usage
41
41
 
42
+ sig { returns(T.nilable(OpenAI::Responses::CompactedResponse::Image)) }
43
+ attr_reader :image
44
+
45
+ sig { params(image: OpenAI::Responses::CompactedResponse::Image::OrHash).void }
46
+ attr_writer :image
47
+
42
48
  sig do
43
49
  params(
44
50
 
@@ -81,6 +87,8 @@ module OpenAI
81
87
 
82
88
  usage: OpenAI::Responses::ResponseUsage::OrHash,
83
89
 
90
+ image: OpenAI::Responses::CompactedResponse::Image::OrHash,
91
+
84
92
  object: Symbol
85
93
  )
86
94
  .returns(T.attached_class)
@@ -101,6 +109,8 @@ module OpenAI
101
109
  # tokens.
102
110
  usage:,
103
111
 
112
+ image: nil,
113
+
104
114
  # The object type. Always `response.compaction`.
105
115
 
106
116
  object: :"response.compaction"
@@ -114,13 +124,69 @@ module OpenAI
114
124
  created_at: Integer,
115
125
  object: Symbol,
116
126
  output: T::Array[OpenAI::Responses::ResponseOutputItem::Variants],
117
- usage: OpenAI::Responses::ResponseUsage
127
+ usage: OpenAI::Responses::ResponseUsage,
128
+ image: OpenAI::Responses::CompactedResponse::Image
118
129
  }
119
130
  )
120
131
  end
121
132
  def to_hash
122
133
  end
123
134
 
135
+ class Image < OpenAI::Internal::Type::BaseModel
136
+ OrHash = T.type_alias do
137
+ T.any(
138
+ OpenAI::Responses::CompactedResponse::Image,
139
+ OpenAI::Internal::AnyHash
140
+ )
141
+ end
142
+
143
+ # Effective image context optimization policy.
144
+ sig { returns(OpenAI::Responses::CompactedResponse::Image::ContextCompression::TaggedSymbol) }
145
+ attr_accessor :context_compression
146
+
147
+ sig do
148
+ params(
149
+
150
+ context_compression: OpenAI::Responses::CompactedResponse::Image::ContextCompression::OrSymbol
151
+ )
152
+ .returns(T.attached_class)
153
+ end
154
+ def self.new(
155
+
156
+ # Effective image context optimization policy.
157
+
158
+ context_compression:
159
+ )
160
+ end
161
+
162
+ sig do
163
+ override.returns(
164
+ {context_compression: OpenAI::Responses::CompactedResponse::Image::ContextCompression::TaggedSymbol}
165
+ )
166
+ end
167
+ def to_hash
168
+ end
169
+
170
+ # Effective image context optimization policy.
171
+ module ContextCompression
172
+ extend OpenAI::Internal::Type::Enum
173
+
174
+ TaggedSymbol = T.type_alias {
175
+ T.all(Symbol, OpenAI::Responses::CompactedResponse::Image::ContextCompression)
176
+ }
177
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
178
+
179
+ ENABLED = T.let(:enabled, OpenAI::Responses::CompactedResponse::Image::ContextCompression::TaggedSymbol)
180
+ DISABLED = T.let(:disabled, OpenAI::Responses::CompactedResponse::Image::ContextCompression::TaggedSymbol)
181
+
182
+ sig {
183
+ override.returns(T::Array[OpenAI::Responses::CompactedResponse::Image::ContextCompression::TaggedSymbol])
184
+ }
185
+ def self.values
186
+ end
187
+ end
188
+ end
189
+
124
190
  end
125
191
 
126
192
  end
@@ -147,6 +147,12 @@ module OpenAI
147
147
  sig { params(conversation: T.nilable(OpenAI::Responses::Response::Conversation::OrHash)).void }
148
148
  attr_writer :conversation
149
149
 
150
+ sig { returns(T.nilable(OpenAI::Responses::Response::Image)) }
151
+ attr_reader :image
152
+
153
+ sig { params(image: OpenAI::Responses::Response::Image::OrHash).void }
154
+ attr_writer :image
155
+
150
156
  # An upper bound for the number of tokens that can be generated for a response,
151
157
  # including visible output tokens and
152
158
  # [reasoning tokens](https://developers.openai.com/api/docs/guides/reasoning).
@@ -449,6 +455,8 @@ module OpenAI
449
455
 
450
456
  conversation: T.nilable(OpenAI::Responses::Response::Conversation::OrHash),
451
457
 
458
+ image: OpenAI::Responses::Response::Image::OrHash,
459
+
452
460
  max_output_tokens: T.nilable(Integer),
453
461
 
454
462
  max_tool_calls: T.nilable(Integer),
@@ -598,6 +606,8 @@ module OpenAI
598
606
  # from this response were automatically added to this conversation.
599
607
  conversation: nil,
600
608
 
609
+ image: nil,
610
+
601
611
  # An upper bound for the number of tokens that can be generated for a response,
602
612
  # including visible output tokens and
603
613
  # [reasoning tokens](https://developers.openai.com/api/docs/guides/reasoning).
@@ -771,6 +781,7 @@ module OpenAI
771
781
  background: T.nilable(T::Boolean),
772
782
  completed_at: T.nilable(Float),
773
783
  conversation: T.nilable(OpenAI::Responses::Response::Conversation),
784
+ image: OpenAI::Responses::Response::Image,
774
785
  max_output_tokens: T.nilable(Integer),
775
786
  max_tool_calls: T.nilable(Integer),
776
787
  moderation: T.nilable(OpenAI::Responses::Response::Moderation),
@@ -1040,6 +1051,57 @@ module OpenAI
1040
1051
 
1041
1052
  end
1042
1053
 
1054
+ class Image < OpenAI::Internal::Type::BaseModel
1055
+ OrHash = T.type_alias do
1056
+ T.any(
1057
+ OpenAI::Responses::Response::Image,
1058
+ OpenAI::Internal::AnyHash
1059
+ )
1060
+ end
1061
+
1062
+ # Effective image context optimization policy.
1063
+ sig { returns(OpenAI::Responses::Response::Image::ContextCompression::TaggedSymbol) }
1064
+ attr_accessor :context_compression
1065
+
1066
+ sig do
1067
+ params(
1068
+
1069
+ context_compression: OpenAI::Responses::Response::Image::ContextCompression::OrSymbol
1070
+ )
1071
+ .returns(T.attached_class)
1072
+ end
1073
+ def self.new(
1074
+
1075
+ # Effective image context optimization policy.
1076
+
1077
+ context_compression:
1078
+ )
1079
+ end
1080
+
1081
+ sig do
1082
+ override.returns(
1083
+ {context_compression: OpenAI::Responses::Response::Image::ContextCompression::TaggedSymbol}
1084
+ )
1085
+ end
1086
+ def to_hash
1087
+ end
1088
+
1089
+ # Effective image context optimization policy.
1090
+ module ContextCompression
1091
+ extend OpenAI::Internal::Type::Enum
1092
+
1093
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Responses::Response::Image::ContextCompression) }
1094
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1095
+
1096
+ ENABLED = T.let(:enabled, OpenAI::Responses::Response::Image::ContextCompression::TaggedSymbol)
1097
+ DISABLED = T.let(:disabled, OpenAI::Responses::Response::Image::ContextCompression::TaggedSymbol)
1098
+
1099
+ sig { override.returns(T::Array[OpenAI::Responses::Response::Image::ContextCompression::TaggedSymbol]) }
1100
+ def self.values
1101
+ end
1102
+ end
1103
+ end
1104
+
1043
1105
  class Moderation < OpenAI::Internal::Type::BaseModel
1044
1106
  OrHash = T.type_alias do
1045
1107
  T.any(
@@ -1856,6 +1918,7 @@ module OpenAI
1856
1918
  OrSymbol = T.type_alias { T.any(Symbol, String) }
1857
1919
 
1858
1920
  TTL_30M = T.let(:"30m", OpenAI::Responses::Response::PromptCacheOptions::Ttl::TaggedSymbol)
1921
+ TTL_12H = T.let(:"12h", OpenAI::Responses::Response::PromptCacheOptions::Ttl::TaggedSymbol)
1859
1922
 
1860
1923
  sig { override.returns(T::Array[OpenAI::Responses::Response::PromptCacheOptions::Ttl::TaggedSymbol]) }
1861
1924
  def self.values
@@ -25,6 +25,13 @@ module OpenAI
25
25
  sig { returns(T.nilable(T.any(OpenAI::Responses::ResponseCompactParams::Model::OrSymbol, String))) }
26
26
  attr_accessor :model
27
27
 
28
+ # Request level image options.
29
+ sig { returns(T.nilable(OpenAI::Responses::ResponseCompactParams::Image)) }
30
+ attr_reader :image
31
+
32
+ sig { params(image: OpenAI::Responses::ResponseCompactParams::Image::OrHash).void }
33
+ attr_writer :image
34
+
28
35
  # Text, image, or file inputs to the model, used to generate a response
29
36
  sig { returns(T.nilable(OpenAI::Responses::ResponseCompactParams::Input::Variants)) }
30
37
  attr_accessor :input
@@ -53,7 +60,7 @@ module OpenAI
53
60
  # request can write up to four breakpoints. For cache matching, OpenAI considers
54
61
  # up to the latest 80 breakpoints in the conversation, without a content-block
55
62
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
56
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
63
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
57
64
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
58
65
  # for current details.
59
66
  sig { returns(T.nilable(OpenAI::Responses::ResponseCompactParams::PromptCacheOptions)) }
@@ -93,6 +100,8 @@ module OpenAI
93
100
 
94
101
  model: T.nilable(T.any(OpenAI::Responses::ResponseCompactParams::Model::OrSymbol, String)),
95
102
 
103
+ image: OpenAI::Responses::ResponseCompactParams::Image::OrHash,
104
+
96
105
  input: T.nilable(OpenAI::Responses::ResponseCompactParams::Input::Variants),
97
106
 
98
107
  instructions: T.nilable(String),
@@ -120,6 +129,9 @@ module OpenAI
120
129
  # compare available models.
121
130
  model:,
122
131
 
132
+ # Request level image options.
133
+ image: nil,
134
+
123
135
  # Text, image, or file inputs to the model, used to generate a response
124
136
  input: nil,
125
137
 
@@ -144,7 +156,7 @@ module OpenAI
144
156
  # request can write up to four breakpoints. For cache matching, OpenAI considers
145
157
  # up to the latest 80 breakpoints in the conversation, without a content-block
146
158
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
147
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
159
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
148
160
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
149
161
  # for current details.
150
162
  prompt_cache_options: nil,
@@ -178,6 +190,7 @@ module OpenAI
178
190
  override.returns(
179
191
  {
180
192
  model: T.nilable(T.any(OpenAI::Responses::ResponseCompactParams::Model::OrSymbol, String)),
193
+ image: OpenAI::Responses::ResponseCompactParams::Image,
181
194
  input: T.nilable(OpenAI::Responses::ResponseCompactParams::Input::Variants),
182
195
  instructions: T.nilable(String),
183
196
  previous_response_id: T.nilable(String),
@@ -474,7 +487,82 @@ module OpenAI
474
487
  :"gpt-rosalind-research",
475
488
  OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
476
489
  )
490
+ GPT_6_ROSALIND = T.let(:"gpt-6-rosalind", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
491
+
492
+ end
493
+
494
+ class Image < OpenAI::Internal::Type::BaseModel
495
+ OrHash = T.type_alias do
496
+ T.any(
497
+ OpenAI::Responses::ResponseCompactParams::Image,
498
+ OpenAI::Internal::AnyHash
499
+ )
500
+ end
501
+
502
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
503
+ # transport, and input to select a policy. Use `enabled` to require compression
504
+ # support or `disabled` to turn it off.
505
+ sig { returns(T.nilable(OpenAI::Responses::ResponseCompactParams::Image::ContextCompression::OrSymbol)) }
506
+ attr_reader :context_compression
507
+
508
+ sig {
509
+ params(context_compression: OpenAI::Responses::ResponseCompactParams::Image::ContextCompression::OrSymbol)
510
+ .void
511
+ }
512
+ attr_writer :context_compression
513
+
514
+ # Request level image options.
515
+ sig do
516
+ params(
517
+
518
+ context_compression: OpenAI::Responses::ResponseCompactParams::Image::ContextCompression::OrSymbol
519
+ )
520
+ .returns(T.attached_class)
521
+ end
522
+ def self.new(
523
+
524
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
525
+ # transport, and input to select a policy. Use `enabled` to require compression
526
+ # support or `disabled` to turn it off.
527
+
528
+ context_compression: nil
529
+ )
530
+ end
477
531
 
532
+ sig do
533
+ override.returns(
534
+ {context_compression: OpenAI::Responses::ResponseCompactParams::Image::ContextCompression::OrSymbol}
535
+ )
536
+ end
537
+ def to_hash
538
+ end
539
+
540
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
541
+ # transport, and input to select a policy. Use `enabled` to require compression
542
+ # support or `disabled` to turn it off.
543
+ module ContextCompression
544
+ extend OpenAI::Internal::Type::Enum
545
+
546
+ TaggedSymbol = T.type_alias {
547
+ T.all(Symbol, OpenAI::Responses::ResponseCompactParams::Image::ContextCompression)
548
+ }
549
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
550
+
551
+ AUTO = T.let(:auto, OpenAI::Responses::ResponseCompactParams::Image::ContextCompression::TaggedSymbol)
552
+ ENABLED = T.let(:enabled, OpenAI::Responses::ResponseCompactParams::Image::ContextCompression::TaggedSymbol)
553
+ DISABLED = T.let(
554
+ :disabled,
555
+ OpenAI::Responses::ResponseCompactParams::Image::ContextCompression::TaggedSymbol
556
+ )
557
+
558
+ sig {
559
+ override.returns(
560
+ T::Array[OpenAI::Responses::ResponseCompactParams::Image::ContextCompression::TaggedSymbol]
561
+ )
562
+ }
563
+ def self.values
564
+ end
565
+ end
478
566
  end
479
567
 
480
568
  # Text, image, or file inputs to the model, used to generate a response
@@ -529,7 +617,7 @@ module OpenAI
529
617
  # request can write up to four breakpoints. For cache matching, OpenAI considers
530
618
  # up to the latest 80 breakpoints in the conversation, without a content-block
531
619
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
532
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
620
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
533
621
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
534
622
  # for current details.
535
623
  sig do
@@ -40,6 +40,13 @@ module OpenAI
40
40
  sig { returns(T.nilable(T.any(String, OpenAI::Responses::ResponseConversationParam))) }
41
41
  attr_accessor :conversation
42
42
 
43
+ # Request level image options.
44
+ sig { returns(T.nilable(OpenAI::Responses::ResponseCreateParams::Image)) }
45
+ attr_reader :image
46
+
47
+ sig { params(image: OpenAI::Responses::ResponseCreateParams::Image::OrHash).void }
48
+ attr_writer :image
49
+
43
50
  # Specify additional output data to include in the model response. Currently
44
51
  # supported values are:
45
52
  #
@@ -164,7 +171,7 @@ module OpenAI
164
171
  # request can write up to four breakpoints. For cache matching, OpenAI considers
165
172
  # up to the latest 80 breakpoints in the conversation, without a content-block
166
173
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
167
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
174
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
168
175
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
169
176
  # for current details.
170
177
  sig { returns(T.nilable(OpenAI::Responses::ResponseCreateParams::PromptCacheOptions)) }
@@ -437,6 +444,8 @@ module OpenAI
437
444
 
438
445
  conversation: T.nilable(T.any(String, OpenAI::Responses::ResponseConversationParam::OrHash)),
439
446
 
447
+ image: OpenAI::Responses::ResponseCreateParams::Image::OrHash,
448
+
440
449
  include: T.nilable(T::Array[OpenAI::Responses::ResponseIncludable::OrSymbol]),
441
450
 
442
451
  input: OpenAI::Responses::ResponseCreateParams::Input::Variants,
@@ -542,6 +551,9 @@ module OpenAI
542
551
  # response completes.
543
552
  conversation: nil,
544
553
 
554
+ # Request level image options.
555
+ image: nil,
556
+
545
557
  # Specify additional output data to include in the model response. Currently
546
558
  # supported values are:
547
559
  #
@@ -633,7 +645,7 @@ module OpenAI
633
645
  # request can write up to four breakpoints. For cache matching, OpenAI considers
634
646
  # up to the latest 80 breakpoints in the conversation, without a content-block
635
647
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
636
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
648
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
637
649
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
638
650
  # for current details.
639
651
  prompt_cache_options: nil,
@@ -785,6 +797,7 @@ module OpenAI
785
797
  background: T.nilable(T::Boolean),
786
798
  context_management: T.nilable(T::Array[OpenAI::Responses::ResponseCreateParams::ContextManagement]),
787
799
  conversation: T.nilable(T.any(String, OpenAI::Responses::ResponseConversationParam)),
800
+ image: OpenAI::Responses::ResponseCreateParams::Image,
788
801
  include: T.nilable(T::Array[OpenAI::Responses::ResponseIncludable::OrSymbol]),
789
802
  input: OpenAI::Responses::ResponseCreateParams::Input::Variants,
790
803
  instructions: T.nilable(String),
@@ -1002,6 +1015,80 @@ module OpenAI
1002
1015
 
1003
1016
  end
1004
1017
 
1018
+ class Image < OpenAI::Internal::Type::BaseModel
1019
+ OrHash = T.type_alias do
1020
+ T.any(
1021
+ OpenAI::Responses::ResponseCreateParams::Image,
1022
+ OpenAI::Internal::AnyHash
1023
+ )
1024
+ end
1025
+
1026
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
1027
+ # transport, and input to select a policy. Use `enabled` to require compression
1028
+ # support or `disabled` to turn it off.
1029
+ sig { returns(T.nilable(OpenAI::Responses::ResponseCreateParams::Image::ContextCompression::OrSymbol)) }
1030
+ attr_reader :context_compression
1031
+
1032
+ sig {
1033
+ params(context_compression: OpenAI::Responses::ResponseCreateParams::Image::ContextCompression::OrSymbol)
1034
+ .void
1035
+ }
1036
+ attr_writer :context_compression
1037
+
1038
+ # Request level image options.
1039
+ sig do
1040
+ params(
1041
+
1042
+ context_compression: OpenAI::Responses::ResponseCreateParams::Image::ContextCompression::OrSymbol
1043
+ )
1044
+ .returns(T.attached_class)
1045
+ end
1046
+ def self.new(
1047
+
1048
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
1049
+ # transport, and input to select a policy. Use `enabled` to require compression
1050
+ # support or `disabled` to turn it off.
1051
+
1052
+ context_compression: nil
1053
+ )
1054
+ end
1055
+
1056
+ sig do
1057
+ override.returns(
1058
+ {context_compression: OpenAI::Responses::ResponseCreateParams::Image::ContextCompression::OrSymbol}
1059
+ )
1060
+ end
1061
+ def to_hash
1062
+ end
1063
+
1064
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
1065
+ # transport, and input to select a policy. Use `enabled` to require compression
1066
+ # support or `disabled` to turn it off.
1067
+ module ContextCompression
1068
+ extend OpenAI::Internal::Type::Enum
1069
+
1070
+ TaggedSymbol = T.type_alias {
1071
+ T.all(Symbol, OpenAI::Responses::ResponseCreateParams::Image::ContextCompression)
1072
+ }
1073
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1074
+
1075
+ AUTO = T.let(:auto, OpenAI::Responses::ResponseCreateParams::Image::ContextCompression::TaggedSymbol)
1076
+ ENABLED = T.let(:enabled, OpenAI::Responses::ResponseCreateParams::Image::ContextCompression::TaggedSymbol)
1077
+ DISABLED = T.let(
1078
+ :disabled,
1079
+ OpenAI::Responses::ResponseCreateParams::Image::ContextCompression::TaggedSymbol
1080
+ )
1081
+
1082
+ sig {
1083
+ override.returns(
1084
+ T::Array[OpenAI::Responses::ResponseCreateParams::Image::ContextCompression::TaggedSymbol]
1085
+ )
1086
+ }
1087
+ def self.values
1088
+ end
1089
+ end
1090
+ end
1091
+
1005
1092
  # Text, image, or file inputs to the model, used to generate a response.
1006
1093
  #
1007
1094
  # Learn more:
@@ -1287,8 +1374,8 @@ module OpenAI
1287
1374
  attr_writer :prewarm
1288
1375
 
1289
1376
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1290
- # written by the request. Defaults to `30m`, which is currently the only supported
1291
- # value. The backend may retain cache entries for longer.
1377
+ # written by the request. Supported values are `30m` (the default) and `12h`. The
1378
+ # backend may retain cache entries for longer.
1292
1379
  sig { returns(T.nilable(OpenAI::Responses::ResponseCreateParams::PromptCacheOptions::Ttl::OrSymbol)) }
1293
1380
  attr_reader :ttl
1294
1381
 
@@ -1301,7 +1388,7 @@ module OpenAI
1301
1388
  # request can write up to four breakpoints. For cache matching, OpenAI considers
1302
1389
  # up to the latest 80 breakpoints in the conversation, without a content-block
1303
1390
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
1304
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
1391
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
1305
1392
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
1306
1393
  # for current details.
1307
1394
  sig do
@@ -1336,8 +1423,8 @@ module OpenAI
1336
1423
  prewarm: nil,
1337
1424
 
1338
1425
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1339
- # written by the request. Defaults to `30m`, which is currently the only supported
1340
- # value. The backend may retain cache entries for longer.
1426
+ # written by the request. Supported values are `30m` (the default) and `12h`. The
1427
+ # backend may retain cache entries for longer.
1341
1428
 
1342
1429
  ttl: nil
1343
1430
  )
@@ -1383,8 +1470,8 @@ module OpenAI
1383
1470
  end
1384
1471
 
1385
1472
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1386
- # written by the request. Defaults to `30m`, which is currently the only supported
1387
- # value. The backend may retain cache entries for longer.
1473
+ # written by the request. Supported values are `30m` (the default) and `12h`. The
1474
+ # backend may retain cache entries for longer.
1388
1475
  module Ttl
1389
1476
  extend OpenAI::Internal::Type::Enum
1390
1477
 
@@ -1394,6 +1481,7 @@ module OpenAI
1394
1481
  OrSymbol = T.type_alias { T.any(Symbol, String) }
1395
1482
 
1396
1483
  TTL_30M = T.let(:"30m", OpenAI::Responses::ResponseCreateParams::PromptCacheOptions::Ttl::TaggedSymbol)
1484
+ TTL_12H = T.let(:"12h", OpenAI::Responses::ResponseCreateParams::PromptCacheOptions::Ttl::TaggedSymbol)
1397
1485
 
1398
1486
  sig {
1399
1487
  override.returns(T::Array[OpenAI::Responses::ResponseCreateParams::PromptCacheOptions::Ttl::TaggedSymbol])