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
@@ -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
@@ -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
 
@@ -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
@@ -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
  #
@@ -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
  #
@@ -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:
@@ -990,6 +990,12 @@ module OpenAI
990
990
  }
991
991
  attr_accessor :size
992
992
 
993
+ sig { returns(T.nilable(OpenAI::Responses::ResponseInputItem::ImageGenerationCall::SvgUsage)) }
994
+ attr_reader :svg_usage
995
+
996
+ sig { params(svg_usage: OpenAI::Responses::ResponseInputItem::ImageGenerationCall::SvgUsage::OrHash).void }
997
+ attr_writer :svg_usage
998
+
993
999
  # An image generation request made by the model.
994
1000
  sig do
995
1001
  params(
@@ -1016,6 +1022,8 @@ module OpenAI
1016
1022
 
1017
1023
  size: T.nilable(T.any(String, OpenAI::Responses::ResponseInputItem::ImageGenerationCall::Size::OrSymbol)),
1018
1024
 
1025
+ svg_usage: OpenAI::Responses::ResponseInputItem::ImageGenerationCall::SvgUsage::OrHash,
1026
+
1019
1027
  type: Symbol
1020
1028
  )
1021
1029
  .returns(T.attached_class)
@@ -1053,6 +1061,8 @@ module OpenAI
1053
1061
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
1054
1062
  size: nil,
1055
1063
 
1064
+ svg_usage: nil,
1065
+
1056
1066
  # The type of the image generation call. Always `image_generation_call`.
1057
1067
 
1058
1068
  type: :image_generation_call
@@ -1076,7 +1086,8 @@ module OpenAI
1076
1086
  revised_prompt: T.nilable(String),
1077
1087
  size: T.nilable(
1078
1088
  T.any(String, OpenAI::Responses::ResponseInputItem::ImageGenerationCall::Size::OrSymbol)
1079
- )
1089
+ ),
1090
+ svg_usage: OpenAI::Responses::ResponseInputItem::ImageGenerationCall::SvgUsage
1080
1091
  }
1081
1092
  )
1082
1093
  end
