openai 0.118.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 (127) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -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/all_models.rb +1 -0
  7. data/lib/openai/models/beta/beta_compacted_response.rb +34 -1
  8. data/lib/openai/models/beta/beta_response.rb +34 -1
  9. data/lib/openai/models/beta/beta_response_input_item.rb +45 -1
  10. data/lib/openai/models/beta/beta_response_item.rb +45 -1
  11. data/lib/openai/models/beta/beta_response_output_item.rb +45 -1
  12. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +186 -13
  13. data/lib/openai/models/beta/beta_responses_client_event.rb +48 -1
  14. data/lib/openai/models/beta/beta_tool.rb +164 -13
  15. data/lib/openai/models/beta/response_compact_params.rb +44 -1
  16. data/lib/openai/models/beta/response_create_params.rb +44 -1
  17. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  18. data/lib/openai/models/conversations/conversation_item.rb +45 -1
  19. data/lib/openai/models/image_edit_params.rb +72 -16
  20. data/lib/openai/models/image_generate_params.rb +160 -8
  21. data/lib/openai/models/image_model.rb +2 -0
  22. data/lib/openai/models/images_response.rb +55 -4
  23. data/lib/openai/models/realtime/realtime_audio_config_input.rb +14 -1
  24. data/lib/openai/models/realtime/realtime_session_create_response.rb +14 -1
  25. data/lib/openai/models/realtime/realtime_transcription_session_audio_input.rb +14 -1
  26. data/lib/openai/models/realtime/realtime_transcription_session_create_response.rb +14 -1
  27. data/lib/openai/models/realtime/realtime_translation_session.rb +14 -1
  28. data/lib/openai/models/realtime/realtime_translation_session_create_request.rb +14 -1
  29. data/lib/openai/models/realtime/realtime_translation_session_update_request.rb +14 -1
  30. data/lib/openai/models/responses/compacted_response.rb +37 -1
  31. data/lib/openai/models/responses/response.rb +34 -1
  32. data/lib/openai/models/responses/response_compact_params.rb +50 -1
  33. data/lib/openai/models/responses/response_create_params.rb +47 -1
  34. data/lib/openai/models/responses/response_input_item.rb +45 -1
  35. data/lib/openai/models/responses/response_item.rb +45 -1
  36. data/lib/openai/models/responses/response_output_item.rb +45 -1
  37. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +186 -13
  38. data/lib/openai/models/responses/responses_client_event.rb +48 -1
  39. data/lib/openai/models/responses/tool.rb +164 -13
  40. data/lib/openai/models/responses_model.rb +1 -0
  41. data/lib/openai/resources/admin/organization/projects.rb +6 -6
  42. data/lib/openai/resources/admin/organization.rb +6 -6
  43. data/lib/openai/resources/beta/responses.rb +12 -3
  44. data/lib/openai/resources/images.rb +102 -18
  45. data/lib/openai/resources/responses.rb +12 -3
  46. data/lib/openai/version.rb +1 -1
  47. data/rbi/openai/models/all_models.rbi +1 -0
  48. data/rbi/openai/models/beta/beta_compacted_response.rbi +67 -1
  49. data/rbi/openai/models/beta/beta_response.rbi +62 -0
  50. data/rbi/openai/models/beta/beta_response_input_item.rbi +82 -1
  51. data/rbi/openai/models/beta/beta_response_item.rbi +82 -1
  52. data/rbi/openai/models/beta/beta_response_output_item.rbi +82 -1
  53. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +338 -13
  54. data/rbi/openai/models/beta/beta_responses_client_event.rbi +105 -0
  55. data/rbi/openai/models/beta/beta_tool.rbi +245 -13
  56. data/rbi/openai/models/beta/response_compact_params.rbi +81 -0
  57. data/rbi/openai/models/beta/response_create_params.rbi +81 -0
  58. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  59. data/rbi/openai/models/conversations/conversation_item.rbi +84 -1
  60. data/rbi/openai/models/image_edit_params.rbi +76 -14
  61. data/rbi/openai/models/image_generate_params.rbi +218 -6
  62. data/rbi/openai/models/image_model.rbi +2 -0
  63. data/rbi/openai/models/images_response.rbi +90 -3
  64. data/rbi/openai/models/realtime/realtime_audio_config_input.rbi +17 -1
  65. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +17 -1
  66. data/rbi/openai/models/realtime/realtime_transcription_session_audio_input.rbi +17 -1
  67. data/rbi/openai/models/realtime/realtime_transcription_session_create_response.rbi +17 -1
  68. data/rbi/openai/models/realtime/realtime_translation_session.rbi +19 -3
  69. data/rbi/openai/models/realtime/realtime_translation_session_create_request.rbi +19 -3
  70. data/rbi/openai/models/realtime/realtime_translation_session_update_request.rbi +19 -3
  71. data/rbi/openai/models/responses/compacted_response.rbi +67 -1
  72. data/rbi/openai/models/responses/response.rbi +62 -0
  73. data/rbi/openai/models/responses/response_compact_params.rbi +88 -0
  74. data/rbi/openai/models/responses/response_create_params.rbi +87 -0
  75. data/rbi/openai/models/responses/response_input_item.rbi +82 -1
  76. data/rbi/openai/models/responses/response_item.rbi +82 -1
  77. data/rbi/openai/models/responses/response_output_item.rbi +82 -1
  78. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +340 -13
  79. data/rbi/openai/models/responses/responses_client_event.rbi +105 -0
  80. data/rbi/openai/models/responses/tool.rbi +248 -13
  81. data/rbi/openai/models/responses_model.rbi +1 -0
  82. data/rbi/openai/resources/admin/organization/projects.rbi +3 -3
  83. data/rbi/openai/resources/admin/organization.rbi +3 -3
  84. data/rbi/openai/resources/beta/responses.rbi +9 -0
  85. data/rbi/openai/resources/images.rbi +98 -14
  86. data/rbi/openai/resources/responses.rbi +11 -0
  87. data/sig/openai/models/all_models.rbs +2 -0
  88. data/sig/openai/models/beta/beta_compacted_response.rbs +42 -2
  89. data/sig/openai/models/beta/beta_response.rbs +40 -0
  90. data/sig/openai/models/beta/beta_response_input_item.rbs +51 -3
  91. data/sig/openai/models/beta/beta_response_item.rbs +51 -3
  92. data/sig/openai/models/beta/beta_response_output_item.rbs +51 -3
  93. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +188 -15
  94. data/sig/openai/models/beta/beta_responses_client_event.rbs +56 -0
  95. data/sig/openai/models/beta/beta_tool.rbs +188 -15
  96. data/sig/openai/models/beta/response_compact_params.rbs +56 -0
  97. data/sig/openai/models/beta/response_create_params.rbs +56 -0
  98. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  99. data/sig/openai/models/conversations/conversation_item.rbs +51 -3
  100. data/sig/openai/models/image_edit_params.rbs +63 -12
  101. data/sig/openai/models/image_generate_params.rbs +150 -5
  102. data/sig/openai/models/image_model.rbs +4 -0
  103. data/sig/openai/models/images_response.rbs +59 -4
  104. data/sig/openai/models/realtime/realtime_audio_config_input.rbs +20 -1
  105. data/sig/openai/models/realtime/realtime_session_create_response.rbs +20 -1
  106. data/sig/openai/models/realtime/realtime_transcription_session_audio_input.rbs +20 -1
  107. data/sig/openai/models/realtime/realtime_transcription_session_create_response.rbs +20 -1
  108. data/sig/openai/models/realtime/realtime_translation_session.rbs +22 -3
  109. data/sig/openai/models/realtime/realtime_translation_session_create_request.rbs +22 -3
  110. data/sig/openai/models/realtime/realtime_translation_session_update_request.rbs +22 -3
  111. data/sig/openai/models/responses/compacted_response.rbs +42 -2
  112. data/sig/openai/models/responses/response.rbs +40 -0
  113. data/sig/openai/models/responses/response_compact_params.rbs +58 -0
  114. data/sig/openai/models/responses/response_create_params.rbs +56 -0
  115. data/sig/openai/models/responses/response_input_item.rbs +51 -3
  116. data/sig/openai/models/responses/response_item.rbs +51 -3
  117. data/sig/openai/models/responses/response_output_item.rbs +51 -3
  118. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +188 -15
  119. data/sig/openai/models/responses/responses_client_event.rbs +56 -0
  120. data/sig/openai/models/responses/tool.rbs +188 -15
  121. data/sig/openai/models/responses_model.rbs +2 -0
  122. data/sig/openai/resources/admin/organization/projects.rbs +2 -2
  123. data/sig/openai/resources/admin/organization.rbs +2 -2
  124. data/sig/openai/resources/beta/responses.rbs +3 -0
  125. data/sig/openai/resources/images.rbs +14 -0
  126. data/sig/openai/resources/responses.rbs +4 -0
  127. metadata +1 -1
