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
@@ -149,6 +149,12 @@ module OpenAI
149
149
  sig { params(conversation: T.nilable(OpenAI::Beta::BetaResponse::Conversation::OrHash)).void }
150
150
  attr_writer :conversation
151
151
 
152
+ sig { returns(T.nilable(OpenAI::Beta::BetaResponse::Image)) }
153
+ attr_reader :image
154
+
155
+ sig { params(image: OpenAI::Beta::BetaResponse::Image::OrHash).void }
156
+ attr_writer :image
157
+
152
158
  # An upper bound for the number of tokens that can be generated for a response,
153
159
  # including visible output tokens and
154
160
  # [reasoning tokens](https://developers.openai.com/api/docs/guides/reasoning).
@@ -454,6 +460,8 @@ module OpenAI
454
460
 
455
461
  conversation: T.nilable(OpenAI::Beta::BetaResponse::Conversation::OrHash),
456
462
 
463
+ image: OpenAI::Beta::BetaResponse::Image::OrHash,
464
+
457
465
  max_output_tokens: T.nilable(Integer),
458
466
 
459
467
  max_tool_calls: T.nilable(Integer),
@@ -603,6 +611,8 @@ module OpenAI
603
611
  # from this response were automatically added to this conversation.
604
612
  conversation: nil,
605
613
 
614
+ image: nil,
615
+
606
616
  # An upper bound for the number of tokens that can be generated for a response,
607
617
  # including visible output tokens and
608
618
  # [reasoning tokens](https://developers.openai.com/api/docs/guides/reasoning).
@@ -776,6 +786,7 @@ module OpenAI
776
786
  background: T.nilable(T::Boolean),
777
787
  completed_at: T.nilable(Float),
778
788
  conversation: T.nilable(OpenAI::Beta::BetaResponse::Conversation),
789
+ image: OpenAI::Beta::BetaResponse::Image,
779
790
  max_output_tokens: T.nilable(Integer),
780
791
  max_tool_calls: T.nilable(Integer),
781
792
  moderation: T.nilable(OpenAI::Beta::BetaResponse::Moderation),
@@ -1211,6 +1222,57 @@ module OpenAI
1211
1222
 
1212
1223
  end
1213
1224
 
1225
+ class Image < OpenAI::Internal::Type::BaseModel
1226
+ OrHash = T.type_alias do
1227
+ T.any(
1228
+ OpenAI::Beta::BetaResponse::Image,
1229
+ OpenAI::Internal::AnyHash
1230
+ )
1231
+ end
1232
+
1233
+ # Effective image context optimization policy.
1234
+ sig { returns(OpenAI::Beta::BetaResponse::Image::ContextCompression::TaggedSymbol) }
1235
+ attr_accessor :context_compression
1236
+
1237
+ sig do
1238
+ params(
1239
+
1240
+ context_compression: OpenAI::Beta::BetaResponse::Image::ContextCompression::OrSymbol
1241
+ )
1242
+ .returns(T.attached_class)
1243
+ end
1244
+ def self.new(
1245
+
1246
+ # Effective image context optimization policy.
1247
+
1248
+ context_compression:
1249
+ )
1250
+ end
1251
+
1252
+ sig do
1253
+ override.returns(
1254
+ {context_compression: OpenAI::Beta::BetaResponse::Image::ContextCompression::TaggedSymbol}
1255
+ )
1256
+ end
1257
+ def to_hash
1258
+ end
1259
+
1260
+ # Effective image context optimization policy.
1261
+ module ContextCompression
1262
+ extend OpenAI::Internal::Type::Enum
1263
+
1264
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Beta::BetaResponse::Image::ContextCompression) }
1265
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1266
+
1267
+ ENABLED = T.let(:enabled, OpenAI::Beta::BetaResponse::Image::ContextCompression::TaggedSymbol)
1268
+ DISABLED = T.let(:disabled, OpenAI::Beta::BetaResponse::Image::ContextCompression::TaggedSymbol)
1269
+
1270
+ sig { override.returns(T::Array[OpenAI::Beta::BetaResponse::Image::ContextCompression::TaggedSymbol]) }
1271
+ def self.values
1272
+ end
1273
+ end
1274
+ end
1275
+
1214
1276
  class Moderation < OpenAI::Internal::Type::BaseModel
1215
1277
  OrHash = T.type_alias do
