openai 0.56.0 → 0.58.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 +60 -0
- data/README.md +98 -1
- data/lib/openai/auth/subject_token_provider.rb +15 -0
- data/lib/openai/auth/subject_token_providers/azure_managed_identity_token_provider.rb +88 -0
- data/lib/openai/auth/subject_token_providers/gcp_id_token_provider.rb +66 -0
- data/lib/openai/auth/subject_token_providers/k8s_service_account_token_provider.rb +37 -0
- data/lib/openai/auth/token_type.rb +10 -0
- data/lib/openai/auth/workload_identity.rb +23 -0
- data/lib/openai/auth/workload_identity_auth.rb +176 -0
- data/lib/openai/client.rb +59 -4
- data/lib/openai/errors.rb +39 -0
- data/lib/openai/internal/util.rb +22 -7
- data/lib/openai/models/conversations/conversation_item.rb +4 -1
- data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
- data/lib/openai/models/conversations/message.rb +28 -1
- data/lib/openai/models/oauth_error_code.rb +29 -0
- data/lib/openai/models/realtime/realtime_session_create_request.rb +4 -3
- data/lib/openai/models/realtime/realtime_session_create_response.rb +7 -5
- data/lib/openai/models/realtime/realtime_tracing_config.rb +3 -2
- data/lib/openai/models/responses/compacted_response.rb +2 -2
- data/lib/openai/models/responses/computer_action.rb +45 -5
- data/lib/openai/models/responses/response.rb +2 -2
- data/lib/openai/models/responses/response_computer_tool_call.rb +45 -5
- data/lib/openai/models/responses/response_computer_tool_call_output_item.rb +31 -22
- data/lib/openai/models/responses/response_custom_tool_call_item.rb +53 -0
- data/lib/openai/models/responses/response_custom_tool_call_output_item.rb +53 -0
- data/lib/openai/models/responses/response_function_tool_call_item.rb +31 -1
- data/lib/openai/models/responses/response_function_tool_call_output_item.rb +14 -6
- data/lib/openai/models/responses/response_input_message_item.rb +8 -20
- data/lib/openai/models/responses/response_item.rb +16 -1
- data/lib/openai/models/responses/response_item_list.rb +2 -2
- data/lib/openai/models/responses/response_output_item.rb +120 -1
- data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
- data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
- data/lib/openai/models/vector_stores/file_batch_create_params.rb +9 -5
- data/lib/openai/models/vector_stores/file_create_params.rb +3 -1
- data/lib/openai/models.rb +2 -0
- data/lib/openai/resources/conversations/items.rb +2 -2
- data/lib/openai/resources/realtime/calls.rb +1 -1
- data/lib/openai/resources/responses/input_items.rb +1 -1
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +12 -2
- data/rbi/openai/auth.rbi +55 -0
- data/rbi/openai/internal/util.rbi +8 -0
- data/rbi/openai/models/conversations/conversation_item.rbi +1 -0
- data/rbi/openai/models/conversations/conversation_item_list.rbi +1 -0
- data/rbi/openai/models/conversations/message.rbi +53 -1
- data/rbi/openai/models/oauth_error_code.rbi +24 -0
- data/rbi/openai/models/realtime/realtime_session_create_request.rbi +6 -4
- data/rbi/openai/models/realtime/realtime_session_create_response.rbi +9 -6
- data/rbi/openai/models/realtime/realtime_tracing_config.rbi +3 -2
- data/rbi/openai/models/responses/compacted_response.rbi +6 -1
- data/rbi/openai/models/responses/computer_action.rbi +71 -11
- data/rbi/openai/models/responses/response.rbi +6 -1
- data/rbi/openai/models/responses/response_computer_tool_call.rbi +71 -11
- data/rbi/openai/models/responses/response_computer_tool_call_output_item.rbi +71 -65
- data/rbi/openai/models/responses/response_custom_tool_call_item.rbi +111 -0
- data/rbi/openai/models/responses/response_custom_tool_call_output_item.rbi +111 -0
- data/rbi/openai/models/responses/response_function_tool_call_item.rbi +81 -3
- data/rbi/openai/models/responses/response_function_tool_call_output_item.rbi +19 -18
- data/rbi/openai/models/responses/response_input_message_item.rbi +8 -49
- data/rbi/openai/models/responses/response_item.rbi +5 -1
- data/rbi/openai/models/responses/response_item_list.rbi +5 -1
- data/rbi/openai/models/responses/response_output_item.rbi +186 -1
- data/rbi/openai/models/responses/response_output_item_added_event.rbi +6 -1
- data/rbi/openai/models/responses/response_output_item_done_event.rbi +6 -1
- data/rbi/openai/models/vector_stores/file_batch_create_params.rbi +18 -10
- data/rbi/openai/models/vector_stores/file_create_params.rbi +6 -2
- data/rbi/openai/models.rbi +2 -0
- data/rbi/openai/resources/realtime/calls.rbi +3 -2
- data/rbi/openai/resources/vector_stores/file_batches.rbi +6 -4
- data/rbi/openai/resources/vector_stores/files.rbi +3 -1
- data/sig/openai/internal/util.rbs +4 -0
- data/sig/openai/models/conversations/conversation_item.rbs +1 -0
- data/sig/openai/models/conversations/message.rbs +18 -2
- data/sig/openai/models/oauth_error_code.rbs +14 -0
- data/sig/openai/models/responses/computer_action.rbs +53 -11
- data/sig/openai/models/responses/response_computer_tool_call.rbs +53 -11
- data/sig/openai/models/responses/response_computer_tool_call_output_item.rbs +23 -19
- data/sig/openai/models/responses/response_custom_tool_call_item.rbs +52 -0
- data/sig/openai/models/responses/response_custom_tool_call_output_item.rbs +52 -0
- data/sig/openai/models/responses/response_function_tool_call_item.rbs +38 -3
- data/sig/openai/models/responses/response_function_tool_call_output_item.rbs +10 -7
- data/sig/openai/models/responses/response_input_message_item.rbs +7 -21
- data/sig/openai/models/responses/response_item.rbs +4 -0
- data/sig/openai/models/responses/response_output_item.rbs +86 -0
- data/sig/openai/models.rbs +2 -0
- metadata +19 -2
data/lib/openai/client.rb
CHANGED
|
@@ -15,6 +15,8 @@ module OpenAI
|
|
|
15
15
|
# Default max retry delay in seconds.
|
|
16
16
|
DEFAULT_MAX_RETRY_DELAY = 8.0
|
|
17
17
|
|
|
18
|
+
WORKLOAD_IDENTITY_API_KEY_PLACEHOLDER = "workload-identity-auth"
|
|
19
|
+
|
|
18
20
|
# @return [String]
|
|
19
21
|
attr_reader :api_key
|
|
20
22
|
|
|
@@ -27,6 +29,10 @@ module OpenAI
|
|
|
27
29
|
# @return [String, nil]
|
|
28
30
|
attr_reader :webhook_secret
|
|
29
31
|
|
|
32
|
+
# @return [OpenAI::Auth::WorkloadIdentityAuth, nil]
|
|
33
|
+
# @api private
|
|
34
|
+
attr_reader :workload_identity_auth
|
|
35
|
+
|
|
30
36
|
# Given a prompt, the model will return one or more predicted completions, and can
|
|
31
37
|
# also return the probabilities of alternative tokens at each position.
|
|
32
38
|
# @return [OpenAI::Resources::Completions]
|
|
@@ -116,13 +122,48 @@ module OpenAI
|
|
|
116
122
|
{"authorization" => "Bearer #{@api_key}"}
|
|
117
123
|
end
|
|
118
124
|
|
|
125
|
+
# @api private
|
|
126
|
+
private def request_replayable?(request)
|
|
127
|
+
body = request[:body]
|
|
128
|
+
return true if body.nil? || body.is_a?(String)
|
|
129
|
+
return false if body.respond_to?(:read)
|
|
130
|
+
true
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# @api private
|
|
134
|
+
private def send_request(request, redirect_count:, retry_count:, send_retry_header:)
|
|
135
|
+
return super unless @workload_identity_auth
|
|
136
|
+
|
|
137
|
+
token = @workload_identity_auth.get_token
|
|
138
|
+
updated_headers = request[:headers].merge("authorization" => "Bearer #{token}")
|
|
139
|
+
updated_request = request.merge(headers: updated_headers)
|
|
140
|
+
|
|
141
|
+
begin
|
|
142
|
+
super(updated_request, redirect_count: redirect_count, retry_count: retry_count, send_retry_header: send_retry_header)
|
|
143
|
+
rescue OpenAI::Errors::AuthenticationError
|
|
144
|
+
raise unless retry_count.zero? && request_replayable?(request)
|
|
145
|
+
@workload_identity_auth.invalidate_token
|
|
146
|
+
|
|
147
|
+
fresh_token = @workload_identity_auth.get_token
|
|
148
|
+
refreshed_headers = request[:headers].merge("authorization" => "Bearer #{fresh_token}")
|
|
149
|
+
refreshed_request = request.merge(headers: refreshed_headers)
|
|
150
|
+
|
|
151
|
+
super(refreshed_request, redirect_count: redirect_count, retry_count: retry_count + 1, send_retry_header: send_retry_header)
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
|
|
119
155
|
# Creates and returns a new client for interacting with the API.
|
|
120
156
|
#
|
|
121
|
-
# @param api_key [String, nil] Defaults to `ENV["OPENAI_API_KEY"]
|
|
157
|
+
# @param api_key [String, nil] Defaults to `ENV["OPENAI_API_KEY"]`.
|
|
158
|
+
# Mutually exclusive with `workload_identity`.
|
|
159
|
+
#
|
|
160
|
+
# @param workload_identity [OpenAI::Auth::WorkloadIdentity, nil]
|
|
161
|
+
# OAuth2 workload identity configuration for token exchange authentication.
|
|
162
|
+
# Mutually exclusive with `api_key`.
|
|
122
163
|
#
|
|
123
|
-
# @param organization [String, nil] Defaults to `ENV["OPENAI_ORG_ID"]
|
|
164
|
+
# @param organization [String, nil] Defaults to `ENV["OPENAI_ORG_ID"]`.
|
|
124
165
|
#
|
|
125
|
-
# @param project [String, nil] Defaults to `ENV["OPENAI_PROJECT_ID"]
|
|
166
|
+
# @param project [String, nil] Defaults to `ENV["OPENAI_PROJECT_ID"]`.
|
|
126
167
|
#
|
|
127
168
|
# @param webhook_secret [String, nil] Defaults to `ENV["OPENAI_WEBHOOK_SECRET"]`
|
|
128
169
|
#
|
|
@@ -138,6 +179,7 @@ module OpenAI
|
|
|
138
179
|
# @param max_retry_delay [Float]
|
|
139
180
|
def initialize(
|
|
140
181
|
api_key: ENV["OPENAI_API_KEY"],
|
|
182
|
+
workload_identity: nil,
|
|
141
183
|
organization: ENV["OPENAI_ORG_ID"],
|
|
142
184
|
project: ENV["OPENAI_PROJECT_ID"],
|
|
143
185
|
webhook_secret: ENV["OPENAI_WEBHOOK_SECRET"],
|
|
@@ -149,7 +191,20 @@ module OpenAI
|
|
|
149
191
|
)
|
|
150
192
|
base_url ||= "https://api.openai.com/v1"
|
|
151
193
|
|
|
152
|
-
if api_key
|
|
194
|
+
if workload_identity && api_key && api_key != WORKLOAD_IDENTITY_API_KEY_PLACEHOLDER
|
|
195
|
+
raise ArgumentError.new(
|
|
196
|
+
"The `api_key` and `workload_identity` arguments are mutually exclusive; " \
|
|
197
|
+
"only one can be passed at a time."
|
|
198
|
+
)
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
if workload_identity
|
|
202
|
+
@workload_identity_auth = OpenAI::Auth::WorkloadIdentityAuth.new(
|
|
203
|
+
workload_identity,
|
|
204
|
+
organization
|
|
205
|
+
)
|
|
206
|
+
api_key = WORKLOAD_IDENTITY_API_KEY_PLACEHOLDER
|
|
207
|
+
elsif api_key.nil?
|
|
153
208
|
raise ArgumentError.new("api_key is required, and can be set via environ: \"OPENAI_API_KEY\"")
|
|
154
209
|
end
|
|
155
210
|
|
data/lib/openai/errors.rb
CHANGED
|
@@ -263,5 +263,44 @@ module OpenAI
|
|
|
263
263
|
class InternalServerError < OpenAI::Errors::APIStatusError
|
|
264
264
|
HTTP_STATUS = (500..)
|
|
265
265
|
end
|
|
266
|
+
|
|
267
|
+
class OAuthError < OpenAI::Errors::APIStatusError
|
|
268
|
+
# @return [OpenAI::Models::OAuthErrorCode::Variants, nil]
|
|
269
|
+
attr_reader :error_code
|
|
270
|
+
|
|
271
|
+
def initialize(status:, body:, headers:)
|
|
272
|
+
@error_code = OpenAI::Internal::Type::Converter.coerce(OpenAI::Models::OAuthErrorCode, body&.dig(:error))
|
|
273
|
+
|
|
274
|
+
message =
|
|
275
|
+
if body&.dig(:error_description)
|
|
276
|
+
body[:error_description]
|
|
277
|
+
elsif @error_code
|
|
278
|
+
@error_code
|
|
279
|
+
else
|
|
280
|
+
"OAuth2 authentication error"
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
super(
|
|
284
|
+
url: URI("https://auth.openai.com/oauth/token"),
|
|
285
|
+
status: status,
|
|
286
|
+
headers: headers,
|
|
287
|
+
body: body,
|
|
288
|
+
request: nil,
|
|
289
|
+
response: nil,
|
|
290
|
+
message: message
|
|
291
|
+
)
|
|
292
|
+
end
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
class SubjectTokenProviderError < OpenAI::Errors::Error
|
|
296
|
+
attr_reader :provider
|
|
297
|
+
attr_accessor :cause
|
|
298
|
+
|
|
299
|
+
def initialize(message:, provider:, cause: nil)
|
|
300
|
+
super(message)
|
|
301
|
+
@provider = provider
|
|
302
|
+
@cause = cause
|
|
303
|
+
end
|
|
304
|
+
end
|
|
266
305
|
end
|
|
267
306
|
end
|
data/lib/openai/internal/util.rb
CHANGED
|
@@ -157,7 +157,7 @@ module OpenAI
|
|
|
157
157
|
in Hash | nil => coerced
|
|
158
158
|
coerced
|
|
159
159
|
else
|
|
160
|
-
message = "Expected a #{Hash} or #{OpenAI::Internal::Type::BaseModel}, got #{
|
|
160
|
+
message = "Expected a #{Hash} or #{OpenAI::Internal::Type::BaseModel}, got #{input.inspect}"
|
|
161
161
|
raise ArgumentError.new(message)
|
|
162
162
|
end
|
|
163
163
|
end
|
|
@@ -237,6 +237,11 @@ module OpenAI
|
|
|
237
237
|
end
|
|
238
238
|
end
|
|
239
239
|
|
|
240
|
+
# @type [Regexp]
|
|
241
|
+
#
|
|
242
|
+
# https://www.rfc-editor.org/rfc/rfc3986.html#section-3.3
|
|
243
|
+
RFC_3986_NOT_PCHARS = /[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/
|
|
244
|
+
|
|
240
245
|
class << self
|
|
241
246
|
# @api private
|
|
242
247
|
#
|
|
@@ -247,6 +252,15 @@ module OpenAI
|
|
|
247
252
|
"#{uri.scheme}://#{uri.host}#{":#{uri.port}" unless uri.port == uri.default_port}"
|
|
248
253
|
end
|
|
249
254
|
|
|
255
|
+
# @api private
|
|
256
|
+
#
|
|
257
|
+
# @param path [String, Integer]
|
|
258
|
+
#
|
|
259
|
+
# @return [String]
|
|
260
|
+
def encode_path(path)
|
|
261
|
+
path.to_s.gsub(OpenAI::Internal::Util::RFC_3986_NOT_PCHARS) { ERB::Util.url_encode(_1) }
|
|
262
|
+
end
|
|
263
|
+
|
|
250
264
|
# @api private
|
|
251
265
|
#
|
|
252
266
|
# @param path [String, Array<String>]
|
|
@@ -259,7 +273,7 @@ module OpenAI
|
|
|
259
273
|
in []
|
|
260
274
|
""
|
|
261
275
|
in [String => p, *interpolations]
|
|
262
|
-
encoded = interpolations.map {
|
|
276
|
+
encoded = interpolations.map { encode_path(_1) }
|
|
263
277
|
format(p, *encoded)
|
|
264
278
|
end
|
|
265
279
|
end
|
|
@@ -571,16 +585,15 @@ module OpenAI
|
|
|
571
585
|
y << "Content-Disposition: form-data"
|
|
572
586
|
|
|
573
587
|
unless key.nil?
|
|
574
|
-
|
|
575
|
-
y << "; name=\"#{name}\""
|
|
588
|
+
y << "; name=\"#{key}\""
|
|
576
589
|
end
|
|
577
590
|
|
|
578
591
|
case val
|
|
579
592
|
in OpenAI::FilePart unless val.filename.nil?
|
|
580
|
-
filename =
|
|
593
|
+
filename = encode_path(val.filename)
|
|
581
594
|
y << "; filename=\"#{filename}\""
|
|
582
595
|
in Pathname | IO
|
|
583
|
-
filename =
|
|
596
|
+
filename = encode_path(::File.basename(val.to_path))
|
|
584
597
|
y << "; filename=\"#{filename}\""
|
|
585
598
|
else
|
|
586
599
|
end
|
|
@@ -597,6 +610,7 @@ module OpenAI
|
|
|
597
610
|
#
|
|
598
611
|
# @return [Array(String, Enumerable<String>)]
|
|
599
612
|
private def encode_multipart_streaming(body)
|
|
613
|
+
# rubocop:disable Style/CaseEquality
|
|
600
614
|
# RFC 1521 Section 7.2.1 says we should have 70 char maximum for boundary length
|
|
601
615
|
boundary = SecureRandom.urlsafe_base64(46)
|
|
602
616
|
|
|
@@ -606,7 +620,7 @@ module OpenAI
|
|
|
606
620
|
in Hash
|
|
607
621
|
body.each do |key, val|
|
|
608
622
|
case val
|
|
609
|
-
in Array if val.all? { primitive?(_1) }
|
|
623
|
+
in Array if val.all? { primitive?(_1) || OpenAI::Internal::Type::FileInput === _1 }
|
|
610
624
|
val.each do |v|
|
|
611
625
|
write_multipart_chunk(y, boundary: boundary, key: key, val: v, closing: closing)
|
|
612
626
|
end
|
|
@@ -622,6 +636,7 @@ module OpenAI
|
|
|
622
636
|
|
|
623
637
|
fused_io = fused_enum(strio) { closing.each(&:call) }
|
|
624
638
|
[boundary, fused_io]
|
|
639
|
+
# rubocop:enable Style/CaseEquality
|
|
625
640
|
end
|
|
626
641
|
|
|
627
642
|
# @api private
|
|
@@ -49,6 +49,9 @@ module OpenAI
|
|
|
49
49
|
# [managing context](https://platform.openai.com/docs/guides/conversation-state).
|
|
50
50
|
variant :reasoning, -> { OpenAI::Responses::ResponseReasoningItem }
|
|
51
51
|
|
|
52
|
+
# A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact).
|
|
53
|
+
variant :compaction, -> { OpenAI::Responses::ResponseCompactionItem }
|
|
54
|
+
|
|
52
55
|
# A tool call to run code.
|
|
53
56
|
variant :code_interpreter_call, -> { OpenAI::Responses::ResponseCodeInterpreterToolCall }
|
|
54
57
|
|
|
@@ -608,7 +611,7 @@ module OpenAI
|
|
|
608
611
|
end
|
|
609
612
|
|
|
610
613
|
# @!method self.variants
|
|
611
|
-
# @return [Array(OpenAI::Models::Conversations::Message, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Conversations::ConversationItem::McpListTools, OpenAI::Models::Conversations::ConversationItem::McpApprovalRequest, OpenAI::Models::Conversations::ConversationItem::McpApprovalResponse, OpenAI::Models::Conversations::ConversationItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput)]
|
|
614
|
+
# @return [Array(OpenAI::Models::Conversations::Message, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Conversations::ConversationItem::McpListTools, OpenAI::Models::Conversations::ConversationItem::McpApprovalRequest, OpenAI::Models::Conversations::ConversationItem::McpApprovalResponse, OpenAI::Models::Conversations::ConversationItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput)]
|
|
612
615
|
end
|
|
613
616
|
end
|
|
614
617
|
|
|
@@ -8,7 +8,7 @@ module OpenAI
|
|
|
8
8
|
# @!attribute data
|
|
9
9
|
# A list of conversation items.
|
|
10
10
|
#
|
|
11
|
-
# @return [Array<OpenAI::Models::Conversations::Message, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Conversations::ConversationItem::McpListTools, OpenAI::Models::Conversations::ConversationItem::McpApprovalRequest, OpenAI::Models::Conversations::ConversationItem::McpApprovalResponse, OpenAI::Models::Conversations::ConversationItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput>]
|
|
11
|
+
# @return [Array<OpenAI::Models::Conversations::Message, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Conversations::ConversationItem::McpListTools, OpenAI::Models::Conversations::ConversationItem::McpApprovalRequest, OpenAI::Models::Conversations::ConversationItem::McpApprovalResponse, OpenAI::Models::Conversations::ConversationItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput>]
|
|
12
12
|
required :data, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Conversations::ConversationItem] }
|
|
13
13
|
|
|
14
14
|
# @!attribute first_id
|
|
@@ -38,7 +38,7 @@ module OpenAI
|
|
|
38
38
|
# @!method initialize(data:, first_id:, has_more:, last_id:, object: :list)
|
|
39
39
|
# A list of Conversation items.
|
|
40
40
|
#
|
|
41
|
-
# @param data [Array<OpenAI::Models::Conversations::Message, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Conversations::ConversationItem::McpListTools, OpenAI::Models::Conversations::ConversationItem::McpApprovalRequest, OpenAI::Models::Conversations::ConversationItem::McpApprovalResponse, OpenAI::Models::Conversations::ConversationItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput>] A list of conversation items.
|
|
41
|
+
# @param data [Array<OpenAI::Models::Conversations::Message, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Conversations::ConversationItem::McpListTools, OpenAI::Models::Conversations::ConversationItem::McpApprovalRequest, OpenAI::Models::Conversations::ConversationItem::McpApprovalResponse, OpenAI::Models::Conversations::ConversationItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput>] A list of conversation items.
|
|
42
42
|
#
|
|
43
43
|
# @param first_id [String] The ID of the first item in the list.
|
|
44
44
|
#
|
|
@@ -36,7 +36,16 @@ module OpenAI
|
|
|
36
36
|
# @return [Symbol, :message]
|
|
37
37
|
required :type, const: :message
|
|
38
38
|
|
|
39
|
-
# @!
|
|
39
|
+
# @!attribute phase
|
|
40
|
+
# Labels an `assistant` message as intermediate commentary (`commentary`) or the
|
|
41
|
+
# final answer (`final_answer`). For models like `gpt-5.3-codex` and beyond, when
|
|
42
|
+
# sending follow-up requests, preserve and resend phase on all assistant messages
|
|
43
|
+
# — dropping it can degrade performance. Not used for user messages.
|
|
44
|
+
#
|
|
45
|
+
# @return [Symbol, OpenAI::Models::Conversations::Message::Phase, nil]
|
|
46
|
+
optional :phase, enum: -> { OpenAI::Conversations::Message::Phase }, nil?: true
|
|
47
|
+
|
|
48
|
+
# @!method initialize(id:, content:, role:, status:, phase: nil, type: :message)
|
|
40
49
|
# Some parameter documentations has been truncated, see
|
|
41
50
|
# {OpenAI::Models::Conversations::Message} for more details.
|
|
42
51
|
#
|
|
@@ -50,6 +59,8 @@ module OpenAI
|
|
|
50
59
|
#
|
|
51
60
|
# @param status [Symbol, OpenAI::Models::Conversations::Message::Status] The status of item. One of `in_progress`, `completed`, or `incomplete`. Populate
|
|
52
61
|
#
|
|
62
|
+
# @param phase [Symbol, OpenAI::Models::Conversations::Message::Phase, nil] Labels an `assistant` message as intermediate commentary (`commentary`) or the f
|
|
63
|
+
#
|
|
53
64
|
# @param type [Symbol, :message] The type of the message. Always set to `message`.
|
|
54
65
|
|
|
55
66
|
# A content part that makes up an input or output item.
|
|
@@ -144,6 +155,22 @@ module OpenAI
|
|
|
144
155
|
# @!method self.values
|
|
145
156
|
# @return [Array<Symbol>]
|
|
146
157
|
end
|
|
158
|
+
|
|
159
|
+
# Labels an `assistant` message as intermediate commentary (`commentary`) or the
|
|
160
|
+
# final answer (`final_answer`). For models like `gpt-5.3-codex` and beyond, when
|
|
161
|
+
# sending follow-up requests, preserve and resend phase on all assistant messages
|
|
162
|
+
# — dropping it can degrade performance. Not used for user messages.
|
|
163
|
+
#
|
|
164
|
+
# @see OpenAI::Models::Conversations::Message#phase
|
|
165
|
+
module Phase
|
|
166
|
+
extend OpenAI::Internal::Type::Enum
|
|
167
|
+
|
|
168
|
+
COMMENTARY = :commentary
|
|
169
|
+
FINAL_ANSWER = :final_answer
|
|
170
|
+
|
|
171
|
+
# @!method self.values
|
|
172
|
+
# @return [Array<Symbol>]
|
|
173
|
+
end
|
|
147
174
|
end
|
|
148
175
|
end
|
|
149
176
|
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module OAuthErrorCode
|
|
6
|
+
extend OpenAI::Internal::Type::Union
|
|
7
|
+
|
|
8
|
+
variant const: -> { OpenAI::Models::OAuthErrorCode::INVALID_GRANT }
|
|
9
|
+
|
|
10
|
+
variant const: -> { OpenAI::Models::OAuthErrorCode::INVALID_SUBJECT_TOKEN }
|
|
11
|
+
|
|
12
|
+
variant String
|
|
13
|
+
|
|
14
|
+
# @!method self.variants
|
|
15
|
+
# @return [Array(Symbol, String)]
|
|
16
|
+
|
|
17
|
+
define_sorbet_constant!(:Variants) do
|
|
18
|
+
T.type_alias { T.any(OpenAI::OAuthErrorCode::TaggedSymbol, String) }
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @!group
|
|
22
|
+
|
|
23
|
+
INVALID_GRANT = :invalid_grant
|
|
24
|
+
INVALID_SUBJECT_TOKEN = :invalid_subject_token
|
|
25
|
+
|
|
26
|
+
# @!endgroup
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -88,8 +88,9 @@ module OpenAI
|
|
|
88
88
|
|
|
89
89
|
# @!attribute tracing
|
|
90
90
|
# Realtime API can write session traces to the
|
|
91
|
-
# [Traces Dashboard](/logs?api=traces). Set to null to
|
|
92
|
-
# tracing is enabled for a session, the configuration cannot
|
|
91
|
+
# [Traces Dashboard](https://platform.openai.com/logs?api=traces). Set to null to
|
|
92
|
+
# disable tracing. Once tracing is enabled for a session, the configuration cannot
|
|
93
|
+
# be modified.
|
|
93
94
|
#
|
|
94
95
|
# `auto` will create a trace for the session with default values for the workflow
|
|
95
96
|
# name, group id, and metadata.
|
|
@@ -144,7 +145,7 @@ module OpenAI
|
|
|
144
145
|
#
|
|
145
146
|
# @param tools [Array<OpenAI::Models::Realtime::RealtimeFunctionTool, OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp>] Tools available to the model.
|
|
146
147
|
#
|
|
147
|
-
# @param tracing [Symbol, :auto, OpenAI::Models::Realtime::RealtimeTracingConfig::TracingConfiguration, nil] Realtime API can write session traces to the [Traces Dashboard](
|
|
148
|
+
# @param tracing [Symbol, :auto, OpenAI::Models::Realtime::RealtimeTracingConfig::TracingConfiguration, nil] Realtime API can write session traces to the [Traces Dashboard](https://platform
|
|
148
149
|
#
|
|
149
150
|
# @param truncation [Symbol, OpenAI::Models::Realtime::RealtimeTruncation::RealtimeTruncationStrategy, OpenAI::Models::Realtime::RealtimeTruncationRetentionRatio] When the number of tokens in a conversation exceeds the model's input token limi
|
|
150
151
|
#
|
|
@@ -96,8 +96,9 @@ module OpenAI
|
|
|
96
96
|
|
|
97
97
|
# @!attribute tracing
|
|
98
98
|
# Realtime API can write session traces to the
|
|
99
|
-
# [Traces Dashboard](/logs?api=traces). Set to null to
|
|
100
|
-
# tracing is enabled for a session, the configuration cannot
|
|
99
|
+
# [Traces Dashboard](https://platform.openai.com/logs?api=traces). Set to null to
|
|
100
|
+
# disable tracing. Once tracing is enabled for a session, the configuration cannot
|
|
101
|
+
# be modified.
|
|
101
102
|
#
|
|
102
103
|
# `auto` will create a trace for the session with default values for the workflow
|
|
103
104
|
# name, group id, and metadata.
|
|
@@ -155,7 +156,7 @@ module OpenAI
|
|
|
155
156
|
#
|
|
156
157
|
# @param tools [Array<OpenAI::Models::Realtime::RealtimeFunctionTool, OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Tool::McpTool>] Tools available to the model.
|
|
157
158
|
#
|
|
158
|
-
# @param tracing [Symbol, :auto, OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Tracing::TracingConfiguration, nil] Realtime API can write session traces to the [Traces Dashboard](
|
|
159
|
+
# @param tracing [Symbol, :auto, OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Tracing::TracingConfiguration, nil] Realtime API can write session traces to the [Traces Dashboard](https://platform
|
|
159
160
|
#
|
|
160
161
|
# @param truncation [Symbol, OpenAI::Models::Realtime::RealtimeTruncation::RealtimeTruncationStrategy, OpenAI::Models::Realtime::RealtimeTruncationRetentionRatio] When the number of tokens in a conversation exceeds the model's input token limi
|
|
161
162
|
#
|
|
@@ -1024,8 +1025,9 @@ module OpenAI
|
|
|
1024
1025
|
end
|
|
1025
1026
|
|
|
1026
1027
|
# Realtime API can write session traces to the
|
|
1027
|
-
# [Traces Dashboard](/logs?api=traces). Set to null to
|
|
1028
|
-
# tracing is enabled for a session, the configuration cannot
|
|
1028
|
+
# [Traces Dashboard](https://platform.openai.com/logs?api=traces). Set to null to
|
|
1029
|
+
# disable tracing. Once tracing is enabled for a session, the configuration cannot
|
|
1030
|
+
# be modified.
|
|
1029
1031
|
#
|
|
1030
1032
|
# `auto` will create a trace for the session with default values for the workflow
|
|
1031
1033
|
# name, group id, and metadata.
|
|
@@ -4,8 +4,9 @@ module OpenAI
|
|
|
4
4
|
module Models
|
|
5
5
|
module Realtime
|
|
6
6
|
# Realtime API can write session traces to the
|
|
7
|
-
# [Traces Dashboard](/logs?api=traces). Set to null to
|
|
8
|
-
# tracing is enabled for a session, the configuration cannot
|
|
7
|
+
# [Traces Dashboard](https://platform.openai.com/logs?api=traces). Set to null to
|
|
8
|
+
# disable tracing. Once tracing is enabled for a session, the configuration cannot
|
|
9
|
+
# be modified.
|
|
9
10
|
#
|
|
10
11
|
# `auto` will create a trace for the session with default values for the workflow
|
|
11
12
|
# name, group id, and metadata.
|
|
@@ -27,7 +27,7 @@ module OpenAI
|
|
|
27
27
|
# The compacted list of output items. This is a list of all user messages,
|
|
28
28
|
# followed by a single compaction item.
|
|
29
29
|
#
|
|
30
|
-
# @return [Array<OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall>]
|
|
30
|
+
# @return [Array<OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem>]
|
|
31
31
|
required :output, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::ResponseOutputItem] }
|
|
32
32
|
|
|
33
33
|
# @!attribute usage
|
|
@@ -45,7 +45,7 @@ module OpenAI
|
|
|
45
45
|
#
|
|
46
46
|
# @param created_at [Integer] Unix timestamp (in seconds) when the compacted conversation was created.
|
|
47
47
|
#
|
|
48
|
-
# @param output [Array<OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall>] The compacted list of output items. This is a list of all user messages, followe
|
|
48
|
+
# @param output [Array<OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem>] The compacted list of output items. This is a list of all user messages, followe
|
|
49
49
|
#
|
|
50
50
|
# @param usage [OpenAI::Models::Responses::ResponseUsage] Token accounting for the compaction pass, including cached, reasoning, and total
|
|
51
51
|
#
|
|
@@ -62,7 +62,13 @@ module OpenAI
|
|
|
62
62
|
# @return [Integer]
|
|
63
63
|
required :y_, Integer, api_name: :y
|
|
64
64
|
|
|
65
|
-
# @!
|
|
65
|
+
# @!attribute keys
|
|
66
|
+
# The keys being held while clicking.
|
|
67
|
+
#
|
|
68
|
+
# @return [Array<String>, nil]
|
|
69
|
+
optional :keys, OpenAI::Internal::Type::ArrayOf[String], nil?: true
|
|
70
|
+
|
|
71
|
+
# @!method initialize(button:, x:, y_:, keys: nil, type: :click)
|
|
66
72
|
# Some parameter documentations has been truncated, see
|
|
67
73
|
# {OpenAI::Models::Responses::ComputerAction::Click} for more details.
|
|
68
74
|
#
|
|
@@ -74,6 +80,8 @@ module OpenAI
|
|
|
74
80
|
#
|
|
75
81
|
# @param y_ [Integer] The y-coordinate where the click occurred.
|
|
76
82
|
#
|
|
83
|
+
# @param keys [Array<String>, nil] The keys being held while clicking.
|
|
84
|
+
#
|
|
77
85
|
# @param type [Symbol, :click] Specifies the event type. For a click action, this property is always `click`.
|
|
78
86
|
|
|
79
87
|
# Indicates which mouse button was pressed during the click. One of `left`,
|
|
@@ -95,6 +103,12 @@ module OpenAI
|
|
|
95
103
|
end
|
|
96
104
|
|
|
97
105
|
class DoubleClick < OpenAI::Internal::Type::BaseModel
|
|
106
|
+
# @!attribute keys
|
|
107
|
+
# The keys being held while double-clicking.
|
|
108
|
+
#
|
|
109
|
+
# @return [Array<String>, nil]
|
|
110
|
+
required :keys, OpenAI::Internal::Type::ArrayOf[String], nil?: true
|
|
111
|
+
|
|
98
112
|
# @!attribute type
|
|
99
113
|
# Specifies the event type. For a double click action, this property is always set
|
|
100
114
|
# to `double_click`.
|
|
@@ -114,12 +128,14 @@ module OpenAI
|
|
|
114
128
|
# @return [Integer]
|
|
115
129
|
required :y_, Integer, api_name: :y
|
|
116
130
|
|
|
117
|
-
# @!method initialize(x:, y_:, type: :double_click)
|
|
131
|
+
# @!method initialize(keys:, x:, y_:, type: :double_click)
|
|
118
132
|
# Some parameter documentations has been truncated, see
|
|
119
133
|
# {OpenAI::Models::Responses::ComputerAction::DoubleClick} for more details.
|
|
120
134
|
#
|
|
121
135
|
# A double click action.
|
|
122
136
|
#
|
|
137
|
+
# @param keys [Array<String>, nil] The keys being held while double-clicking.
|
|
138
|
+
#
|
|
123
139
|
# @param x [Integer] The x-coordinate where the double click occurred.
|
|
124
140
|
#
|
|
125
141
|
# @param y_ [Integer] The y-coordinate where the double click occurred.
|
|
@@ -149,7 +165,13 @@ module OpenAI
|
|
|
149
165
|
# @return [Symbol, :drag]
|
|
150
166
|
required :type, const: :drag
|
|
151
167
|
|
|
152
|
-
# @!
|
|
168
|
+
# @!attribute keys
|
|
169
|
+
# The keys being held while dragging the mouse.
|
|
170
|
+
#
|
|
171
|
+
# @return [Array<String>, nil]
|
|
172
|
+
optional :keys, OpenAI::Internal::Type::ArrayOf[String], nil?: true
|
|
173
|
+
|
|
174
|
+
# @!method initialize(path:, keys: nil, type: :drag)
|
|
153
175
|
# Some parameter documentations has been truncated, see
|
|
154
176
|
# {OpenAI::Models::Responses::ComputerAction::Drag} for more details.
|
|
155
177
|
#
|
|
@@ -157,6 +179,8 @@ module OpenAI
|
|
|
157
179
|
#
|
|
158
180
|
# @param path [Array<OpenAI::Models::Responses::ComputerAction::Drag::Path>] An array of coordinates representing the path of the drag action. Coordinates wi
|
|
159
181
|
#
|
|
182
|
+
# @param keys [Array<String>, nil] The keys being held while dragging the mouse.
|
|
183
|
+
#
|
|
160
184
|
# @param type [Symbol, :drag] Specifies the event type. For a drag action, this property is always set to `dra
|
|
161
185
|
|
|
162
186
|
class Path < OpenAI::Internal::Type::BaseModel
|
|
@@ -227,7 +251,13 @@ module OpenAI
|
|
|
227
251
|
# @return [Integer]
|
|
228
252
|
required :y_, Integer, api_name: :y
|
|
229
253
|
|
|
230
|
-
# @!
|
|
254
|
+
# @!attribute keys
|
|
255
|
+
# The keys being held while moving the mouse.
|
|
256
|
+
#
|
|
257
|
+
# @return [Array<String>, nil]
|
|
258
|
+
optional :keys, OpenAI::Internal::Type::ArrayOf[String], nil?: true
|
|
259
|
+
|
|
260
|
+
# @!method initialize(x:, y_:, keys: nil, type: :move)
|
|
231
261
|
# Some parameter documentations has been truncated, see
|
|
232
262
|
# {OpenAI::Models::Responses::ComputerAction::Move} for more details.
|
|
233
263
|
#
|
|
@@ -237,6 +267,8 @@ module OpenAI
|
|
|
237
267
|
#
|
|
238
268
|
# @param y_ [Integer] The y-coordinate to move to.
|
|
239
269
|
#
|
|
270
|
+
# @param keys [Array<String>, nil] The keys being held while moving the mouse.
|
|
271
|
+
#
|
|
240
272
|
# @param type [Symbol, :move] Specifies the event type. For a move action, this property is always set to `mov
|
|
241
273
|
end
|
|
242
274
|
|
|
@@ -289,7 +321,13 @@ module OpenAI
|
|
|
289
321
|
# @return [Integer]
|
|
290
322
|
required :y_, Integer, api_name: :y
|
|
291
323
|
|
|
292
|
-
# @!
|
|
324
|
+
# @!attribute keys
|
|
325
|
+
# The keys being held while scrolling.
|
|
326
|
+
#
|
|
327
|
+
# @return [Array<String>, nil]
|
|
328
|
+
optional :keys, OpenAI::Internal::Type::ArrayOf[String], nil?: true
|
|
329
|
+
|
|
330
|
+
# @!method initialize(scroll_x:, scroll_y:, x:, y_:, keys: nil, type: :scroll)
|
|
293
331
|
# Some parameter documentations has been truncated, see
|
|
294
332
|
# {OpenAI::Models::Responses::ComputerAction::Scroll} for more details.
|
|
295
333
|
#
|
|
@@ -303,6 +341,8 @@ module OpenAI
|
|
|
303
341
|
#
|
|
304
342
|
# @param y_ [Integer] The y-coordinate where the scroll occurred.
|
|
305
343
|
#
|
|
344
|
+
# @param keys [Array<String>, nil] The keys being held while scrolling.
|
|
345
|
+
#
|
|
306
346
|
# @param type [Symbol, :scroll] Specifies the event type. For a scroll action, this property is always set to `s
|
|
307
347
|
end
|
|
308
348
|
|
|
@@ -77,7 +77,7 @@ module OpenAI
|
|
|
77
77
|
# an `assistant` message with the content generated by the model, you might
|
|
78
78
|
# consider using the `output_text` property where supported in SDKs.
|
|
79
79
|
#
|
|
80
|
-
# @return [Array<OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall>]
|
|
80
|
+
# @return [Array<OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem>]
|
|
81
81
|
required :output, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::ResponseOutputItem] }
|
|
82
82
|
|
|
83
83
|
# @!attribute parallel_tool_calls
|
|
@@ -344,7 +344,7 @@ module OpenAI
|
|
|
344
344
|
#
|
|
345
345
|
# @param model [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::ResponsesOnlyModel] Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI
|
|
346
346
|
#
|
|
347
|
-
# @param output [Array<OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall>] An array of content items generated by the model.
|
|
347
|
+
# @param output [Array<OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem>] An array of content items generated by the model.
|
|
348
348
|
#
|
|
349
349
|
# @param parallel_tool_calls [Boolean] Whether to allow the model to run tool calls in parallel.
|
|
350
350
|
#
|