@@ -976,6 +976,32 @@ module OpenAI
976
976
  sig { params(background: OpenAI::Beta::BetaTool::ImageGeneration::Background::OrSymbol).void }
977
977
  attr_writer :background
978
978
 
979
+ # Computation spent planning the image, independently of rendering quality.
980
+ # Overrides the outer response's `reasoning.effort` for image generation. When
981
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
982
+ # configured default. For SVG output, controls the reference image, not the SVG
983
+ # author's reasoning.
984
+ sig { returns(T.nilable(OpenAI::Beta::BetaTool::ImageGeneration::Complexity::OrSymbol)) }
985
+ attr_reader :complexity
986
+
987
+ sig { params(complexity: OpenAI::Beta::BetaTool::ImageGeneration::Complexity::OrSymbol).void }
988
+ attr_writer :complexity
989
+
990
+ # Number of GIF frames. Requires `output_format` to be `gif`. Default: 9.
991
+ sig { returns(T.nilable(Integer)) }
992
+ attr_reader :frame_count
993
+
994
+ sig { params(frame_count: Integer).void }
995
+ attr_writer :frame_count
996
+
997
+ # Duration of each GIF frame in milliseconds, rounded to 10 ms. Requires
998
+ # `output_format` to be `gif`. Default: 200.
999
+ sig { returns(T.nilable(Integer)) }
1000
+ attr_reader :frame_duration_ms
1001
+
1002
+ sig { params(frame_duration_ms: Integer).void }
1003
+ attr_writer :frame_duration_ms
1004
+
979
1005
  # Control how much effort the model will exert to match the style and features,