1216
1278
  T.any(
@@ -2143,6 +2143,12 @@ module OpenAI
2143
2143
  }
2144
2144
  attr_accessor :size
2145
2145
 
2146
+ sig { returns(T.nilable(OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::SvgUsage)) }
2147
+ attr_reader :svg_usage
2148
+
2149
+ sig { params(svg_usage: OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::SvgUsage::OrHash).void }
2150
+ attr_writer :svg_usage
2151
+
2146
2152
  # An image generation request made by the model.
2147
2153
  sig do
2148
2154
  params(
@@ -2169,6 +2175,8 @@ module OpenAI
2169
2175
 
2170
2176
  size: T.nilable(T.any(String, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Size::OrSymbol)),
2171
2177
 
2178
+ svg_usage: OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::SvgUsage::OrHash,
2179
+
2172
2180
  type: Symbol
2173
2181
  )
2174
2182
  .returns(T.attached_class)
@@ -2209,6 +2217,8 @@ module OpenAI
2209
2217
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
2210
2218
  size: nil,
2211
2219
 
2220
+ svg_usage: nil,
2221
+
2212
2222
  # The type of the image generation call. Always `image_generation_call`.
2213
2223
 
2214
2224
  type: :image_generation_call
@@ -2231,7 +2241,8 @@ module OpenAI
2231
2241
  ),
2232
2242
  quality: T.nilable(OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Quality::OrSymbol),
2233
2243
  revised_prompt: T.nilable(String),
2234
- size: T.nilable(T.any(String, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Size::OrSymbol))
2244
+ size: T.nilable(T.any(String, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Size::OrSymbol)),
2245
+ svg_usage: OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::SvgUsage
2235
2246
  }
2236
2247
  )
2237
2248
  end
