openai 0.8.0 → 0.10.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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +41 -0
  3. data/README.md +115 -4
  4. data/lib/openai/errors.rb +22 -0
  5. data/lib/openai/internal/type/array_of.rb +6 -1
  6. data/lib/openai/internal/type/base_model.rb +76 -24
  7. data/lib/openai/internal/type/boolean.rb +7 -1
  8. data/lib/openai/internal/type/converter.rb +42 -34
  9. data/lib/openai/internal/type/enum.rb +10 -2
  10. data/lib/openai/internal/type/file_input.rb +6 -1
  11. data/lib/openai/internal/type/hash_of.rb +6 -1
  12. data/lib/openai/internal/type/union.rb +12 -7
  13. data/lib/openai/internal/type/unknown.rb +7 -1
  14. data/lib/openai/models/audio/speech_create_params.rb +23 -2
  15. data/lib/openai/models/audio/transcription.rb +118 -1
  16. data/lib/openai/models/audio/transcription_text_done_event.rb +80 -1
  17. data/lib/openai/models/audio/transcription_verbose.rb +31 -1
  18. data/lib/openai/models/chat/chat_completion.rb +1 -0
  19. data/lib/openai/models/chat/chat_completion_chunk.rb +1 -0
  20. data/lib/openai/models/chat/completion_create_params.rb +1 -0
  21. data/lib/openai/models/fine_tuning/job_create_params.rb +4 -2
  22. data/lib/openai/models/image_edit_params.rb +35 -1
  23. data/lib/openai/models/responses/response.rb +41 -6
  24. data/lib/openai/models/responses/response_code_interpreter_call_code_delta_event.rb +17 -8
  25. data/lib/openai/models/responses/response_code_interpreter_call_code_done_event.rb +14 -10
  26. data/lib/openai/models/responses/response_code_interpreter_call_completed_event.rb +11 -10
  27. data/lib/openai/models/responses/response_code_interpreter_call_in_progress_event.rb +11 -10
  28. data/lib/openai/models/responses/response_code_interpreter_call_interpreting_event.rb +11 -10
  29. data/lib/openai/models/responses/response_code_interpreter_tool_call.rb +49 -78
  30. data/lib/openai/models/responses/response_create_params.rb +41 -32
  31. data/lib/openai/models/responses/response_output_text.rb +18 -2
  32. data/lib/openai/models/responses/response_prompt.rb +63 -0
  33. data/lib/openai/models/responses/response_stream_event.rb +2 -2
  34. data/lib/openai/resources/audio/speech.rb +3 -1
  35. data/lib/openai/resources/chat/completions.rb +8 -0
  36. data/lib/openai/resources/fine_tuning/jobs.rb +2 -2
  37. data/lib/openai/resources/images.rb +5 -1
  38. data/lib/openai/resources/responses.rb +18 -14
  39. data/lib/openai/version.rb +1 -1
  40. data/lib/openai.rb +1 -0
  41. data/rbi/openai/errors.rbi +16 -0
  42. data/rbi/openai/internal/type/boolean.rbi +2 -0
  43. data/rbi/openai/internal/type/converter.rbi +15 -15
  44. data/rbi/openai/internal/type/union.rbi +5 -0
  45. data/rbi/openai/internal/type/unknown.rbi +2 -0
  46. data/rbi/openai/models/audio/speech_create_params.rbi +59 -2
  47. data/rbi/openai/models/audio/transcription.rbi +213 -3
  48. data/rbi/openai/models/audio/transcription_text_done_event.rbi +146 -1
  49. data/rbi/openai/models/audio/transcription_verbose.rbi +47 -0
  50. data/rbi/openai/models/chat/chat_completion.rbi +5 -0
  51. data/rbi/openai/models/chat/chat_completion_chunk.rbi +5 -0
  52. data/rbi/openai/models/chat/completion_create_params.rbi +5 -0
  53. data/rbi/openai/models/fine_tuning/job_create_params.rbi +8 -4
  54. data/rbi/openai/models/image_edit_params.rbi +51 -0
  55. data/rbi/openai/models/responses/response.rbi +66 -7
  56. data/rbi/openai/models/responses/response_code_interpreter_call_code_delta_event.rbi +17 -7
  57. data/rbi/openai/models/responses/response_code_interpreter_call_code_done_event.rbi +13 -5
  58. data/rbi/openai/models/responses/response_code_interpreter_call_completed_event.rbi +13 -21
  59. data/rbi/openai/models/responses/response_code_interpreter_call_in_progress_event.rbi +13 -21
  60. data/rbi/openai/models/responses/response_code_interpreter_call_interpreting_event.rbi +13 -21
  61. data/rbi/openai/models/responses/response_code_interpreter_tool_call.rbi +83 -125
  62. data/rbi/openai/models/responses/response_create_params.rbi +107 -64
  63. data/rbi/openai/models/responses/response_output_text.rbi +26 -4
  64. data/rbi/openai/models/responses/response_prompt.rbi +120 -0
  65. data/rbi/openai/resources/audio/speech.rbi +6 -1
  66. data/rbi/openai/resources/fine_tuning/jobs.rbi +6 -4
  67. data/rbi/openai/resources/images.rbi +11 -0
  68. data/rbi/openai/resources/responses.rbi +56 -50
  69. data/sig/openai/errors.rbs +9 -0
  70. data/sig/openai/internal/type/converter.rbs +7 -1
  71. data/sig/openai/models/audio/speech_create_params.rbs +21 -1
  72. data/sig/openai/models/audio/transcription.rbs +95 -3
  73. data/sig/openai/models/audio/transcription_text_done_event.rbs +72 -2
  74. data/sig/openai/models/audio/transcription_verbose.rbs +21 -0
  75. data/sig/openai/models/chat/chat_completion.rbs +2 -1
  76. data/sig/openai/models/chat/chat_completion_chunk.rbs +2 -1
  77. data/sig/openai/models/chat/completion_create_params.rbs +2 -1
  78. data/sig/openai/models/image_edit_params.rbs +22 -0
  79. data/sig/openai/models/responses/response.rbs +22 -5
  80. data/sig/openai/models/responses/response_code_interpreter_call_code_delta_event.rbs +5 -0
  81. data/sig/openai/models/responses/response_code_interpreter_call_code_done_event.rbs +5 -0
  82. data/sig/openai/models/responses/response_code_interpreter_call_completed_event.rbs +4 -4
  83. data/sig/openai/models/responses/response_code_interpreter_call_in_progress_event.rbs +4 -4
  84. data/sig/openai/models/responses/response_code_interpreter_call_interpreting_event.rbs +4 -4
  85. data/sig/openai/models/responses/response_code_interpreter_tool_call.rbs +31 -52
  86. data/sig/openai/models/responses/response_create_params.rbs +25 -11
  87. data/sig/openai/models/responses/response_output_text.rbs +15 -1
  88. data/sig/openai/models/responses/response_prompt.rbs +44 -0
  89. data/sig/openai/resources/audio/speech.rbs +1 -0
  90. data/sig/openai/resources/images.rbs +2 -0
  91. data/sig/openai/resources/responses.rbs +6 -4
  92. metadata +5 -2