980
1006
  # especially facial features, of input images. Supports `high` and `low` on
981
1007
  # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
@@ -994,8 +1020,8 @@ module OpenAI
994
1020
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
995
1021
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
996
1022
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
997
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
998
- # `gpt-image-2`.
1023
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1024
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
999
1025
  #
1000
1026
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1001
1027
  # `gpt-image-2.5-flare` instead.
@@ -1019,8 +1045,12 @@ module OpenAI
1019
1045
  sig { params(output_compression: Integer).void }
1020
1046
  attr_writer :output_compression
1021
1047
 
1022
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
1023
- # Default: `png`.
1048
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
1049
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
1050
+ # selected format. GIF output does not support partial image streaming
1051
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
1052
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
1053
+ # output.
1024
1054
  sig { returns(T.nilable(OpenAI::Beta::BetaTool::ImageGeneration::OutputFormat::OrSymbol)) }
1025
1055
  attr_reader :output_format
1026
1056
 
@@ -1061,6 +1091,16 @@ module OpenAI
1061
1091
  sig { params(size: T.any(String, OpenAI::Beta::BetaTool::ImageGeneration::Size::OrSymbol)).void }
1062
1092
  attr_writer :size
1063
1093
 
1094
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
1095
+ # selection is enabled, omitting this object uses the outer response model.
1096
+ # Otherwise, the default SVG author is used and explicit model overrides are
1097
+ # unavailable.
1098
+ sig { returns(T.nilable(OpenAI::Beta::BetaTool::ImageGeneration::Svg)) }
1099
+ attr_reader :svg
1100
+
1101
+ sig { params(svg: OpenAI::Beta::BetaTool::ImageGeneration::Svg::OrHash).void }
1102
+ attr_writer :svg
1103
+
1064
1104
  # A tool that generates images using the GPT image models.
1065
1105
  sig do
1066
1106
  params(
@@ -1069,6 +1109,12 @@ module OpenAI
1069
1109
 
1070
1110
  background: OpenAI::Beta::BetaTool::ImageGeneration::Background::OrSymbol,
1071
1111
 
1112
+ complexity: OpenAI::Beta::BetaTool::ImageGeneration::Complexity::OrSymbol,
1113
+
1114
+ frame_count: Integer,
1115
+
1116
+ frame_duration_ms: Integer,
1117
+
1072
1118
  input_fidelity: T.nilable(OpenAI::Beta::BetaTool::ImageGeneration::InputFidelity::OrSymbol),
1073
1119
 
1074
1120
  input_image_mask: OpenAI::Beta::BetaTool::ImageGeneration::InputImageMask::OrHash,
@@ -1087,6 +1133,8 @@ module OpenAI
1087
1133
 
1088
1134
  size: T.any(String, OpenAI::Beta::BetaTool::ImageGeneration::Size::OrSymbol),
1089
1135
 
1136
+ svg: OpenAI::Beta::BetaTool::ImageGeneration::Svg::OrHash,
1137
+
1090
1138
  type: Symbol
1091
1139
  )
1092
1140
  .returns(T.attached_class)
@@ -1107,6 +1155,20 @@ module OpenAI
1107
1155
  # set the output format to `png` or `webp`.
1108
1156
  background: nil,
1109
1157
 