@@ -2541,6 +2552,8 @@ module OpenAI
2541
2552
  PNG = T.let(:png, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
2542
2553
  WEBP = T.let(:webp, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
2543
2554
  JPEG = T.let(:jpeg, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
2555
+ GIF = T.let(:gif, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
2556
+ SVG = T.let(:svg, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
2544
2557
 
2545
2558
  sig {
2546
2559
  override.returns(
@@ -2611,6 +2624,74 @@ module OpenAI
2611
2624
  )
2612
2625
 
2613
2626
  end
2627
+
2628
+ class SvgUsage < OpenAI::Internal::Type::BaseModel
2629
+ OrHash = T.type_alias do
2630
+ T.any(
2631
+ OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::SvgUsage,
2632
+ OpenAI::Internal::AnyHash
2633
+ )
2634
+ end
2635
+
2636
+ sig { returns(Integer) }
2637
+ attr_accessor :input_tokens
2638
+
2639
+ sig { returns(String) }
2640
+ attr_accessor :model
2641
+
2642
+ sig { returns(Integer) }
2643
+ attr_accessor :output_tokens
2644
+
2645
+ sig { returns(Integer) }
2646
+ attr_accessor :reasoning_tokens
2647
+
2648
+ sig { returns(Integer) }
2649
+ attr_accessor :total_tokens
2650
+
2651
+ sig do
2652
+ params(
2653
+
2654
+ input_tokens: Integer,
2655
+
2656
+ model: String,
2657
+
2658
+ output_tokens: Integer,
2659
+
2660
+ reasoning_tokens: Integer,
2661
+
2662
+ total_tokens: Integer
2663
+ )
2664
+ .returns(T.attached_class)
2665
+ end
2666
+ def self.new(
2667
+
2668
+ input_tokens:,
2669
+
2670
+ model:,
2671
+
2672
+ output_tokens:,
2673
+
2674
+ reasoning_tokens:,
2675
+
2676
+ total_tokens:
2677
+ )
2678
+ end
2679
+
2680
+ sig do
2681
+ override.returns(
2682
+ {
2683
+ input_tokens: Integer,
2684
+ model: String,
2685
+ output_tokens: Integer,
2686
+ reasoning_tokens: Integer,
2687
+ total_tokens: Integer
2688
+ }
2689
+ )
2690
+ end
2691
+ def to_hash
2692
+ end
2693
+
2694
+ end
2614
2695
  end
2615
2696
 
2616
2697
  class LocalShellCall < OpenAI::Internal::Type::BaseModel
@@ -1449,6 +1449,12 @@ module OpenAI
1449
1449
  sig { returns(T.nilable(OpenAI::Beta::BetaResponseItem::ImageGenerationCall::Size::Variants)) }
1450
1450
  attr_accessor :size
1451
1451
 
1452
+ sig { returns(T.nilable(OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage)) }
1453
+ attr_reader :svg_usage
1454
+
1455
+ sig { params(svg_usage: OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage::OrHash).void }
1456
+ attr_writer :svg_usage
1457
+
1452
1458
  # An image generation request made by the model.
1453
1459
  sig do
1454
1460
  params(
@@ -1475,6 +1481,8 @@ module OpenAI
1475
1481
 
1476
1482
  size: T.nilable(T.any(String, OpenAI::Beta::BetaResponseItem::ImageGenerationCall::Size::OrSymbol)),
1477
1483
 
1484
+ svg_usage: OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage::OrHash,
1485
+
1478
1486
  type: Symbol
1479
1487
  )
1480
1488
  .returns(T.attached_class)
@@ -1515,6 +1523,8 @@ module OpenAI
1515
1523
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
1516
1524
  size: nil,
1517
1525
 
1526
+ svg_usage: nil,
1527
+
1518
1528
  # The type of the image generation call. Always `image_generation_call`.
1519
1529
 
1520
1530
  type: :image_generation_call
@@ -1537,7 +1547,8 @@ module OpenAI
1537
1547
  ),
1538
1548
  quality: T.nilable(OpenAI::Beta::BetaResponseItem::ImageGenerationCall::Quality::TaggedSymbol),
1539
1549
  revised_prompt: T.nilable(String),
1540
- size: T.nilable(OpenAI::Beta::BetaResponseItem::ImageGenerationCall::Size::Variants)
1550
+ size: T.nilable(OpenAI::Beta::BetaResponseItem::ImageGenerationCall::Size::Variants),
1551
+ svg_usage: OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage
1541
1552
  }
1542
1553
  )
1543
1554
  end
@@ -1830,6 +1841,8 @@ module OpenAI
1830
1841
  PNG = T.let(:png, OpenAI::Beta::BetaResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1831
1842
  WEBP = T.let(:webp, OpenAI::Beta::BetaResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1832
1843
  JPEG = T.let(:jpeg, OpenAI::Beta::BetaResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1844
+ GIF = T.let(:gif, OpenAI::Beta::BetaResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1845
+ SVG = T.let(:svg, OpenAI::Beta::BetaResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1833
1846
 
1834
1847
  sig {
1835
1848
  override.returns(
@@ -1894,6 +1907,74 @@ module OpenAI
1894
1907
  )
1895
1908
 
1896
1909
  end
1910
+
1911
+ class SvgUsage < OpenAI::Internal::Type::BaseModel
1912
+ OrHash = T.type_alias do
1913
+ T.any(
1914
+ OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage,
1915
+ OpenAI::Internal::AnyHash
1916
+ )
1917
+ end
1918
+
1919
+ sig { returns(Integer) }
1920
+ attr_accessor :input_tokens
1921
+
1922
+ sig { returns(String) }
1923
+ attr_accessor :model
1924
+
1925
+ sig { returns(Integer) }
1926
+ attr_accessor :output_tokens
1927
+
1928
+ sig { returns(Integer) }
1929
+ attr_accessor :reasoning_tokens
1930
+
1931
+ sig { returns(Integer) }
1932
+ attr_accessor :total_tokens
1933
+
1934
+ sig do
1935
+ params(
1936
+
1937
+ input_tokens: Integer,
1938
+
1939
+ model: String,
1940
+
1941
+ output_tokens: Integer,
1942
+
1943
+ reasoning_tokens: Integer,
1944
+
1945
+ total_tokens: Integer
1946
+ )
1947
+ .returns(T.attached_class)
1948
+ end
1949
+ def self.new(
1950
+
1951
+ input_tokens:,
1952
+
1953
+ model:,
1954
+
1955
+ output_tokens:,
1956
+
1957
+ reasoning_tokens:,
1958
+
1959
+ total_tokens:
1960
+ )
1961
+ end
1962
+
1963
+ sig do
1964
+ override.returns(
1965
+ {
1966
+ input_tokens: Integer,
1967
+ model: String,
1968
+ output_tokens: Integer,
1969
+ reasoning_tokens: Integer,
1970
+ total_tokens: Integer
1971
+ }
1972
+ )
1973
+ end
1974
+ def to_hash
1975
+ end
1976
+
1977
+ end
1897
1978
  end
1898
1979
 
1899
1980
  class LocalShellCall < OpenAI::Internal::Type::BaseModel
@@ -1483,6 +1483,12 @@ module OpenAI
1483
1483
  sig { returns(T.nilable(OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Size::Variants)) }
1484
1484
  attr_accessor :size
1485
1485
 
1486
+ sig { returns(T.nilable(OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::SvgUsage)) }
1487
+ attr_reader :svg_usage
1488
+
1489
+ sig { params(svg_usage: OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::SvgUsage::OrHash).void }
1490
+ attr_writer :svg_usage
1491
+
1486
1492
  # An image generation request made by the model.
1487
1493
  sig do
1488
1494
  params(
@@ -1511,6 +1517,8 @@ module OpenAI
1511
1517
 
1512
1518
  size: T.nilable(T.any(String, OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Size::OrSymbol)),
1513
1519
 
1520
+ svg_usage: OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::SvgUsage::OrHash,
1521
+
1514
1522
  type: Symbol
1515
1523
  )
1516
1524
  .returns(T.attached_class)
@@ -1551,6 +1559,8 @@ module OpenAI
1551
1559
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
1552
1560
  size: nil,
1553
1561
 
1562
+ svg_usage: nil,
1563
+
1554
1564
  # The type of the image generation call. Always `image_generation_call`.
1555
1565
 
1556
1566
  type: :image_generation_call
@@ -1575,7 +1585,8 @@ module OpenAI
1575
1585
  ),
1576
1586
  quality: T.nilable(OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Quality::TaggedSymbol),
1577
1587
  revised_prompt: T.nilable(String),
1578
- size: T.nilable(OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Size::Variants)
1588
+ size: T.nilable(OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Size::Variants),
1589
+ svg_usage: OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::SvgUsage
1579
1590
  }
1580
1591
  )
1581
1592
  end
@@ -1889,6 +1900,8 @@ module OpenAI
1889
1900
  PNG = T.let(:png, OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1890
1901
  WEBP = T.let(:webp, OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1891
1902
  JPEG = T.let(:jpeg, OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1903
+ GIF = T.let(:gif, OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1904
+ SVG = T.let(:svg, OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1892
1905
 
1893
1906
  sig {
1894
1907
  override.returns(
@@ -1959,6 +1972,74 @@ module OpenAI
1959
1972
  )
1960
1973
 
1961
1974
  end
1975
+
1976
+ class SvgUsage < OpenAI::Internal::Type::BaseModel
1977
+ OrHash = T.type_alias do
1978
+ T.any(
1979
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::SvgUsage,
1980
+ OpenAI::Internal::AnyHash
1981
+ )
1982
+ end
1983
+
1984
+ sig { returns(Integer) }
1985
+ attr_accessor :input_tokens
1986
+
1987
+ sig { returns(String) }
1988
+ attr_accessor :model
1989
+
1990
+ sig { returns(Integer) }
1991
+ attr_accessor :output_tokens
1992
+
1993
+ sig { returns(Integer) }
1994
+ attr_accessor :reasoning_tokens
1995
+
1996
+ sig { returns(Integer) }
1997
+ attr_accessor :total_tokens
1998
+
1999
+ sig do
2000
+ params(
2001
+
2002
+ input_tokens: Integer,
2003
+
2004
+ model: String,
2005
+
2006
+ output_tokens: Integer,
2007
+
2008
+ reasoning_tokens: Integer,
2009
+
2010
+ total_tokens: Integer
2011
+ )
2012
+ .returns(T.attached_class)
2013
+ end
2014
+ def self.new(
2015
+
2016
+ input_tokens:,
2017
+
2018
+ model:,
2019
+
2020
+ output_tokens:,
2021
+
2022
+ reasoning_tokens:,
2023
+
2024
+ total_tokens:
2025
+ )
2026
+ end
2027
+
2028
+ sig do
2029
+ override.returns(
2030
+ {
2031
+ input_tokens: Integer,
2032
+ model: String,
2033
+ output_tokens: Integer,
2034
+ reasoning_tokens: Integer,
2035
+ total_tokens: Integer
2036
+ }
2037
+ )
2038
+ end
2039
+ def to_hash
2040
+ end
2041
+
2042
+ end
1962
2043
  end
1963
2044
 
1964
2045
  class LocalShellCall < OpenAI::Internal::Type::BaseModel