@@ -5,7 +5,8 @@ module OpenAI
5
5
  {
6
6
  text: String,
7
7
  type: :"transcript.text.done",
8
- logprobs: ::Array[OpenAI::Audio::TranscriptionTextDoneEvent::Logprob]
8
+ logprobs: ::Array[OpenAI::Audio::TranscriptionTextDoneEvent::Logprob],
9
+ usage: OpenAI::Audio::TranscriptionTextDoneEvent::Usage
9
10
  }
10
11
 
11
12
  class TranscriptionTextDoneEvent < OpenAI::Internal::Type::BaseModel
@@ -19,16 +20,24 @@ module OpenAI
19
20
  ::Array[OpenAI::Audio::TranscriptionTextDoneEvent::Logprob]
20
21
  ) -> ::Array[OpenAI::Audio::TranscriptionTextDoneEvent::Logprob]
21
22
 
23
+ attr_reader usage: OpenAI::Audio::TranscriptionTextDoneEvent::Usage?
24
+
25
+ def usage=: (
26
+ OpenAI::Audio::TranscriptionTextDoneEvent::Usage
27
+ ) -> OpenAI::Audio::TranscriptionTextDoneEvent::Usage
28
+
22
29
  def initialize: (
23
30
  text: String,
24
31
  ?logprobs: ::Array[OpenAI::Audio::TranscriptionTextDoneEvent::Logprob],
32
+ ?usage: OpenAI::Audio::TranscriptionTextDoneEvent::Usage,
25
33
  ?type: :"transcript.text.done"
26
34
  ) -> void
27
35
 
28
36
  def to_hash: -> {
29
37
  text: String,
30
38
  type: :"transcript.text.done",
31
- logprobs: ::Array[OpenAI::Audio::TranscriptionTextDoneEvent::Logprob]
39
+ logprobs: ::Array[OpenAI::Audio::TranscriptionTextDoneEvent::Logprob],
40
+ usage: OpenAI::Audio::TranscriptionTextDoneEvent::Usage
32
41
  }