1158
+ # Computation spent planning the image, independently of rendering quality.
1159
+ # Overrides the outer response's `reasoning.effort` for image generation. When
1160
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
1161
+ # configured default. For SVG output, controls the reference image, not the SVG
1162
+ # author's reasoning.
1163
+ complexity: nil,
1164
+
1165
+ # Number of GIF frames. Requires `output_format` to be `gif`. Default: 9.
1166
+ frame_count: nil,
1167
+
1168
+ # Duration of each GIF frame in milliseconds, rounded to 10 ms. Requires
1169
+ # `output_format` to be `gif`. Default: 200.
1170
+ frame_duration_ms: nil,
1171
+
1110
1172
  # Control how much effort the model will exert to match the style and features,
1111
1173
  # especially facial features, of input images. Supports `high` and `low` on
1112
1174
  # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
@@ -1120,8 +1182,8 @@ module OpenAI
1120
1182
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1121
1183
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1122
1184
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1123
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1124
- # `gpt-image-2`.
1185
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1186
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1125
1187
  #
1126
1188
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1127
1189
  # `gpt-image-2.5-flare` instead.
@@ -1133,8 +1195,12 @@ module OpenAI
1133
1195
  # Compression level for the output image. Default: 100.
1134
1196
  output_compression: nil,
1135
1197
 
1136
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
1137
- # Default: `png`.
1198
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
1199
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
1200
+ # selected format. GIF output does not support partial image streaming
1201
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
1202
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
1203
+ # output.
1138
1204
  output_format: nil,
1139
1205
 
1140
1206
  # Number of partial images to generate in streaming mode, from 0 (default value)
@@ -1159,6 +1225,12 @@ module OpenAI
1159
1225
  # `auto` is supported for models that allow automatic sizing.
1160
1226
  size: nil,
1161
1227
 
1228
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
1229
+ # selection is enabled, omitting this object uses the outer response model.
1230
+ # Otherwise, the default SVG author is used and explicit model overrides are
1231
+ # unavailable.
1232
+ svg: nil,
1233
+
1162
1234
  # The type of the image generation tool. Always `image_generation`.
1163
1235
 
1164
1236
  type: :image_generation
@@ -1171,6 +1243,9 @@ module OpenAI
1171
1243
  type: Symbol,
1172
1244
  action: OpenAI::Beta::BetaTool::ImageGeneration::Action::OrSymbol,
1173
1245
  background: OpenAI::Beta::BetaTool::ImageGeneration::Background::OrSymbol,
1246
+ complexity: OpenAI::Beta::BetaTool::ImageGeneration::Complexity::OrSymbol,
1247
+ frame_count: Integer,
1248
+ frame_duration_ms: Integer,
1174
1249
  input_fidelity: T.nilable(OpenAI::Beta::BetaTool::ImageGeneration::InputFidelity::OrSymbol),
1175
1250
  input_image_mask: OpenAI::Beta::BetaTool::ImageGeneration::InputImageMask,
1176
1251
  model: T.any(String, OpenAI::Beta::BetaTool::ImageGeneration::Model::OrSymbol),
@@ -1179,7 +1254,8 @@ module OpenAI
1179
1254
  output_format: OpenAI::Beta::BetaTool::ImageGeneration::OutputFormat::OrSymbol,
1180
1255
  partial_images: Integer,
1181
1256
  quality: OpenAI::Beta::BetaTool::ImageGeneration::Quality::OrSymbol,
1182
- size: T.any(String, OpenAI::Beta::BetaTool::ImageGeneration::Size::OrSymbol)
1257
+ size: T.any(String, OpenAI::Beta::BetaTool::ImageGeneration::Size::OrSymbol),
1258
+ svg: OpenAI::Beta::BetaTool::ImageGeneration::Svg
1183
1259
  }
1184
1260
  )
1185
1261
  end
@@ -1226,6 +1302,26 @@ module OpenAI
1226
1302
  end
1227
1303
  end
1228
1304
 
1305
+ # Computation spent planning the image, independently of rendering quality.
1306
+ # Overrides the outer response's `reasoning.effort` for image generation. When
1307
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
1308
+ # configured default. For SVG output, controls the reference image, not the SVG
1309
+ # author's reasoning.
1310
+ module Complexity
1311
+ extend OpenAI::Internal::Type::Enum
1312
+
1313
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Beta::BetaTool::ImageGeneration::Complexity) }
1314
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1315
+
1316
+ LOW = T.let(:low, OpenAI::Beta::BetaTool::ImageGeneration::Complexity::TaggedSymbol)
1317
+ MEDIUM = T.let(:medium, OpenAI::Beta::BetaTool::ImageGeneration::Complexity::TaggedSymbol)
1318
+ HIGH = T.let(:high, OpenAI::Beta::BetaTool::ImageGeneration::Complexity::TaggedSymbol)
1319
+
1320
+ sig { override.returns(T::Array[OpenAI::Beta::BetaTool::ImageGeneration::Complexity::TaggedSymbol]) }
1321
+ def self.values
1322
+ end
1323
+ end
1324
+
1229
1325
  # Control how much effort the model will exert to match the style and features,
