Skip to content

Commit 24025b5

Browse files
feat(api): realtime API updates
1 parent 71828a5 commit 24025b5

File tree

331 files changed

+36533
-747
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

331 files changed

+36533
-747
lines changed

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 117
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-8517ffa1004e31ca2523d617629e64be6fe4f13403ddfd9db5b3be002656cbde.yml
3-
openapi_spec_hash: b64dd8c8b23082a7aa2a3e5c5fffd8bd
4-
config_hash: fe0ea26680ac2075a6cd66416aefe7db
1+
configured_endpoints: 118
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-356b4364203ff36d7724074cd04f6e684253bfcc3c9d969122d730aa7bc51b46.yml
3+
openapi_spec_hash: 4ab8e96f52699bc3d2b0c4432aa92af8
4+
config_hash: b854932c0ea24b400bdd64e4376936bd

lib/openai.rb

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,97 @@
380380
require_relative "openai/models/moderation_multi_modal_input"
381381
require_relative "openai/models/moderation_text_input"
382382
require_relative "openai/models/other_file_chunking_strategy_object"
383+
require_relative "openai/models/realtime/client_secret_create_params"
384+
require_relative "openai/models/realtime/client_secret_create_response"
385+
require_relative "openai/models/realtime/conversation_created_event"
386+
require_relative "openai/models/realtime/conversation_item"
387+
require_relative "openai/models/realtime/conversation_item_added"
388+
require_relative "openai/models/realtime/conversation_item_created_event"
389+
require_relative "openai/models/realtime/conversation_item_create_event"
390+
require_relative "openai/models/realtime/conversation_item_deleted_event"
391+
require_relative "openai/models/realtime/conversation_item_delete_event"
392+
require_relative "openai/models/realtime/conversation_item_done"
393+
require_relative "openai/models/realtime/conversation_item_input_audio_transcription_completed_event"
394+
require_relative "openai/models/realtime/conversation_item_input_audio_transcription_delta_event"
395+
require_relative "openai/models/realtime/conversation_item_input_audio_transcription_failed_event"
396+
require_relative "openai/models/realtime/conversation_item_input_audio_transcription_segment"
397+
require_relative "openai/models/realtime/conversation_item_retrieve_event"
398+
require_relative "openai/models/realtime/conversation_item_truncated_event"
399+
require_relative "openai/models/realtime/conversation_item_truncate_event"
400+
require_relative "openai/models/realtime/conversation_item_with_reference"
401+
require_relative "openai/models/realtime/input_audio_buffer_append_event"
402+
require_relative "openai/models/realtime/input_audio_buffer_cleared_event"
403+
require_relative "openai/models/realtime/input_audio_buffer_clear_event"
404+
require_relative "openai/models/realtime/input_audio_buffer_commit_event"
405+
require_relative "openai/models/realtime/input_audio_buffer_committed_event"
406+
require_relative "openai/models/realtime/input_audio_buffer_speech_started_event"
407+
require_relative "openai/models/realtime/input_audio_buffer_speech_stopped_event"
408+
require_relative "openai/models/realtime/input_audio_buffer_timeout_triggered"
409+
require_relative "openai/models/realtime/log_prob_properties"
410+
require_relative "openai/models/realtime/mcp_list_tools_completed"
411+
require_relative "openai/models/realtime/mcp_list_tools_failed"
412+
require_relative "openai/models/realtime/mcp_list_tools_in_progress"
413+
require_relative "openai/models/realtime/output_audio_buffer_clear_event"
414+
require_relative "openai/models/realtime/rate_limits_updated_event"
415+
require_relative "openai/models/realtime/realtime_audio_config"
416+
require_relative "openai/models/realtime/realtime_client_event"
417+
require_relative "openai/models/realtime/realtime_client_secret_config"
418+
require_relative "openai/models/realtime/realtime_conversation_item_assistant_message"
419+
require_relative "openai/models/realtime/realtime_conversation_item_function_call"
420+
require_relative "openai/models/realtime/realtime_conversation_item_function_call_output"
421+
require_relative "openai/models/realtime/realtime_conversation_item_system_message"
422+
require_relative "openai/models/realtime/realtime_conversation_item_user_message"
423+
require_relative "openai/models/realtime/realtime_error"
424+
require_relative "openai/models/realtime/realtime_error_event"
425+
require_relative "openai/models/realtime/realtime_mcp_approval_request"
426+
require_relative "openai/models/realtime/realtime_mcp_approval_response"
427+
require_relative "openai/models/realtime/realtime_mcphttp_error"
428+
require_relative "openai/models/realtime/realtime_mcp_list_tools"
429+
require_relative "openai/models/realtime/realtime_mcp_protocol_error"
430+
require_relative "openai/models/realtime/realtime_mcp_tool_call"
431+
require_relative "openai/models/realtime/realtime_mcp_tool_execution_error"
432+
require_relative "openai/models/realtime/realtime_response"
433+
require_relative "openai/models/realtime/realtime_response_status"
434+
require_relative "openai/models/realtime/realtime_response_usage"
435+
require_relative "openai/models/realtime/realtime_response_usage_input_token_details"
436+
require_relative "openai/models/realtime/realtime_response_usage_output_token_details"
437+
require_relative "openai/models/realtime/realtime_server_event"
438+
require_relative "openai/models/realtime/realtime_session"
439+
require_relative "openai/models/realtime/realtime_session_create_request"
440+
require_relative "openai/models/realtime/realtime_session_create_response"
441+
require_relative "openai/models/realtime/realtime_tool_choice_config"
442+
require_relative "openai/models/realtime/realtime_tools_config"
443+
require_relative "openai/models/realtime/realtime_tools_config_union"
444+
require_relative "openai/models/realtime/realtime_tracing_config"
445+
require_relative "openai/models/realtime/realtime_transcription_session_create_request"
446+
require_relative "openai/models/realtime/realtime_truncation"
447+
require_relative "openai/models/realtime/response_audio_delta_event"
448+
require_relative "openai/models/realtime/response_audio_done_event"
449+
require_relative "openai/models/realtime/response_audio_transcript_delta_event"
450+
require_relative "openai/models/realtime/response_audio_transcript_done_event"
451+
require_relative "openai/models/realtime/response_cancel_event"
452+
require_relative "openai/models/realtime/response_content_part_added_event"
453+
require_relative "openai/models/realtime/response_content_part_done_event"
454+
require_relative "openai/models/realtime/response_created_event"
455+
require_relative "openai/models/realtime/response_create_event"
456+
require_relative "openai/models/realtime/response_done_event"
457+
require_relative "openai/models/realtime/response_function_call_arguments_delta_event"
458+
require_relative "openai/models/realtime/response_function_call_arguments_done_event"
459+
require_relative "openai/models/realtime/response_mcp_call_arguments_delta"
460+
require_relative "openai/models/realtime/response_mcp_call_arguments_done"
461+
require_relative "openai/models/realtime/response_mcp_call_completed"
462+
require_relative "openai/models/realtime/response_mcp_call_failed"
463+
require_relative "openai/models/realtime/response_mcp_call_in_progress"
464+
require_relative "openai/models/realtime/response_output_item_added_event"
465+
require_relative "openai/models/realtime/response_output_item_done_event"
466+
require_relative "openai/models/realtime/response_text_delta_event"
467+
require_relative "openai/models/realtime/response_text_done_event"
468+
require_relative "openai/models/realtime/session_created_event"
469+
require_relative "openai/models/realtime/session_updated_event"
470+
require_relative "openai/models/realtime/session_update_event"
471+
require_relative "openai/models/realtime/transcription_session_created"
472+
require_relative "openai/models/realtime/transcription_session_update"
473+
require_relative "openai/models/realtime/transcription_session_updated_event"
383474
require_relative "openai/models/reasoning"
384475
require_relative "openai/models/response_format_json_object"
385476
require_relative "openai/models/response_format_json_schema"
@@ -495,6 +586,7 @@
495586
require_relative "openai/models/responses/tool_choice_mcp"
496587
require_relative "openai/models/responses/tool_choice_options"
497588
require_relative "openai/models/responses/tool_choice_types"
589+
require_relative "openai/models/responses/web_search_preview_tool"
498590
require_relative "openai/models/responses/web_search_tool"
499591
require_relative "openai/models/responses_model"
500592
require_relative "openai/models/static_file_chunking_strategy"
@@ -539,6 +631,7 @@
539631
require_relative "openai/models/webhooks/fine_tuning_job_cancelled_webhook_event"
540632
require_relative "openai/models/webhooks/fine_tuning_job_failed_webhook_event"
541633
require_relative "openai/models/webhooks/fine_tuning_job_succeeded_webhook_event"
634+
require_relative "openai/models/webhooks/realtime_call_incoming_webhook_event"
542635
require_relative "openai/models/webhooks/response_cancelled_webhook_event"
543636
require_relative "openai/models/webhooks/response_completed_webhook_event"
544637
require_relative "openai/models/webhooks/response_failed_webhook_event"
@@ -584,6 +677,8 @@
584677
require_relative "openai/resources/images"
585678
require_relative "openai/resources/models"
586679
require_relative "openai/resources/moderations"
680+
require_relative "openai/resources/realtime"
681+
require_relative "openai/resources/realtime/client_secrets"
587682
require_relative "openai/resources/responses"
588683
require_relative "openai/resources/responses/input_items"
589684
require_relative "openai/resources/uploads"