33
42
 
34
43
  type logprob =
@@ -59,6 +68,67 @@ module OpenAI
59
68
  logprob: Float
60
69
  }
61
70
  end
71
+
72
+ type usage =
73
+ {
74
+ input_tokens: Integer,
75
+ output_tokens: Integer,
76
+ total_tokens: Integer,
77
+ type: :tokens,
78
+ input_token_details: OpenAI::Audio::TranscriptionTextDoneEvent::Usage::InputTokenDetails
79
+ }
80
+
81
+ class Usage < OpenAI::Internal::Type::BaseModel
82
+ attr_accessor input_tokens: Integer
83
+
84
+ attr_accessor output_tokens: Integer
85
+
86
+ attr_accessor total_tokens: Integer
87
+
88
+ attr_accessor type: :tokens
89
+
90
+ attr_reader input_token_details: OpenAI::Audio::TranscriptionTextDoneEvent::Usage::InputTokenDetails?
91
+
92
+ def input_token_details=: (
93
+ OpenAI::Audio::TranscriptionTextDoneEvent::Usage::InputTokenDetails
94
+ ) -> OpenAI::Audio::TranscriptionTextDoneEvent::Usage::InputTokenDetails
95
+
96
+ def initialize: (
97
+ input_tokens: Integer,
98
+ output_tokens: Integer,
99
+ total_tokens: Integer,
100
+ ?input_token_details: OpenAI::Audio::TranscriptionTextDoneEvent::Usage::InputTokenDetails,
101
+ ?type: :tokens
102
+ ) -> void
103
+
104
+ def to_hash: -> {
105
+ input_tokens: Integer,
106
+ output_tokens: Integer,
107
+ total_tokens: Integer,
108
+ type: :tokens,
109
+ input_token_details: OpenAI::Audio::TranscriptionTextDoneEvent::Usage::InputTokenDetails
110
+ }
111
+
112
+ type input_token_details =
113
+ { audio_tokens: Integer, text_tokens: Integer }
114
+
115
+ class InputTokenDetails < OpenAI::Internal::Type::BaseModel
116
+ attr_reader audio_tokens: Integer?
117
+
118
+ def audio_tokens=: (Integer) -> Integer
119
+
120
+ attr_reader text_tokens: Integer?
121
+
122
+ def text_tokens=: (Integer) -> Integer
123
+
124
+ def initialize: (
125
+ ?audio_tokens: Integer,
126
+ ?text_tokens: Integer
127
+ ) -> void
128
+
129
+ def to_hash: -> { audio_tokens: Integer, text_tokens: Integer }
130
+ end
131
+ end
62
132
  end
63
133
  end
64
134
  end
@@ -7,6 +7,7 @@ module OpenAI
7
7
  language: String,
8
8
  text: String,
9
9
  segments: ::Array[OpenAI::Audio::TranscriptionSegment],
10
+ usage: OpenAI::Audio::TranscriptionVerbose::Usage,
10
11
  words: ::Array[OpenAI::Audio::TranscriptionWord]
11
12
  }
12
13
 
@@ -23,6 +24,12 @@ module OpenAI
23
24
  ::Array[OpenAI::Audio::TranscriptionSegment]
24
25
  ) -> ::Array[OpenAI::Audio::TranscriptionSegment]
25
26
 
27
+ attr_reader usage: OpenAI::Audio::TranscriptionVerbose::Usage?
28
+
29
+ def usage=: (
30
+ OpenAI::Audio::TranscriptionVerbose::Usage
31
+ ) -> OpenAI::Audio::TranscriptionVerbose::Usage
32
+
26
33
  attr_reader words: ::Array[OpenAI::Audio::TranscriptionWord]?
27
34
 
28
35
  def words=: (
@@ -34,6 +41,7 @@ module OpenAI
34
41
  language: String,
35
42
  text: String,
36
43
  ?segments: ::Array[OpenAI::Audio::TranscriptionSegment],
44
+ ?usage: OpenAI::Audio::TranscriptionVerbose::Usage,
37
45
  ?words: ::Array[OpenAI::Audio::TranscriptionWord]
38
46
  ) -> void
39
47
 
@@ -42,8 +50,21 @@ module OpenAI
42
50
  language: String,
43
51
  text: String,
44
52
  segments: ::Array[OpenAI::Audio::TranscriptionSegment],
53
+ usage: OpenAI::Audio::TranscriptionVerbose::Usage,
45
54
  words: ::Array[OpenAI::Audio::TranscriptionWord]
46
55
  }