@@ -1352,6 +1363,8 @@ module OpenAI
1352
1363
  PNG = T.let(:png, OpenAI::Responses::ResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1353
1364
  WEBP = T.let(:webp, OpenAI::Responses::ResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1354
1365
  JPEG = T.let(:jpeg, OpenAI::Responses::ResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1366
+ GIF = T.let(:gif, OpenAI::Responses::ResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1367
+ SVG = T.let(:svg, OpenAI::Responses::ResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1355
1368
 
1356
1369
  sig {
1357
1370
  override.returns(
@@ -1422,6 +1435,74 @@ module OpenAI
1422
1435
  )
1423
1436
 
1424
1437
  end
1438
+
1439
+ class SvgUsage < OpenAI::Internal::Type::BaseModel
1440
+ OrHash = T.type_alias do
1441
+ T.any(
1442
+ OpenAI::Responses::ResponseInputItem::ImageGenerationCall::SvgUsage,
1443
+ OpenAI::Internal::AnyHash
1444
+ )
1445
+ end
1446
+
1447
+ sig { returns(Integer) }
1448
+ attr_accessor :input_tokens
1449
+
1450
+ sig { returns(String) }
1451
+ attr_accessor :model
1452
+
1453
+ sig { returns(Integer) }
1454
+ attr_accessor :output_tokens
1455
+
1456
+ sig { returns(Integer) }
1457
+ attr_accessor :reasoning_tokens
1458
+
1459
+ sig { returns(Integer) }
1460
+ attr_accessor :total_tokens
1461
+
1462
+ sig do
1463
+ params(
1464
+
1465
+ input_tokens: Integer,
1466
+
1467
+ model: String,
1468
+
1469
+ output_tokens: Integer,
1470
+
1471
+ reasoning_tokens: Integer,
1472
+
1473
+ total_tokens: Integer
1474
+ )
1475
+ .returns(T.attached_class)
1476
+ end
1477
+ def self.new(
1478
+
1479
+ input_tokens:,
1480
+
1481
+ model:,
1482
+
1483
+ output_tokens:,
1484
+
1485
+ reasoning_tokens:,
1486
+
1487
+ total_tokens:
1488
+ )
1489
+ end
1490
+
1491
+ sig do
1492
+ override.returns(
1493
+ {
1494
+ input_tokens: Integer,
1495
+ model: String,
1496
+ output_tokens: Integer,
1497
+ reasoning_tokens: Integer,
1498
+ total_tokens: Integer
1499
+ }
1500
+ )
1501
+ end
1502
+ def to_hash
1503
+ end
1504
+
1505
+ end
1425
1506
  end
1426
1507
 
1427
1508
  class LocalShellCall < OpenAI::Internal::Type::BaseModel
@@ -374,6 +374,12 @@ module OpenAI
374
374
  sig { returns(T.nilable(OpenAI::Responses::ResponseItem::ImageGenerationCall::Size::Variants)) }
375
375
  attr_accessor :size
376
376
 
377
+ sig { returns(T.nilable(OpenAI::Responses::ResponseItem::ImageGenerationCall::SvgUsage)) }
378
+ attr_reader :svg_usage
379
+
380
+ sig { params(svg_usage: OpenAI::Responses::ResponseItem::ImageGenerationCall::SvgUsage::OrHash).void }
381
+ attr_writer :svg_usage
382
+
377
383
  # An image generation request made by the model.
378
384
  sig do
379
385
  params(
@@ -398,6 +404,8 @@ module OpenAI
398
404
 
399
405
  size: T.nilable(T.any(String, OpenAI::Responses::ResponseItem::ImageGenerationCall::Size::OrSymbol)),
400
406
 
407
+ svg_usage: OpenAI::Responses::ResponseItem::ImageGenerationCall::SvgUsage::OrHash,
408
+
401
409
  type: Symbol
402
410
  )
403
411
  .returns(T.attached_class)
@@ -435,6 +443,8 @@ module OpenAI
435
443
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
436
444
  size: nil,
437
445
 
446
+ svg_usage: nil,
447
+
438
448
  # The type of the image generation call. Always `image_generation_call`.
439
449
 
440
450
  type: :image_generation_call
@@ -456,7 +466,8 @@ module OpenAI
456
466
  ),
457
467
  quality: T.nilable(OpenAI::Responses::ResponseItem::ImageGenerationCall::Quality::TaggedSymbol),
458
468
  revised_prompt: T.nilable(String),
459
- size: T.nilable(OpenAI::Responses::ResponseItem::ImageGenerationCall::Size::Variants)
469
+ size: T.nilable(OpenAI::Responses::ResponseItem::ImageGenerationCall::Size::Variants),
470
+ svg_usage: OpenAI::Responses::ResponseItem::ImageGenerationCall::SvgUsage
460
471
  }
461
472
  )
462
473
  end
@@ -714,6 +725,8 @@ module OpenAI
714
725
  PNG = T.let(:png, OpenAI::Responses::ResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
715
726
  WEBP = T.let(:webp, OpenAI::Responses::ResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
716
727
  JPEG = T.let(:jpeg, OpenAI::Responses::ResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
728
+ GIF = T.let(:gif, OpenAI::Responses::ResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
729
+ SVG = T.let(:svg, OpenAI::Responses::ResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
717
730
 
718
731
  sig {
719
732
  override.returns(
@@ -780,6 +793,74 @@ module OpenAI
780
793
  )
781
794
 
782
795
  end
796
+
797
+ class SvgUsage < OpenAI::Internal::Type::BaseModel
798
+ OrHash = T.type_alias do
799
+ T.any(
800
+ OpenAI::Responses::ResponseItem::ImageGenerationCall::SvgUsage,
801
+ OpenAI::Internal::AnyHash
802
+ )
803
+ end
804
+
805
+ sig { returns(Integer) }
806
+ attr_accessor :input_tokens
807
+
808
+ sig { returns(String) }
809
+ attr_accessor :model
810
+
811
+ sig { returns(Integer) }
812
+ attr_accessor :output_tokens
813
+
814
+ sig { returns(Integer) }
815
+ attr_accessor :reasoning_tokens
816
+
817
+ sig { returns(Integer) }
818
+ attr_accessor :total_tokens
819
+
820
+ sig do
821
+ params(
822
+
823
+ input_tokens: Integer,
824
+
825
+ model: String,
826
+
827
+ output_tokens: Integer,
828
+
829
+ reasoning_tokens: Integer,
830
+
831
+ total_tokens: Integer
832
+ )
833
+ .returns(T.attached_class)
834
+ end
835
+ def self.new(
836
+
837
+ input_tokens:,
838
+
839
+ model:,
840
+
841
+ output_tokens:,
842
+
843
+ reasoning_tokens:,
844
+
845
+ total_tokens:
846
+ )
847
+ end
848
+
849
+ sig do
850
+ override.returns(
851
+ {
852
+ input_tokens: Integer,
853
+ model: String,
854
+ output_tokens: Integer,
855
+ reasoning_tokens: Integer,
856
+ total_tokens: Integer
857
+ }
858
+ )
859
+ end
860
+ def to_hash
861
+ end
862
+
863
+ end
783
864
  end
784
865
 
785
866
  class LocalShellCall < OpenAI::Internal::Type::BaseModel
@@ -383,6 +383,12 @@ module OpenAI
383
383
  sig { returns(T.nilable(OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Size::Variants)) }
384
384
  attr_accessor :size
385
385
 
386
+ sig { returns(T.nilable(OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::SvgUsage)) }
387
+ attr_reader :svg_usage
388
+
389
+ sig { params(svg_usage: OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::SvgUsage::OrHash).void }
390
+ attr_writer :svg_usage
391
+
386
392
  # An image generation request made by the model.
387
393
  sig do
388
394
  params(
@@ -409,6 +415,8 @@ module OpenAI
409
415
 
410
416
  size: T.nilable(T.any(String, OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Size::OrSymbol)),
411
417
 
418
+ svg_usage: OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::SvgUsage::OrHash,
419
+
412
420
  type: Symbol
413
421
  )
414
422
  .returns(T.attached_class)
@@ -446,6 +454,8 @@ module OpenAI
446
454
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
447
455
  size: nil,
448
456
 
457
+ svg_usage: nil,
458
+
449
459
  # The type of the image generation call. Always `image_generation_call`.
450
460
 
451
461
  type: :image_generation_call
@@ -469,7 +479,8 @@ module OpenAI
469
479
  ),
470
480
  quality: T.nilable(OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Quality::TaggedSymbol),
471
481
  revised_prompt: T.nilable(String),
472
- size: T.nilable(OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Size::Variants)
482
+ size: T.nilable(OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Size::Variants),
483
+ svg_usage: OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::SvgUsage
473
484
  }
474
485
  )
475
486
  end
@@ -751,6 +762,8 @@ module OpenAI
751
762
  PNG = T.let(:png, OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
752
763
  WEBP = T.let(:webp, OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
753
764
  JPEG = T.let(:jpeg, OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
765
+ GIF = T.let(:gif, OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
766
+ SVG = T.let(:svg, OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
754
767
 
755
768
  sig {
756
769
  override.returns(
@@ -821,6 +834,74 @@ module OpenAI
821
834
  )
822
835
 
823
836
  end
837
+
838
+ class SvgUsage < OpenAI::Internal::Type::BaseModel
839
+ OrHash = T.type_alias do
840
+ T.any(
841
+ OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::SvgUsage,
842
+ OpenAI::Internal::AnyHash
843
+ )
844
+ end
845
+
846
+ sig { returns(Integer) }
847
+ attr_accessor :input_tokens
848
+
849
+ sig { returns(String) }
850
+ attr_accessor :model
851
+
852
+ sig { returns(Integer) }
853
+ attr_accessor :output_tokens
854
+
855
+ sig { returns(Integer) }
856
+ attr_accessor :reasoning_tokens
857
+
858
+ sig { returns(Integer) }
859
+ attr_accessor :total_tokens
860
+
861
+ sig do
862
+ params(
863
+
864
+ input_tokens: Integer,
865
+
866
+ model: String,
867
+
868
+ output_tokens: Integer,
869
+
870
+ reasoning_tokens: Integer,
871
+
872
+ total_tokens: Integer
873
+ )
874
+ .returns(T.attached_class)
875
+ end
876
+ def self.new(
877
+
878
+ input_tokens:,
879
+
880
+ model:,
881
+
882
+ output_tokens:,
883
+
884
+ reasoning_tokens:,
885
+
886
+ total_tokens:
887
+ )
888
+ end
889
+
890
+ sig do
891
+ override.returns(
892
+ {
893
+ input_tokens: Integer,
894
+ model: String,
895
+ output_tokens: Integer,
896
+ reasoning_tokens: Integer,
897
+ total_tokens: Integer
898
+ }
899
+ )
900
+ end
901
+ def to_hash
902
+ end
903
+
904
+ end
824
905
  end
825
906
 
826
907
  class LocalShellCall < OpenAI::Internal::Type::BaseModel