openai 0.23.3 → 0.25.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 (100) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +1 -1
  4. data/lib/openai/errors.rb +25 -11
  5. data/lib/openai/internal/conversation_cursor_page.rb +1 -1
  6. data/lib/openai/internal/cursor_page.rb +1 -1
  7. data/lib/openai/internal/page.rb +1 -1
  8. data/lib/openai/internal/stream.rb +1 -0
  9. data/lib/openai/internal/transport/base_client.rb +11 -7
  10. data/lib/openai/internal/type/base_page.rb +1 -1
  11. data/lib/openai/internal/type/base_stream.rb +9 -1
  12. data/lib/openai/internal/util.rb +1 -1
  13. data/lib/openai/models/conversations/computer_screenshot_content.rb +2 -0
  14. data/lib/openai/models/conversations/conversation_item.rb +1 -0
  15. data/lib/openai/models/conversations/input_file_content.rb +1 -34
  16. data/lib/openai/models/conversations/input_image_content.rb +1 -54
  17. data/lib/openai/models/conversations/input_text_content.rb +1 -18
  18. data/lib/openai/models/conversations/message.rb +43 -8
  19. data/lib/openai/models/conversations/output_text_content.rb +1 -49
  20. data/lib/openai/models/conversations/refusal_content.rb +1 -18
  21. data/lib/openai/models/conversations/summary_text_content.rb +7 -2
  22. data/lib/openai/models/conversations/text_content.rb +2 -0
  23. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +13 -1
  24. data/lib/openai/models/evals/run_cancel_response.rb +13 -1
  25. data/lib/openai/models/evals/run_create_params.rb +13 -1
  26. data/lib/openai/models/evals/run_create_response.rb +13 -1
  27. data/lib/openai/models/evals/run_list_response.rb +13 -1
  28. data/lib/openai/models/evals/run_retrieve_response.rb +13 -1
  29. data/lib/openai/models/evals/runs/output_item_list_response.rb +49 -4
  30. data/lib/openai/models/evals/runs/output_item_retrieve_response.rb +49 -4
  31. data/lib/openai/models/graders/score_model_grader.rb +56 -3
  32. data/lib/openai/models/responses/response_content.rb +25 -1
  33. data/lib/openai/models/responses/response_content_part_added_event.rb +27 -3
  34. data/lib/openai/models/responses/response_content_part_done_event.rb +27 -3
  35. data/lib/openai/models/responses/response_reasoning_item.rb +6 -8
  36. data/lib/openai/version.rb +1 -1
  37. data/lib/openai.rb +5 -10
  38. data/rbi/openai/errors.rbi +29 -2
  39. data/rbi/openai/internal/transport/base_client.rbi +4 -5
  40. data/rbi/openai/internal/type/base_page.rbi +1 -1
  41. data/rbi/openai/internal/type/base_stream.rbi +16 -1
  42. data/rbi/openai/internal/util.rbi +1 -1
  43. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +1 -0
  44. data/rbi/openai/models/conversations/input_file_content.rbi +1 -64
  45. data/rbi/openai/models/conversations/input_image_content.rbi +1 -105
  46. data/rbi/openai/models/conversations/input_text_content.rbi +1 -30
  47. data/rbi/openai/models/conversations/message.rbi +46 -10
  48. data/rbi/openai/models/conversations/output_text_content.rbi +1 -102
  49. data/rbi/openai/models/conversations/refusal_content.rbi +1 -30
  50. data/rbi/openai/models/conversations/summary_text_content.rbi +9 -1
  51. data/rbi/openai/models/conversations/text_content.rbi +1 -0
  52. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +16 -0
  53. data/rbi/openai/models/evals/run_cancel_response.rbi +18 -0
  54. data/rbi/openai/models/evals/run_create_params.rbi +18 -0
  55. data/rbi/openai/models/evals/run_create_response.rbi +18 -0
  56. data/rbi/openai/models/evals/run_list_response.rbi +18 -0
  57. data/rbi/openai/models/evals/run_retrieve_response.rbi +18 -0
  58. data/rbi/openai/models/evals/runs/output_item_list_response.rbi +88 -5
  59. data/rbi/openai/models/evals/runs/output_item_retrieve_response.rbi +88 -5
  60. data/rbi/openai/models/graders/score_model_grader.rbi +88 -4
  61. data/rbi/openai/models/responses/response_content.rbi +34 -1
  62. data/rbi/openai/models/responses/response_content_part_added_event.rbi +36 -2
  63. data/rbi/openai/models/responses/response_content_part_done_event.rbi +36 -2
  64. data/rbi/openai/models/responses/response_reasoning_item.rbi +6 -4
  65. data/sig/openai/errors.rbs +7 -0
  66. data/sig/openai/internal/type/base_stream.rbs +5 -0
  67. data/sig/openai/models/conversations/input_file_content.rbs +1 -35
  68. data/sig/openai/models/conversations/input_image_content.rbs +1 -43
  69. data/sig/openai/models/conversations/input_text_content.rbs +1 -11
  70. data/sig/openai/models/conversations/message.rbs +18 -5
  71. data/sig/openai/models/conversations/output_text_content.rbs +1 -46
  72. data/sig/openai/models/conversations/refusal_content.rbs +1 -11
  73. data/sig/openai/models/evals/create_eval_completions_run_data_source.rbs +5 -0
  74. data/sig/openai/models/evals/run_cancel_response.rbs +5 -0
  75. data/sig/openai/models/evals/run_create_params.rbs +5 -0
  76. data/sig/openai/models/evals/run_create_response.rbs +5 -0
  77. data/sig/openai/models/evals/run_list_response.rbs +5 -0
  78. data/sig/openai/models/evals/run_retrieve_response.rbs +5 -0
  79. data/sig/openai/models/evals/runs/output_item_list_response.rbs +43 -4
  80. data/sig/openai/models/evals/runs/output_item_retrieve_response.rbs +43 -4
  81. data/sig/openai/models/graders/score_model_grader.rbs +44 -5
  82. data/sig/openai/models/responses/response_content.rbs +13 -0
  83. data/sig/openai/models/responses/response_content_part_added_event.rbs +13 -0
  84. data/sig/openai/models/responses/response_content_part_done_event.rbs +13 -0
  85. metadata +2 -17
  86. data/lib/openai/models/conversations/container_file_citation_body.rb +0 -58
  87. data/lib/openai/models/conversations/file_citation_body.rb +0 -42
  88. data/lib/openai/models/conversations/lob_prob.rb +0 -35
  89. data/lib/openai/models/conversations/top_log_prob.rb +0 -29
  90. data/lib/openai/models/conversations/url_citation_body.rb +0 -50
  91. data/rbi/openai/models/conversations/container_file_citation_body.rbi +0 -82
  92. data/rbi/openai/models/conversations/file_citation_body.rbi +0 -61
  93. data/rbi/openai/models/conversations/lob_prob.rbi +0 -50
  94. data/rbi/openai/models/conversations/top_log_prob.rbi +0 -41
  95. data/rbi/openai/models/conversations/url_citation_body.rbi +0 -74
  96. data/sig/openai/models/conversations/container_file_citation_body.rbs +0 -47
  97. data/sig/openai/models/conversations/file_citation_body.rbs +0 -37
  98. data/sig/openai/models/conversations/lob_prob.rbs +0 -37
  99. data/sig/openai/models/conversations/top_log_prob.rbs +0 -28
  100. data/sig/openai/models/conversations/url_citation_body.rbs +0 -42
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.23.3"
4
+ VERSION = "0.25.0"
5
5
  end