56
+
57
+ type usage = { duration: Float, type: :duration }
58
+
59
+ class Usage < OpenAI::Internal::Type::BaseModel
60
+ attr_accessor duration: Float
61
+
62
+ attr_accessor type: :duration
63
+
64
+ def initialize: (duration: Float, ?type: :duration) -> void
65
+
66
+ def to_hash: -> { duration: Float, type: :duration }
67
+ end
47
68
  end
48
69
  end
49
70
  end
@@ -127,7 +127,7 @@ module OpenAI
127
127
  end
128
128
  end
129
129
 
130
- type service_tier = :auto | :default | :flex
130
+ type service_tier = :auto | :default | :flex | :scale
131
131
 
132
132
  module ServiceTier
133
133
  extend OpenAI::Internal::Type::Enum
@@ -135,6 +135,7 @@ module OpenAI
135
135
  AUTO: :auto
136
136
  DEFAULT: :default
137
137
  FLEX: :flex
138
+ SCALE: :scale
138
139
 
139
140
  def self?.values: -> ::Array[OpenAI::Models::Chat::ChatCompletion::service_tier]
140
141
  end
@@ -272,7 +272,7 @@ module OpenAI
272
272
  end
273
273
  end
274
274
 
275
- type service_tier = :auto | :default | :flex
275
+ type service_tier = :auto | :default | :flex | :scale
276
276
 
277
277
  module ServiceTier
278
278
  extend OpenAI::Internal::Type::Enum
@@ -280,6 +280,7 @@ module OpenAI
280
280
  AUTO: :auto
281
281
  DEFAULT: :default
282
282
  FLEX: :flex
283
+ SCALE: :scale
283
284
 
284
285
  def self?.values: -> ::Array[OpenAI::Models::Chat::ChatCompletionChunk::service_tier]
285
286
  end
@@ -280,7 +280,7 @@ module OpenAI
280
280
  def self?.variants: -> ::Array[OpenAI::Models::Chat::CompletionCreateParams::response_format]
281
281
  end
282
282
 
283
- type service_tier = :auto | :default | :flex
283
+ type service_tier = :auto | :default | :flex | :scale
284
284
 
285
285
  module ServiceTier
286
286
  extend OpenAI::Internal::Type::Enum
@@ -288,6 +288,7 @@ module OpenAI
288
288
  AUTO: :auto
289
289
  DEFAULT: :default
290
290
  FLEX: :flex
291
+ SCALE: :scale
291
292
 
292
293
  def self?.values: -> ::Array[OpenAI::Models::Chat::CompletionCreateParams::service_tier]
293
294
  end
@@ -8,6 +8,8 @@ module OpenAI
8
8
  mask: OpenAI::Internal::file_input,
9
9
  model: OpenAI::Models::ImageEditParams::model?,
10
10
  n: Integer?,
11
+ output_compression: Integer?,
12
+ output_format: OpenAI::Models::ImageEditParams::output_format?,
11
13
  quality: OpenAI::Models::ImageEditParams::quality?,
12
14
  response_format: OpenAI::Models::ImageEditParams::response_format?,
13
15
  size: OpenAI::Models::ImageEditParams::size?,
@@ -33,6 +35,10 @@ module OpenAI
33
35
 
34
36
  attr_accessor n: Integer?
35
37
 
38
+ attr_accessor output_compression: Integer?
39
+
40
+ attr_accessor output_format: OpenAI::Models::ImageEditParams::output_format?
41
+
36
42
  attr_accessor quality: OpenAI::Models::ImageEditParams::quality?
37
43
 
38
44
  attr_accessor response_format: OpenAI::Models::ImageEditParams::response_format?
@@ -50,6 +56,8 @@ module OpenAI
50
56
  ?mask: OpenAI::Internal::file_input,
51
57
  ?model: OpenAI::Models::ImageEditParams::model?,
52
58
  ?n: Integer?,
59
+ ?output_compression: Integer?,
60
+ ?output_format: OpenAI::Models::ImageEditParams::output_format?,
53
61
  ?quality: OpenAI::Models::ImageEditParams::quality?,
54
62
  ?response_format: OpenAI::Models::ImageEditParams::response_format?,
55
63
  ?size: OpenAI::Models::ImageEditParams::size?,
@@ -64,6 +72,8 @@ module OpenAI
64
72
  mask: OpenAI::Internal::file_input,
65
73
  model: OpenAI::Models::ImageEditParams::model?,
66
74
  n: Integer?,
75
+ output_compression: Integer?,
76
+ output_format: OpenAI::Models::ImageEditParams::output_format?,
67
77
  quality: OpenAI::Models::ImageEditParams::quality?,