lib/openai/client.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ class Client < OpenAI::Internal::Transport::BaseClient
7575
# @return [OpenAI::Resources::Responses]
7676
attr_reader :responses
7777

78+
# @return [OpenAI::Resources::Realtime]
79+
attr_reader :realtime
80+
7881
# @return [OpenAI::Resources::Conversations]
7982
attr_reader :conversations
8083

@@ -163,6 +166,7 @@ def initialize(
163166
@batches = OpenAI::Resources::Batches.new(client: self)
164167
@uploads = OpenAI::Resources::Uploads.new(client: self)
165168
@responses = OpenAI::Resources::Responses.new(client: self)
169+
@realtime = OpenAI::Resources::Realtime.new(client: self)
166170
@conversations = OpenAI::Resources::Conversations.new(client: self)
167171
@evals = OpenAI::Resources::Evals.new(client: self)
168172
@containers = OpenAI::Resources::Containers.new(client: self)

lib/openai/models.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,8 @@ module OpenAI
203203

204204
OtherFileChunkingStrategyObject = OpenAI::Models::OtherFileChunkingStrategyObject
205205

206+
Realtime = OpenAI::Models::Realtime
207+
206208
Reasoning = OpenAI::Models::Reasoning
207209

208210
ReasoningEffort = OpenAI::Models::ReasoningEffort

lib/openai/models/audio/speech_create_params.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,10 @@ module Voice
117117

118118
variant const: -> { OpenAI::Models::Audio::SpeechCreateParams::Voice::VERSE }
119119

120+
variant const: -> { OpenAI::Models::Audio::SpeechCreateParams::Voice::MARIN }
121+
122+
variant const: -> { OpenAI::Models::Audio::SpeechCreateParams::Voice::CEDAR }
123+
120124
# @!method self.variants
121125
# @return [Array(String, Symbol)]
122126

@@ -134,6 +138,8 @@ module Voice
134138
SAGE = :sage
135139
SHIMMER = :shimmer
136140
VERSE = :verse
141+
MARIN = :marin
142+
CEDAR = :cedar
137143

138144
# @!endgroup
139145
end

lib/openai/models/chat/chat_completion_audio_param.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ module Voice
7373

7474
variant const: -> { OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::VERSE }
7575

76+
variant const: -> { OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::MARIN }
77+
78+
variant const: -> { OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::CEDAR }
79+
7680
# @!method self.variants
7781
# @return [Array(String, Symbol)]
7882

@@ -90,6 +94,8 @@ module Voice
9094
SAGE = :sage
9195
SHIMMER = :shimmer
9296
VERSE = :verse
97+
MARIN = :marin
98+
CEDAR = :cedar
9399

94100
# @!endgroup
95101
end

lib/openai/models/evals/run_cancel_response.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,7 @@ class SamplingParams < OpenAI::Internal::Type::BaseModel
686686
# the model to call your own code. Learn more about
687687
# [function calling](https://platform.openai.com/docs/guides/function-calling).
688688
#
689-
# @return [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::Tool::WebSearchTool, OpenAI::Models::Responses::WebSearchTool>, nil]
689+
# @return [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::WebSearchTool, OpenAI::Models::Responses::WebSearchPreviewTool>, nil]
690690
optional :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::Tool] }
691691