data/lib/openai.rb CHANGED
@@ -62,6 +62,11 @@ require_relative "openai/helpers/structured_output"
62
62
  require_relative "openai/structured_output"
63
63
  require_relative "openai/models/reasoning_effort"
64
64
  require_relative "openai/models/chat/chat_completion_message"
65
+ require_relative "openai/models/responses/response_input_file"
66
+ require_relative "openai/models/responses/response_input_image"
67
+ require_relative "openai/models/responses/response_input_text"
68
+ require_relative "openai/models/responses/response_output_text"
69
+ require_relative "openai/models/responses/response_output_refusal"
65
70
  require_relative "openai/models/graders/score_model_grader"
66
71
  require_relative "openai/models/graders/python_grader"
67
72
  require_relative "openai/models/graders/text_similarity_grader"
@@ -248,7 +253,6 @@ require_relative "openai/models/containers/file_retrieve_params"
248
253
  require_relative "openai/models/containers/file_retrieve_response"
249
254
  require_relative "openai/models/containers/files/content_retrieve_params"
250
255
  require_relative "openai/models/conversations/computer_screenshot_content"
251
- require_relative "openai/models/conversations/container_file_citation_body"
252
256
  require_relative "openai/models/conversations/conversation"
253
257
  require_relative "openai/models/conversations/conversation_create_params"