1230
1326
  # especially facial features, of input images. Supports `high` and `low` on
1231
1327
  # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
@@ -1301,8 +1397,8 @@ module OpenAI
1301
1397
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1302
1398
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1303
1399
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1304
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1305
- # `gpt-image-2`.
1400
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1401
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1306
1402
  #
1307
1403
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1308
1404
  # `gpt-image-2.5-flare` instead.
@@ -1344,6 +1440,14 @@ module OpenAI
1344
1440
  :"gpt-image-2.5-flare-2026-09-08",
1345
1441
  OpenAI::Beta::BetaTool::ImageGeneration::Model::TaggedSymbol
1346
1442
  )
1443
+ GPT_IMAGE_2_6_SUNBURST = T.let(
1444
+ :"gpt-image-2.6-sunburst",
1445
+ OpenAI::Beta::BetaTool::ImageGeneration::Model::TaggedSymbol
1446
+ )
1447
+ GPT_IMAGE_2_6_FLARE = T.let(
1448
+ :"gpt-image-2.6-flare",
1449
+ OpenAI::Beta::BetaTool::ImageGeneration::Model::TaggedSymbol
1450
+ )
1347
1451
  GPT_IMAGE_1_5 = T.let(:"gpt-image-1.5", OpenAI::Beta::BetaTool::ImageGeneration::Model::TaggedSymbol)
