openai 0.114.0 → 0.115.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 +36 -0
- data/README.md +17 -2
- data/docs/architecture/security-model.md +11 -16
- data/examples/responses/websocket_workflows.rb +78 -3
- data/lib/openai/helpers/chat/tool_runner.rb +1 -1
- data/lib/openai/helpers/live/websocket.rb +31 -0
- data/lib/openai/helpers/realtime/connection.rb +33 -0
- data/lib/openai/helpers/realtime/connection_manager.rb +1 -0
- data/lib/openai/helpers/realtime/conversation_item_variant_resolver.rb +5 -0
- data/lib/openai/helpers/realtime/recovery.rb +5 -1
- data/lib/openai/helpers/realtime/translation.rb +5 -0
- data/lib/openai/helpers/realtime/transports/async_websocket.rb +19 -0
- data/lib/openai/helpers/responses_websocket/connection.rb +53 -15
- data/lib/openai/helpers/responses_websocket/connection_manager.rb +1 -0
- data/lib/openai/helpers/responses_websocket/connection_resources.rb +1 -1
- data/lib/openai/helpers/structured_output/response_parser.rb +1 -0
- data/lib/openai/helpers/structured_output.rb +58 -0
- data/lib/openai/helpers/websocket/connection_manager.rb +11 -0
- data/lib/openai/helpers/websocket/resource.rb +1 -0
- data/lib/openai/helpers/websocket/typed_connection.rb +1 -0
- data/lib/openai/internal/type/array_of.rb +1 -1
- data/lib/openai/internal/type/hash_of.rb +1 -1
- data/lib/openai/internal/type/request_parameters.rb +2 -1
- data/lib/openai/internal/type/union.rb +18 -6
- data/lib/openai/models/admin/organization/external_key.rb +169 -0
- data/lib/openai/models/admin/organization/external_key_create_params.rb +311 -0
- data/lib/openai/models/admin/organization/external_key_delete_params.rb +24 -0
- data/lib/openai/models/admin/organization/external_key_list_params.rb +69 -0
- data/lib/openai/models/admin/organization/external_key_retrieve_params.rb +24 -0
- data/lib/openai/models/admin/organization/external_key_validate_params.rb +24 -0
- data/lib/openai/models/admin/organization/external_key_validate_response.rb +20 -0
- data/lib/openai/models/audio/speech_model.rb +12 -0
- data/lib/openai/models/audio_model.rb +15 -0
- data/lib/openai/models/beta/agent.rb +49 -1
- data/lib/openai/models/beta/agent_create_params.rb +51 -1
- data/lib/openai/models/beta/agent_session.rb +75 -2
- data/lib/openai/models/beta/agent_update_params.rb +62 -1
- data/lib/openai/models/beta/agents/session_create_params.rb +94 -2
- data/lib/openai/models/beta/agents/session_list_params.rb +16 -1
- data/lib/openai/models/beta/agents/session_update_params.rb +50 -5
- data/lib/openai/models/beta/assistant_update_params.rb +18 -0
- data/lib/openai/models/beta/beta_response.rb +224 -1
- data/lib/openai/models/beta/beta_response_configuration_update_item.rb +64 -3
- data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +64 -4
- data/lib/openai/models/beta/beta_response_input_item.rb +2 -3
- data/lib/openai/models/beta/beta_response_item.rb +2 -2
- data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +6 -6
- data/lib/openai/models/beta/beta_responses_client_event.rb +20 -1
- data/lib/openai/models/beta/beta_tool.rb +6 -6
- data/lib/openai/models/beta/response_compact_params.rb +6 -0
- data/lib/openai/models/beta/response_create_params.rb +6 -0
- data/lib/openai/models/chat_model.rb +6 -0
- data/lib/openai/models/conversations/conversation_item.rb +2 -2
- data/lib/openai/models/image_edit_params.rb +46 -25
- data/lib/openai/models/live/fork_server_event.rb +43 -3
- data/lib/openai/models/live/server_event.rb +43 -3
- data/lib/openai/models/live/sideband_client_event.rb +40 -1
- data/lib/openai/models/live/sideband_server_event.rb +43 -3
- data/lib/openai/models/realtime/audio_transcription.rb +15 -0
- data/lib/openai/models/realtime/conversation_item_added.rb +2 -2
- data/lib/openai/models/realtime/conversation_item_create_event.rb +2 -2
- data/lib/openai/models/realtime/conversation_item_created_event.rb +2 -2
- data/lib/openai/models/realtime/conversation_item_done.rb +2 -2
- data/lib/openai/models/realtime/realtime_response.rb +2 -2
- data/lib/openai/models/realtime/realtime_response_create_params.rb +2 -2
- data/lib/openai/models/realtime/realtime_server_event.rb +2 -2
- data/lib/openai/models/realtime/realtime_session.rb +18 -0
- data/lib/openai/models/realtime/realtime_session_create_request.rb +18 -0
- data/lib/openai/models/realtime/realtime_session_create_response.rb +18 -0
- data/lib/openai/models/realtime/response_output_item_added_event.rb +2 -2
- data/lib/openai/models/realtime/response_output_item_done_event.rb +2 -2
- data/lib/openai/models/responses/response.rb +221 -1
- data/lib/openai/models/responses/response_compact_params.rb +6 -0
- data/lib/openai/models/responses/response_configuration_update_item.rb +50 -3
- data/lib/openai/models/responses/response_configuration_update_item_param.rb +50 -4
- data/lib/openai/models/responses/response_input_item.rb +2 -3
- data/lib/openai/models/responses/response_item.rb +2 -2
- data/lib/openai/models/responses/response_tool_search_output_item_param.rb +6 -6
- data/lib/openai/models/responses/responses_client_event.rb +14 -1
- data/lib/openai/models/responses/tool.rb +6 -6
- data/lib/openai/net_http_client.rb +6 -0
- data/lib/openai/providers/vertex.rb +0 -10
- data/lib/openai/resources/admin/organization/external_keys.rb +132 -0
- data/lib/openai/resources/admin/organization.rb +4 -0
- data/lib/openai/resources/audio/speech.rb +8 -0
- data/lib/openai/resources/audio/translations.rb +8 -0
- data/lib/openai/resources/beta/agents/sessions.rb +22 -6
- data/lib/openai/resources/beta/agents.rb +17 -2
- data/lib/openai/resources/images.rb +36 -18
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +8 -0
- data/rbi/openai/helpers/live/websocket.rbi +1 -12
- data/rbi/openai/helpers/realtime/connection.rbi +5 -0
- data/rbi/openai/helpers/realtime/transports/async_websocket.rbi +5 -0
- data/rbi/openai/helpers/responses_websocket/connection.rbi +7 -2
- data/rbi/openai/helpers/structured_output.rbi +10 -0
- data/rbi/openai/internal/type/array_of.rbi +1 -1
- data/rbi/openai/internal/type/hash_of.rbi +1 -1
- data/rbi/openai/internal/type/union.rbi +5 -0
- data/rbi/openai/models/admin/organization/external_key.rbi +301 -0
- data/rbi/openai/models/admin/organization/external_key_create_params.rbi +532 -0
- data/rbi/openai/models/admin/organization/external_key_delete_params.rbi +57 -0
- data/rbi/openai/models/admin/organization/external_key_list_params.rbi +129 -0
- data/rbi/openai/models/admin/organization/external_key_retrieve_params.rbi +57 -0
- data/rbi/openai/models/admin/organization/external_key_validate_params.rbi +57 -0
- data/rbi/openai/models/admin/organization/external_key_validate_response.rbi +50 -0
- data/rbi/openai/models/beta/agent.rbi +103 -1
- data/rbi/openai/models/beta/agent_create_params.rbi +109 -0
- data/rbi/openai/models/beta/agent_session.rbi +136 -3
- data/rbi/openai/models/beta/agent_update_params.rbi +120 -0
- data/rbi/openai/models/beta/agents/session_create_params.rbi +153 -0
- data/rbi/openai/models/beta/agents/session_list_params.rbi +19 -0
- data/rbi/openai/models/beta/agents/session_update_params.rbi +94 -6
- data/rbi/openai/models/beta/beta_response.rbi +394 -0
- data/rbi/openai/models/beta/beta_response_configuration_update_item.rbi +113 -3
- data/rbi/openai/models/beta/beta_response_configuration_update_item_param.rbi +125 -4
- data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +6 -6
- data/rbi/openai/models/beta/beta_responses_client_event.rbi +17 -0
- data/rbi/openai/models/beta/beta_tool.rbi +6 -6
- data/rbi/openai/models/decision_create_params.rbi +4 -1
- data/rbi/openai/models/image_edit_params.rbi +49 -24
- data/rbi/openai/models/live/fork_server_event.rbi +65 -1
- data/rbi/openai/models/live/server_event.rbi +65 -1
- data/rbi/openai/models/live/sideband_client_event.rbi +60 -0
- data/rbi/openai/models/live/sideband_server_event.rbi +65 -1
- data/rbi/openai/models/realtime/conversation_item_added.rbi +6 -3
- data/rbi/openai/models/realtime/conversation_item_create_event.rbi +6 -3
- data/rbi/openai/models/realtime/conversation_item_created_event.rbi +6 -3
- data/rbi/openai/models/realtime/conversation_item_done.rbi +6 -3
- data/rbi/openai/models/realtime/realtime_response.rbi +8 -4
- data/rbi/openai/models/realtime/realtime_response_create_params.rbi +8 -4
- data/rbi/openai/models/realtime/realtime_server_event.rbi +6 -3
- data/rbi/openai/models/realtime/response_output_item_added_event.rbi +6 -3
- data/rbi/openai/models/realtime/response_output_item_done_event.rbi +6 -3
- data/rbi/openai/models/responses/response.rbi +394 -0
- data/rbi/openai/models/responses/response_configuration_update_item.rbi +76 -3
- data/rbi/openai/models/responses/response_configuration_update_item_param.rbi +74 -4
- data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +6 -6
- data/rbi/openai/models/responses/responses_client_event.rbi +17 -0
- data/rbi/openai/models/responses/tool.rbi +6 -6
- data/rbi/openai/net_http_client.rbi +5 -0
- data/rbi/openai/resources/admin/organization/external_keys.rbi +86 -0
- data/rbi/openai/resources/admin/organization.rbi +3 -0
- data/rbi/openai/resources/audio/speech.rbi +8 -0
- data/rbi/openai/resources/audio/translations.rbi +6 -0
- data/rbi/openai/resources/beta/agents/sessions.rbi +18 -2
- data/rbi/openai/resources/beta/agents.rbi +15 -0
- data/rbi/openai/resources/images.rbi +34 -16
- data/rbi/openai/resources/responses.rbi +2 -0
- data/realtime.md +6 -0
- data/responses-websocket.md +53 -0
- data/sig/openai/helpers/live/websocket.rbs +1 -9
- data/sig/openai/helpers/realtime/connection.rbs +3 -0
- data/sig/openai/helpers/realtime/transports/async_websocket.rbs +3 -0
- data/sig/openai/helpers/responses_websocket/connection.rbs +7 -1
- data/sig/openai/helpers/structured_output.rbs +9 -0
- data/sig/openai/internal/type/union.rbs +4 -0
- data/sig/openai/models/admin/organization/external_key.rbs +186 -0
- data/sig/openai/models/admin/organization/external_key_create_params.rbs +423 -0
- data/sig/openai/models/admin/organization/external_key_delete_params.rbs +27 -0
- data/sig/openai/models/admin/organization/external_key_list_params.rbs +81 -0
- data/sig/openai/models/admin/organization/external_key_retrieve_params.rbs +27 -0
- data/sig/openai/models/admin/organization/external_key_validate_params.rbs +27 -0
- data/sig/openai/models/admin/organization/external_key_validate_response.rbs +17 -0
- data/sig/openai/models/admin/organization/external_storage_create_params.rbs +72 -2
- data/sig/openai/models/audio/speech_create_params.rbs +15 -2
- data/sig/openai/models/audio/transcription_create_params.rbs +30 -2
- data/sig/openai/models/audio/voice_create_params.rbs +47 -2
- data/sig/openai/models/beta/agent.rbs +54 -2
- data/sig/openai/models/beta/agent_create_params.rbs +54 -0
- data/sig/openai/models/beta/agent_session.rbs +82 -3
- data/sig/openai/models/beta/agent_update_params.rbs +64 -0
- data/sig/openai/models/beta/agents/session_create_params.rbs +91 -0
- data/sig/openai/models/beta/agents/session_list_params.rbs +20 -0
- data/sig/openai/models/beta/agents/session_update_params.rbs +48 -6
- data/sig/openai/models/beta/assistant_create_params.rbs +5 -2
- data/sig/openai/models/beta/beta_response.rbs +223 -0
- data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +58 -2
- data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +58 -2
- data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +4 -4
- data/sig/openai/models/beta/beta_responses_client_event.rbs +17 -0
- data/sig/openai/models/beta/beta_tool.rbs +4 -4
- data/sig/openai/models/beta/response_create_params.rbs +5 -2
- data/sig/openai/models/beta/responses/input_token_count_params.rbs +10 -2
- data/sig/openai/models/beta/thread_create_and_run_params.rbs +11 -5
- data/sig/openai/models/beta/thread_create_params.rbs +11 -5
- data/sig/openai/models/beta/threads/message_create_params.rbs +6 -3
- data/sig/openai/models/beta/threads/run_create_params.rbs +6 -3
- data/sig/openai/models/decision_create_params.rbs +27 -2
- data/sig/openai/models/eval_create_params.rbs +25 -4
- data/sig/openai/models/evals/run_create_params.rbs +52 -8
- data/sig/openai/models/image_edit_params.rbs +47 -16
- data/sig/openai/models/live/fork_server_event.rbs +39 -0
- data/sig/openai/models/live/server_event.rbs +39 -0
- data/sig/openai/models/live/session_accept_params.rbs +39 -2
- data/sig/openai/models/live/sideband_client_event.rbs +32 -0
- data/sig/openai/models/live/sideband_server_event.rbs +39 -0
- data/sig/openai/models/realtime/conversation_item.rbs +1 -0
- data/sig/openai/models/responses/input_token_count_params.rbs +10 -2
- data/sig/openai/models/responses/response.rbs +223 -0
- data/sig/openai/models/responses/response_configuration_update_item.rbs +45 -2
- data/sig/openai/models/responses/response_configuration_update_item_param.rbs +45 -2
- data/sig/openai/models/responses/response_create_params.rbs +5 -2
- data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +4 -4
- data/sig/openai/models/responses/responses_client_event.rbs +17 -0
- data/sig/openai/models/responses/tool.rbs +4 -4
- data/sig/openai/models/video_edit_params.rbs +11 -2
- data/sig/openai/models/video_extend_params.rbs +11 -2
- data/sig/openai/net_http_client.rbs +3 -0
- data/sig/openai/resources/admin/organization/external_keys.rbs +70 -0
- data/sig/openai/resources/admin/organization/external_storage.rbs +23 -1
- data/sig/openai/resources/admin/organization.rbs +2 -0
- data/sig/openai/resources/audio/speech.rbs +2 -1
- data/sig/openai/resources/audio/transcriptions.rbs +14 -2
- data/sig/openai/resources/audio/voices.rbs +14 -1
- data/sig/openai/resources/beta/agents/sessions.rbs +4 -0
- data/sig/openai/resources/beta/agents.rbs +4 -0
- data/sig/openai/resources/beta/responses/input_tokens.rbs +2 -1
- data/sig/openai/resources/beta/responses.rbs +4 -2
- data/sig/openai/resources/decisions.rbs +7 -1
- data/sig/openai/resources/images.rbs +2 -0
- data/sig/openai/resources/responses/input_tokens.rbs +2 -1
- data/sig/openai/resources/responses.rbs +5 -2
- data/sig/openai/resources/videos.rbs +2 -2
- metadata +25 -1
|
@@ -38,9 +38,15 @@ module OpenAI
|
|
|
38
38
|
sig { params(reasoning: OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Reasoning::OrHash).void }
|
|
39
39
|
attr_writer :reasoning
|
|
40
40
|
|
|
41
|
-
#
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
# The text output configuration for subsequent responses.
|
|
42
|
+
sig { returns(T.nilable(OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Text)) }
|
|
43
|
+
attr_reader :text
|
|
44
|
+
|
|
45
|
+
sig { params(text: OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Text::OrHash).void }
|
|
46
|
+
attr_writer :text
|
|
47
|
+
|
|
48
|
+
# An update to the conversation's response configuration. Supply reasoning, text,
|
|
49
|
+
# or both. Each setting stays in effect until a later update replaces it.
|
|
44
50
|
sig do
|
|
45
51
|
params(
|
|
46
52
|
|
|
@@ -50,6 +56,8 @@ module OpenAI
|
|
|
50
56
|
|
|
51
57
|
reasoning: OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Reasoning::OrHash,
|
|
52
58
|
|
|
59
|
+
text: OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Text::OrHash,
|
|
60
|
+
|
|
53
61
|
type: Symbol
|
|
54
62
|
)
|
|
55
63
|
.returns(T.attached_class)
|
|
@@ -65,6 +73,9 @@ module OpenAI
|
|
|
65
73
|
# Updates to reasoning configuration. Only effort is supported.
|
|
66
74
|
reasoning: nil,
|
|
67
75
|
|
|
76
|
+
# The text output configuration for subsequent responses.
|
|
77
|
+
text: nil,
|
|
78
|
+
|
|
68
79
|
# The item type. Always `configuration_update`.
|
|
69
80
|
|
|
70
81
|
type: :configuration_update
|
|
@@ -77,7 +88,8 @@ module OpenAI
|
|
|
77
88
|
type: Symbol,
|
|
78
89
|
id: T.nilable(String),
|
|
79
90
|
agent: T.nilable(OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Agent),
|
|
80
|
-
reasoning: OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Reasoning
|
|
91
|
+
reasoning: OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Reasoning,
|
|
92
|
+
text: OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Text
|
|
81
93
|
}
|
|
82
94
|
)
|
|
83
95
|
end
|
|
@@ -199,6 +211,115 @@ module OpenAI
|
|
|
199
211
|
end
|
|
200
212
|
end
|
|
201
213
|
|
|
214
|
+
class Text < OpenAI::Internal::Type::BaseModel
|
|
215
|
+
OrHash = T.type_alias do
|
|
216
|
+
T.any(
|
|
217
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Text,
|
|
218
|
+
OpenAI::Internal::AnyHash
|
|
219
|
+
)
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
# Use a JSON schema for structured output or text to return to plain text.
|
|
223
|
+
sig {
|
|
224
|
+
returns(
|
|
225
|
+
T.any(
|
|
226
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Text::Format::Text,
|
|
227
|
+
OpenAI::Beta::BetaResponseFormatTextJSONSchemaConfig
|
|
228
|
+
)
|
|
229
|
+
)
|
|
230
|
+
}
|
|
231
|
+
attr_accessor :format_
|
|
232
|
+
|
|
233
|
+
# The text output configuration for subsequent responses.
|
|
234
|
+
sig do
|
|
235
|
+
params(
|
|
236
|
+
|
|
237
|
+
format_: T.any(
|
|
238
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Text::Format::Text::OrHash,
|
|
239
|
+
OpenAI::Beta::BetaResponseFormatTextJSONSchemaConfig::OrHash
|
|
240
|
+
)
|
|
241
|
+
)
|
|
242
|
+
.returns(T.attached_class)
|
|
243
|
+
end
|
|
244
|
+
def self.new(
|
|
245
|
+
|
|
246
|
+
# Use a JSON schema for structured output or text to return to plain text.
|
|
247
|
+
|
|
248
|
+
format_:
|
|
249
|
+
)
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
sig do
|
|
253
|
+
override.returns(
|
|
254
|
+
{
|
|
255
|
+
format_: T.any(
|
|
256
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Text::Format::Text,
|
|
257
|
+
OpenAI::Beta::BetaResponseFormatTextJSONSchemaConfig
|
|
258
|
+
)
|
|
259
|
+
}
|
|
260
|
+
)
|
|
261
|
+
end
|
|
262
|
+
def to_hash
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
# Use a JSON schema for structured output or text to return to plain text.
|
|
266
|
+
module Format
|
|
267
|
+
extend OpenAI::Internal::Type::Union
|
|
268
|
+
|
|
269
|
+
Variants = T.type_alias {
|
|
270
|
+
T.any(
|
|
271
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Text::Format::Text,
|
|
272
|
+
OpenAI::Beta::BetaResponseFormatTextJSONSchemaConfig
|
|
273
|
+
)
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
class Text < OpenAI::Internal::Type::BaseModel
|
|
277
|
+
OrHash = T.type_alias do
|
|
278
|
+
T.any(
|
|
279
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Text::Format::Text,
|
|
280
|
+
OpenAI::Internal::AnyHash
|
|
281
|
+
)
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
# The type of response format being defined. Always `text`.
|
|
285
|
+
sig { returns(Symbol) }
|
|
286
|
+
attr_accessor :type
|
|
287
|
+
|
|
288
|
+
# Default response format. Used to generate text responses.
|
|
289
|
+
sig do
|
|
290
|
+
params(
|
|
291
|
+
|
|
292
|
+
type: Symbol
|
|
293
|
+
)
|
|
294
|
+
.returns(T.attached_class)
|
|
295
|
+
end
|
|
296
|
+
def self.new(
|
|
297
|
+
|
|
298
|
+
# The type of response format being defined. Always `text`.
|
|
299
|
+
|
|
300
|
+
type: :text
|
|
301
|
+
)
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
sig do
|
|
305
|
+
override.returns(
|
|
306
|
+
{type: Symbol}
|
|
307
|
+
)
|
|
308
|
+
end
|
|
309
|
+
def to_hash
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
end
|
|
313
|
+
|
|
314
|
+
sig {
|
|
315
|
+
override.returns(T::Array[OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::Text::Format::Variants])
|
|
316
|
+
}
|
|
317
|
+
def self.variants
|
|
318
|
+
end
|
|
319
|
+
|
|
320
|
+
end
|
|
321
|
+
end
|
|
322
|
+
|
|
202
323
|
end
|
|
203
324
|
|
|
204
325
|
end
|
|
@@ -1308,8 +1308,8 @@ module OpenAI
|
|
|
1308
1308
|
|
|
1309
1309
|
# Control how much effort the model will exert to match the style and features,
|
|
1310
1310
|
# especially facial features, of input images. Supports `high` and `low` on
|
|
1311
|
-
# `gpt-image-1
|
|
1312
|
-
#
|
|
1311
|
+
# `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
|
|
1312
|
+
# this parameter. Defaults to `low` on supported models.
|
|
1313
1313
|
sig {
|
|
1314
1314
|
returns(
|
|
1315
1315
|
T.nilable(
|
|
@@ -1527,8 +1527,8 @@ module OpenAI
|
|
|
1527
1527
|
|
|
1528
1528
|
# Control how much effort the model will exert to match the style and features,
|
|
1529
1529
|
# especially facial features, of input images. Supports `high` and `low` on
|
|
1530
|
-
# `gpt-image-1
|
|
1531
|
-
#
|
|
1530
|
+
# `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
|
|
1531
|
+
# this parameter. Defaults to `low` on supported models.
|
|
1532
1532
|
input_fidelity: nil,
|
|
1533
1533
|
|
|
1534
1534
|
# Optional mask for inpainting. Contains `image_url` (string, optional) and
|
|
@@ -1688,8 +1688,8 @@ module OpenAI
|
|
|
1688
1688
|
|
|
1689
1689
|
# Control how much effort the model will exert to match the style and features,
|
|
1690
1690
|
# especially facial features, of input images. Supports `high` and `low` on
|
|
1691
|
-
# `gpt-image-1
|
|
1692
|
-
#
|
|
1691
|
+
# `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
|
|
1692
|
+
# this parameter. Defaults to `low` on supported models.
|
|
1693
1693
|
module InputFidelity
|
|
1694
1694
|
extend OpenAI::Internal::Type::Enum
|
|
1695
1695
|
|
|
@@ -58,6 +58,15 @@ module OpenAI
|
|
|
58
58
|
sig { returns(T.nilable(T.any(String, OpenAI::Beta::BetaResponseConversationParam))) }
|
|
59
59
|
attr_accessor :conversation
|
|
60
60
|
|
|
61
|
+
# Whether to generate output for this response. Defaults to true when omitted. Set
|
|
62
|
+
# to false to prepare request state without model output; the response ID can be
|
|
63
|
+
# used as previous_response_id on a later turn.
|
|
64
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
65
|
+
attr_reader :generate
|
|
66
|
+
|
|
67
|
+
sig { params(generate: T::Boolean).void }
|
|
68
|
+
attr_writer :generate
|
|
69
|
+
|
|
61
70
|
# Specify additional output data to include in the model response. Currently
|
|
62
71
|
# supported values are:
|
|
63
72
|
#
|
|
@@ -503,6 +512,8 @@ module OpenAI
|
|
|
503
512
|
|
|
504
513
|
conversation: T.nilable(T.any(String, OpenAI::Beta::BetaResponseConversationParam::OrHash)),
|
|
505
514
|
|
|
515
|
+
generate: T::Boolean,
|
|
516
|
+
|
|
506
517
|
include: T.nilable(T::Array[OpenAI::Beta::BetaResponseIncludable::OrSymbol]),
|
|
507
518
|
|
|
508
519
|
input: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Input::Variants,
|
|
@@ -616,6 +627,11 @@ module OpenAI
|
|
|
616
627
|
# response completes.
|
|
617
628
|
conversation: nil,
|
|
618
629
|
|
|
630
|
+
# Whether to generate output for this response. Defaults to true when omitted. Set
|
|
631
|
+
# to false to prepare request state without model output; the response ID can be
|
|
632
|
+
# used as previous_response_id on a later turn.
|
|
633
|
+
generate: nil,
|
|
634
|
+
|
|
619
635
|
# Specify additional output data to include in the model response. Currently
|
|
620
636
|
# supported values are:
|
|
621
637
|
#
|
|
@@ -882,6 +898,7 @@ module OpenAI
|
|
|
882
898
|
T::Array[OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ContextManagement]
|
|
883
899
|
),
|
|
884
900
|
conversation: T.nilable(T.any(String, OpenAI::Beta::BetaResponseConversationParam)),
|
|
901
|
+
generate: T.nilable(T::Boolean),
|
|
885
902
|
include: T.nilable(T::Array[OpenAI::Beta::BetaResponseIncludable::OrSymbol]),
|
|
886
903
|
input: T.nilable(OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Input::Variants),
|
|
887
904
|
instructions: T.nilable(String),
|
|
@@ -978,8 +978,8 @@ module OpenAI
|
|
|
978
978
|
|
|
979
979
|
# Control how much effort the model will exert to match the style and features,
|
|
980
980
|
# especially facial features, of input images. Supports `high` and `low` on
|
|
981
|
-
# `gpt-image-1
|
|
982
|
-
#
|
|
981
|
+
# `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
|
|
982
|
+
# this parameter. Defaults to `low` on supported models.
|
|
983
983
|
sig { returns(T.nilable(OpenAI::Beta::BetaTool::ImageGeneration::InputFidelity::OrSymbol)) }
|
|
984
984
|
attr_accessor :input_fidelity
|
|
985
985
|
|
|
@@ -1109,8 +1109,8 @@ module OpenAI
|
|
|
1109
1109
|
|
|
1110
1110
|
# Control how much effort the model will exert to match the style and features,
|
|
1111
1111
|
# especially facial features, of input images. Supports `high` and `low` on
|
|
1112
|
-
# `gpt-image-1
|
|
1113
|
-
#
|
|
1112
|
+
# `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
|
|
1113
|
+
# this parameter. Defaults to `low` on supported models.
|
|
1114
1114
|
input_fidelity: nil,
|
|
1115
1115
|
|
|
1116
1116
|
# Optional mask for inpainting. Contains `image_url` (string, optional) and
|
|
@@ -1228,8 +1228,8 @@ module OpenAI
|
|
|
1228
1228
|
|
|
1229
1229
|
# Control how much effort the model will exert to match the style and features,
|
|
1230
1230
|
# especially facial features, of input images. Supports `high` and `low` on
|
|
1231
|
-
# `gpt-image-1
|
|
1232
|
-
#
|
|
1231
|
+
# `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
|
|
1232
|
+
# this parameter. Defaults to `low` on supported models.
|
|
1233
1233
|
module InputFidelity
|
|
1234
1234
|
extend OpenAI::Internal::Type::Enum
|
|
1235
1235
|
|
|
@@ -160,7 +160,10 @@ module OpenAI
|
|
|
160
160
|
|
|
161
161
|
Variants = T.type_alias {
|
|
162
162
|
T.any(
|
|
163
|
-
|
|
163
|
+
T.any(
|
|
164
|
+
OpenAI::DecisionInputMessage::Variants,
|
|
165
|
+
OpenAI::DecisionCreateParams::Input::UnionMember1::DecisionInputUserMessage
|
|
166
|
+
),
|
|
164
167
|
OpenAI::DecisionCreateParams::Input::UnionMember1::DecisionInputDeveloperMessage,
|
|
165
168
|
OpenAI::DecisionCreateParams::Input::UnionMember1::DecisionInputSystemMessage,
|
|
166
169
|
OpenAI::DecisionCreateParams::Input::UnionMember1::DecisionInputAssistantMessage,
|
|
@@ -17,12 +17,12 @@ module OpenAI
|
|
|
17
17
|
|
|
18
18
|
# The image(s) to edit. Must be a supported image file or an array of images.
|
|
19
19
|
#
|
|
20
|
-
# For the GPT image models (`gpt-image-1`, `gpt-image-1
|
|
21
|
-
# `gpt-image-2
|
|
22
|
-
# `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
|
|
23
|
-
# `gpt-image-2.5-flare-2026-09-08
|
|
24
|
-
#
|
|
25
|
-
#
|
|
20
|
+
# For the GPT image models (`gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
|
|
21
|
+
# `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
|
|
22
|
+
# `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`, and
|
|
23
|
+
# `gpt-image-2.5-flare-2026-09-08`), each image should be a `png`, `webp`, or
|
|
24
|
+
# `jpg` file less than 50MB. You can provide up to 16 images.
|
|
25
|
+
# `chatgpt-image-latest` follows the same input constraints as GPT image models.
|
|
26
26
|
#
|
|
27
27
|
# `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
|
|
28
28
|
# metadata. Use `OpenAI::FilePart` when you need to override the filename or
|
|
@@ -49,11 +49,24 @@ module OpenAI
|
|
|
49
49
|
|
|
50
50
|
# Control how much effort the model will exert to match the style and features,
|
|
51
51
|
# especially facial features, of input images. Supports `high` and `low` on
|
|
52
|
-
# `gpt-image-1
|
|
53
|
-
#
|
|
52
|
+
# `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
|
|
53
|
+
# this parameter. Defaults to `low` on supported models.
|
|
54
54
|
sig { returns(T.nilable(OpenAI::ImageEditParams::InputFidelity::OrSymbol)) }
|
|
55
55
|
attr_accessor :input_fidelity
|
|
56
56
|
|
|
57
|
+
# A transparent PNG overlaid on the first image to guide the edit. Must match that
|
|
58
|
+
# image's dimensions after orientation and contain transparent pixels. Supports
|
|
59
|
+
# GPT Image 2.5 and 2.6. Cannot be combined with mask.
|
|
60
|
+
#
|
|
61
|
+
# `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
|
|
62
|
+
# metadata. Use `OpenAI::FilePart` when you need to override the filename or
|
|
63
|
+
# content type.
|
|
64
|
+
sig { returns(T.nilable(OpenAI::Internal::FileInput)) }
|
|
65
|
+
attr_reader :markup
|
|
66
|
+
|
|
67
|
+
sig { params(markup: OpenAI::Internal::FileInput).void }
|
|
68
|
+
attr_writer :markup
|
|
69
|
+
|
|
57
70
|
# An additional image whose fully transparent areas (e.g. where alpha is zero)
|
|
58
71
|
# indicate where `image` should be edited. If there are multiple images provided,
|
|
59
72
|
# the mask will be applied on the first image. Must be a valid PNG file, less than
|
|
@@ -160,6 +173,8 @@ module OpenAI
|
|
|
160
173
|
|
|
161
174
|
input_fidelity: T.nilable(OpenAI::ImageEditParams::InputFidelity::OrSymbol),
|
|
162
175
|
|
|
176
|
+
markup: OpenAI::Internal::FileInput,
|
|
177
|
+
|
|
163
178
|
mask: OpenAI::Internal::FileInput,
|
|
164
179
|
|
|
165
180
|
model: T.nilable(T.any(String, OpenAI::ImageModel::OrSymbol)),
|
|
@@ -190,12 +205,12 @@ module OpenAI
|
|
|
190
205
|
|
|
191
206
|
# The image(s) to edit. Must be a supported image file or an array of images.
|
|
192
207
|
#
|
|
193
|
-
# For the GPT image models (`gpt-image-1`, `gpt-image-1
|
|
194
|
-
# `gpt-image-2
|
|
195
|
-
# `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
|
|
196
|
-
# `gpt-image-2.5-flare-2026-09-08
|
|
197
|
-
#
|
|
198
|
-
#
|
|
208
|
+
# For the GPT image models (`gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
|
|
209
|
+
# `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
|
|
210
|
+
# `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`, and
|
|
211
|
+
# `gpt-image-2.5-flare-2026-09-08`), each image should be a `png`, `webp`, or
|
|
212
|
+
# `jpg` file less than 50MB. You can provide up to 16 images.
|
|
213
|
+
# `chatgpt-image-latest` follows the same input constraints as GPT image models.
|
|
199
214
|
#
|
|
200
215
|
# `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
|
|
201
216
|
# metadata. Use `OpenAI::FilePart` when you need to override the filename or
|
|
@@ -219,10 +234,19 @@ module OpenAI
|
|
|
219
234
|
|
|
220
235
|
# Control how much effort the model will exert to match the style and features,
|
|
221
236
|
# especially facial features, of input images. Supports `high` and `low` on
|
|
222
|
-
# `gpt-image-1
|
|
223
|
-
#
|
|
237
|
+
# `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
|
|
238
|
+
# this parameter. Defaults to `low` on supported models.
|
|
224
239
|
input_fidelity: nil,
|
|
225
240
|
|
|
241
|
+
# A transparent PNG overlaid on the first image to guide the edit. Must match that
|
|
242
|
+
# image's dimensions after orientation and contain transparent pixels. Supports
|
|
243
|
+
# GPT Image 2.5 and 2.6. Cannot be combined with mask.
|
|
244
|
+
#
|
|
245
|
+
# `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
|
|
246
|
+
# metadata. Use `OpenAI::FilePart` when you need to override the filename or
|
|
247
|
+
# content type.
|
|
248
|
+
markup: nil,
|
|
249
|
+
|
|
226
250
|
# An additional image whose fully transparent areas (e.g. where alpha is zero)
|
|
227
251
|
# indicate where `image` should be edited. If there are multiple images provided,
|
|
228
252
|
# the mask will be applied on the first image. Must be a valid PNG file, less than
|
|
@@ -312,6 +336,7 @@ module OpenAI
|
|
|
312
336
|
prompt: String,
|
|
313
337
|
background: T.nilable(OpenAI::ImageEditParams::Background::OrSymbol),
|
|
314
338
|
input_fidelity: T.nilable(OpenAI::ImageEditParams::InputFidelity::OrSymbol),
|
|
339
|
+
markup: OpenAI::Internal::FileInput,
|
|
315
340
|
mask: OpenAI::Internal::FileInput,
|
|
316
341
|
model: T.nilable(T.any(String, OpenAI::ImageModel::OrSymbol)),
|
|
317
342
|
n: T.nilable(Integer),
|
|
@@ -332,12 +357,12 @@ module OpenAI
|
|
|
332
357
|
|
|
333
358
|
# The image(s) to edit. Must be a supported image file or an array of images.
|
|
334
359
|
#
|
|
335
|
-
# For the GPT image models (`gpt-image-1`, `gpt-image-1
|
|
336
|
-
# `gpt-image-2
|
|
337
|
-
# `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
|
|
338
|
-
# `gpt-image-2.5-flare-2026-09-08
|
|
339
|
-
#
|
|
340
|
-
#
|
|
360
|
+
# For the GPT image models (`gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
|
|
361
|
+
# `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
|
|
362
|
+
# `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`, and
|
|
363
|
+
# `gpt-image-2.5-flare-2026-09-08`), each image should be a `png`, `webp`, or
|
|
364
|
+
# `jpg` file less than 50MB. You can provide up to 16 images.
|
|
365
|
+
# `chatgpt-image-latest` follows the same input constraints as GPT image models.
|
|
341
366
|
module Image
|
|
342
367
|
extend OpenAI::Internal::Type::Union
|
|
343
368
|
|
|
@@ -380,8 +405,8 @@ module OpenAI
|
|
|
380
405
|
|
|
381
406
|
# Control how much effort the model will exert to match the style and features,
|
|
382
407
|
# especially facial features, of input images. Supports `high` and `low` on
|
|
383
|
-
# `gpt-image-1
|
|
384
|
-
#
|
|
408
|
+
# `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
|
|
409
|
+
# this parameter. Defaults to `low` on supported models.
|
|
385
410
|
module InputFidelity
|
|
386
411
|
extend OpenAI::Internal::Type::Enum
|
|
387
412
|
|
|
@@ -39,6 +39,7 @@ module OpenAI
|
|
|
39
39
|
OpenAI::Live::InfoEvent,
|
|
40
40
|
OpenAI::Live::ForkServerEvent::TransportDtmfReceived,
|
|
41
41
|
OpenAI::Live::ForkServerEvent::TransportDtmfSend,
|
|
42
|
+
OpenAI::Live::ForkServerEvent::TransportDtmfSent,
|
|
42
43
|
OpenAI::Live::ForkServerEvent::TransportRinging,
|
|
43
44
|
OpenAI::Live::ForkServerEvent::TransportAnswered,
|
|
44
45
|
OpenAI::Live::ForkServerEvent::TransportFailed
|
|
@@ -171,6 +172,69 @@ module OpenAI
|
|
|
171
172
|
sig { params(client_event_id: String).void }
|
|
172
173
|
attr_writer :client_event_id
|
|
173
174
|
|
|
175
|
+
# Legacy SIP DTMF delivery notification retained for SDK compatibility and saved
|
|
176
|
+
# events. Current servers confirm delivery with transport.dtmf.sent;
|
|
177
|
+
# transport.dtmf.send is now the client command.
|
|
178
|
+
sig do
|
|
179
|
+
params(
|
|
180
|
+
|
|
181
|
+
event: String,
|
|
182
|
+
|
|
183
|
+
event_id: String,
|
|
184
|
+
|
|
185
|
+
client_event_id: String,
|
|
186
|
+
|
|
187
|
+
type: Symbol
|
|
188
|
+
)
|
|
189
|
+
.returns(T.attached_class)
|
|
190
|
+
end
|
|
191
|
+
def self.new(
|
|
192
|
+
|
|
193
|
+
event:,
|
|
194
|
+
|
|
195
|
+
event_id:,
|
|
196
|
+
|
|
197
|
+
# The event_id of the client command, when supplied.
|
|
198
|
+
client_event_id: nil,
|
|
199
|
+
|
|
200
|
+
type: :"transport.dtmf.send"
|
|
201
|
+
)
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
sig do
|
|
205
|
+
override.returns(
|
|
206
|
+
{event: String, event_id: String, type: Symbol, client_event_id: T.nilable(String)}
|
|
207
|
+
)
|
|
208
|
+
end
|
|
209
|
+
def to_hash
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
class TransportDtmfSent < OpenAI::Internal::Type::BaseModel
|
|
215
|
+
OrHash = T.type_alias do
|
|
216
|
+
T.any(
|
|
217
|
+
OpenAI::Live::ForkServerEvent::TransportDtmfSent,
|
|
218
|
+
OpenAI::Internal::AnyHash
|
|
219
|
+
)
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
sig { returns(String) }
|
|
223
|
+
attr_accessor :event
|
|
224
|
+
|
|
225
|
+
sig { returns(String) }
|
|
226
|
+
attr_accessor :event_id
|
|
227
|
+
|
|
228
|
+
sig { returns(Symbol) }
|
|
229
|
+
attr_accessor :type
|
|
230
|
+
|
|
231
|
+
# The event_id of the client command, when supplied.
|
|
232
|
+
sig { returns(T.nilable(String)) }
|
|
233
|
+
attr_reader :client_event_id
|
|
234
|
+
|
|
235
|
+
sig { params(client_event_id: String).void }
|
|
236
|
+
attr_writer :client_event_id
|
|
237
|
+
|
|
174
238
|
# A SIP DTMF keypress successfully sent to the SIP trunk. Delivered only to
|
|
175
239
|
# sideband observers; this is not a client command.
|
|
176
240
|
sig do
|
|
@@ -195,7 +259,7 @@ module OpenAI
|
|
|
195
259
|
# The event_id of the client command, when supplied.
|
|
196
260
|
client_event_id: nil,
|
|
197
261
|
|
|
198
|
-
type: :"transport.dtmf.
|
|
262
|
+
type: :"transport.dtmf.sent"
|
|
199
263
|
)
|
|
200
264
|
end
|
|
201
265
|
|
|
@@ -39,6 +39,7 @@ module OpenAI
|
|
|
39
39
|
OpenAI::Live::InfoEvent,
|
|
40
40
|
OpenAI::Live::ServerEvent::TransportDtmfReceived,
|
|
41
41
|
OpenAI::Live::ServerEvent::TransportDtmfSend,
|
|
42
|
+
OpenAI::Live::ServerEvent::TransportDtmfSent,
|
|
42
43
|
OpenAI::Live::ServerEvent::TransportRinging,
|
|
43
44
|
OpenAI::Live::ServerEvent::TransportAnswered,
|
|
44
45
|
OpenAI::Live::ServerEvent::TransportFailed
|
|
@@ -171,6 +172,69 @@ module OpenAI
|
|
|
171
172
|
sig { params(client_event_id: String).void }
|
|
172
173
|
attr_writer :client_event_id
|
|
173
174
|
|
|
175
|
+
# Legacy SIP DTMF delivery notification retained for SDK compatibility and saved
|
|
176
|
+
# events. Current servers confirm delivery with transport.dtmf.sent;
|
|
177
|
+
# transport.dtmf.send is now the client command.
|
|
178
|
+
sig do
|
|
179
|
+
params(
|
|
180
|
+
|
|
181
|
+
event: String,
|
|
182
|
+
|
|
183
|
+
event_id: String,
|
|
184
|
+
|
|
185
|
+
client_event_id: String,
|
|
186
|
+
|
|
187
|
+
type: Symbol
|
|
188
|
+
)
|
|
189
|
+
.returns(T.attached_class)
|
|
190
|
+
end
|
|
191
|
+
def self.new(
|
|
192
|
+
|
|
193
|
+
event:,
|
|
194
|
+
|
|
195
|
+
event_id:,
|
|
196
|
+
|
|
197
|
+
# The event_id of the client command, when supplied.
|
|
198
|
+
client_event_id: nil,
|
|
199
|
+
|
|
200
|
+
type: :"transport.dtmf.send"
|
|
201
|
+
)
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
sig do
|
|
205
|
+
override.returns(
|
|
206
|
+
{event: String, event_id: String, type: Symbol, client_event_id: T.nilable(String)}
|
|
207
|
+
)
|
|
208
|
+
end
|
|
209
|
+
def to_hash
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
class TransportDtmfSent < OpenAI::Internal::Type::BaseModel
|
|
215
|
+
OrHash = T.type_alias do
|
|
216
|
+
T.any(
|
|
217
|
+
OpenAI::Live::ServerEvent::TransportDtmfSent,
|
|
218
|
+
OpenAI::Internal::AnyHash
|
|
219
|
+
)
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
sig { returns(String) }
|
|
223
|
+
attr_accessor :event
|
|
224
|
+
|
|
225
|
+
sig { returns(String) }
|
|
226
|
+
attr_accessor :event_id
|
|
227
|
+
|
|
228
|
+
sig { returns(Symbol) }
|
|
229
|
+
attr_accessor :type
|
|
230
|
+
|
|
231
|
+
# The event_id of the client command, when supplied.
|
|
232
|
+
sig { returns(T.nilable(String)) }
|
|
233
|
+
attr_reader :client_event_id
|
|
234
|
+
|
|
235
|
+
sig { params(client_event_id: String).void }
|
|
236
|
+
attr_writer :client_event_id
|
|
237
|
+
|
|
174
238
|
# A SIP DTMF keypress successfully sent to the SIP trunk. Delivered only to
|
|
175
239
|
# sideband observers; this is not a client command.
|
|
176
240
|
sig do
|
|
@@ -195,7 +259,7 @@ module OpenAI
|
|
|
195
259
|
# The event_id of the client command, when supplied.
|
|
196
260
|
client_event_id: nil,
|
|
197
261
|
|
|
198
|
-
type: :"transport.dtmf.
|
|
262
|
+
type: :"transport.dtmf.sent"
|
|
199
263
|
)
|
|
200
264
|
end
|
|
201
265
|
|
|
@@ -16,6 +16,7 @@ module OpenAI
|
|
|
16
16
|
OpenAI::Live::InputAudioMuteEvent,
|
|
17
17
|
OpenAI::Live::InputAudioUnmuteEvent,
|
|
18
18
|
OpenAI::Live::OutputAudioFixturePlayEvent,
|
|
19
|
+
OpenAI::Live::SidebandClientEvent::TransportDtmfSend,
|
|
19
20
|
OpenAI::Live::InstructionsAppendEvent,
|
|
20
21
|
OpenAI::Live::ThinkingAppendEvent,
|
|
21
22
|
OpenAI::Live::CommentaryAppendEvent,
|
|
@@ -28,6 +29,65 @@ module OpenAI
|
|
|
28
29
|
)
|
|
29
30
|
end
|
|
30
31
|
|
|
32
|
+
class TransportDtmfSend < OpenAI::Internal::Type::BaseModel
|
|
33
|
+
OrHash = T.type_alias do
|
|
34
|
+
T.any(
|
|
35
|
+
OpenAI::Live::SidebandClientEvent::TransportDtmfSend,
|
|
36
|
+
OpenAI::Internal::AnyHash
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# The DTMF key to send: one of `0`–`9`, `A`–`D`, `*`, or `#`.
|
|
41
|
+
sig { returns(String) }
|
|
42
|
+
attr_accessor :event
|
|
43
|
+
|
|
44
|
+
sig { returns(Symbol) }
|
|
45
|
+
attr_accessor :type
|
|
46
|
+
|
|
47
|
+
# Optional client identifier for correlating this command with a server event's
|
|
48
|
+
# client_event_id or error.client_event_id.
|
|
49
|
+
sig { returns(T.nilable(String)) }
|
|
50
|
+
attr_accessor :event_id
|
|
51
|
+
|
|
52
|
+
# Send one DTMF keypress to the SIP trunk through a Live sideband connection. This
|
|
53
|
+
# command is supported only for SIP calls. A successful send emits
|
|
54
|
+
# `transport.dtmf.sent` on sideband. If you provide `event_id`, the success
|
|
55
|
+
# notification includes it as `client_event_id`; a failure includes it as
|
|
56
|
+
# `error.client_event_id`. Send separate events for multiple keypresses.
|
|
57
|
+
sig do
|
|
58
|
+
params(
|
|
59
|
+
|
|
60
|
+
event: String,
|
|
61
|
+
|
|
62
|
+
event_id: T.nilable(String),
|
|
63
|
+
|
|
64
|
+
type: Symbol
|
|
65
|
+
)
|
|
66
|
+
.returns(T.attached_class)
|
|
67
|
+
end
|
|
68
|
+
def self.new(
|
|
69
|
+
|
|
70
|
+
# The DTMF key to send: one of `0`–`9`, `A`–`D`, `*`, or `#`.
|
|
71
|
+
event:,
|
|
72
|
+
|
|
73
|
+
# Optional client identifier for correlating this command with a server event's
|
|
74
|
+
# client_event_id or error.client_event_id.
|
|
75
|
+
event_id: nil,
|
|
76
|
+
|
|
77
|
+
type: :"transport.dtmf.send"
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
sig do
|
|
82
|
+
override.returns(
|
|
83
|
+
{event: String, type: Symbol, event_id: T.nilable(String)}
|
|
84
|
+
)
|
|
85
|
+
end
|
|
86
|
+
def to_hash
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
end
|
|
90
|
+
|
|
31
91
|
sig { override.returns(T::Array[OpenAI::Live::SidebandClientEvent::Variants]) }
|
|
32
92
|
def self.variants
|
|
33
93
|
end
|