openai 0.20.0 → 0.21.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 +13 -0
- data/README.md +1 -1
- data/lib/openai/client.rb +4 -0
- data/lib/openai/internal/stream.rb +3 -2
- data/lib/openai/models/audio/speech_create_params.rb +6 -0
- data/lib/openai/models/chat/chat_completion_audio_param.rb +6 -0
- data/lib/openai/models/evals/run_cancel_response.rb +2 -2
- data/lib/openai/models/evals/run_create_params.rb +2 -2
- data/lib/openai/models/evals/run_create_response.rb +2 -2
- data/lib/openai/models/evals/run_list_response.rb +2 -2
- data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
- data/lib/openai/models/realtime/client_secret_create_params.rb +93 -0
- data/lib/openai/models/realtime/client_secret_create_response.rb +300 -0
- data/lib/openai/models/realtime/conversation_created_event.rb +70 -0
- data/lib/openai/models/realtime/conversation_item.rb +44 -0
- data/lib/openai/models/realtime/conversation_item_added.rb +48 -0
- data/lib/openai/models/realtime/conversation_item_create_event.rb +57 -0
- data/lib/openai/models/realtime/conversation_item_created_event.rb +59 -0
- data/lib/openai/models/realtime/conversation_item_delete_event.rb +39 -0
- data/lib/openai/models/realtime/conversation_item_deleted_event.rb +38 -0
- data/lib/openai/models/realtime/conversation_item_done.rb +48 -0
- data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +189 -0
- data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +63 -0
- data/lib/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rb +96 -0
- data/lib/openai/models/realtime/conversation_item_input_audio_transcription_segment.rb +84 -0
- data/lib/openai/models/realtime/conversation_item_retrieve_event.rb +40 -0
- data/lib/openai/models/realtime/conversation_item_truncate_event.rb +68 -0
- data/lib/openai/models/realtime/conversation_item_truncated_event.rb +60 -0
- data/lib/openai/models/realtime/conversation_item_with_reference.rb +235 -0
- data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +49 -0
- data/lib/openai/models/realtime/input_audio_buffer_clear_event.rb +29 -0
- data/lib/openai/models/realtime/input_audio_buffer_cleared_event.rb +29 -0
- data/lib/openai/models/realtime/input_audio_buffer_commit_event.rb +35 -0
- data/lib/openai/models/realtime/input_audio_buffer_committed_event.rb +51 -0
- data/lib/openai/models/realtime/input_audio_buffer_speech_started_event.rb +59 -0
- data/lib/openai/models/realtime/input_audio_buffer_speech_stopped_event.rb +51 -0
- data/lib/openai/models/realtime/input_audio_buffer_timeout_triggered.rb +52 -0
- data/lib/openai/models/realtime/log_prob_properties.rb +39 -0
- data/lib/openai/models/realtime/mcp_list_tools_completed.rb +36 -0
- data/lib/openai/models/realtime/mcp_list_tools_failed.rb +36 -0
- data/lib/openai/models/realtime/mcp_list_tools_in_progress.rb +36 -0
- data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +32 -0
- data/lib/openai/models/realtime/rate_limits_updated_event.rb +91 -0
- data/lib/openai/models/realtime/realtime_audio_config.rb +446 -0
- data/lib/openai/models/realtime/realtime_client_event.rb +123 -0
- data/lib/openai/models/realtime/realtime_client_secret_config.rb +64 -0
- data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +118 -0
- data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +94 -0
- data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +86 -0
- data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +118 -0
- data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +135 -0
- data/lib/openai/models/realtime/realtime_error.rb +55 -0
- data/lib/openai/models/realtime/realtime_error_event.rb +38 -0
- data/lib/openai/models/realtime/realtime_mcp_approval_request.rb +52 -0
- data/lib/openai/models/realtime/realtime_mcp_approval_response.rb +52 -0
- data/lib/openai/models/realtime/realtime_mcp_list_tools.rb +84 -0
- data/lib/openai/models/realtime/realtime_mcp_protocol_error.rb +29 -0
- data/lib/openai/models/realtime/realtime_mcp_tool_call.rb +94 -0
- data/lib/openai/models/realtime/realtime_mcp_tool_execution_error.rb +23 -0
- data/lib/openai/models/realtime/realtime_mcphttp_error.rb +29 -0
- data/lib/openai/models/realtime/realtime_response.rb +259 -0
- data/lib/openai/models/realtime/realtime_response_status.rb +103 -0
- data/lib/openai/models/realtime/realtime_response_usage.rb +61 -0
- data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +36 -0
- data/lib/openai/models/realtime/realtime_response_usage_output_token_details.rb +28 -0
- data/lib/openai/models/realtime/realtime_server_event.rb +369 -0
- data/lib/openai/models/realtime/realtime_session.rb +696 -0
- data/lib/openai/models/realtime/realtime_session_create_request.rb +234 -0
- data/lib/openai/models/realtime/realtime_session_create_response.rb +579 -0
- data/lib/openai/models/realtime/realtime_tool_choice_config.rb +32 -0
- data/lib/openai/models/realtime/realtime_tools_config.rb +11 -0
- data/lib/openai/models/realtime/realtime_tools_config_union.rb +379 -0
- data/lib/openai/models/realtime/realtime_tracing_config.rb +61 -0
- data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +312 -0
- data/lib/openai/models/realtime/realtime_truncation.rb +67 -0
- data/lib/openai/models/realtime/response_audio_delta_event.rb +68 -0
- data/lib/openai/models/realtime/response_audio_done_event.rb +61 -0
- data/lib/openai/models/realtime/response_audio_transcript_delta_event.rb +68 -0
- data/lib/openai/models/realtime/response_audio_transcript_done_event.rb +70 -0
- data/lib/openai/models/realtime/response_cancel_event.rb +42 -0
- data/lib/openai/models/realtime/response_content_part_added_event.rb +120 -0
- data/lib/openai/models/realtime/response_content_part_done_event.rb +120 -0
- data/lib/openai/models/realtime/response_create_event.rb +391 -0
- data/lib/openai/models/realtime/response_created_event.rb +37 -0
- data/lib/openai/models/realtime/response_done_event.rb +38 -0
- data/lib/openai/models/realtime/response_function_call_arguments_delta_event.rb +72 -0
- data/lib/openai/models/realtime/response_function_call_arguments_done_event.rb +73 -0
- data/lib/openai/models/realtime/response_mcp_call_arguments_delta.rb +68 -0
- data/lib/openai/models/realtime/response_mcp_call_arguments_done.rb +60 -0
- data/lib/openai/models/realtime/response_mcp_call_completed.rb +44 -0
- data/lib/openai/models/realtime/response_mcp_call_failed.rb +44 -0
- data/lib/openai/models/realtime/response_mcp_call_in_progress.rb +44 -0
- data/lib/openai/models/realtime/response_output_item_added_event.rb +52 -0
- data/lib/openai/models/realtime/response_output_item_done_event.rb +53 -0
- data/lib/openai/models/realtime/response_text_delta_event.rb +68 -0
- data/lib/openai/models/realtime/response_text_done_event.rb +69 -0
- data/lib/openai/models/realtime/session_created_event.rb +38 -0
- data/lib/openai/models/realtime/session_update_event.rb +44 -0
- data/lib/openai/models/realtime/session_updated_event.rb +37 -0
- data/lib/openai/models/realtime/transcription_session_created.rb +278 -0
- data/lib/openai/models/realtime/transcription_session_update.rb +36 -0
- data/lib/openai/models/realtime/transcription_session_updated_event.rb +279 -0
- data/lib/openai/models/responses/response.rb +6 -3
- data/lib/openai/models/responses/response_create_params.rb +6 -3
- data/lib/openai/models/responses/tool.rb +3 -156
- data/lib/openai/models/responses/web_search_preview_tool.rb +124 -0
- data/lib/openai/models/responses/web_search_tool.rb +58 -21
- data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +119 -0
- data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
- data/lib/openai/models.rb +2 -0
- data/lib/openai/resources/realtime/client_secrets.rb +44 -0
- data/lib/openai/resources/realtime.rb +18 -0
- data/lib/openai/resources/responses.rb +2 -2
- data/lib/openai/resources/webhooks.rb +1 -1
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +95 -0
- data/rbi/openai/client.rbi +3 -0
- data/rbi/openai/models/audio/speech_create_params.rbi +10 -0
- data/rbi/openai/models/chat/chat_completion_audio_param.rbi +10 -0
- data/rbi/openai/models/evals/run_cancel_response.rbi +4 -4
- data/rbi/openai/models/evals/run_create_params.rbi +8 -8
- data/rbi/openai/models/evals/run_create_response.rbi +4 -4
- data/rbi/openai/models/evals/run_list_response.rbi +4 -4
- data/rbi/openai/models/evals/run_retrieve_response.rbi +4 -4
- data/rbi/openai/models/realtime/client_secret_create_params.rbi +222 -0
- data/rbi/openai/models/realtime/client_secret_create_response.rbi +676 -0
- data/rbi/openai/models/realtime/conversation_created_event.rbi +164 -0
- data/rbi/openai/models/realtime/conversation_item.rbi +35 -0
- data/rbi/openai/models/realtime/conversation_item_added.rbi +105 -0
- data/rbi/openai/models/realtime/conversation_item_create_event.rbi +123 -0
- data/rbi/openai/models/realtime/conversation_item_created_event.rbi +117 -0
- data/rbi/openai/models/realtime/conversation_item_delete_event.rbi +57 -0
- data/rbi/openai/models/realtime/conversation_item_deleted_event.rbi +53 -0
- data/rbi/openai/models/realtime/conversation_item_done.rbi +105 -0
- data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +305 -0
- data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +93 -0
- data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbi +158 -0
- data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbi +107 -0
- data/rbi/openai/models/realtime/conversation_item_retrieve_event.rbi +58 -0
- data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +94 -0
- data/rbi/openai/models/realtime/conversation_item_truncated_event.rbi +80 -0
- data/rbi/openai/models/realtime/conversation_item_with_reference.rbi +549 -0
- data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +65 -0
- data/rbi/openai/models/realtime/input_audio_buffer_clear_event.rbi +43 -0
- data/rbi/openai/models/realtime/input_audio_buffer_cleared_event.rbi +40 -0
- data/rbi/openai/models/realtime/input_audio_buffer_commit_event.rbi +49 -0
- data/rbi/openai/models/realtime/input_audio_buffer_committed_event.rbi +72 -0
- data/rbi/openai/models/realtime/input_audio_buffer_speech_started_event.rbi +82 -0
- data/rbi/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbi +73 -0
- data/rbi/openai/models/realtime/input_audio_buffer_timeout_triggered.rbi +75 -0
- data/rbi/openai/models/realtime/log_prob_properties.rbi +55 -0
- data/rbi/openai/models/realtime/mcp_list_tools_completed.rbi +51 -0
- data/rbi/openai/models/realtime/mcp_list_tools_failed.rbi +51 -0
- data/rbi/openai/models/realtime/mcp_list_tools_in_progress.rbi +51 -0
- data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +46 -0
- data/rbi/openai/models/realtime/rate_limits_updated_event.rbi +187 -0
- data/rbi/openai/models/realtime/realtime_audio_config.rbi +1004 -0
- data/rbi/openai/models/realtime/realtime_client_event.rbi +38 -0
- data/rbi/openai/models/realtime/realtime_client_secret_config.rbi +147 -0
- data/rbi/openai/models/realtime/realtime_conversation_item_assistant_message.rbi +292 -0
- data/rbi/openai/models/realtime/realtime_conversation_item_function_call.rbi +199 -0
- data/rbi/openai/models/realtime/realtime_conversation_item_function_call_output.rbi +188 -0
- data/rbi/openai/models/realtime/realtime_conversation_item_system_message.rbi +292 -0
- data/rbi/openai/models/realtime/realtime_conversation_item_user_message.rbi +319 -0
- data/rbi/openai/models/realtime/realtime_error.rbi +72 -0
- data/rbi/openai/models/realtime/realtime_error_event.rbi +64 -0
- data/rbi/openai/models/realtime/realtime_mcp_approval_request.rbi +75 -0
- data/rbi/openai/models/realtime/realtime_mcp_approval_response.rbi +75 -0
- data/rbi/openai/models/realtime/realtime_mcp_list_tools.rbi +131 -0
- data/rbi/openai/models/realtime/realtime_mcp_protocol_error.rbi +40 -0
- data/rbi/openai/models/realtime/realtime_mcp_tool_call.rbi +145 -0
- data/rbi/openai/models/realtime/realtime_mcp_tool_execution_error.rbi +31 -0
- data/rbi/openai/models/realtime/realtime_mcphttp_error.rbi +40 -0
- data/rbi/openai/models/realtime/realtime_response.rbi +573 -0
- data/rbi/openai/models/realtime/realtime_response_status.rbi +233 -0
- data/rbi/openai/models/realtime/realtime_response_usage.rbi +121 -0
- data/rbi/openai/models/realtime/realtime_response_usage_input_token_details.rbi +68 -0
- data/rbi/openai/models/realtime/realtime_response_usage_output_token_details.rbi +51 -0
- data/rbi/openai/models/realtime/realtime_server_event.rbi +311 -0
- data/rbi/openai/models/realtime/realtime_session.rbi +1426 -0
- data/rbi/openai/models/realtime/realtime_session_create_request.rbi +560 -0
- data/rbi/openai/models/realtime/realtime_session_create_response.rbi +1249 -0
- data/rbi/openai/models/realtime/realtime_tool_choice_config.rbi +30 -0
- data/rbi/openai/models/realtime/realtime_tools_config.rbi +15 -0
- data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +755 -0
- data/rbi/openai/models/realtime/realtime_tracing_config.rbi +95 -0
- data/rbi/openai/models/realtime/realtime_transcription_session_create_request.rbi +703 -0
- data/rbi/openai/models/realtime/realtime_truncation.rbi +117 -0
- data/rbi/openai/models/realtime/response_audio_delta_event.rbi +91 -0
- data/rbi/openai/models/realtime/response_audio_done_event.rbi +84 -0
- data/rbi/openai/models/realtime/response_audio_transcript_delta_event.rbi +91 -0
- data/rbi/openai/models/realtime/response_audio_transcript_done_event.rbi +93 -0
- data/rbi/openai/models/realtime/response_cancel_event.rbi +63 -0
- data/rbi/openai/models/realtime/response_content_part_added_event.rbi +219 -0
- data/rbi/openai/models/realtime/response_content_part_done_event.rbi +219 -0
- data/rbi/openai/models/realtime/response_create_event.rbi +863 -0
- data/rbi/openai/models/realtime/response_created_event.rbi +65 -0
- data/rbi/openai/models/realtime/response_done_event.rbi +66 -0
- data/rbi/openai/models/realtime/response_function_call_arguments_delta_event.rbi +91 -0
- data/rbi/openai/models/realtime/response_function_call_arguments_done_event.rbi +92 -0
- data/rbi/openai/models/realtime/response_mcp_call_arguments_delta.rbi +91 -0
- data/rbi/openai/models/realtime/response_mcp_call_arguments_done.rbi +83 -0
- data/rbi/openai/models/realtime/response_mcp_call_completed.rbi +67 -0
- data/rbi/openai/models/realtime/response_mcp_call_failed.rbi +67 -0
- data/rbi/openai/models/realtime/response_mcp_call_in_progress.rbi +67 -0
- data/rbi/openai/models/realtime/response_output_item_added_event.rbi +111 -0
- data/rbi/openai/models/realtime/response_output_item_done_event.rbi +112 -0
- data/rbi/openai/models/realtime/response_text_delta_event.rbi +91 -0
- data/rbi/openai/models/realtime/response_text_done_event.rbi +92 -0
- data/rbi/openai/models/realtime/session_created_event.rbi +64 -0
- data/rbi/openai/models/realtime/session_update_event.rbi +77 -0
- data/rbi/openai/models/realtime/session_updated_event.rbi +63 -0
- data/rbi/openai/models/realtime/transcription_session_created.rbi +653 -0
- data/rbi/openai/models/realtime/transcription_session_update.rbi +74 -0
- data/rbi/openai/models/realtime/transcription_session_updated_event.rbi +657 -0
- data/rbi/openai/models/responses/response.rbi +10 -4
- data/rbi/openai/models/responses/response_create_params.rbi +16 -10
- data/rbi/openai/models/responses/tool.rbi +2 -348
- data/rbi/openai/models/responses/web_search_preview_tool.rbi +245 -0
- data/rbi/openai/models/responses/web_search_tool.rbi +120 -23
- data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +222 -0
- data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
- data/rbi/openai/models.rbi +2 -0
- data/rbi/openai/resources/realtime/client_secrets.rbi +38 -0
- data/rbi/openai/resources/realtime.rbi +15 -0
- data/rbi/openai/resources/responses.rbi +12 -6
- data/rbi/openai/resources/webhooks.rbi +1 -0
- data/sig/openai/client.rbs +2 -0
- data/sig/openai/models/audio/speech_create_params.rbs +4 -0
- data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -0
- data/sig/openai/models/realtime/client_secret_create_params.rbs +89 -0
- data/sig/openai/models/realtime/client_secret_create_response.rbs +292 -0
- data/sig/openai/models/realtime/conversation_created_event.rbs +70 -0
- data/sig/openai/models/realtime/conversation_item.rbs +22 -0
- data/sig/openai/models/realtime/conversation_item_added.rbs +37 -0
- data/sig/openai/models/realtime/conversation_item_create_event.rbs +41 -0
- data/sig/openai/models/realtime/conversation_item_created_event.rbs +37 -0
- data/sig/openai/models/realtime/conversation_item_delete_event.rbs +30 -0
- data/sig/openai/models/realtime/conversation_item_deleted_event.rbs +32 -0
- data/sig/openai/models/realtime/conversation_item_done.rbs +37 -0
- data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +136 -0
- data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +51 -0
- data/sig/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbs +77 -0
- data/sig/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbs +62 -0
- data/sig/openai/models/realtime/conversation_item_retrieve_event.rbs +34 -0
- data/sig/openai/models/realtime/conversation_item_truncate_event.rbs +44 -0
- data/sig/openai/models/realtime/conversation_item_truncated_event.rbs +42 -0
- data/sig/openai/models/realtime/conversation_item_with_reference.rbs +207 -0
- data/sig/openai/models/realtime/input_audio_buffer_append_event.rbs +30 -0
- data/sig/openai/models/realtime/input_audio_buffer_clear_event.rbs +23 -0
- data/sig/openai/models/realtime/input_audio_buffer_cleared_event.rbs +24 -0
- data/sig/openai/models/realtime/input_audio_buffer_commit_event.rbs +23 -0
- data/sig/openai/models/realtime/input_audio_buffer_committed_event.rbs +37 -0
- data/sig/openai/models/realtime/input_audio_buffer_speech_started_event.rbs +37 -0
- data/sig/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbs +37 -0
- data/sig/openai/models/realtime/input_audio_buffer_timeout_triggered.rbs +42 -0
- data/sig/openai/models/realtime/log_prob_properties.rbs +28 -0
- data/sig/openai/models/realtime/mcp_list_tools_completed.rbs +28 -0
- data/sig/openai/models/realtime/mcp_list_tools_failed.rbs +28 -0
- data/sig/openai/models/realtime/mcp_list_tools_in_progress.rbs +32 -0
- data/sig/openai/models/realtime/output_audio_buffer_clear_event.rbs +23 -0
- data/sig/openai/models/realtime/rate_limits_updated_event.rbs +85 -0
- data/sig/openai/models/realtime/realtime_audio_config.rbs +354 -0
- data/sig/openai/models/realtime/realtime_client_event.rbs +25 -0
- data/sig/openai/models/realtime/realtime_client_secret_config.rbs +60 -0
- data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +117 -0
- data/sig/openai/models/realtime/realtime_conversation_item_function_call.rbs +86 -0
- data/sig/openai/models/realtime/realtime_conversation_item_function_call_output.rbs +79 -0
- data/sig/openai/models/realtime/realtime_conversation_item_system_message.rbs +117 -0
- data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +132 -0
- data/sig/openai/models/realtime/realtime_error.rbs +42 -0
- data/sig/openai/models/realtime/realtime_error_event.rbs +32 -0
- data/sig/openai/models/realtime/realtime_mcp_approval_request.rbs +42 -0
- data/sig/openai/models/realtime/realtime_mcp_approval_response.rbs +42 -0
- data/sig/openai/models/realtime/realtime_mcp_list_tools.rbs +71 -0
- data/sig/openai/models/realtime/realtime_mcp_protocol_error.rbs +28 -0
- data/sig/openai/models/realtime/realtime_mcp_tool_call.rbs +68 -0
- data/sig/openai/models/realtime/realtime_mcp_tool_execution_error.rbs +18 -0
- data/sig/openai/models/realtime/realtime_mcphttp_error.rbs +24 -0
- data/sig/openai/models/realtime/realtime_response.rbs +210 -0
- data/sig/openai/models/realtime/realtime_response_status.rbs +90 -0
- data/sig/openai/models/realtime/realtime_response_usage.rbs +56 -0
- data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +34 -0
- data/sig/openai/models/realtime/realtime_response_usage_output_token_details.rbs +22 -0
- data/sig/openai/models/realtime/realtime_server_event.rbs +168 -0
- data/sig/openai/models/realtime/realtime_session.rbs +521 -0
- data/sig/openai/models/realtime/realtime_session_create_request.rbs +178 -0
- data/sig/openai/models/realtime/realtime_session_create_response.rbs +526 -0
- data/sig/openai/models/realtime/realtime_tool_choice_config.rbs +16 -0
- data/sig/openai/models/realtime/realtime_tools_config.rbs +10 -0
- data/sig/openai/models/realtime/realtime_tools_config_union.rbs +280 -0
- data/sig/openai/models/realtime/realtime_tracing_config.rbs +43 -0
- data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +242 -0
- data/sig/openai/models/realtime/realtime_truncation.rbs +53 -0
- data/sig/openai/models/realtime/response_audio_delta_event.rbs +52 -0
- data/sig/openai/models/realtime/response_audio_done_event.rbs +47 -0
- data/sig/openai/models/realtime/response_audio_transcript_delta_event.rbs +52 -0
- data/sig/openai/models/realtime/response_audio_transcript_done_event.rbs +52 -0
- data/sig/openai/models/realtime/response_cancel_event.rbs +32 -0
- data/sig/openai/models/realtime/response_content_part_added_event.rbs +105 -0
- data/sig/openai/models/realtime/response_content_part_done_event.rbs +105 -0
- data/sig/openai/models/realtime/response_create_event.rbs +281 -0
- data/sig/openai/models/realtime/response_created_event.rbs +32 -0
- data/sig/openai/models/realtime/response_done_event.rbs +32 -0
- data/sig/openai/models/realtime/response_function_call_arguments_delta_event.rbs +52 -0
- data/sig/openai/models/realtime/response_function_call_arguments_done_event.rbs +52 -0
- data/sig/openai/models/realtime/response_mcp_call_arguments_delta.rbs +52 -0
- data/sig/openai/models/realtime/response_mcp_call_arguments_done.rbs +47 -0
- data/sig/openai/models/realtime/response_mcp_call_completed.rbs +37 -0
- data/sig/openai/models/realtime/response_mcp_call_failed.rbs +37 -0
- data/sig/openai/models/realtime/response_mcp_call_in_progress.rbs +37 -0
- data/sig/openai/models/realtime/response_output_item_added_event.rbs +42 -0
- data/sig/openai/models/realtime/response_output_item_done_event.rbs +42 -0
- data/sig/openai/models/realtime/response_text_delta_event.rbs +52 -0
- data/sig/openai/models/realtime/response_text_done_event.rbs +52 -0
- data/sig/openai/models/realtime/session_created_event.rbs +32 -0
- data/sig/openai/models/realtime/session_update_event.rbs +34 -0
- data/sig/openai/models/realtime/session_updated_event.rbs +32 -0
- data/sig/openai/models/realtime/transcription_session_created.rbs +282 -0
- data/sig/openai/models/realtime/transcription_session_update.rbs +34 -0
- data/sig/openai/models/realtime/transcription_session_updated_event.rbs +282 -0
- data/sig/openai/models/responses/tool.rbs +1 -121
- data/sig/openai/models/responses/web_search_preview_tool.rbs +96 -0
- data/sig/openai/models/responses/web_search_tool.rbs +39 -10
- data/sig/openai/models/webhooks/realtime_call_incoming_webhook_event.rbs +90 -0
- data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
- data/sig/openai/models.rbs +2 -0
- data/sig/openai/resources/realtime/client_secrets.rbs +15 -0
- data/sig/openai/resources/realtime.rbs +9 -0
- data/sig/openai/resources/webhooks.rbs +1 -0
- metadata +287 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b599800794abd03ec5996e03446e1a0d64629ff4bc2d69faafe3dfc3a725a92
|
4
|
+
data.tar.gz: e5e53b68d6e78af2b37c5703c7d5b9772aa7a3a7150f9f106c3cb03a4621ac54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17843501e1e36fb5befd7173af249ead0fd13ec4343f73b82fbc8e7b7974016218f9ca59f7107553111dddf1bb921cf4dffa3db339737bba7a2ae27b06716981
|
7
|
+
data.tar.gz: 7ca24e963309b62ea68ab018592875fe663c7818153a666101295731834be2b1eb473bc0ac2f016cf0ca341935f428d9c6ce8dc881ff8d17da8853d22eed91df
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.21.0 (2025-09-02)
|
4
|
+
|
5
|
+
Full Changelog: [v0.20.0...v0.21.0](https://github.com/openai/openai-ruby/compare/v0.20.0...v0.21.0)
|
6
|
+
|
7
|
+
### Features
|
8
|
+
|
9
|
+
* **api:** realtime API updates ([a8ab6ab](https://github.com/openai/openai-ruby/commit/a8ab6ab5995d7a10b336e8987101d0135e161359))
|
10
|
+
|
11
|
+
|
12
|
+
### Bug Fixes
|
13
|
+
|
14
|
+
* correctly raise errors encountered during streaming ([766c6c6](https://github.com/openai/openai-ruby/commit/766c6c65c7d27f853ca6cd3ebc4d0ad6385c5924))
|
15
|
+
|
3
16
|
## 0.20.0 (2025-08-26)
|
4
17
|
|
5
18
|
Full Changelog: [v0.19.0...v0.20.0](https://github.com/openai/openai-ruby/compare/v0.19.0...v0.20.0)
|
data/README.md
CHANGED
data/lib/openai/client.rb
CHANGED
@@ -75,6 +75,9 @@ module OpenAI
|
|
75
75
|
# @return [OpenAI::Resources::Responses]
|
76
76
|
attr_reader :responses
|
77
77
|
|
78
|
+
# @return [OpenAI::Resources::Realtime]
|
79
|
+
attr_reader :realtime
|
80
|
+
|
78
81
|
# @return [OpenAI::Resources::Conversations]
|
79
82
|
attr_reader :conversations
|
80
83
|
|
@@ -163,6 +166,7 @@ module OpenAI
|
|
163
166
|
@batches = OpenAI::Resources::Batches.new(client: self)
|
164
167
|
@uploads = OpenAI::Resources::Uploads.new(client: self)
|
165
168
|
@responses = OpenAI::Resources::Responses.new(client: self)
|
169
|
+
@realtime = OpenAI::Resources::Realtime.new(client: self)
|
166
170
|
@conversations = OpenAI::Resources::Conversations.new(client: self)
|
167
171
|
@evals = OpenAI::Resources::Evals.new(client: self)
|
168
172
|
@containers = OpenAI::Resources::Containers.new(client: self)
|
@@ -38,14 +38,15 @@ module OpenAI
|
|
38
38
|
else
|
39
39
|
"An error occurred during streaming"
|
40
40
|
end
|
41
|
-
OpenAI::Errors::APIError.for(
|
41
|
+
err = OpenAI::Errors::APIError.for(
|
42
42
|
url: @url,
|
43
43
|
status: @status,
|
44
|
-
body:
|
44
|
+
body: data,
|
45
45
|
request: nil,
|
46
46
|
response: @response,
|
47
47
|
message: message
|
48
48
|
)
|
49
|
+
raise err
|
49
50
|
in decoded
|
50
51
|
unwrapped = OpenAI::Internal::Util.dig(decoded, @unwrap)
|
51
52
|
y << OpenAI::Internal::Type::Converter.coerce(@model, unwrapped)
|
@@ -117,6 +117,10 @@ module OpenAI
|
|
117
117
|
|
118
118
|
variant const: -> { OpenAI::Models::Audio::SpeechCreateParams::Voice::VERSE }
|
119
119
|
|
120
|
+
variant const: -> { OpenAI::Models::Audio::SpeechCreateParams::Voice::MARIN }
|
121
|
+
|
122
|
+
variant const: -> { OpenAI::Models::Audio::SpeechCreateParams::Voice::CEDAR }
|
123
|
+
|
120
124
|
# @!method self.variants
|
121
125
|
# @return [Array(String, Symbol)]
|
122
126
|
|
@@ -134,6 +138,8 @@ module OpenAI
|
|
134
138
|
SAGE = :sage
|
135
139
|
SHIMMER = :shimmer
|
136
140
|
VERSE = :verse
|
141
|
+
MARIN = :marin
|
142
|
+
CEDAR = :cedar
|
137
143
|
|
138
144
|
# @!endgroup
|
139
145
|
end
|
@@ -73,6 +73,10 @@ module OpenAI
|
|
73
73
|
|
74
74
|
variant const: -> { OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::VERSE }
|
75
75
|
|
76
|
+
variant const: -> { OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::MARIN }
|
77
|
+
|
78
|
+
variant const: -> { OpenAI::Models::Chat::ChatCompletionAudioParam::Voice::CEDAR }
|
79
|
+
|
76
80
|
# @!method self.variants
|
77
81
|
# @return [Array(String, Symbol)]
|
78
82
|
|
@@ -90,6 +94,8 @@ module OpenAI
|
|
90
94
|
SAGE = :sage
|
91
95
|
SHIMMER = :shimmer
|
92
96
|
VERSE = :verse
|
97
|
+
MARIN = :marin
|
98
|
+
CEDAR = :cedar
|
93
99
|
|
94
100
|
# @!endgroup
|
95
101
|
end
|
@@ -686,7 +686,7 @@ module OpenAI
|
|
686
686
|
# the model to call your own code. Learn more about
|
687
687
|
# [function calling](https://platform.openai.com/docs/guides/function-calling).
|
688
688
|
#
|
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::
|
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]
|
690
690
|
optional :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::Tool] }
|
691
691
|
|
692
692
|
# @!attribute top_p
|
@@ -708,7 +708,7 @@ module OpenAI
|
|
708
708
|
#
|
709
709
|
# @param text [OpenAI::Models::Evals::RunCancelResponse::DataSource::Responses::SamplingParams::Text] Configuration options for a text response from the model. Can be plain
|
710
710
|
#
|
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::
|
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
|
712
712
|
#
|
713
713
|
# @param top_p [Float] An alternative to temperature for nucleus sampling; 1.0 includes all tokens.
|
714
714
|
|
@@ -614,7 +614,7 @@ module OpenAI
|
|
614
614
|
# the model to call your own code. Learn more about
|
615
615
|
# [function calling](https://platform.openai.com/docs/guides/function-calling).
|
616
616
|
#
|
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::
|
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]
|
618
618
|
optional :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::Tool] }
|
619
619
|
|
620
620
|
# @!attribute top_p
|
@@ -636,7 +636,7 @@ module OpenAI
|
|
636
636
|
#
|
637
637
|
# @param text [OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::SamplingParams::Text] Configuration options for a text response from the model. Can be plain
|
638
638
|
#
|
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::
|
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
|
640
640
|
#
|
641
641
|
# @param top_p [Float] An alternative to temperature for nucleus sampling; 1.0 includes all tokens.
|
642
642
|
|
@@ -686,7 +686,7 @@ module OpenAI
|
|
686
686
|
# the model to call your own code. Learn more about
|
687
687
|
# [function calling](https://platform.openai.com/docs/guides/function-calling).
|
688
688
|
#
|
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::
|
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]
|
690
690
|
optional :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::Tool] }
|
691
691
|
|
692
692
|
# @!attribute top_p
|
@@ -708,7 +708,7 @@ module OpenAI
|
|
708
708
|
#
|
709
709
|
# @param text [OpenAI::Models::Evals::RunCreateResponse::DataSource::Responses::SamplingParams::Text] Configuration options for a text response from the model. Can be plain
|
710
710
|
#
|
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::
|
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
|
712
712
|
#
|
713
713
|
# @param top_p [Float] An alternative to temperature for nucleus sampling; 1.0 includes all tokens.
|
714
714
|
|
@@ -685,7 +685,7 @@ module OpenAI
|
|
685
685
|
# the model to call your own code. Learn more about
|
686
686
|
# [function calling](https://platform.openai.com/docs/guides/function-calling).
|
687
687
|
#
|
688
|
-
# @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::
|
688
|
+
# @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]
|
689
689
|
optional :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::Tool] }
|
690
690
|
|
691
691
|
# @!attribute top_p
|
@@ -707,7 +707,7 @@ module OpenAI
|
|
707
707
|
#
|
708
708
|
# @param text [OpenAI::Models::Evals::RunListResponse::DataSource::Responses::SamplingParams::Text] Configuration options for a text response from the model. Can be plain
|
709
709
|
#
|
710
|
-
# @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::
|
710
|
+
# @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
|
711
711
|
#
|
712
712
|
# @param top_p [Float] An alternative to temperature for nucleus sampling; 1.0 includes all tokens.
|
713
713
|
|
@@ -690,7 +690,7 @@ module OpenAI
|
|
690
690
|
# the model to call your own code. Learn more about
|
691
691
|
# [function calling](https://platform.openai.com/docs/guides/function-calling).
|
692
692
|
#
|
693
|
-
# @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::
|
693
|
+
# @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]
|
694
694
|
optional :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::Tool] }
|
695
695
|
|
696
696
|
# @!attribute top_p
|
@@ -712,7 +712,7 @@ module OpenAI
|
|
712
712
|
#
|
713
713
|
# @param text [OpenAI::Models::Evals::RunRetrieveResponse::DataSource::Responses::SamplingParams::Text] Configuration options for a text response from the model. Can be plain
|
714
714
|
#
|
715
|
-
# @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::
|
715
|
+
# @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
|
716
716
|
#
|
717
717
|
# @param top_p [Float] An alternative to temperature for nucleus sampling; 1.0 includes all tokens.
|
718
718
|
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
# @see OpenAI::Resources::Realtime::ClientSecrets#create
|
7
|
+
class ClientSecretCreateParams < OpenAI::Internal::Type::BaseModel
|
8
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
9
|
+
include OpenAI::Internal::Type::RequestParameters
|
10
|
+
|
11
|
+
# @!attribute expires_after
|
12
|
+
# Configuration for the ephemeral token expiration.
|
13
|
+
#
|
14
|
+
# @return [OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter, nil]
|
15
|
+
optional :expires_after, -> { OpenAI::Realtime::ClientSecretCreateParams::ExpiresAfter }
|
16
|
+
|
17
|
+
# @!attribute session
|
18
|
+
# Session configuration to use for the client secret. Choose either a realtime
|
19
|
+
# session or a transcription session.
|
20
|
+
#
|
21
|
+
# @return [OpenAI::Models::Realtime::RealtimeSessionCreateRequest, OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest, nil]
|
22
|
+
optional :session, union: -> { OpenAI::Realtime::ClientSecretCreateParams::Session }
|
23
|
+
|
24
|
+
# @!method initialize(expires_after: nil, session: nil, request_options: {})
|
25
|
+
# Some parameter documentations has been truncated, see
|
26
|
+
# {OpenAI::Models::Realtime::ClientSecretCreateParams} for more details.
|
27
|
+
#
|
28
|
+
# @param expires_after [OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter] Configuration for the ephemeral token expiration.
|
29
|
+
#
|
30
|
+
# @param session [OpenAI::Models::Realtime::RealtimeSessionCreateRequest, OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest] Session configuration to use for the client secret. Choose either a realtime
|
31
|
+
#
|
32
|
+
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
|
33
|
+
|
34
|
+
class ExpiresAfter < OpenAI::Internal::Type::BaseModel
|
35
|
+
# @!attribute anchor
|
36
|
+
# The anchor point for the ephemeral token expiration. Only `created_at` is
|
37
|
+
# currently supported.
|
38
|
+
#
|
39
|
+
# @return [Symbol, OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter::Anchor, nil]
|
40
|
+
optional :anchor, enum: -> { OpenAI::Realtime::ClientSecretCreateParams::ExpiresAfter::Anchor }
|
41
|
+
|
42
|
+
# @!attribute seconds
|
43
|
+
# The number of seconds from the anchor point to the expiration. Select a value
|
44
|
+
# between `10` and `7200`.
|
45
|
+
#
|
46
|
+
# @return [Integer, nil]
|
47
|
+
optional :seconds, Integer
|
48
|
+
|
49
|
+
# @!method initialize(anchor: nil, seconds: nil)
|
50
|
+
# Some parameter documentations has been truncated, see
|
51
|
+
# {OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter} for more
|
52
|
+
# details.
|
53
|
+
#
|
54
|
+
# Configuration for the ephemeral token expiration.
|
55
|
+
#
|
56
|
+
# @param anchor [Symbol, OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter::Anchor] The anchor point for the ephemeral token expiration. Only `created_at` is curren
|
57
|
+
#
|
58
|
+
# @param seconds [Integer] The number of seconds from the anchor point to the expiration. Select a value be
|
59
|
+
|
60
|
+
# The anchor point for the ephemeral token expiration. Only `created_at` is
|
61
|
+
# currently supported.
|
62
|
+
#
|
63
|
+
# @see OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter#anchor
|
64
|
+
module Anchor
|
65
|
+
extend OpenAI::Internal::Type::Enum
|
66
|
+
|
67
|
+
CREATED_AT = :created_at
|
68
|
+
|
69
|
+
# @!method self.values
|
70
|
+
# @return [Array<Symbol>]
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# Session configuration to use for the client secret. Choose either a realtime
|
75
|
+
# session or a transcription session.
|
76
|
+
module Session
|
77
|
+
extend OpenAI::Internal::Type::Union
|
78
|
+
|
79
|
+
discriminator :type
|
80
|
+
|
81
|
+
# Realtime session object configuration.
|
82
|
+
variant :realtime, -> { OpenAI::Realtime::RealtimeSessionCreateRequest }
|
83
|
+
|
84
|
+
# Realtime transcription session object configuration.
|
85
|
+
variant :transcription, -> { OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest }
|
86
|
+
|
87
|
+
# @!method self.variants
|
88
|
+
# @return [Array(OpenAI::Models::Realtime::RealtimeSessionCreateRequest, OpenAI::Models::Realtime::RealtimeTranscriptionSessionCreateRequest)]
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,300 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
# @see OpenAI::Resources::Realtime::ClientSecrets#create
|
7
|
+
class ClientSecretCreateResponse < OpenAI::Internal::Type::BaseModel
|
8
|
+
# @!attribute expires_at
|
9
|
+
# Expiration timestamp for the client secret, in seconds since epoch.
|
10
|
+
#
|
11
|
+
# @return [Integer]
|
12
|
+
required :expires_at, Integer
|
13
|
+
|
14
|
+
# @!attribute session
|
15
|
+
# The session configuration for either a realtime or transcription session.
|
16
|
+
#
|
17
|
+
# @return [OpenAI::Models::Realtime::RealtimeSessionCreateResponse, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse]
|
18
|
+
required :session, union: -> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session }
|
19
|
+
|
20
|
+
# @!attribute value
|
21
|
+
# The generated client secret value.
|
22
|
+
#
|
23
|
+
# @return [String]
|
24
|
+
required :value, String
|
25
|
+
|
26
|
+
# @!method initialize(expires_at:, session:, value:)
|
27
|
+
# Some parameter documentations has been truncated, see
|
28
|
+
# {OpenAI::Models::Realtime::ClientSecretCreateResponse} for more details.
|
29
|
+
#
|
30
|
+
# Response from creating a session and client secret for the Realtime API.
|
31
|
+
#
|
32
|
+
# @param expires_at [Integer] Expiration timestamp for the client secret, in seconds since epoch.
|
33
|
+
#
|
34
|
+
# @param session [OpenAI::Models::Realtime::RealtimeSessionCreateResponse, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse] The session configuration for either a realtime or transcription session.
|
35
|
+
#
|
36
|
+
# @param value [String] The generated client secret value.
|
37
|
+
|
38
|
+
# The session configuration for either a realtime or transcription session.
|
39
|
+
#
|
40
|
+
# @see OpenAI::Models::Realtime::ClientSecretCreateResponse#session
|
41
|
+
module Session
|
42
|
+
extend OpenAI::Internal::Type::Union
|
43
|
+
|
44
|
+
# A Realtime session configuration object.
|
45
|
+
variant -> { OpenAI::Realtime::RealtimeSessionCreateResponse }
|
46
|
+
|
47
|
+
# A Realtime transcription session configuration object.
|
48
|
+
variant -> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse }
|
49
|
+
|
50
|
+
class RealtimeTranscriptionSessionCreateResponse < OpenAI::Internal::Type::BaseModel
|
51
|
+
# @!attribute id
|
52
|
+
# Unique identifier for the session that looks like `sess_1234567890abcdef`.
|
53
|
+
#
|
54
|
+
# @return [String, nil]
|
55
|
+
optional :id, String
|
56
|
+
|
57
|
+
# @!attribute audio
|
58
|
+
# Configuration for input audio for the session.
|
59
|
+
#
|
60
|
+
# @return [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio, nil]
|
61
|
+
optional :audio,
|
62
|
+
-> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio }
|
63
|
+
|
64
|
+
# @!attribute expires_at
|
65
|
+
# Expiration timestamp for the session, in seconds since epoch.
|
66
|
+
#
|
67
|
+
# @return [Integer, nil]
|
68
|
+
optional :expires_at, Integer
|
69
|
+
|
70
|
+
# @!attribute include
|
71
|
+
# Additional fields to include in server outputs.
|
72
|
+
#
|
73
|
+
# - `item.input_audio_transcription.logprobs`: Include logprobs for input audio
|
74
|
+
# transcription.
|
75
|
+
#
|
76
|
+
# @return [Array<Symbol, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Include>, nil]
|
77
|
+
optional :include,
|
78
|
+
-> do
|
79
|
+
OpenAI::Internal::Type::ArrayOf[
|
80
|
+
enum: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Include
|
81
|
+
]
|
82
|
+
end
|
83
|
+
|
84
|
+
# @!attribute object
|
85
|
+
# The object type. Always `realtime.transcription_session`.
|
86
|
+
#
|
87
|
+
# @return [String, nil]
|
88
|
+
optional :object, String
|
89
|
+
|
90
|
+
# @!method initialize(id: nil, audio: nil, expires_at: nil, include: nil, object: nil)
|
91
|
+
# Some parameter documentations has been truncated, see
|
92
|
+
# {OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse}
|
93
|
+
# for more details.
|
94
|
+
#
|
95
|
+
# A Realtime transcription session configuration object.
|
96
|
+
#
|
97
|
+
# @param id [String] Unique identifier for the session that looks like `sess_1234567890abcdef`.
|
98
|
+
#
|
99
|
+
# @param audio [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio] Configuration for input audio for the session.
|
100
|
+
#
|
101
|
+
# @param expires_at [Integer] Expiration timestamp for the session, in seconds since epoch.
|
102
|
+
#
|
103
|
+
# @param include [Array<Symbol, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Include>] Additional fields to include in server outputs.
|
104
|
+
#
|
105
|
+
# @param object [String] The object type. Always `realtime.transcription_session`.
|
106
|
+
|
107
|
+
# @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse#audio
|
108
|
+
class Audio < OpenAI::Internal::Type::BaseModel
|
109
|
+
# @!attribute input
|
110
|
+
#
|
111
|
+
# @return [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input, nil]
|
112
|
+
optional :input,
|
113
|
+
-> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input }
|
114
|
+
|
115
|
+
# @!method initialize(input: nil)
|
116
|
+
# Configuration for input audio for the session.
|
117
|
+
#
|
118
|
+
# @param input [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input]
|
119
|
+
|
120
|
+
# @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio#input
|
121
|
+
class Input < OpenAI::Internal::Type::BaseModel
|
122
|
+
# @!attribute format_
|
123
|
+
# The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
|
124
|
+
#
|
125
|
+
# @return [String, nil]
|
126
|
+
optional :format_, String, api_name: :format
|
127
|
+
|
128
|
+
# @!attribute noise_reduction
|
129
|
+
# Configuration for input audio noise reduction.
|
130
|
+
#
|
131
|
+
# @return [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction, nil]
|
132
|
+
optional :noise_reduction,
|
133
|
+
-> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction }
|
134
|
+
|
135
|
+
# @!attribute transcription
|
136
|
+
# Configuration of the transcription model.
|
137
|
+
#
|
138
|
+
# @return [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription, nil]
|
139
|
+
optional :transcription,
|
140
|
+
-> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription }
|
141
|
+
|
142
|
+
# @!attribute turn_detection
|
143
|
+
# Configuration for turn detection.
|
144
|
+
#
|
145
|
+
# @return [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection, nil]
|
146
|
+
optional :turn_detection,
|
147
|
+
-> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection }
|
148
|
+
|
149
|
+
# @!method initialize(format_: nil, noise_reduction: nil, transcription: nil, turn_detection: nil)
|
150
|
+
# Some parameter documentations has been truncated, see
|
151
|
+
# {OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input}
|
152
|
+
# for more details.
|
153
|
+
#
|
154
|
+
# @param format_ [String] The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
|
155
|
+
#
|
156
|
+
# @param noise_reduction [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction] Configuration for input audio noise reduction.
|
157
|
+
#
|
158
|
+
# @param transcription [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription] Configuration of the transcription model.
|
159
|
+
#
|
160
|
+
# @param turn_detection [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection] Configuration for turn detection.
|
161
|
+
|
162
|
+
# @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input#noise_reduction
|
163
|
+
class NoiseReduction < OpenAI::Internal::Type::BaseModel
|
164
|
+
# @!attribute type
|
165
|
+
#
|
166
|
+
# @return [Symbol, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type, nil]
|
167
|
+
optional :type,
|
168
|
+
enum: -> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type }
|
169
|
+
|
170
|
+
# @!method initialize(type: nil)
|
171
|
+
# Configuration for input audio noise reduction.
|
172
|
+
#
|
173
|
+
# @param type [Symbol, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type]
|
174
|
+
|
175
|
+
# @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction#type
|
176
|
+
module Type
|
177
|
+
extend OpenAI::Internal::Type::Enum
|
178
|
+
|
179
|
+
NEAR_FIELD = :near_field
|
180
|
+
FAR_FIELD = :far_field
|
181
|
+
|
182
|
+
# @!method self.values
|
183
|
+
# @return [Array<Symbol>]
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
# @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input#transcription
|
188
|
+
class Transcription < OpenAI::Internal::Type::BaseModel
|
189
|
+
# @!attribute language
|
190
|
+
# The language of the input audio. Supplying the input language in
|
191
|
+
# [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`)
|
192
|
+
# format will improve accuracy and latency.
|
193
|
+
#
|
194
|
+
# @return [String, nil]
|
195
|
+
optional :language, String
|
196
|
+
|
197
|
+
# @!attribute model
|
198
|
+
# The model to use for transcription. Can be `gpt-4o-transcribe`,
|
199
|
+
# `gpt-4o-mini-transcribe`, or `whisper-1`.
|
200
|
+
#
|
201
|
+
# @return [Symbol, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model, nil]
|
202
|
+
optional :model,
|
203
|
+
enum: -> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model }
|
204
|
+
|
205
|
+
# @!attribute prompt
|
206
|
+
# An optional text to guide the model's style or continue a previous audio
|
207
|
+
# segment. The
|
208
|
+
# [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting)
|
209
|
+
# should match the audio language.
|
210
|
+
#
|
211
|
+
# @return [String, nil]
|
212
|
+
optional :prompt, String
|
213
|
+
|
214
|
+
# @!method initialize(language: nil, model: nil, prompt: nil)
|
215
|
+
# Some parameter documentations has been truncated, see
|
216
|
+
# {OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription}
|
217
|
+
# for more details.
|
218
|
+
#
|
219
|
+
# Configuration of the transcription model.
|
220
|
+
#
|
221
|
+
# @param language [String] The language of the input audio. Supplying the input language in
|
222
|
+
#
|
223
|
+
# @param model [Symbol, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model] The model to use for transcription. Can be `gpt-4o-transcribe`, `gpt-4o-mini-tra
|
224
|
+
#
|
225
|
+
# @param prompt [String] An optional text to guide the model's style or continue a previous audio segment
|
226
|
+
|
227
|
+
# The model to use for transcription. Can be `gpt-4o-transcribe`,
|
228
|
+
# `gpt-4o-mini-transcribe`, or `whisper-1`.
|
229
|
+
#
|
230
|
+
# @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription#model
|
231
|
+
module Model
|
232
|
+
extend OpenAI::Internal::Type::Enum
|
233
|
+
|
234
|
+
GPT_4O_TRANSCRIBE = :"gpt-4o-transcribe"
|
235
|
+
GPT_4O_MINI_TRANSCRIBE = :"gpt-4o-mini-transcribe"
|
236
|
+
WHISPER_1 = :"whisper-1"
|
237
|
+
|
238
|
+
# @!method self.values
|
239
|
+
# @return [Array<Symbol>]
|
240
|
+
end
|
241
|
+
end
|
242
|
+
|
243
|
+
# @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input#turn_detection
|
244
|
+
class TurnDetection < OpenAI::Internal::Type::BaseModel
|
245
|
+
# @!attribute prefix_padding_ms
|
246
|
+
#
|
247
|
+
# @return [Integer, nil]
|
248
|
+
optional :prefix_padding_ms, Integer
|
249
|
+
|
250
|
+
# @!attribute silence_duration_ms
|
251
|
+
#
|
252
|
+
# @return [Integer, nil]
|
253
|
+
optional :silence_duration_ms, Integer
|
254
|
+
|
255
|
+
# @!attribute threshold
|
256
|
+
#
|
257
|
+
# @return [Float, nil]
|
258
|
+
optional :threshold, Float
|
259
|
+
|
260
|
+
# @!attribute type
|
261
|
+
# Type of turn detection, only `server_vad` is currently supported.
|
262
|
+
#
|
263
|
+
# @return [String, nil]
|
264
|
+
optional :type, String
|
265
|
+
|
266
|
+
# @!method initialize(prefix_padding_ms: nil, silence_duration_ms: nil, threshold: nil, type: nil)
|
267
|
+
# Some parameter documentations has been truncated, see
|
268
|
+
# {OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection}
|
269
|
+
# for more details.
|
270
|
+
#
|
271
|
+
# Configuration for turn detection.
|
272
|
+
#
|
273
|
+
# @param prefix_padding_ms [Integer]
|
274
|
+
#
|
275
|
+
# @param silence_duration_ms [Integer]
|
276
|
+
#
|
277
|
+
# @param threshold [Float]
|
278
|
+
#
|
279
|
+
# @param type [String] Type of turn detection, only `server_vad` is currently supported.
|
280
|
+
end
|
281
|
+
end
|
282
|
+
end
|
283
|
+
|
284
|
+
module Include
|
285
|
+
extend OpenAI::Internal::Type::Enum
|
286
|
+
|
287
|
+
ITEM_INPUT_AUDIO_TRANSCRIPTION_LOGPROBS = :"item.input_audio_transcription.logprobs"
|
288
|
+
|
289
|
+
# @!method self.values
|
290
|
+
# @return [Array<Symbol>]
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
294
|
+
# @!method self.variants
|
295
|
+
# @return [Array(OpenAI::Models::Realtime::RealtimeSessionCreateResponse, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse)]
|
296
|
+
end
|
297
|
+
end
|
298
|
+
end
|
299
|
+
end
|
300
|
+
end
|