openai 0.114.0 → 0.115.1
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 +43 -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 +43 -1
|
@@ -301,6 +301,24 @@ module OpenAI
|
|
|
301
301
|
sig { params(text: OpenAI::Beta::BetaResponseTextConfig::OrHash).void }
|
|
302
302
|
attr_writer :text
|
|
303
303
|
|
|
304
|
+
# Usage reported by hosted tools, separate from base model `usage`. The field can
|
|
305
|
+
# be omitted when tool usage is unavailable. When present, tool families with no
|
|
306
|
+
# recorded usage have zero counts.
|
|
307
|
+
#
|
|
308
|
+
# `image_gen` sums available token counts across image generation calls. Calls
|
|
309
|
+
# with missing or incomplete usage records may be skipped. Output token details
|
|
310
|
+
# and cached input counts can be omitted. An omitted cache count means cache usage
|
|
311
|
+
# is unknown.
|
|
312
|
+
#
|
|
313
|
+
# `web_search.num_requests` counts billable searches. Discounted searches and
|
|
314
|
+
# actions such as opening a page are excluded. Use billing records to reconcile
|
|
315
|
+
# final charges.
|
|
316
|
+
sig { returns(T.nilable(OpenAI::Beta::BetaResponse::ToolUsage)) }
|
|
317
|
+
attr_reader :tool_usage
|
|
318
|
+
|
|
319
|
+
sig { params(tool_usage: OpenAI::Beta::BetaResponse::ToolUsage::OrHash).void }
|
|
320
|
+
attr_writer :tool_usage
|
|
321
|
+
|
|
304
322
|
# An integer between 0 and 20 specifying the maximum number of most likely tokens
|
|
305
323
|
# to return at each token position, each with an associated log probability. In
|
|
306
324
|
# some cases, the number of returned tokens may be fewer than requested.
|
|
@@ -469,6 +487,8 @@ module OpenAI
|
|
|
469
487
|
|
|
470
488
|
text: OpenAI::Beta::BetaResponseTextConfig::OrHash,
|
|
471
489
|
|
|
490
|
+
tool_usage: OpenAI::Beta::BetaResponse::ToolUsage::OrHash,
|
|
491
|
+
|
|
472
492
|
top_logprobs: T.nilable(Integer),
|
|
473
493
|
|
|
474
494
|
truncation: T.nilable(OpenAI::Beta::BetaResponse::Truncation::OrSymbol),
|
|
@@ -690,6 +710,20 @@ module OpenAI
|
|
|
690
710
|
# - [Structured Outputs](https://developers.openai.com/api/docs/guides/structured-outputs)
|
|
691
711
|
text: nil,
|
|
692
712
|
|
|
713
|
+
# Usage reported by hosted tools, separate from base model `usage`. The field can
|
|
714
|
+
# be omitted when tool usage is unavailable. When present, tool families with no
|
|
715
|
+
# recorded usage have zero counts.
|
|
716
|
+
#
|
|
717
|
+
# `image_gen` sums available token counts across image generation calls. Calls
|
|
718
|
+
# with missing or incomplete usage records may be skipped. Output token details
|
|
719
|
+
# and cached input counts can be omitted. An omitted cache count means cache usage
|
|
720
|
+
# is unknown.
|
|
721
|
+
#
|
|
722
|
+
# `web_search.num_requests` counts billable searches. Discounted searches and
|
|
723
|
+
# actions such as opening a page are excluded. Use billing records to reconcile
|
|
724
|
+
# final charges.
|
|
725
|
+
tool_usage: nil,
|
|
726
|
+
|
|
693
727
|
# An integer between 0 and 20 specifying the maximum number of most likely tokens
|
|
694
728
|
# to return at each token position, each with an associated log probability. In
|
|
695
729
|
# some cases, the number of returned tokens may be fewer than requested.
|
|
@@ -756,6 +790,7 @@ module OpenAI
|
|
|
756
790
|
service_tier: T.nilable(OpenAI::Beta::BetaResponse::ServiceTier::TaggedSymbol),
|
|
757
791
|
status: OpenAI::Beta::BetaResponseStatus::TaggedSymbol,
|
|
758
792
|
text: OpenAI::Beta::BetaResponseTextConfig,
|
|
793
|
+
tool_usage: OpenAI::Beta::BetaResponse::ToolUsage,
|
|
759
794
|
top_logprobs: T.nilable(Integer),
|
|
760
795
|
truncation: T.nilable(OpenAI::Beta::BetaResponse::Truncation::TaggedSymbol),
|
|
761
796
|
usage: OpenAI::Beta::BetaResponseUsage,
|
|
@@ -2310,6 +2345,365 @@ module OpenAI
|
|
|
2310
2345
|
end
|
|
2311
2346
|
end
|
|
2312
2347
|
|
|
2348
|
+
class ToolUsage < OpenAI::Internal::Type::BaseModel
|
|
2349
|
+
OrHash = T.type_alias do
|
|
2350
|
+
T.any(
|
|
2351
|
+
OpenAI::Beta::BetaResponse::ToolUsage,
|
|
2352
|
+
OpenAI::Internal::AnyHash
|
|
2353
|
+
)
|
|
2354
|
+
end
|
|
2355
|
+
|
|
2356
|
+
# Aggregated usage statistics for image generation tool calls.
|
|
2357
|
+
sig { returns(OpenAI::Beta::BetaResponse::ToolUsage::ImageGen) }
|
|
2358
|
+
attr_reader :image_gen
|
|
2359
|
+
|
|
2360
|
+
sig { params(image_gen: OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::OrHash).void }
|
|
2361
|
+
attr_writer :image_gen
|
|
2362
|
+
|
|
2363
|
+
# Aggregated billable usage statistics for web search tool calls.
|
|
2364
|
+
sig { returns(OpenAI::Beta::BetaResponse::ToolUsage::WebSearch) }
|
|
2365
|
+
attr_reader :web_search
|
|
2366
|
+
|
|
2367
|
+
sig { params(web_search: OpenAI::Beta::BetaResponse::ToolUsage::WebSearch::OrHash).void }
|
|
2368
|
+
attr_writer :web_search
|
|
2369
|
+
|
|
2370
|
+
# Usage reported by hosted tools, separate from base model `usage`. The field can
|
|
2371
|
+
# be omitted when tool usage is unavailable. When present, tool families with no
|
|
2372
|
+
# recorded usage have zero counts.
|
|
2373
|
+
#
|
|
2374
|
+
# `image_gen` sums available token counts across image generation calls. Calls
|
|
2375
|
+
# with missing or incomplete usage records may be skipped. Output token details
|
|
2376
|
+
# and cached input counts can be omitted. An omitted cache count means cache usage
|
|
2377
|
+
# is unknown.
|
|
2378
|
+
#
|
|
2379
|
+
# `web_search.num_requests` counts billable searches. Discounted searches and
|
|
2380
|
+
# actions such as opening a page are excluded. Use billing records to reconcile
|
|
2381
|
+
# final charges.
|
|
2382
|
+
sig do
|
|
2383
|
+
params(
|
|
2384
|
+
|
|
2385
|
+
image_gen: OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::OrHash,
|
|
2386
|
+
|
|
2387
|
+
web_search: OpenAI::Beta::BetaResponse::ToolUsage::WebSearch::OrHash
|
|
2388
|
+
)
|
|
2389
|
+
.returns(T.attached_class)
|
|
2390
|
+
end
|
|
2391
|
+
def self.new(
|
|
2392
|
+
|
|
2393
|
+
# Aggregated usage statistics for image generation tool calls.
|
|
2394
|
+
image_gen:,
|
|
2395
|
+
|
|
2396
|
+
# Aggregated billable usage statistics for web search tool calls.
|
|
2397
|
+
|
|
2398
|
+
web_search:
|
|
2399
|
+
)
|
|
2400
|
+
end
|
|
2401
|
+
|
|
2402
|
+
sig do
|
|
2403
|
+
override.returns(
|
|
2404
|
+
{
|
|
2405
|
+
image_gen: OpenAI::Beta::BetaResponse::ToolUsage::ImageGen,
|
|
2406
|
+
web_search: OpenAI::Beta::BetaResponse::ToolUsage::WebSearch
|
|
2407
|
+
}
|
|
2408
|
+
)
|
|
2409
|
+
end
|
|
2410
|
+
def to_hash
|
|
2411
|
+
end
|
|
2412
|
+
|
|
2413
|
+
class ImageGen < OpenAI::Internal::Type::BaseModel
|
|
2414
|
+
OrHash = T.type_alias do
|
|
2415
|
+
T.any(
|
|
2416
|
+
OpenAI::Beta::BetaResponse::ToolUsage::ImageGen,
|
|
2417
|
+
OpenAI::Internal::AnyHash
|
|
2418
|
+
)
|
|
2419
|
+
end
|
|
2420
|
+
|
|
2421
|
+
# The number of tokens (images and text) in the input prompt.
|
|
2422
|
+
sig { returns(Integer) }
|
|
2423
|
+
attr_accessor :input_tokens
|
|
2424
|
+
|
|
2425
|
+
# The input tokens detailed information for the image generation.
|
|
2426
|
+
sig { returns(OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::InputTokensDetails) }
|
|
2427
|
+
attr_reader :input_tokens_details
|
|
2428
|
+
|
|
2429
|
+
sig {
|
|
2430
|
+
params(input_tokens_details: OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::InputTokensDetails::OrHash)
|
|
2431
|
+
.void
|
|
2432
|
+
}
|
|
2433
|
+
attr_writer :input_tokens_details
|
|
2434
|
+
|
|
2435
|
+
# The number of output tokens generated by the model.
|
|
2436
|
+
sig { returns(Integer) }
|
|
2437
|
+
attr_accessor :output_tokens
|
|
2438
|
+
|
|
2439
|
+
# The total number of tokens (images and text) used for the image generation.
|
|
2440
|
+
sig { returns(Integer) }
|
|
2441
|
+
attr_accessor :total_tokens
|
|
2442
|
+
|
|
2443
|
+
sig { returns(T.nilable(Integer)) }
|
|
2444
|
+
attr_reader :cached_tokens
|
|
2445
|
+
|
|
2446
|
+
sig { params(cached_tokens: Integer).void }
|
|
2447
|
+
attr_writer :cached_tokens
|
|
2448
|
+
|
|
2449
|
+
sig { returns(T.nilable(OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::CachedTokensDetails)) }
|
|
2450
|
+
attr_reader :cached_tokens_details
|
|
2451
|
+
|
|
2452
|
+
sig {
|
|
2453
|
+
params(
|
|
2454
|
+
cached_tokens_details: OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::CachedTokensDetails::OrHash
|
|
2455
|
+
)
|
|
2456
|
+
.void
|
|
2457
|
+
}
|
|
2458
|
+
attr_writer :cached_tokens_details
|
|
2459
|
+
|
|
2460
|
+
# The output token details for the image generation.
|
|
2461
|
+
sig { returns(T.nilable(OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::OutputTokensDetails)) }
|
|
2462
|
+
attr_reader :output_tokens_details
|
|
2463
|
+
|
|
2464
|
+
sig {
|
|
2465
|
+
params(
|
|
2466
|
+
output_tokens_details: OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::OutputTokensDetails::OrHash
|
|
2467
|
+
)
|
|
2468
|
+
.void
|
|
2469
|
+
}
|
|
2470
|
+
attr_writer :output_tokens_details
|
|
2471
|
+
|
|
2472
|
+
# Aggregated usage statistics for image generation tool calls.
|
|
2473
|
+
sig do
|
|
2474
|
+
params(
|
|
2475
|
+
|
|
2476
|
+
input_tokens: Integer,
|
|
2477
|
+
|
|
2478
|
+
input_tokens_details: OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::InputTokensDetails::OrHash,
|
|
2479
|
+
|
|
2480
|
+
output_tokens: Integer,
|
|
2481
|
+
|
|
2482
|
+
total_tokens: Integer,
|
|
2483
|
+
|
|
2484
|
+
cached_tokens: Integer,
|
|
2485
|
+
|
|
2486
|
+
cached_tokens_details: OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::CachedTokensDetails::OrHash,
|
|
2487
|
+
|
|
2488
|
+
output_tokens_details: OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::OutputTokensDetails::OrHash
|
|
2489
|
+
)
|
|
2490
|
+
.returns(T.attached_class)
|
|
2491
|
+
end
|
|
2492
|
+
def self.new(
|
|
2493
|
+
|
|
2494
|
+
# The number of tokens (images and text) in the input prompt.
|
|
2495
|
+
input_tokens:,
|
|
2496
|
+
|
|
2497
|
+
# The input tokens detailed information for the image generation.
|
|
2498
|
+
input_tokens_details:,
|
|
2499
|
+
|
|
2500
|
+
# The number of output tokens generated by the model.
|
|
2501
|
+
output_tokens:,
|
|
2502
|
+
|
|
2503
|
+
# The total number of tokens (images and text) used for the image generation.
|
|
2504
|
+
total_tokens:,
|
|
2505
|
+
|
|
2506
|
+
cached_tokens: nil,
|
|
2507
|
+
|
|
2508
|
+
cached_tokens_details: nil,
|
|
2509
|
+
|
|
2510
|
+
# The output token details for the image generation.
|
|
2511
|
+
|
|
2512
|
+
output_tokens_details: nil
|
|
2513
|
+
)
|
|
2514
|
+
end
|
|
2515
|
+
|
|
2516
|
+
sig do
|
|
2517
|
+
override.returns(
|
|
2518
|
+
{
|
|
2519
|
+
input_tokens: Integer,
|
|
2520
|
+
input_tokens_details: OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::InputTokensDetails,
|
|
2521
|
+
output_tokens: Integer,
|
|
2522
|
+
total_tokens: Integer,
|
|
2523
|
+
cached_tokens: Integer,
|
|
2524
|
+
cached_tokens_details: OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::CachedTokensDetails,
|
|
2525
|
+
output_tokens_details: OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::OutputTokensDetails
|
|
2526
|
+
}
|
|
2527
|
+
)
|
|
2528
|
+
end
|
|
2529
|
+
def to_hash
|
|
2530
|
+
end
|
|
2531
|
+
|
|
2532
|
+
class InputTokensDetails < OpenAI::Internal::Type::BaseModel
|
|
2533
|
+
OrHash = T.type_alias do
|
|
2534
|
+
T.any(
|
|
2535
|
+
OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::InputTokensDetails,
|
|
2536
|
+
OpenAI::Internal::AnyHash
|
|
2537
|
+
)
|
|
2538
|
+
end
|
|
2539
|
+
|
|
2540
|
+
# The number of image tokens in the input prompt.
|
|
2541
|
+
sig { returns(Integer) }
|
|
2542
|
+
attr_accessor :image_tokens
|
|
2543
|
+
|
|
2544
|
+
# The number of text tokens in the input prompt.
|
|
2545
|
+
sig { returns(Integer) }
|
|
2546
|
+
attr_accessor :text_tokens
|
|
2547
|
+
|
|
2548
|
+
# The input tokens detailed information for the image generation.
|
|
2549
|
+
sig do
|
|
2550
|
+
params(
|
|
2551
|
+
|
|
2552
|
+
image_tokens: Integer,
|
|
2553
|
+
|
|
2554
|
+
text_tokens: Integer
|
|
2555
|
+
)
|
|
2556
|
+
.returns(T.attached_class)
|
|
2557
|
+
end
|
|
2558
|
+
def self.new(
|
|
2559
|
+
|
|
2560
|
+
# The number of image tokens in the input prompt.
|
|
2561
|
+
image_tokens:,
|
|
2562
|
+
|
|
2563
|
+
# The number of text tokens in the input prompt.
|
|
2564
|
+
|
|
2565
|
+
text_tokens:
|
|
2566
|
+
)
|
|
2567
|
+
end
|
|
2568
|
+
|
|
2569
|
+
sig do
|
|
2570
|
+
override.returns(
|
|
2571
|
+
{image_tokens: Integer, text_tokens: Integer}
|
|
2572
|
+
)
|
|
2573
|
+
end
|
|
2574
|
+
def to_hash
|
|
2575
|
+
end
|
|
2576
|
+
|
|
2577
|
+
end
|
|
2578
|
+
|
|
2579
|
+
class CachedTokensDetails < OpenAI::Internal::Type::BaseModel
|
|
2580
|
+
OrHash = T.type_alias do
|
|
2581
|
+
T.any(
|
|
2582
|
+
OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::CachedTokensDetails,
|
|
2583
|
+
OpenAI::Internal::AnyHash
|
|
2584
|
+
)
|
|
2585
|
+
end
|
|
2586
|
+
|
|
2587
|
+
sig { returns(Integer) }
|
|
2588
|
+
attr_accessor :cached_image_tokens
|
|
2589
|
+
|
|
2590
|
+
sig { returns(Integer) }
|
|
2591
|
+
attr_accessor :cached_text_tokens
|
|
2592
|
+
|
|
2593
|
+
sig do
|
|
2594
|
+
params(
|
|
2595
|
+
|
|
2596
|
+
cached_image_tokens: Integer,
|
|
2597
|
+
|
|
2598
|
+
cached_text_tokens: Integer
|
|
2599
|
+
)
|
|
2600
|
+
.returns(T.attached_class)
|
|
2601
|
+
end
|
|
2602
|
+
def self.new(
|
|
2603
|
+
|
|
2604
|
+
cached_image_tokens:,
|
|
2605
|
+
|
|
2606
|
+
cached_text_tokens:
|
|
2607
|
+
)
|
|
2608
|
+
end
|
|
2609
|
+
|
|
2610
|
+
sig do
|
|
2611
|
+
override.returns(
|
|
2612
|
+
{cached_image_tokens: Integer, cached_text_tokens: Integer}
|
|
2613
|
+
)
|
|
2614
|
+
end
|
|
2615
|
+
def to_hash
|
|
2616
|
+
end
|
|
2617
|
+
|
|
2618
|
+
end
|
|
2619
|
+
|
|
2620
|
+
class OutputTokensDetails < OpenAI::Internal::Type::BaseModel
|
|
2621
|
+
OrHash = T.type_alias do
|
|
2622
|
+
T.any(
|
|
2623
|
+
OpenAI::Beta::BetaResponse::ToolUsage::ImageGen::OutputTokensDetails,
|
|
2624
|
+
OpenAI::Internal::AnyHash
|
|
2625
|
+
)
|
|
2626
|
+
end
|
|
2627
|
+
|
|
2628
|
+
# The number of image output tokens generated by the model.
|
|
2629
|
+
sig { returns(Integer) }
|
|
2630
|
+
attr_accessor :image_tokens
|
|
2631
|
+
|
|
2632
|
+
# The number of text output tokens generated by the model.
|
|
2633
|
+
sig { returns(Integer) }
|
|
2634
|
+
attr_accessor :text_tokens
|
|
2635
|
+
|
|
2636
|
+
# The output token details for the image generation.
|
|
2637
|
+
sig do
|
|
2638
|
+
params(
|
|
2639
|
+
|
|
2640
|
+
image_tokens: Integer,
|
|
2641
|
+
|
|
2642
|
+
text_tokens: Integer
|
|
2643
|
+
)
|
|
2644
|
+
.returns(T.attached_class)
|
|
2645
|
+
end
|
|
2646
|
+
def self.new(
|
|
2647
|
+
|
|
2648
|
+
# The number of image output tokens generated by the model.
|
|
2649
|
+
image_tokens:,
|
|
2650
|
+
|
|
2651
|
+
# The number of text output tokens generated by the model.
|
|
2652
|
+
|
|
2653
|
+
text_tokens:
|
|
2654
|
+
)
|
|
2655
|
+
end
|
|
2656
|
+
|
|
2657
|
+
sig do
|
|
2658
|
+
override.returns(
|
|
2659
|
+
{image_tokens: Integer, text_tokens: Integer}
|
|
2660
|
+
)
|
|
2661
|
+
end
|
|
2662
|
+
def to_hash
|
|
2663
|
+
end
|
|
2664
|
+
|
|
2665
|
+
end
|
|
2666
|
+
end
|
|
2667
|
+
|
|
2668
|
+
class WebSearch < OpenAI::Internal::Type::BaseModel
|
|
2669
|
+
OrHash = T.type_alias do
|
|
2670
|
+
T.any(
|
|
2671
|
+
OpenAI::Beta::BetaResponse::ToolUsage::WebSearch,
|
|
2672
|
+
OpenAI::Internal::AnyHash
|
|
2673
|
+
)
|
|
2674
|
+
end
|
|
2675
|
+
|
|
2676
|
+
# The number of billable web search requests issued.
|
|
2677
|
+
sig { returns(Integer) }
|
|
2678
|
+
attr_accessor :num_requests
|
|
2679
|
+
|
|
2680
|
+
# Aggregated billable usage statistics for web search tool calls.
|
|
2681
|
+
sig do
|
|
2682
|
+
params(
|
|
2683
|
+
|
|
2684
|
+
num_requests: Integer
|
|
2685
|
+
)
|
|
2686
|
+
.returns(T.attached_class)
|
|
2687
|
+
end
|
|
2688
|
+
def self.new(
|
|
2689
|
+
|
|
2690
|
+
# The number of billable web search requests issued.
|
|
2691
|
+
|
|
2692
|
+
num_requests:
|
|
2693
|
+
)
|
|
2694
|
+
end
|
|
2695
|
+
|
|
2696
|
+
sig do
|
|
2697
|
+
override.returns(
|
|
2698
|
+
{num_requests: Integer}
|
|
2699
|
+
)
|
|
2700
|
+
end
|
|
2701
|
+
def to_hash
|
|
2702
|
+
end
|
|
2703
|
+
|
|
2704
|
+
end
|
|
2705
|
+
end
|
|
2706
|
+
|
|
2313
2707
|
# The truncation strategy to use for the model response.
|
|
2314
2708
|
#
|
|
2315
2709
|
# - `auto`: If the input to this Response exceeds the model's context window size,
|
|
@@ -38,8 +38,15 @@ module OpenAI
|
|
|
38
38
|
sig { params(reasoning: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Reasoning::OrHash).void }
|
|
39
39
|
attr_writer :reasoning
|
|
40
40
|
|
|
41
|
-
#
|
|
42
|
-
|
|
41
|
+
# The text output configuration for subsequent responses.
|
|
42
|
+
sig { returns(T.nilable(OpenAI::Beta::BetaResponseConfigurationUpdateItem::Text)) }
|
|
43
|
+
attr_reader :text
|
|
44
|
+
|
|
45
|
+
sig { params(text: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Text::OrHash).void }
|
|
46
|
+
attr_writer :text
|
|
47
|
+
|
|
48
|
+
# A configuration update for subsequent responses. Each setting stays in effect
|
|
49
|
+
# until a later update replaces that setting.
|
|
43
50
|
sig do
|
|
44
51
|
params(
|
|
45
52
|
|
|
@@ -49,6 +56,8 @@ module OpenAI
|
|
|
49
56
|
|
|
50
57
|
reasoning: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Reasoning::OrHash,
|
|
51
58
|
|
|
59
|
+
text: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Text::OrHash,
|
|
60
|
+
|
|
52
61
|
type: Symbol
|
|
53
62
|
)
|
|
54
63
|
.returns(T.attached_class)
|
|
@@ -64,6 +73,9 @@ module OpenAI
|
|
|
64
73
|
# The reasoning configuration applied by this update.
|
|
65
74
|
reasoning: nil,
|
|
66
75
|
|
|
76
|
+
# The text output configuration for subsequent responses.
|
|
77
|
+
text: nil,
|
|
78
|
+
|
|
67
79
|
# The item type. Always `configuration_update`.
|
|
68
80
|
|
|
69
81
|
type: :configuration_update
|
|
@@ -76,7 +88,8 @@ module OpenAI
|
|
|
76
88
|
id: String,
|
|
77
89
|
type: Symbol,
|
|
78
90
|
agent: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Agent,
|
|
79
|
-
reasoning: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Reasoning
|
|
91
|
+
reasoning: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Reasoning,
|
|
92
|
+
text: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Text
|
|
80
93
|
}
|
|
81
94
|
)
|
|
82
95
|
end
|
|
@@ -192,6 +205,103 @@ module OpenAI
|
|
|
192
205
|
end
|
|
193
206
|
end
|
|
194
207
|
|
|
208
|
+
class Text < OpenAI::Internal::Type::BaseModel
|
|
209
|
+
OrHash = T.type_alias do
|
|
210
|
+
T.any(
|
|
211
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItem::Text,
|
|
212
|
+
OpenAI::Internal::AnyHash
|
|
213
|
+
)
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
# Use a JSON schema for structured output or text to return to plain text.
|
|
217
|
+
sig { returns(OpenAI::Beta::BetaResponseConfigurationUpdateItem::Text::Format::Variants) }
|
|
218
|
+
attr_accessor :format_
|
|
219
|
+
|
|
220
|
+
# The text output configuration for subsequent responses.
|
|
221
|
+
sig do
|
|
222
|
+
params(
|
|
223
|
+
|
|
224
|
+
format_: T.any(
|
|
225
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItem::Text::Format::Text::OrHash,
|
|
226
|
+
OpenAI::Beta::BetaResponseFormatTextJSONSchemaConfig::OrHash
|
|
227
|
+
)
|
|
228
|
+
)
|
|
229
|
+
.returns(T.attached_class)
|
|
230
|
+
end
|
|
231
|
+
def self.new(
|
|
232
|
+
|
|
233
|
+
# Use a JSON schema for structured output or text to return to plain text.
|
|
234
|
+
|
|
235
|
+
format_:
|
|
236
|
+
)
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
sig do
|
|
240
|
+
override.returns(
|
|
241
|
+
{format_: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Text::Format::Variants}
|
|
242
|
+
)
|
|
243
|
+
end
|
|
244
|
+
def to_hash
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
# Use a JSON schema for structured output or text to return to plain text.
|
|
248
|
+
module Format
|
|
249
|
+
extend OpenAI::Internal::Type::Union
|
|
250
|
+
|
|
251
|
+
Variants = T.type_alias {
|
|
252
|
+
T.any(
|
|
253
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItem::Text::Format::Text,
|
|
254
|
+
OpenAI::Beta::BetaResponseFormatTextJSONSchemaConfig
|
|
255
|
+
)
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
class Text < OpenAI::Internal::Type::BaseModel
|
|
259
|
+
OrHash = T.type_alias do
|
|
260
|
+
T.any(
|
|
261
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItem::Text::Format::Text,
|
|
262
|
+
OpenAI::Internal::AnyHash
|
|
263
|
+
)
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
# The type of response format being defined. Always `text`.
|
|
267
|
+
sig { returns(Symbol) }
|
|
268
|
+
attr_accessor :type
|
|
269
|
+
|
|
270
|
+
# Default response format. Used to generate text responses.
|
|
271
|
+
sig do
|
|
272
|
+
params(
|
|
273
|
+
|
|
274
|
+
type: Symbol
|
|
275
|
+
)
|
|
276
|
+
.returns(T.attached_class)
|
|
277
|
+
end
|
|
278
|
+
def self.new(
|
|
279
|
+
|
|
280
|
+
# The type of response format being defined. Always `text`.
|
|
281
|
+
|
|
282
|
+
type: :text
|
|
283
|
+
)
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
sig do
|
|
287
|
+
override.returns(
|
|
288
|
+
{type: Symbol}
|
|
289
|
+
)
|
|
290
|
+
end
|
|
291
|
+
def to_hash
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
end
|
|
295
|
+
|
|
296
|
+
sig {
|
|
297
|
+
override.returns(T::Array[OpenAI::Beta::BetaResponseConfigurationUpdateItem::Text::Format::Variants])
|
|
298
|
+
}
|
|
299
|
+
def self.variants
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
end
|
|
303
|
+
end
|
|
304
|
+
|
|
195
305
|
end
|
|
196
306
|
|
|
197
307
|
end
|