254
258
  require_relative "openai/models/conversations/conversation_deleted"
@@ -258,7 +262,6 @@ require_relative "openai/models/conversations/conversation_item"
258
262
  require_relative "openai/models/conversations/conversation_item_list"
259
263
  require_relative "openai/models/conversations/conversation_retrieve_params"
260
264
  require_relative "openai/models/conversations/conversation_update_params"
261
- require_relative "openai/models/conversations/file_citation_body"
262
265
  require_relative "openai/models/conversations/input_file_content"
263
266
  require_relative "openai/models/conversations/input_image_content"
264
267
  require_relative "openai/models/conversations/input_text_content"
@@ -266,14 +269,11 @@ require_relative "openai/models/conversations/item_create_params"
266
269
  require_relative "openai/models/conversations/item_delete_params"
267
270
  require_relative "openai/models/conversations/item_list_params"
268
271
  require_relative "openai/models/conversations/item_retrieve_params"
269
- require_relative "openai/models/conversations/lob_prob"
270
272
  require_relative "openai/models/conversations/message"
271
273
  require_relative "openai/models/conversations/output_text_content"
272
274
  require_relative "openai/models/conversations/refusal_content"
273
275
  require_relative "openai/models/conversations/summary_text_content"
274
276
  require_relative "openai/models/conversations/text_content"
275
- require_relative "openai/models/conversations/top_log_prob"
276
- require_relative "openai/models/conversations/url_citation_body"
277
277
  require_relative "openai/models/create_embedding_response"
278
278
  require_relative "openai/models/custom_tool_input_format"
279
279
  require_relative "openai/models/embedding"
@@ -549,12 +549,9 @@ require_relative "openai/models/responses/response_in_progress_event"
549
549
  require_relative "openai/models/responses/response_input"
550
550
  require_relative "openai/models/responses/response_input_audio"
551
551
  require_relative "openai/models/responses/response_input_content"
552
- require_relative "openai/models/responses/response_input_file"
553
- require_relative "openai/models/responses/response_input_image"
554
552
  require_relative "openai/models/responses/response_input_item"
555
553
  require_relative "openai/models/responses/response_input_message_content_list"
556
554
  require_relative "openai/models/responses/response_input_message_item"
557
- require_relative "openai/models/responses/response_input_text"
558
555
  require_relative "openai/models/responses/response_item"
559
556
  require_relative "openai/models/responses/response_item_list"
560
557
  require_relative "openai/models/responses/response_mcp_call_arguments_delta_event"
@@ -570,8 +567,6 @@ require_relative "openai/models/responses/response_output_item"
570
567
  require_relative "openai/models/responses/response_output_item_added_event"
571
568
  require_relative "openai/models/responses/response_output_item_done_event"
572
569
  require_relative "openai/models/responses/response_output_message"
573
- require_relative "openai/models/responses/response_output_refusal"
574
- require_relative "openai/models/responses/response_output_text"
575
570
  require_relative "openai/models/responses/response_output_text_annotation_added_event"
576
571
  require_relative "openai/models/responses/response_prompt"
577
572
  require_relative "openai/models/responses/response_queued_event"
@@ -33,6 +33,9 @@ module OpenAI
33
33
  sig { returns(T.nilable(Integer)) }
34
34
  attr_accessor :status
35
35
 
36
+ sig { returns(T.nilable(T::Hash[String, String])) }
37
+ attr_accessor :headers
38
+
36
39
  sig { returns(T.nilable(T.anything)) }