692692
# @!attribute top_p
@@ -708,7 +708,7 @@ class SamplingParams < OpenAI::Internal::Type::BaseModel
708708
#
709709
# @param text [OpenAI::Models::Evals::RunCancelResponse::DataSource::Responses::SamplingParams::Text] Configuration options for a text response from the model. Can be plain
710710
#
711-
# @param tools [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::Tool::WebSearchTool, OpenAI::Models::Responses::WebSearchTool>] An array of tools the model may call while generating a response. You
711+
# @param tools [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::WebSearchTool, OpenAI::Models::Responses::WebSearchPreviewTool>] An array of tools the model may call while generating a response. You
712712
#
713713
# @param top_p [Float] An alternative to temperature for nucleus sampling; 1.0 includes all tokens.
714714

lib/openai/models/evals/run_create_params.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,7 @@ class SamplingParams < OpenAI::Internal::Type::BaseModel
614614
# the model to call your own code. Learn more about
615615
# [function calling](https://platform.openai.com/docs/guides/function-calling).
616616
#
617-
# @return [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::Tool::WebSearchTool, OpenAI::Models::Responses::WebSearchTool>, nil]
617+
# @return [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::WebSearchTool, OpenAI::Models::Responses::WebSearchPreviewTool>, nil]
618618
optional :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::Tool] }
619619