1348
1452
  CHATGPT_IMAGE_LATEST = T.let(
1349
1453
  :"chatgpt-image-latest",
@@ -1367,8 +1471,12 @@ module OpenAI
1367
1471
  end
1368
1472
  end
1369
1473
 
1370
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
1371
- # Default: `png`.
1474
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
1475
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
1476
+ # selected format. GIF output does not support partial image streaming
1477
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
1478
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
1479
+ # output.
1372
1480
  module OutputFormat
1373
1481
  extend OpenAI::Internal::Type::Enum
1374
1482
 
@@ -1378,6 +1486,8 @@ module OpenAI
1378
1486
  PNG = T.let(:png, OpenAI::Beta::BetaTool::ImageGeneration::OutputFormat::TaggedSymbol)
1379
1487
  WEBP = T.let(:webp, OpenAI::Beta::BetaTool::ImageGeneration::OutputFormat::TaggedSymbol)
1380
1488
  JPEG = T.let(:jpeg, OpenAI::Beta::BetaTool::ImageGeneration::OutputFormat::TaggedSymbol)
1489
+ GIF = T.let(:gif, OpenAI::Beta::BetaTool::ImageGeneration::OutputFormat::TaggedSymbol)
1490
+ SVG = T.let(:svg, OpenAI::Beta::BetaTool::ImageGeneration::OutputFormat::TaggedSymbol)
1381
1491
 
1382
1492
  sig { override.returns(T::Array[OpenAI::Beta::BetaTool::ImageGeneration::OutputFormat::TaggedSymbol]) }
1383
1493
  def self.values
@@ -1437,6 +1547,128 @@ module OpenAI
1437
1547
  AUTO = T.let(:auto, OpenAI::Beta::BetaTool::ImageGeneration::Size::TaggedSymbol)
1438
1548
 
1439
1549
  end
1550
+
1551
+ class Svg < OpenAI::Internal::Type::BaseModel
1552
+ OrHash = T.type_alias do
1553
+ T.any(
1554
+ OpenAI::Beta::BetaTool::ImageGeneration::Svg,
1555
+ OpenAI::Internal::AnyHash
1556
+ )
1557
+ end
1558
+
1559
+ sig { returns(T.nilable(String)) }
1560
+ attr_reader :model
1561
+
1562
+ sig { params(model: String).void }
1563
+ attr_writer :model
1564
+
1565
+ # Reasoning effort for SVG authoring. When omitted, uses the author model's
1566
+ # default in both Images and Responses.
1567
+ sig { returns(T.nilable(OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning)) }
1568
+ attr_reader :reasoning
1569
+
1570
+ sig { params(reasoning: T.nilable(OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::OrHash)).void }
1571
+ attr_writer :reasoning
1572
+
1573
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
1574
+ # selection is enabled, omitting this object uses the outer response model.
1575
+ # Otherwise, the default SVG author is used and explicit model overrides are
1576
+ # unavailable.
1577
+ sig do
1578
+ params(
1579
+
1580
+ model: String,
1581
+
1582
+ reasoning: T.nilable(OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::OrHash)
1583
+ )
1584
+ .returns(T.attached_class)
1585
+ end
1586
+ def self.new(
1587
+
1588
+ model: nil,
1589
+
1590
+ # Reasoning effort for SVG authoring. When omitted, uses the author model's
1591
+ # default in both Images and Responses.
1592
+
1593
+ reasoning: nil
1594
+ )
1595
+ end
1596
+
1597
+ sig do
1598
+ override.returns(
1599
+ {model: String, reasoning: T.nilable(OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning)}
1600
+ )
1601
+ end
1602
+ def to_hash
1603
+ end
1604
+
1605
+ class Reasoning < OpenAI::Internal::Type::BaseModel
1606
+ OrHash = T.type_alias do
1607
+ T.any(
1608
+ OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning,
1609
+ OpenAI::Internal::AnyHash
1610
+ )
1611
+ end
1612
+
1613
+ # Controls how much effort the model should spend on reasoning for this request.
1614
+ sig { returns(T.nilable(OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::Effort::OrSymbol)) }
1615
+ attr_reader :effort
1616
+
1617
+ sig { params(effort: OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::Effort::OrSymbol).void }
1618
+ attr_writer :effort
1619
+
1620
+ # Reasoning effort for SVG authoring. When omitted, uses the author model's
1621
+ # default in both Images and Responses.
1622
+ sig do
1623
+ params(
1624
+
1625
+ effort: OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::Effort::OrSymbol
1626
+ )
1627
+ .returns(T.attached_class)
1628
+ end
1629
+ def self.new(
1630
+
1631
+ # Controls how much effort the model should spend on reasoning for this request.
1632
+
1633
+ effort: nil
1634
+ )
1635
+ end
1636
+
1637
+ sig do
1638
+ override.returns(
1639
+ {effort: OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::Effort::OrSymbol}
1640
+ )
1641
+ end
1642
+ def to_hash
1643
+ end
1644
+
1645
+ # Controls how much effort the model should spend on reasoning for this request.
1646
+ module Effort
1647
+ extend OpenAI::Internal::Type::Enum
1648
+
1649
+ TaggedSymbol = T.type_alias {
1650
+ T.all(Symbol, OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::Effort)
1651
+ }
1652
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1653
+
1654
+ NONE = T.let(:none, OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol)
1655
+ MINIMAL = T.let(:minimal, OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol)
1656
+ LOW = T.let(:low, OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol)
1657
+ MEDIUM = T.let(:medium, OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol)
1658
+ HIGH = T.let(:high, OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol)
1659
+ XHIGH = T.let(:xhigh, OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol)
1660
+ MAX = T.let(:max, OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol)
1661
+
1662
+ sig {
1663
+ override.returns(
1664
+ T::Array[OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol]
1665
+ )
1666
+ }
1667
+ def self.values
1668
+ end
1669
+ end
1670
+ end
1671
+ end
1440
1672
  end
1441
1673
 
1442
1674
  class LocalShell < OpenAI::Internal::Type::BaseModel
@@ -25,6 +25,13 @@ module OpenAI
25
25
  sig { returns(T.nilable(T.any(OpenAI::Beta::ResponseCompactParams::Model::OrSymbol, String))) }
26
26
  attr_accessor :model
27
27
 
28
+ # Request level image options.
29
+ sig { returns(T.nilable(OpenAI::Beta::ResponseCompactParams::Image)) }
30
+ attr_reader :image
31
+
32
+ sig { params(image: OpenAI::Beta::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::Beta::ResponseCompactParams::Input::Variants)) }
30
37
  attr_accessor :input
@@ -98,6 +105,8 @@ module OpenAI
98
105
 
99
106
  model: T.nilable(T.any(OpenAI::Beta::ResponseCompactParams::Model::OrSymbol, String)),
100
107
 
108
+ image: OpenAI::Beta::ResponseCompactParams::Image::OrHash,
109
+
101
110
  input: T.nilable(OpenAI::Beta::ResponseCompactParams::Input::Variants),
102
111
 
103
112
  instructions: T.nilable(String),
@@ -127,6 +136,9 @@ module OpenAI
127
136
  # compare available models.
128
137
  model:,
129
138
 
139
+ # Request level image options.
140
+ image: nil,
141
+
130
142
  # Text, image, or file inputs to the model, used to generate a response
131
143
  input: nil,
132
144
 