37
40
  attr_accessor :body
38
41
 
@@ -50,6 +53,7 @@ module OpenAI
50
53
  params(
51
54
  url: URI::Generic,
52
55
  status: T.nilable(Integer),
56
+ headers: T.nilable(T::Hash[String, String]),
53
57
  body: T.nilable(Object),
54
58
  request: NilClass,
55
59
  response: NilClass,
@@ -59,6 +63,7 @@ module OpenAI
59
63
  def self.new(
60
64
  url:,
61
65
  status: nil,
66
+ headers: nil,
62
67
  body: nil,
63
68
  request: nil,
64
69
  response: nil,
@@ -88,6 +93,7 @@ module OpenAI
88
93
  params(
89
94
  url: URI::Generic,
90
95
  status: NilClass,
96
+ headers: T.nilable(T::Hash[String, String]),
91
97
  body: NilClass,
92
98
  request: NilClass,
93
99
  response: NilClass,
@@ -97,6 +103,7 @@ module OpenAI
97
103
  def self.new(
98
104
  url:,
99
105
  status: nil,
106
+ headers: nil,
100
107
  body: nil,
101
108
  request: nil,
102
109
  response: nil,
@@ -111,6 +118,7 @@ module OpenAI
111
118
  params(
112
119
  url: URI::Generic,
113
120
  status: NilClass,
121
+ headers: T.nilable(T::Hash[String, String]),
114
122
  body: NilClass,
115
123
  request: NilClass,
116
124
  response: NilClass,
@@ -120,6 +128,7 @@ module OpenAI
120
128
  def self.new(
121
129
  url:,
122
130
  status: nil,
131
+ headers: nil,
123
132
  body: nil,
124
133
  request: nil,
125
134
  response: nil,
@@ -134,13 +143,22 @@ module OpenAI
134
143
  params(
135
144
  url: URI::Generic,
136
145
  status: Integer,
146
+ headers: T.nilable(T::Hash[String, String]),
137
147
  body: T.nilable(Object),
138
148
  request: NilClass,
139
149
  response: NilClass,
140
150
  message: T.nilable(String)
141
151
  ).returns(T.attached_class)
142
152
  end
143
- def self.for(url:, status:, body:, request:, response:, message: nil)
153
+ def self.for(
154
+ url:,
155
+ status:,
156
+ headers:,
157
+ body:,
158
+ request:,
159
+ response:,
160
+ message: nil
161
+ )
144
162
  end
145
163
 
146
164
  sig { returns(Integer) }
@@ -160,13 +178,22 @@ module OpenAI
160
178
  params(
161
179
  url: URI::Generic,
162
180
  status: Integer,
181
+ headers: T.nilable(T::Hash[String, String]),
163
182
  body: T.nilable(Object),
164
183
  request: NilClass,
165
184
  response: NilClass,
166
185
  message: T.nilable(String)
167
186
  ).returns(T.attached_class)
168
187
  end
169
- def self.new(url:, status:, body:, request:, response:, message: nil)
188
+ def self.new(
189
+ url:,
190
+ status:,
191
+ headers:,
192
+ body:,
193
+ request:,
194
+ response:,
195
+ message: nil
196
+ )
170
197
  end
171
198
  end
172
199
 
@@ -92,10 +92,9 @@ module OpenAI
92
92
 
93
93
  # @api private
94
94
  sig do
95
- params(
96
- status: Integer,
97
- headers: T.any(T::Hash[String, String], Net::HTTPHeader)
98
- ).returns(T::Boolean)
95
+ params(status: Integer, headers: T::Hash[String, String]).returns(
96
+ T::Boolean
97
+ )
99
98
  end
100
99
  def should_retry?(status, headers:)
101
100
  end
@@ -105,7 +104,7 @@ module OpenAI
105
104
  params(
106
105
  request: OpenAI::Internal::Transport::BaseClient::RequestInput,
107
106
  status: Integer,
108
- response_headers: T.any(T::Hash[String, String], Net::HTTPHeader)
107
+ response_headers: T::Hash[String, String]
109
108
  ).returns(OpenAI::Internal::Transport::BaseClient::RequestInput)
110
109
  end
111
110
  def follow_redirect(request, status:, response_headers:)
@@ -30,7 +30,7 @@ module OpenAI
30
30
  params(
31
31
  client: OpenAI::Internal::Transport::BaseClient,
32
32
  req: OpenAI::Internal::Transport::BaseClient::RequestComponents,
33
- headers: T.any(T::Hash[String, String], Net::HTTPHeader),
33
+ headers: T::Hash[String, String],
34
34
  page_data: T.anything
35
35
  ).void
36
36
  end
@@ -27,6 +27,12 @@ module OpenAI
27
27
  end
28
28
  end
29
29
 
30
+ sig { returns(Integer) }
31
+ attr_reader :status
32
+
33
+ sig { returns(T::Hash[String, String]) }
34
+ attr_reader :headers
35
+
30
36
  sig { void }
31
37
  def close
32
38
  end
@@ -51,6 +57,7 @@ module OpenAI
51
57
  T.any(T::Class[T.anything], OpenAI::Internal::Type::Converter),
52
58
  url: URI::Generic,
53
59
  status: Integer,
60
+ headers: T::Hash[String, String],
54
61
  response: Net::HTTPResponse,
55
62
  unwrap:
56
63
  T.any(
@@ -62,7 +69,15 @@ module OpenAI
62
69
  stream: T::Enumerable[Message]
63
70
  ).void
64
71
  end
65
- def initialize(model:, url:, status:, response:, unwrap:, stream:)
72
+ def initialize(
73
+ model:,
74
+ url:,
75
+ status:,
76
+ headers:,
77
+ response:,
78
+ unwrap:,
79
+ stream:
80
+ )
66
81
  end
67
82
 
68
83
  # @api private
@@ -361,7 +361,7 @@ module OpenAI
361
361
  # Assumes each chunk in stream has `Encoding::BINARY`.
362
362
  sig do
363
363
  params(
364
- headers: T.any(T::Hash[String, String], Net::HTTPHeader),
364
+ headers: T::Hash[String, String],
365
365
  stream: T::Enumerable[String],
366
366
  suppress_error: T::Boolean
367
367
  ).returns(T.anything)
@@ -25,6 +25,7 @@ module OpenAI
25
25
  sig { returns(Symbol) }
26
26
  attr_accessor :type
27
27
 
28
+ # A screenshot of a computer.
28
29
  sig do
29
30
  params(
30
31
  file_id: T.nilable(String),
@@ -3,70 +3,7 @@
3
3
  module OpenAI
4
4
  module Models
5
5
  module Conversations
6
- class InputFileContent < OpenAI::Internal::Type::BaseModel
7
- OrHash =
8
- T.type_alias do
9
- T.any(
10
- OpenAI::Conversations::InputFileContent,
11
- OpenAI::Internal::AnyHash
12
- )
13
- end
14
-
15
- # The ID of the file to be sent to the model.
16
- sig { returns(T.nilable(String)) }
17
- attr_accessor :file_id
18
-
19
- # The type of the input item. Always `input_file`.
20
- sig { returns(Symbol) }
21
- attr_accessor :type
22
-
23
- # The URL of the file to be sent to the model.
24
- sig { returns(T.nilable(String)) }
25
- attr_reader :file_url
26
-
27
- sig { params(file_url: String).void }
28
- attr_writer :file_url
29
-
30
- # The name of the file to be sent to the model.
31
- sig { returns(T.nilable(String)) }
32
- attr_reader :filename
33
-
34
- sig { params(filename: String).void }
35
- attr_writer :filename
36
-
37
- sig do
38
- params(
39
- file_id: T.nilable(String),
40
- file_url: String,
41
- filename: String,
42
- type: Symbol
43
- ).returns(T.attached_class)
44
- end
45
- def self.new(
46
- # The ID of the file to be sent to the model.
47
- file_id:,
48
- # The URL of the file to be sent to the model.
49
- file_url: nil,
50
- # The name of the file to be sent to the model.
51
- filename: nil,
52
- # The type of the input item. Always `input_file`.
53
- type: :input_file
54
- )
55
- end
56
-
57
- sig do
58
- override.returns(
59
- {
60
- file_id: T.nilable(String),
61
- type: Symbol,
62
- file_url: String,
63
- filename: String
64
- }
65
- )
66
- end
67
- def to_hash
68
- end
69
- end
6
+ InputFileContent = OpenAI::Models::Responses::ResponseInputFile
70
7
  end
71
8
  end
72
9
  end
@@ -3,111 +3,7 @@
3
3
  module OpenAI
4
4
  module Models
5
5
  module Conversations
6
- class InputImageContent < OpenAI::Internal::Type::BaseModel
7
- OrHash =
8
- T.type_alias do
9
- T.any(
10
- OpenAI::Conversations::InputImageContent,
11
- OpenAI::Internal::AnyHash
12
- )
13
- end
14
-
15
- # The detail level of the image to be sent to the model. One of `high`, `low`, or
16
- # `auto`. Defaults to `auto`.
17
- sig do
18
- returns(
19
- OpenAI::Conversations::InputImageContent::Detail::TaggedSymbol
20
- )
21
- end
22
- attr_accessor :detail
23
-
24
- # The ID of the file to be sent to the model.
25
- sig { returns(T.nilable(String)) }
26
- attr_accessor :file_id
27
-
28
- # The URL of the image to be sent to the model. A fully qualified URL or base64
29
- # encoded image in a data URL.
30
- sig { returns(T.nilable(String)) }
31
- attr_accessor :image_url
32
-
33
- # The type of the input item. Always `input_image`.
34
- sig { returns(Symbol) }
35
- attr_accessor :type
36
-
37
- sig do
38
- params(
39
- detail: OpenAI::Conversations::InputImageContent::Detail::OrSymbol,
40
- file_id: T.nilable(String),
41
- image_url: T.nilable(String),
42
- type: Symbol
43
- ).returns(T.attached_class)
44
- end
45
- def self.new(
46
- # The detail level of the image to be sent to the model. One of `high`, `low`, or
47
- # `auto`. Defaults to `auto`.
48
- detail:,
49
- # The ID of the file to be sent to the model.
50
- file_id:,
51
- # The URL of the image to be sent to the model. A fully qualified URL or base64
52
- # encoded image in a data URL.
53
- image_url:,
54
- # The type of the input item. Always `input_image`.
55
- type: :input_image
56
- )
57
- end
58
-
59
- sig do
60
- override.returns(
61
- {
62
- detail:
63
- OpenAI::Conversations::InputImageContent::Detail::TaggedSymbol,
64
- file_id: T.nilable(String),
65
- image_url: T.nilable(String),
66
- type: Symbol
67
- }
68
- )
69
- end
70
- def to_hash
71
- end
72
-
73
- # The detail level of the image to be sent to the model. One of `high`, `low`, or
74
- # `auto`. Defaults to `auto`.
75
- module Detail
76
- extend OpenAI::Internal::Type::Enum
77
-
78
- TaggedSymbol =
79
- T.type_alias do
80
- T.all(Symbol, OpenAI::Conversations::InputImageContent::Detail)
81
- end
82
- OrSymbol = T.type_alias { T.any(Symbol, String) }
83
-
84
- LOW =
85
- T.let(
86
- :low,
87
- OpenAI::Conversations::InputImageContent::Detail::TaggedSymbol
88
- )
89
- HIGH =
90
- T.let(
91
- :high,
92
- OpenAI::Conversations::InputImageContent::Detail::TaggedSymbol
93
- )
94
- AUTO =
95
- T.let(
96
- :auto,
97
- OpenAI::Conversations::InputImageContent::Detail::TaggedSymbol
98
- )
99
-
100
- sig do
101
- override.returns(
102
- T::Array[
103
- OpenAI::Conversations::InputImageContent::Detail::TaggedSymbol
104
- ]
105
- )
106
- end
107
- def self.values
108
- end
109
- end
110
- end
6
+ InputImageContent = OpenAI::Models::Responses::ResponseInputImage
111
7
  end
112
8
  end
113
9
  end
@@ -3,36 +3,7 @@
3
3
  module OpenAI
4
4
  module Models
5
5
  module Conversations
6
- class InputTextContent < OpenAI::Internal::Type::BaseModel
7
- OrHash =
8
- T.type_alias do
9
- T.any(
10
- OpenAI::Conversations::InputTextContent,
11
- OpenAI::Internal::AnyHash
12
- )
13
- end
14
-
15
- # The text input to the model.
16
- sig { returns(String) }
17
- attr_accessor :text
18
-
19
- # The type of the input item. Always `input_text`.
20
- sig { returns(Symbol) }
21
- attr_accessor :type
22
-
23
- sig { params(text: String, type: Symbol).returns(T.attached_class) }
24
- def self.new(
25
- # The text input to the model.
26
- text:,
27
- # The type of the input item. Always `input_text`.
28
- type: :input_text
29
- )
30
- end
31
-
32
- sig { override.returns({ text: String, type: Symbol }) }
33
- def to_hash
34
- end
35
- end
6
+ InputTextContent = OpenAI::Models::Responses::ResponseInputText
36
7
  end
37
8
  end
38
9
  end
@@ -33,20 +33,22 @@ module OpenAI
33
33
  sig { returns(Symbol) }
34
34
  attr_accessor :type
35
35
 
36
+ # A message to or from the model.
36
37
  sig do
37
38
  params(
38
39
  id: String,
39
40
  content:
40
41
  T::Array[
41
42
  T.any(
42
- OpenAI::Conversations::InputTextContent::OrHash,
43
- OpenAI::Conversations::OutputTextContent::OrHash,
43
+ OpenAI::Responses::ResponseInputText::OrHash,
44
+ OpenAI::Responses::ResponseOutputText::OrHash,
44
45
  OpenAI::Conversations::TextContent::OrHash,
45
46
  OpenAI::Conversations::SummaryTextContent::OrHash,
46
- OpenAI::Conversations::RefusalContent::OrHash,
47
- OpenAI::Conversations::InputImageContent::OrHash,
47
+ OpenAI::Conversations::Message::Content::ReasoningText::OrHash,
48
+ OpenAI::Responses::ResponseOutputRefusal::OrHash,
49
+ OpenAI::Responses::ResponseInputImage::OrHash,
48
50
  OpenAI::Conversations::ComputerScreenshotContent::OrHash,
49
- OpenAI::Conversations::InputFileContent::OrHash
51
+ OpenAI::Responses::ResponseInputFile::OrHash
50
52
  )
51
53
  ],
52
54
  role: OpenAI::Conversations::Message::Role::OrSymbol,
@@ -85,23 +87,57 @@ module OpenAI
85
87
  def to_hash
86
88
  end
87
89
 
90
+ # A text input to the model.
88
91
  module Content
89
92
  extend OpenAI::Internal::Type::Union
90
93
 
91
94
  Variants =
92
95
  T.type_alias do
93
96
  T.any(
94
- OpenAI::Conversations::InputTextContent,
95
- OpenAI::Conversations::OutputTextContent,
97
+ OpenAI::Responses::ResponseInputText,
98
+ OpenAI::Responses::ResponseOutputText,
96
99
  OpenAI::Conversations::TextContent,
97
100
  OpenAI::Conversations::SummaryTextContent,
98
- OpenAI::Conversations::RefusalContent,
99
- OpenAI::Conversations::InputImageContent,
101
+ OpenAI::Conversations::Message::Content::ReasoningText,
102
+ OpenAI::Responses::ResponseOutputRefusal,
103
+ OpenAI::Responses::ResponseInputImage,
100
104
  OpenAI::Conversations::ComputerScreenshotContent,
101
- OpenAI::Conversations::InputFileContent
105
+ OpenAI::Responses::ResponseInputFile
102
106
  )
103
107
  end
104
108
 
109
+ class ReasoningText < OpenAI::Internal::Type::BaseModel
110
+ OrHash =
111
+ T.type_alias do
112
+ T.any(
113
+ OpenAI::Conversations::Message::Content::ReasoningText,
114
+ OpenAI::Internal::AnyHash
115
+ )
116
+ end
117
+
118
+ # The reasoning text from the model.
119
+ sig { returns(String) }
120
+ attr_accessor :text
121
+
122
+ # The type of the reasoning text. Always `reasoning_text`.
123
+ sig { returns(Symbol) }
124
+ attr_accessor :type
125
+
126
+ # Reasoning text from the model.
127
+ sig { params(text: String, type: Symbol).returns(T.attached_class) }
128
+ def self.new(
129
+ # The reasoning text from the model.
130
+ text:,
131
+ # The type of the reasoning text. Always `reasoning_text`.
132
+ type: :reasoning_text
133
+ )
134
+ end
135
+
136
+ sig { override.returns({ text: String, type: Symbol }) }
137
+ def to_hash
138
+ end
139
+ end
140
+
105
141
  sig do
106
142
  override.returns(
107
143
  T::Array[OpenAI::Conversations::Message::Content::Variants]
@@ -3,108 +3,7 @@
3
3
  module OpenAI
4
4
  module Models
5
5
  module Conversations
6
- class OutputTextContent < OpenAI::Internal::Type::BaseModel
7
- OrHash =
8
- T.type_alias do
9
- T.any(
10
- OpenAI::Conversations::OutputTextContent,
11
- OpenAI::Internal::AnyHash
12
- )
13
- end
14
-
15
- # The annotations of the text output.
16
- sig do
17
- returns(
18
- T::Array[
19
- OpenAI::Conversations::OutputTextContent::Annotation::Variants
20
- ]
21
- )
22
- end
23
- attr_accessor :annotations
24
-
25
- # The text output from the model.
26
- sig { returns(String) }
27
- attr_accessor :text
28
-
29
- # The type of the output text. Always `output_text`.
30
- sig { returns(Symbol) }
31
- attr_accessor :type
32
-
33
- sig { returns(T.nilable(T::Array[OpenAI::Conversations::LobProb])) }
34
- attr_reader :logprobs
35
-
36
- sig do
37
- params(
38
- logprobs: T::Array[OpenAI::Conversations::LobProb::OrHash]
39
- ).void
40
- end
41
- attr_writer :logprobs
42
-
43
- sig do
44
- params(
45
- annotations:
46
- T::Array[
47
- T.any(
48
- OpenAI::Conversations::FileCitationBody::OrHash,
49
- OpenAI::Conversations::URLCitationBody::OrHash,
50
- OpenAI::Conversations::ContainerFileCitationBody::OrHash
51
- )
52
- ],
53
- text: String,
54
- logprobs: T::Array[OpenAI::Conversations::LobProb::OrHash],
55
- type: Symbol
56
- ).returns(T.attached_class)
57
- end
58
- def self.new(
59
- # The annotations of the text output.
60
- annotations:,
61
- # The text output from the model.
62
- text:,
63
- logprobs: nil,
64
- # The type of the output text. Always `output_text`.
65
- type: :output_text
66
- )
67
- end
68
-
69
- sig do
70
- override.returns(
71
- {
72
- annotations:
73
- T::Array[
74
- OpenAI::Conversations::OutputTextContent::Annotation::Variants
75
- ],
76
- text: String,
77
- type: Symbol,
78
- logprobs: T::Array[OpenAI::Conversations::LobProb]
79
- }
80
- )
81
- end
82
- def to_hash
83
- end
84
-
85
- module Annotation
86
- extend OpenAI::Internal::Type::Union
87
-
88
- Variants =
89
- T.type_alias do
90
- T.any(
91
- OpenAI::Conversations::FileCitationBody,
92
- OpenAI::Conversations::URLCitationBody,
93
- OpenAI::Conversations::ContainerFileCitationBody
94
- )
95
- end
96
-
97
- sig do
98
- override.returns(
99
- T::Array[
100
- OpenAI::Conversations::OutputTextContent::Annotation::Variants
101
- ]
102
- )
103
- end
104
- def self.variants
105
- end
106
- end
107
- end
6
+ OutputTextContent = OpenAI::Models::Responses::ResponseOutputText
108
7
  end
109
8
  end
110
9
  end