620620
# @!attribute top_p
@@ -636,7 +636,7 @@ class SamplingParams < OpenAI::Internal::Type::BaseModel
636636
#
637637
# @param text [OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::SamplingParams::Text] Configuration options for a text response from the model. Can be plain
638638
#
639-
# @param tools [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::Tool::WebSearchTool, OpenAI::Models::Responses::WebSearchTool>] An array of tools the model may call while generating a response. You
639+
# @param tools [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::WebSearchTool, OpenAI::Models::Responses::WebSearchPreviewTool>] An array of tools the model may call while generating a response. You
640640
#
641641
# @param top_p [Float] An alternative to temperature for nucleus sampling; 1.0 includes all tokens.
642642

lib/openai/models/evals/run_create_response.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,7 @@ class SamplingParams < OpenAI::Internal::Type::BaseModel
686686
# the model to call your own code. Learn more about
687687
# [function calling](https://platform.openai.com/docs/guides/function-calling).
688688
#
689-
# @return [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::Tool::WebSearchTool, OpenAI::Models::Responses::WebSearchTool>, nil]
689+
# @return [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::WebSearchTool, OpenAI::Models::Responses::WebSearchPreviewTool>, nil]
690690
optional :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::Tool] }
691691

692692
# @!attribute top_p
@@ -708,7 +708,7 @@ class SamplingParams < OpenAI::Internal::Type::BaseModel
708708
#
709709
# @param text [OpenAI::Models::Evals::RunCreateResponse::DataSource::Responses::SamplingParams::Text] Configuration options for a text response from the model. Can be plain
710710
#
711-
# @param tools [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::Tool::WebSearchTool, OpenAI::Models::Responses::WebSearchTool>] An array of tools the model may call while generating a response. You
711+
# @param tools [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::WebSearchTool, OpenAI::Models::Responses::WebSearchPreviewTool>] An array of tools the model may call while generating a response. You
712712
#
713713
# @param top_p [Float] An alternative to temperature for nucleus sampling; 1.0 includes all tokens.
714714

0 commit comments

Comments
 (0)