68
78
  response_format: OpenAI::Models::ImageEditParams::response_format?,
69
79
  size: OpenAI::Models::ImageEditParams::size?,
@@ -102,6 +112,18 @@ module OpenAI
102
112
  def self?.variants: -> ::Array[OpenAI::Models::ImageEditParams::model]
103
113
  end
104
114
 
115
+ type output_format = :png | :jpeg | :webp
116
+
117
+ module OutputFormat
118
+ extend OpenAI::Internal::Type::Enum
119
+
120
+ PNG: :png
121
+ JPEG: :jpeg
122
+ WEBP: :webp
123
+
124
+ def self?.values: -> ::Array[OpenAI::Models::ImageEditParams::output_format]
125
+ end
126
+
105
127
  type quality = :standard | :low | :medium | :high | :auto
106
128
 
107
129
  module Quality
@@ -7,7 +7,7 @@ module OpenAI
7
7
  created_at: Float,
8
8
  error: OpenAI::Responses::ResponseError?,
9
9
  incomplete_details: OpenAI::Responses::Response::IncompleteDetails?,
10
- instructions: String?,
10
+ instructions: OpenAI::Models::Responses::Response::instructions?,
11
11
  metadata: OpenAI::Models::metadata?,
12
12
  model: OpenAI::Models::responses_model,
13
13
  object: :response,
@@ -20,6 +20,7 @@ module OpenAI
20
20
  background: bool?,
21
21
  max_output_tokens: Integer?,
22
22
  previous_response_id: String?,
23
+ prompt: OpenAI::Responses::ResponsePrompt?,
23
24
  reasoning: OpenAI::Reasoning?,
24
25
  service_tier: OpenAI::Models::Responses::Response::service_tier?,
25
26
  status: OpenAI::Models::Responses::response_status,
@@ -38,7 +39,7 @@ module OpenAI
38
39
 
39
40
  attr_accessor incomplete_details: OpenAI::Responses::Response::IncompleteDetails?
40
41
 
41
- attr_accessor instructions: String?
42
+ attr_accessor instructions: OpenAI::Models::Responses::Response::instructions?
42
43
 
43
44
  attr_accessor metadata: OpenAI::Models::metadata?
44
45
 
@@ -64,6 +65,8 @@ module OpenAI
64
65
 
65
66
  attr_accessor previous_response_id: String?
66
67
 
68
+ attr_accessor prompt: OpenAI::Responses::ResponsePrompt?
69
+
67
70
  attr_accessor reasoning: OpenAI::Reasoning?
68
71
 
69
72
  attr_accessor service_tier: OpenAI::Models::Responses::Response::service_tier?
@@ -97,7 +100,7 @@ module OpenAI
97
100
  created_at: Float,
98
101
  error: OpenAI::Responses::ResponseError?,
99
102
  incomplete_details: OpenAI::Responses::Response::IncompleteDetails?,
100
- instructions: String?,
103
+ instructions: OpenAI::Models::Responses::Response::instructions?,
101
104
  metadata: OpenAI::Models::metadata?,
102
105
  model: OpenAI::Models::responses_model,
103
106
  output: ::Array[OpenAI::Models::Responses::response_output_item],
@@ -109,6 +112,7 @@ module OpenAI
109
112
  ?background: bool?,
110
113
  ?max_output_tokens: Integer?,
111
114
  ?previous_response_id: String?,
115
+ ?prompt: OpenAI::Responses::ResponsePrompt?,
112
116
  ?reasoning: OpenAI::Reasoning?,
113
117
  ?service_tier: OpenAI::Models::Responses::Response::service_tier?,
114
118
  ?status: OpenAI::Models::Responses::response_status,
@@ -124,7 +128,7 @@ module OpenAI
124
128
  created_at: Float,
125
129
  error: OpenAI::Responses::ResponseError?,
126
130
  incomplete_details: OpenAI::Responses::Response::IncompleteDetails?,
127
- instructions: String?,
131
+ instructions: OpenAI::Models::Responses::Response::instructions?,
128
132
  metadata: OpenAI::Models::metadata?,
129
133
  model: OpenAI::Models::responses_model,
130
134
  object: :response,
@@ -137,6 +141,7 @@ module OpenAI
137
141
  background: bool?,
138
142
  max_output_tokens: Integer?,
139
143
  previous_response_id: String?,
144
+ prompt: OpenAI::Responses::ResponsePrompt?,
140
145
  reasoning: OpenAI::Reasoning?,
141
146
  service_tier: OpenAI::Models::Responses::Response::service_tier?,
