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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/README.md +1 -1
- data/lib/openai/errors.rb +25 -11
- data/lib/openai/internal/conversation_cursor_page.rb +1 -1
- data/lib/openai/internal/cursor_page.rb +1 -1
- data/lib/openai/internal/page.rb +1 -1
- data/lib/openai/internal/stream.rb +1 -0
- data/lib/openai/internal/transport/base_client.rb +11 -7
- data/lib/openai/internal/type/base_page.rb +1 -1
- data/lib/openai/internal/type/base_stream.rb +9 -1
- data/lib/openai/internal/util.rb +1 -1
- data/lib/openai/models/conversations/computer_screenshot_content.rb +2 -0
- data/lib/openai/models/conversations/conversation_item.rb +1 -0
- data/lib/openai/models/conversations/input_file_content.rb +1 -34
- data/lib/openai/models/conversations/input_image_content.rb +1 -54
- data/lib/openai/models/conversations/input_text_content.rb +1 -18
- data/lib/openai/models/conversations/message.rb +43 -8
- data/lib/openai/models/conversations/output_text_content.rb +1 -49
- data/lib/openai/models/conversations/refusal_content.rb +1 -18
- data/lib/openai/models/conversations/summary_text_content.rb +7 -2
- data/lib/openai/models/conversations/text_content.rb +2 -0
- data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +13 -1
- data/lib/openai/models/evals/run_cancel_response.rb +13 -1
- data/lib/openai/models/evals/run_create_params.rb +13 -1
- data/lib/openai/models/evals/run_create_response.rb +13 -1
- data/lib/openai/models/evals/run_list_response.rb +13 -1
- data/lib/openai/models/evals/run_retrieve_response.rb +13 -1
- data/lib/openai/models/evals/runs/output_item_list_response.rb +49 -4
- data/lib/openai/models/evals/runs/output_item_retrieve_response.rb +49 -4
- data/lib/openai/models/graders/score_model_grader.rb +56 -3
- data/lib/openai/models/responses/response_content.rb +25 -1
- data/lib/openai/models/responses/response_content_part_added_event.rb +27 -3
- data/lib/openai/models/responses/response_content_part_done_event.rb +27 -3
- data/lib/openai/models/responses/response_reasoning_item.rb +6 -8
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +5 -10
- data/rbi/openai/errors.rbi +29 -2
- data/rbi/openai/internal/transport/base_client.rbi +4 -5
- data/rbi/openai/internal/type/base_page.rbi +1 -1
- data/rbi/openai/internal/type/base_stream.rbi +16 -1
- data/rbi/openai/internal/util.rbi +1 -1
- data/rbi/openai/models/conversations/computer_screenshot_content.rbi +1 -0
- data/rbi/openai/models/conversations/input_file_content.rbi +1 -64
- data/rbi/openai/models/conversations/input_image_content.rbi +1 -105
- data/rbi/openai/models/conversations/input_text_content.rbi +1 -30
- data/rbi/openai/models/conversations/message.rbi +46 -10
- data/rbi/openai/models/conversations/output_text_content.rbi +1 -102
- data/rbi/openai/models/conversations/refusal_content.rbi +1 -30
- data/rbi/openai/models/conversations/summary_text_content.rbi +9 -1
- data/rbi/openai/models/conversations/text_content.rbi +1 -0
- data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +16 -0
- data/rbi/openai/models/evals/run_cancel_response.rbi +18 -0
- data/rbi/openai/models/evals/run_create_params.rbi +18 -0
- data/rbi/openai/models/evals/run_create_response.rbi +18 -0
- data/rbi/openai/models/evals/run_list_response.rbi +18 -0
- data/rbi/openai/models/evals/run_retrieve_response.rbi +18 -0
- data/rbi/openai/models/evals/runs/output_item_list_response.rbi +88 -5
- data/rbi/openai/models/evals/runs/output_item_retrieve_response.rbi +88 -5
- data/rbi/openai/models/graders/score_model_grader.rbi +88 -4
- data/rbi/openai/models/responses/response_content.rbi +34 -1
- data/rbi/openai/models/responses/response_content_part_added_event.rbi +36 -2
- data/rbi/openai/models/responses/response_content_part_done_event.rbi +36 -2
- data/rbi/openai/models/responses/response_reasoning_item.rbi +6 -4
- data/sig/openai/errors.rbs +7 -0
- data/sig/openai/internal/type/base_stream.rbs +5 -0
- data/sig/openai/models/conversations/input_file_content.rbs +1 -35
- data/sig/openai/models/conversations/input_image_content.rbs +1 -43
- data/sig/openai/models/conversations/input_text_content.rbs +1 -11
- data/sig/openai/models/conversations/message.rbs +18 -5
- data/sig/openai/models/conversations/output_text_content.rbs +1 -46
- data/sig/openai/models/conversations/refusal_content.rbs +1 -11
- data/sig/openai/models/evals/create_eval_completions_run_data_source.rbs +5 -0
- data/sig/openai/models/evals/run_cancel_response.rbs +5 -0
- data/sig/openai/models/evals/run_create_params.rbs +5 -0
- data/sig/openai/models/evals/run_create_response.rbs +5 -0
- data/sig/openai/models/evals/run_list_response.rbs +5 -0
- data/sig/openai/models/evals/run_retrieve_response.rbs +5 -0
- data/sig/openai/models/evals/runs/output_item_list_response.rbs +43 -4
- data/sig/openai/models/evals/runs/output_item_retrieve_response.rbs +43 -4
- data/sig/openai/models/graders/score_model_grader.rbs +44 -5
- data/sig/openai/models/responses/response_content.rbs +13 -0
- data/sig/openai/models/responses/response_content_part_added_event.rbs +13 -0
- data/sig/openai/models/responses/response_content_part_done_event.rbs +13 -0
- metadata +2 -17
- data/lib/openai/models/conversations/container_file_citation_body.rb +0 -58
- data/lib/openai/models/conversations/file_citation_body.rb +0 -42
- data/lib/openai/models/conversations/lob_prob.rb +0 -35
- data/lib/openai/models/conversations/top_log_prob.rb +0 -29
- data/lib/openai/models/conversations/url_citation_body.rb +0 -50
- data/rbi/openai/models/conversations/container_file_citation_body.rbi +0 -82
- data/rbi/openai/models/conversations/file_citation_body.rbi +0 -61
- data/rbi/openai/models/conversations/lob_prob.rbi +0 -50
- data/rbi/openai/models/conversations/top_log_prob.rbi +0 -41
- data/rbi/openai/models/conversations/url_citation_body.rbi +0 -74
- data/sig/openai/models/conversations/container_file_citation_body.rbs +0 -47
- data/sig/openai/models/conversations/file_citation_body.rbs +0 -37
- data/sig/openai/models/conversations/lob_prob.rbs +0 -37
- data/sig/openai/models/conversations/top_log_prob.rbs +0 -28
- data/sig/openai/models/conversations/url_citation_body.rbs +0 -42
data/lib/openai/version.rb
CHANGED
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"
|
data/rbi/openai/errors.rbi
CHANGED
@@ -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(
|
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(
|
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
|
-
|
97
|
-
|
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
|
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
|
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(
|
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
|
364
|
+
headers: T::Hash[String, String],
|
365
365
|
stream: T::Enumerable[String],
|
366
366
|
suppress_error: T::Boolean
|
367
367
|
).returns(T.anything)
|
@@ -3,70 +3,7 @@
|
|
3
3
|
module OpenAI
|
4
4
|
module Models
|
5
5
|
module Conversations
|
6
|
-
|
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
|
-
|
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
|
-
|
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::
|
43
|
-
OpenAI::
|
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::
|
47
|
-
OpenAI::
|
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::
|
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::
|
95
|
-
OpenAI::
|
97
|
+
OpenAI::Responses::ResponseInputText,
|
98
|
+
OpenAI::Responses::ResponseOutputText,
|
96
99
|
OpenAI::Conversations::TextContent,
|
97
100
|
OpenAI::Conversations::SummaryTextContent,
|
98
|
-
OpenAI::Conversations::
|
99
|
-
OpenAI::
|
101
|
+
OpenAI::Conversations::Message::Content::ReasoningText,
|
102
|
+
OpenAI::Responses::ResponseOutputRefusal,
|
103
|
+
OpenAI::Responses::ResponseInputImage,
|
100
104
|
OpenAI::Conversations::ComputerScreenshotContent,
|
101
|
-
OpenAI::
|
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
|
-
|
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
|