@@ -187,6 +199,7 @@ module OpenAI
187
199
  override.returns(
188
200
  {
189
201
  model: T.nilable(T.any(OpenAI::Beta::ResponseCompactParams::Model::OrSymbol, String)),
202
+ image: OpenAI::Beta::ResponseCompactParams::Image,
190
203
  input: T.nilable(OpenAI::Beta::ResponseCompactParams::Input::Variants),
191
204
  instructions: T.nilable(String),
192
205
  previous_response_id: T.nilable(String),
@@ -434,6 +447,74 @@ module OpenAI
434
447
 
435
448
  end
436
449
 
450
+ class Image < OpenAI::Internal::Type::BaseModel
451
+ OrHash = T.type_alias do
452
+ T.any(
453
+ OpenAI::Beta::ResponseCompactParams::Image,
454
+ OpenAI::Internal::AnyHash
455
+ )
456
+ end
457
+
458
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
459
+ # transport, and input to select a policy. Use `enabled` to require compression
460
+ # support or `disabled` to turn it off.
461
+ sig { returns(T.nilable(OpenAI::Beta::ResponseCompactParams::Image::ContextCompression::OrSymbol)) }
462
+ attr_reader :context_compression
463
+
464
+ sig {
465
+ params(context_compression: OpenAI::Beta::ResponseCompactParams::Image::ContextCompression::OrSymbol).void
466
+ }
467
+ attr_writer :context_compression
468
+
469
+ # Request level image options.
470
+ sig do
471
+ params(
472
+
473
+ context_compression: OpenAI::Beta::ResponseCompactParams::Image::ContextCompression::OrSymbol
474
+ )
475
+ .returns(T.attached_class)
476
+ end
477
+ def self.new(
478
+
479
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
480
+ # transport, and input to select a policy. Use `enabled` to require compression
481
+ # support or `disabled` to turn it off.
482
+
483
+ context_compression: nil
484
+ )
485
+ end
486
+
487
+ sig do
488
+ override.returns(
489
+ {context_compression: OpenAI::Beta::ResponseCompactParams::Image::ContextCompression::OrSymbol}
490
+ )
491
+ end
492
+ def to_hash
493
+ end
494
+
495
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
496
+ # transport, and input to select a policy. Use `enabled` to require compression
497
+ # support or `disabled` to turn it off.
498
+ module ContextCompression
499
+ extend OpenAI::Internal::Type::Enum
500
+
501
+ TaggedSymbol = T.type_alias {
502
+ T.all(Symbol, OpenAI::Beta::ResponseCompactParams::Image::ContextCompression)
503
+ }
504
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
505
+
506
+ AUTO = T.let(:auto, OpenAI::Beta::ResponseCompactParams::Image::ContextCompression::TaggedSymbol)
507
+ ENABLED = T.let(:enabled, OpenAI::Beta::ResponseCompactParams::Image::ContextCompression::TaggedSymbol)
508
+ DISABLED = T.let(:disabled, OpenAI::Beta::ResponseCompactParams::Image::ContextCompression::TaggedSymbol)
509
+
510
+ sig {
511
+ override.returns(T::Array[OpenAI::Beta::ResponseCompactParams::Image::ContextCompression::TaggedSymbol])
512
+ }
513
+ def self.values
514
+ end
515
+ end
516
+ end
517
+
437
518
  # Text, image, or file inputs to the model, used to generate a response
438
519
  module Input
439
520
  extend OpenAI::Internal::Type::Union
@@ -40,6 +40,13 @@ module OpenAI
40
40
  sig { returns(T.nilable(T.any(String, OpenAI::Beta::BetaResponseConversationParam))) }
41
41
  attr_accessor :conversation
42
42
 
43
+ # Request level image options.
44
+ sig { returns(T.nilable(OpenAI::Beta::ResponseCreateParams::Image)) }
45
+ attr_reader :image
46
+
47
+ sig { params(image: OpenAI::Beta::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
  #
@@ -436,6 +443,8 @@ module OpenAI
436
443
 
437
444
  conversation: T.nilable(T.any(String, OpenAI::Beta::BetaResponseConversationParam::OrHash)),
438
445
 
446
+ image: OpenAI::Beta::ResponseCreateParams::Image::OrHash,
447
+
439
448
  include: T.nilable(T::Array[OpenAI::Beta::BetaResponseIncludable::OrSymbol]),
440
449
 
441
450
  input: OpenAI::Beta::ResponseCreateParams::Input::Variants,
@@ -545,6 +554,9 @@ module OpenAI
545
554
  # response completes.
546
555
  conversation: nil,
547
556
 
557
+ # Request level image options.
558
+ image: nil,
559
+
548
560
  # Specify additional output data to include in the model response. Currently
549
561
  # supported values are:
550
562
  #
@@ -793,6 +805,7 @@ module OpenAI
793
805
  background: T.nilable(T::Boolean),
794
806
  context_management: T.nilable(T::Array[OpenAI::Beta::ResponseCreateParams::ContextManagement]),
795
807
  conversation: T.nilable(T.any(String, OpenAI::Beta::BetaResponseConversationParam)),
808
+ image: OpenAI::Beta::ResponseCreateParams::Image,
796
809
  include: T.nilable(T::Array[OpenAI::Beta::BetaResponseIncludable::OrSymbol]),
797
810
  input: OpenAI::Beta::ResponseCreateParams::Input::Variants,
798
811
  instructions: T.nilable(String),
@@ -1005,6 +1018,74 @@ module OpenAI
1005
1018
 
1006
1019
  end
1007
1020
 
1021
+ class Image < OpenAI::Internal::Type::BaseModel
1022
+ OrHash = T.type_alias do
1023
+ T.any(
1024
+ OpenAI::Beta::ResponseCreateParams::Image,
1025
+ OpenAI::Internal::AnyHash
1026
+ )
1027
+ end
1028
+
1029
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
1030
+ # transport, and input to select a policy. Use `enabled` to require compression
1031
+ # support or `disabled` to turn it off.
1032
+ sig { returns(T.nilable(OpenAI::Beta::ResponseCreateParams::Image::ContextCompression::OrSymbol)) }
1033
+ attr_reader :context_compression
1034
+
1035
+ sig {
1036
+ params(context_compression: OpenAI::Beta::ResponseCreateParams::Image::ContextCompression::OrSymbol).void
1037
+ }
1038
+ attr_writer :context_compression
1039
+
1040
+ # Request level image options.
1041
+ sig do
1042
+ params(
1043
+
1044
+ context_compression: OpenAI::Beta::ResponseCreateParams::Image::ContextCompression::OrSymbol
1045
+ )
1046
+ .returns(T.attached_class)
1047
+ end
1048
+ def self.new(
1049
+
1050
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
1051
+ # transport, and input to select a policy. Use `enabled` to require compression
1052
+ # support or `disabled` to turn it off.
1053
+
1054
+ context_compression: nil
1055
+ )
1056
+ end
1057
+
1058
+ sig do
1059
+ override.returns(
1060
+ {context_compression: OpenAI::Beta::ResponseCreateParams::Image::ContextCompression::OrSymbol}
1061
+ )
1062
+ end
1063
+ def to_hash
1064
+ end
1065
+
1066
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
1067
+ # transport, and input to select a policy. Use `enabled` to require compression
1068
+ # support or `disabled` to turn it off.
1069
+ module ContextCompression
1070
+ extend OpenAI::Internal::Type::Enum
1071
+
1072
+ TaggedSymbol = T.type_alias {
1073
+ T.all(Symbol, OpenAI::Beta::ResponseCreateParams::Image::ContextCompression)
1074
+ }
1075
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1076
+
1077
+ AUTO = T.let(:auto, OpenAI::Beta::ResponseCreateParams::Image::ContextCompression::TaggedSymbol)
1078
+ ENABLED = T.let(:enabled, OpenAI::Beta::ResponseCreateParams::Image::ContextCompression::TaggedSymbol)
1079
+ DISABLED = T.let(:disabled, OpenAI::Beta::ResponseCreateParams::Image::ContextCompression::TaggedSymbol)
1080
+
1081
+ sig {
1082
+ override.returns(T::Array[OpenAI::Beta::ResponseCreateParams::Image::ContextCompression::TaggedSymbol])
1083
+ }
1084
+ def self.values
1085
+ end
1086
+ end
1087
+ end
1088
+
1008
1089
  # Text, image, or file inputs to the model, used to generate a response.
1009
1090
  #
1010
1091
  # Learn more:
@@ -61,6 +61,9 @@ module OpenAI
61
61
  # The request exceeds the model's context window.
62
62
  CONTEXT_LENGTH_EXCEEDED = T.let(:context_length_exceeded, OpenAI::Beta::SessionTurnError::Code::TaggedSymbol)
63
63
 
64
+ # The model reached its output token limit before finishing the response.
65
+ MAX_OUTPUT_TOKENS = T.let(:max_output_tokens, OpenAI::Beta::SessionTurnError::Code::TaggedSymbol)
66
+
64
67
  # The session has reached its usage budget.
65
68
  SESSION_BUDGET_EXCEEDED = T.let(:session_budget_exceeded, OpenAI::Beta::SessionTurnError::Code::TaggedSymbol)
66
69