142
147
  status: OpenAI::Models::Responses::response_status,
@@ -178,6 +183,17 @@ module OpenAI
178
183
  end
179
184
  end
180
185
 
186
+ type instructions =
187
+ String | ::Array[OpenAI::Models::Responses::response_input_item]
188
+
189
+ module Instructions
190
+ extend OpenAI::Internal::Type::Union
191
+
192
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::Response::instructions]
193
+
194
+ ResponseInputItemArray: OpenAI::Internal::Type::Converter
195
+ end
196
+
181
197
  type tool_choice =
182
198
  OpenAI::Models::Responses::tool_choice_options
183
199
  | OpenAI::Responses::ToolChoiceTypes
@@ -189,7 +205,7 @@ module OpenAI
189
205
  def self?.variants: -> ::Array[OpenAI::Models::Responses::Response::tool_choice]
190
206
  end
191
207
 
192
- type service_tier = :auto | :default | :flex
208
+ type service_tier = :auto | :default | :flex | :scale
193
209
 
194
210
  module ServiceTier
195
211
  extend OpenAI::Internal::Type::Enum
@@ -197,6 +213,7 @@ module OpenAI
197
213
  AUTO: :auto
198
214
  DEFAULT: :default
199
215
  FLEX: :flex
216
+ SCALE: :scale
200
217
 
201
218
  def self?.values: -> ::Array[OpenAI::Models::Responses::Response::service_tier]
202
219
  end
@@ -4,6 +4,7 @@ module OpenAI
4
4
  type response_code_interpreter_call_code_delta_event =
5
5
  {
6
6
  delta: String,
7
+ item_id: String,
7
8
  output_index: Integer,
8
9
  sequence_number: Integer,
9
10
  type: :"response.code_interpreter_call_code.delta"
@@ -12,6 +13,8 @@ module OpenAI
12
13
  class ResponseCodeInterpreterCallCodeDeltaEvent < OpenAI::Internal::Type::BaseModel
13
14
  attr_accessor delta: String
14
15
 
16
+ attr_accessor item_id: String
17
+
15
18
  attr_accessor output_index: Integer
16
19
 
17
20
  attr_accessor sequence_number: Integer
@@ -20,6 +23,7 @@ module OpenAI
20
23
 
21
24
  def initialize: (
22
25
  delta: String,
26
+ item_id: String,
23
27
  output_index: Integer,
24
28
  sequence_number: Integer,
25
29
  ?type: :"response.code_interpreter_call_code.delta"
@@ -27,6 +31,7 @@ module OpenAI
27
31
 
28
32
  def to_hash: -> {
29
33
  delta: String,
34
+ item_id: String,
30
35
  output_index: Integer,
31
36
  sequence_number: Integer,
32
37
  type: :"response.code_interpreter_call_code.delta"
@@ -4,6 +4,7 @@ module OpenAI
4
4
  type response_code_interpreter_call_code_done_event =
5
5
  {
6
6
  code: String,
7
+ item_id: String,
7
8
  output_index: Integer,
8
9
  sequence_number: Integer,
9
10
  type: :"response.code_interpreter_call_code.done"
@@ -12,6 +13,8 @@ module OpenAI
12
13
  class ResponseCodeInterpreterCallCodeDoneEvent < OpenAI::Internal::Type::BaseModel
13
14
  attr_accessor code: String
14
15
 
16
+ attr_accessor item_id: String
17
+
15
18
  attr_accessor output_index: Integer
16
19
 
17
20
  attr_accessor sequence_number: Integer
@@ -20,6 +23,7 @@ module OpenAI
20
23
 
21
24
  def initialize: (
22
25
  code: String,
26
+ item_id: String,
23
27
  output_index: Integer,
24
28
  sequence_number: Integer,
25
29
  ?type: :"response.code_interpreter_call_code.done"
@@ -27,6 +31,7 @@ module OpenAI
27
31
 
28
32
  def to_hash: -> {
29
33
  code: String,
34
+ item_id: String,
30
35
  output_index: Integer,
31
36
  sequence_number: Integer,
32
37
  type: :"response.code_interpreter_call_code.done"
@@ -3,14 +3,14 @@ module OpenAI
3
3
  module Responses
4
4
  type response_code_interpreter_call_completed_event =
5
5
  {
6
- code_interpreter_call: OpenAI::Responses::ResponseCodeInterpreterToolCall,
6
+ item_id: String,
7
7
  output_index: Integer,
8
8
  sequence_number: Integer,
9
9
  type: :"response.code_interpreter_call.completed"
10
10
  }
11
11
 
12
12
  class ResponseCodeInterpreterCallCompletedEvent < OpenAI::Internal::Type::BaseModel
13
- attr_accessor code_interpreter_call: OpenAI::Responses::ResponseCodeInterpreterToolCall
13
+ attr_accessor item_id: String
14
14
 
15
15
  attr_accessor output_index: Integer
16
16
 
@@ -19,14 +19,14 @@ module OpenAI
19
19
  attr_accessor type: :"response.code_interpreter_call.completed"
20
20
 
21
21
  def initialize: (
22
- code_interpreter_call: OpenAI::Responses::ResponseCodeInterpreterToolCall,
22
+ item_id: String,
23
23
  output_index: Integer,
24
24
  sequence_number: Integer,
25
25
  ?type: :"response.code_interpreter_call.completed"
26
26
  ) -> void
27
27
 
28
28
  def to_hash: -> {
29
- code_interpreter_call: OpenAI::Responses::ResponseCodeInterpreterToolCall,
29
+ item_id: String,
30
30
  output_index: Integer,
31
31
  sequence_number: Integer,
32
32
  type: :"response.code_interpreter_call.completed"
@@ -3,14 +3,14 @@ module OpenAI
3
3
  module Responses
4
4
  type response_code_interpreter_call_in_progress_event =
5
5
  {
6
- code_interpreter_call: OpenAI::Responses::ResponseCodeInterpreterToolCall,
6
+ item_id: String,
7
7
  output_index: Integer,
8
8
  sequence_number: Integer,
9
9
  type: :"response.code_interpreter_call.in_progress"
10
10
  }
11
11
 
12
12
  class ResponseCodeInterpreterCallInProgressEvent < OpenAI::Internal::Type::BaseModel
13
- attr_accessor code_interpreter_call: OpenAI::Responses::ResponseCodeInterpreterToolCall
13
+ attr_accessor item_id: String
14
14
 
15
15
  attr_accessor output_index: Integer
16
16
 
@@ -19,14 +19,14 @@ module OpenAI
19
19
  attr_accessor type: :"response.code_interpreter_call.in_progress"
20
20
 
21
21
  def initialize: (
22
- code_interpreter_call: OpenAI::Responses::ResponseCodeInterpreterToolCall,
22
+ item_id: String,
23
23
  output_index: Integer,
24
24
  sequence_number: Integer,
25
25
  ?type: :"response.code_interpreter_call.in_progress"
26
26
  ) -> void
27
27
 
28
28
  def to_hash: -> {
29
- code_interpreter_call: OpenAI::Responses::ResponseCodeInterpreterToolCall,
29
+ item_id: String,
30
30
  output_index: Integer,
31
31
  sequence_number: Integer,
32
32
  type: :"response.code_interpreter_call.in_progress"
@@ -3,14 +3,14 @@ module OpenAI
3
3
  module Responses
4
4
  type response_code_interpreter_call_interpreting_event =
5
5
  {
6
- code_interpreter_call: OpenAI::Responses::ResponseCodeInterpreterToolCall,
6
+ item_id: String,
7
7
  output_index: Integer,
8
8
  sequence_number: Integer,
9
9
  type: :"response.code_interpreter_call.interpreting"
10
10
  }
11
11
 
12
12
  class ResponseCodeInterpreterCallInterpretingEvent < OpenAI::Internal::Type::BaseModel
13
- attr_accessor code_interpreter_call: OpenAI::Responses::ResponseCodeInterpreterToolCall
13
+ attr_accessor item_id: String
14
14
 
15
15
  attr_accessor output_index: Integer
16
16
 
@@ -19,14 +19,14 @@ module OpenAI
19
19
  attr_accessor type: :"response.code_interpreter_call.interpreting"
20
20
 
21
21
  def initialize: (
22
- code_interpreter_call: OpenAI::Responses::ResponseCodeInterpreterToolCall,
22
+ item_id: String,
23
23
  output_index: Integer,
24
24
  sequence_number: Integer,
25
25
  ?type: :"response.code_interpreter_call.interpreting"
26
26
  ) -> void
27
27
 
28
28
  def to_hash: -> {
29
- code_interpreter_call: OpenAI::Responses::ResponseCodeInterpreterToolCall,
29
+ item_id: String,
30
30
  output_index: Integer,
31
31
  sequence_number: Integer,
32
32
  type: :"response.code_interpreter_call.interpreting"
@@ -4,51 +4,49 @@ module OpenAI
4
4
  type response_code_interpreter_tool_call =
5
5
  {
6
6
  id: String,
7
- code: String,
8
- results: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::result],
7
+ code: String?,
8
+ container_id: String,
9
+ outputs: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::output]?,
9
10
  status: OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::status,
10
- type: :code_interpreter_call,
11
- container_id: String
11
+ type: :code_interpreter_call
12
12
  }
13
13
 
14
14
  class ResponseCodeInterpreterToolCall < OpenAI::Internal::Type::BaseModel
15
15
  attr_accessor id: String
16
16
 
17
- attr_accessor code: String
17
+ attr_accessor code: String?
18
18
 
19
- attr_accessor results: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::result]
19
+ attr_accessor container_id: String
20
+
21
+ attr_accessor outputs: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::output]?
20
22
 
21
23
  attr_accessor status: OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::status
22
24
 
23
25
  attr_accessor type: :code_interpreter_call
24
26
 
25
- attr_reader container_id: String?
26
-
27
- def container_id=: (String) -> String
28
-
29
27
  def initialize: (
30
28
  id: String,
31
- code: String,
32
- results: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::result],
29
+ code: String?,
30
+ container_id: String,
31
+ outputs: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::output]?,
33
32
  status: OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::status,
34
- ?container_id: String,
35
33
  ?type: :code_interpreter_call
36
34
  ) -> void
37
35
 
38
36
  def to_hash: -> {
39
37
  id: String,
40
- code: String,
41
- results: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::result],
38
+ code: String?,
39
+ container_id: String,
40
+ outputs: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::output]?,
42
41
  status: OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::status,
43
- type: :code_interpreter_call,
44
- container_id: String
42
+ type: :code_interpreter_call
45
43
  }
46
44
 
47
- type result =
48
- OpenAI::Responses::ResponseCodeInterpreterToolCall::Result::Logs
49
- | OpenAI::Responses::ResponseCodeInterpreterToolCall::Result::Files
45
+ type output =
46
+ OpenAI::Responses::ResponseCodeInterpreterToolCall::Output::Logs
47
+ | OpenAI::Responses::ResponseCodeInterpreterToolCall::Output::Image
50
48
 
51
- module Result
49
+ module Output
52
50
  extend OpenAI::Internal::Type::Union
53
51
 
54
52
  type logs = { logs: String, type: :logs }
@@ -63,51 +61,32 @@ module OpenAI
63
61
  def to_hash: -> { logs: String, type: :logs }
64
62
  end
65
63
 
66
- type files =
67
- {
68
- files: ::Array[OpenAI::Responses::ResponseCodeInterpreterToolCall::Result::Files::File],
69
- type: :files
70
- }
71
-
72
- class Files < OpenAI::Internal::Type::BaseModel
73
- attr_accessor files: ::Array[OpenAI::Responses::ResponseCodeInterpreterToolCall::Result::Files::File]
74
-
75
- attr_accessor type: :files
64
+ type image = { type: :image, url: String }
76
65
 
77
- def initialize: (
78
- files: ::Array[OpenAI::Responses::ResponseCodeInterpreterToolCall::Result::Files::File],
79
- ?type: :files
80
- ) -> void
66
+ class Image < OpenAI::Internal::Type::BaseModel
67
+ attr_accessor type: :image
81
68
 
82
- def to_hash: -> {
83
- files: ::Array[OpenAI::Responses::ResponseCodeInterpreterToolCall::Result::Files::File],
84
- type: :files
85
- }
69
+ attr_accessor url: String
86
70
 
87
- type file = { file_id: String, mime_type: String }
71
+ def initialize: (url: String, ?type: :image) -> void
88
72
 
89
- class File < OpenAI::Internal::Type::BaseModel
90
- attr_accessor file_id: String
91
-
92
- attr_accessor mime_type: String
93
-
94
- def initialize: (file_id: String, mime_type: String) -> void
95
-
96
- def to_hash: -> { file_id: String, mime_type: String }
97
- end
73
+ def to_hash: -> { type: :image, url: String }
98
74
  end
99
75
 
100
- def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::result]
76
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::output]
101
77
  end
102
78
 
103
- type status = :in_progress | :interpreting | :completed
79
+ type status =
80
+ :in_progress | :completed | :incomplete | :interpreting | :failed
104
81
 
105
82
  module Status
106
83
  extend OpenAI::Internal::Type::Enum
107
84
 
108
85
  IN_PROGRESS: :in_progress
109
- INTERPRETING: :interpreting
110
86
  COMPLETED: :completed
87
+ INCOMPLETE: :incomplete
88
+ INTERPRETING: :interpreting
89
+ FAILED: :failed
111
90
 
112
91
  def self?.values: -> ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::status]
113
92
  end