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
@@ -0,0 +1,117 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
# Controls how the realtime conversation is truncated prior to model inference.
|
7
|
+
# The default is `auto`. When set to `retention_ratio`, the server retains a
|
8
|
+
# fraction of the conversation tokens prior to the instructions.
|
9
|
+
module RealtimeTruncation
|
10
|
+
extend OpenAI::Internal::Type::Union
|
11
|
+
|
12
|
+
Variants =
|
13
|
+
T.type_alias do
|
14
|
+
T.any(
|
15
|
+
OpenAI::Realtime::RealtimeTruncation::RealtimeTruncationStrategy::TaggedSymbol,
|
16
|
+
OpenAI::Realtime::RealtimeTruncation::RetentionRatioTruncation
|
17
|
+
)
|
18
|
+
end
|
19
|
+
|
20
|
+
# The truncation strategy to use for the session.
|
21
|
+
module RealtimeTruncationStrategy
|
22
|
+
extend OpenAI::Internal::Type::Enum
|
23
|
+
|
24
|
+
TaggedSymbol =
|
25
|
+
T.type_alias do
|
26
|
+
T.all(
|
27
|
+
Symbol,
|
28
|
+
OpenAI::Realtime::RealtimeTruncation::RealtimeTruncationStrategy
|
29
|
+
)
|
30
|
+
end
|
31
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
32
|
+
|
33
|
+
AUTO =
|
34
|
+
T.let(
|
35
|
+
:auto,
|
36
|
+
OpenAI::Realtime::RealtimeTruncation::RealtimeTruncationStrategy::TaggedSymbol
|
37
|
+
)
|
38
|
+
DISABLED =
|
39
|
+
T.let(
|
40
|
+
:disabled,
|
41
|
+
OpenAI::Realtime::RealtimeTruncation::RealtimeTruncationStrategy::TaggedSymbol
|
42
|
+
)
|
43
|
+
|
44
|
+
sig do
|
45
|
+
override.returns(
|
46
|
+
T::Array[
|
47
|
+
OpenAI::Realtime::RealtimeTruncation::RealtimeTruncationStrategy::TaggedSymbol
|
48
|
+
]
|
49
|
+
)
|
50
|
+
end
|
51
|
+
def self.values
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
class RetentionRatioTruncation < OpenAI::Internal::Type::BaseModel
|
56
|
+
OrHash =
|
57
|
+
T.type_alias do
|
58
|
+
T.any(
|
59
|
+
OpenAI::Realtime::RealtimeTruncation::RetentionRatioTruncation,
|
60
|
+
OpenAI::Internal::AnyHash
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Fraction of pre-instruction conversation tokens to retain (0.0 - 1.0).
|
65
|
+
sig { returns(Float) }
|
66
|
+
attr_accessor :retention_ratio
|
67
|
+
|
68
|
+
# Use retention ratio truncation.
|
69
|
+
sig { returns(Symbol) }
|
70
|
+
attr_accessor :type
|
71
|
+
|
72
|
+
# Optional cap on tokens allowed after the instructions.
|
73
|
+
sig { returns(T.nilable(Integer)) }
|
74
|
+
attr_accessor :post_instructions_token_limit
|
75
|
+
|
76
|
+
# Retain a fraction of the conversation tokens.
|
77
|
+
sig do
|
78
|
+
params(
|
79
|
+
retention_ratio: Float,
|
80
|
+
post_instructions_token_limit: T.nilable(Integer),
|
81
|
+
type: Symbol
|
82
|
+
).returns(T.attached_class)
|
83
|
+
end
|
84
|
+
def self.new(
|
85
|
+
# Fraction of pre-instruction conversation tokens to retain (0.0 - 1.0).
|
86
|
+
retention_ratio:,
|
87
|
+
# Optional cap on tokens allowed after the instructions.
|
88
|
+
post_instructions_token_limit: nil,
|
89
|
+
# Use retention ratio truncation.
|
90
|
+
type: :retention_ratio
|
91
|
+
)
|
92
|
+
end
|
93
|
+
|
94
|
+
sig do
|
95
|
+
override.returns(
|
96
|
+
{
|
97
|
+
retention_ratio: Float,
|
98
|
+
type: Symbol,
|
99
|
+
post_instructions_token_limit: T.nilable(Integer)
|
100
|
+
}
|
101
|
+
)
|
102
|
+
end
|
103
|
+
def to_hash
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
sig do
|
108
|
+
override.returns(
|
109
|
+
T::Array[OpenAI::Realtime::RealtimeTruncation::Variants]
|
110
|
+
)
|
111
|
+
end
|
112
|
+
def self.variants
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class ResponseAudioDeltaEvent < OpenAI::Internal::Type::BaseModel
|
7
|
+
OrHash =
|
8
|
+
T.type_alias do
|
9
|
+
T.any(
|
10
|
+
OpenAI::Realtime::ResponseAudioDeltaEvent,
|
11
|
+
OpenAI::Internal::AnyHash
|
12
|
+
)
|
13
|
+
end
|
14
|
+
|
15
|
+
# The index of the content part in the item's content array.
|
16
|
+
sig { returns(Integer) }
|
17
|
+
attr_accessor :content_index
|
18
|
+
|
19
|
+
# Base64-encoded audio data delta.
|
20
|
+
sig { returns(String) }
|
21
|
+
attr_accessor :delta
|
22
|
+
|
23
|
+
# The unique ID of the server event.
|
24
|
+
sig { returns(String) }
|
25
|
+
attr_accessor :event_id
|
26
|
+
|
27
|
+
# The ID of the item.
|
28
|
+
sig { returns(String) }
|
29
|
+
attr_accessor :item_id
|
30
|
+
|
31
|
+
# The index of the output item in the response.
|
32
|
+
sig { returns(Integer) }
|
33
|
+
attr_accessor :output_index
|
34
|
+
|
35
|
+
# The ID of the response.
|
36
|
+
sig { returns(String) }
|
37
|
+
attr_accessor :response_id
|
38
|
+
|
39
|
+
# The event type, must be `response.output_audio.delta`.
|
40
|
+
sig { returns(Symbol) }
|
41
|
+
attr_accessor :type
|
42
|
+
|
43
|
+
# Returned when the model-generated audio is updated.
|
44
|
+
sig do
|
45
|
+
params(
|
46
|
+
content_index: Integer,
|
47
|
+
delta: String,
|
48
|
+
event_id: String,
|
49
|
+
item_id: String,
|
50
|
+
output_index: Integer,
|
51
|
+
response_id: String,
|
52
|
+
type: Symbol
|
53
|
+
).returns(T.attached_class)
|
54
|
+
end
|
55
|
+
def self.new(
|
56
|
+
# The index of the content part in the item's content array.
|
57
|
+
content_index:,
|
58
|
+
# Base64-encoded audio data delta.
|
59
|
+
delta:,
|
60
|
+
# The unique ID of the server event.
|
61
|
+
event_id:,
|
62
|
+
# The ID of the item.
|
63
|
+
item_id:,
|
64
|
+
# The index of the output item in the response.
|
65
|
+
output_index:,
|
66
|
+
# The ID of the response.
|
67
|
+
response_id:,
|
68
|
+
# The event type, must be `response.output_audio.delta`.
|
69
|
+
type: :"response.output_audio.delta"
|
70
|
+
)
|
71
|
+
end
|
72
|
+
|
73
|
+
sig do
|
74
|
+
override.returns(
|
75
|
+
{
|
76
|
+
content_index: Integer,
|
77
|
+
delta: String,
|
78
|
+
event_id: String,
|
79
|
+
item_id: String,
|
80
|
+
output_index: Integer,
|
81
|
+
response_id: String,
|
82
|
+
type: Symbol
|
83
|
+
}
|
84
|
+
)
|
85
|
+
end
|
86
|
+
def to_hash
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class ResponseAudioDoneEvent < OpenAI::Internal::Type::BaseModel
|
7
|
+
OrHash =
|
8
|
+
T.type_alias do
|
9
|
+
T.any(
|
10
|
+
OpenAI::Realtime::ResponseAudioDoneEvent,
|
11
|
+
OpenAI::Internal::AnyHash
|
12
|
+
)
|
13
|
+
end
|
14
|
+
|
15
|
+
# The index of the content part in the item's content array.
|
16
|
+
sig { returns(Integer) }
|
17
|
+
attr_accessor :content_index
|
18
|
+
|
19
|
+
# The unique ID of the server event.
|
20
|
+
sig { returns(String) }
|
21
|
+
attr_accessor :event_id
|
22
|
+
|
23
|
+
# The ID of the item.
|
24
|
+
sig { returns(String) }
|
25
|
+
attr_accessor :item_id
|
26
|
+
|
27
|
+
# The index of the output item in the response.
|
28
|
+
sig { returns(Integer) }
|
29
|
+
attr_accessor :output_index
|
30
|
+
|
31
|
+
# The ID of the response.
|
32
|
+
sig { returns(String) }
|
33
|
+
attr_accessor :response_id
|
34
|
+
|
35
|
+
# The event type, must be `response.output_audio.done`.
|
36
|
+
sig { returns(Symbol) }
|
37
|
+
attr_accessor :type
|
38
|
+
|
39
|
+
# Returned when the model-generated audio is done. Also emitted when a Response is
|
40
|
+
# interrupted, incomplete, or cancelled.
|
41
|
+
sig do
|
42
|
+
params(
|
43
|
+
content_index: Integer,
|
44
|
+
event_id: String,
|
45
|
+
item_id: String,
|
46
|
+
output_index: Integer,
|
47
|
+
response_id: String,
|
48
|
+
type: Symbol
|
49
|
+
).returns(T.attached_class)
|
50
|
+
end
|
51
|
+
def self.new(
|
52
|
+
# The index of the content part in the item's content array.
|
53
|
+
content_index:,
|
54
|
+
# The unique ID of the server event.
|
55
|
+
event_id:,
|
56
|
+
# The ID of the item.
|
57
|
+
item_id:,
|
58
|
+
# The index of the output item in the response.
|
59
|
+
output_index:,
|
60
|
+
# The ID of the response.
|
61
|
+
response_id:,
|
62
|
+
# The event type, must be `response.output_audio.done`.
|
63
|
+
type: :"response.output_audio.done"
|
64
|
+
)
|
65
|
+
end
|
66
|
+
|
67
|
+
sig do
|
68
|
+
override.returns(
|
69
|
+
{
|
70
|
+
content_index: Integer,
|
71
|
+
event_id: String,
|
72
|
+
item_id: String,
|
73
|
+
output_index: Integer,
|
74
|
+
response_id: String,
|
75
|
+
type: Symbol
|
76
|
+
}
|
77
|
+
)
|
78
|
+
end
|
79
|
+
def to_hash
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class ResponseAudioTranscriptDeltaEvent < OpenAI::Internal::Type::BaseModel
|
7
|
+
OrHash =
|
8
|
+
T.type_alias do
|
9
|
+
T.any(
|
10
|
+
OpenAI::Realtime::ResponseAudioTranscriptDeltaEvent,
|
11
|
+
OpenAI::Internal::AnyHash
|
12
|
+
)
|
13
|
+
end
|
14
|
+
|
15
|
+
# The index of the content part in the item's content array.
|
16
|
+
sig { returns(Integer) }
|
17
|
+
attr_accessor :content_index
|
18
|
+
|
19
|
+
# The transcript delta.
|
20
|
+
sig { returns(String) }
|
21
|
+
attr_accessor :delta
|
22
|
+
|
23
|
+
# The unique ID of the server event.
|
24
|
+
sig { returns(String) }
|
25
|
+
attr_accessor :event_id
|
26
|
+
|
27
|
+
# The ID of the item.
|
28
|
+
sig { returns(String) }
|
29
|
+
attr_accessor :item_id
|
30
|
+
|
31
|
+
# The index of the output item in the response.
|
32
|
+
sig { returns(Integer) }
|
33
|
+
attr_accessor :output_index
|
34
|
+
|
35
|
+
# The ID of the response.
|
36
|
+
sig { returns(String) }
|
37
|
+
attr_accessor :response_id
|
38
|
+
|
39
|
+
# The event type, must be `response.output_audio_transcript.delta`.
|
40
|
+
sig { returns(Symbol) }
|
41
|
+
attr_accessor :type
|
42
|
+
|
43
|
+
# Returned when the model-generated transcription of audio output is updated.
|
44
|
+
sig do
|
45
|
+
params(
|
46
|
+
content_index: Integer,
|
47
|
+
delta: String,
|
48
|
+
event_id: String,
|
49
|
+
item_id: String,
|
50
|
+
output_index: Integer,
|
51
|
+
response_id: String,
|
52
|
+
type: Symbol
|
53
|
+
).returns(T.attached_class)
|
54
|
+
end
|
55
|
+
def self.new(
|
56
|
+
# The index of the content part in the item's content array.
|
57
|
+
content_index:,
|
58
|
+
# The transcript delta.
|
59
|
+
delta:,
|
60
|
+
# The unique ID of the server event.
|
61
|
+
event_id:,
|
62
|
+
# The ID of the item.
|
63
|
+
item_id:,
|
64
|
+
# The index of the output item in the response.
|
65
|
+
output_index:,
|
66
|
+
# The ID of the response.
|
67
|
+
response_id:,
|
68
|
+
# The event type, must be `response.output_audio_transcript.delta`.
|
69
|
+
type: :"response.output_audio_transcript.delta"
|
70
|
+
)
|
71
|
+
end
|
72
|
+
|
73
|
+
sig do
|
74
|
+
override.returns(
|
75
|
+
{
|
76
|
+
content_index: Integer,
|
77
|
+
delta: String,
|
78
|
+
event_id: String,
|
79
|
+
item_id: String,
|
80
|
+
output_index: Integer,
|
81
|
+
response_id: String,
|
82
|
+
type: Symbol
|
83
|
+
}
|
84
|
+
)
|
85
|
+
end
|
86
|
+
def to_hash
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class ResponseAudioTranscriptDoneEvent < OpenAI::Internal::Type::BaseModel
|
7
|
+
OrHash =
|
8
|
+
T.type_alias do
|
9
|
+
T.any(
|
10
|
+
OpenAI::Realtime::ResponseAudioTranscriptDoneEvent,
|
11
|
+
OpenAI::Internal::AnyHash
|
12
|
+
)
|
13
|
+
end
|
14
|
+
|
15
|
+
# The index of the content part in the item's content array.
|
16
|
+
sig { returns(Integer) }
|
17
|
+
attr_accessor :content_index
|
18
|
+
|
19
|
+
# The unique ID of the server event.
|
20
|
+
sig { returns(String) }
|
21
|
+
attr_accessor :event_id
|
22
|
+
|
23
|
+
# The ID of the item.
|
24
|
+
sig { returns(String) }
|
25
|
+
attr_accessor :item_id
|
26
|
+
|
27
|
+
# The index of the output item in the response.
|
28
|
+
sig { returns(Integer) }
|
29
|
+
attr_accessor :output_index
|
30
|
+
|
31
|
+
# The ID of the response.
|
32
|
+
sig { returns(String) }
|
33
|
+
attr_accessor :response_id
|
34
|
+
|
35
|
+
# The final transcript of the audio.
|
36
|
+
sig { returns(String) }
|
37
|
+
attr_accessor :transcript
|
38
|
+
|
39
|
+
# The event type, must be `response.output_audio_transcript.done`.
|
40
|
+
sig { returns(Symbol) }
|
41
|
+
attr_accessor :type
|
42
|
+
|
43
|
+
# Returned when the model-generated transcription of audio output is done
|
44
|
+
# streaming. Also emitted when a Response is interrupted, incomplete, or
|
45
|
+
# cancelled.
|
46
|
+
sig do
|
47
|
+
params(
|
48
|
+
content_index: Integer,
|
49
|
+
event_id: String,
|
50
|
+
item_id: String,
|
51
|
+
output_index: Integer,
|
52
|
+
response_id: String,
|
53
|
+
transcript: String,
|
54
|
+
type: Symbol
|
55
|
+
).returns(T.attached_class)
|
56
|
+
end
|
57
|
+
def self.new(
|
58
|
+
# The index of the content part in the item's content array.
|
59
|
+
content_index:,
|
60
|
+
# The unique ID of the server event.
|
61
|
+
event_id:,
|
62
|
+
# The ID of the item.
|
63
|
+
item_id:,
|
64
|
+
# The index of the output item in the response.
|
65
|
+
output_index:,
|
66
|
+
# The ID of the response.
|
67
|
+
response_id:,
|
68
|
+
# The final transcript of the audio.
|
69
|
+
transcript:,
|
70
|
+
# The event type, must be `response.output_audio_transcript.done`.
|
71
|
+
type: :"response.output_audio_transcript.done"
|
72
|
+
)
|
73
|
+
end
|
74
|
+
|
75
|
+
sig do
|
76
|
+
override.returns(
|
77
|
+
{
|
78
|
+
content_index: Integer,
|
79
|
+
event_id: String,
|
80
|
+
item_id: String,
|
81
|
+
output_index: Integer,
|
82
|
+
response_id: String,
|
83
|
+
transcript: String,
|
84
|
+
type: Symbol
|
85
|
+
}
|
86
|
+
)
|
87
|
+
end
|
88
|
+
def to_hash
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class ResponseCancelEvent < OpenAI::Internal::Type::BaseModel
|
7
|
+
OrHash =
|
8
|
+
T.type_alias do
|
9
|
+
T.any(
|
10
|
+
OpenAI::Realtime::ResponseCancelEvent,
|
11
|
+
OpenAI::Internal::AnyHash
|
12
|
+
)
|
13
|
+
end
|
14
|
+
|
15
|
+
# The event type, must be `response.cancel`.
|
16
|
+
sig { returns(Symbol) }
|
17
|
+
attr_accessor :type
|
18
|
+
|
19
|
+
# Optional client-generated ID used to identify this event.
|
20
|
+
sig { returns(T.nilable(String)) }
|
21
|
+
attr_reader :event_id
|
22
|
+
|
23
|
+
sig { params(event_id: String).void }
|
24
|
+
attr_writer :event_id
|
25
|
+
|
26
|
+
# A specific response ID to cancel - if not provided, will cancel an in-progress
|
27
|
+
# response in the default conversation.
|
28
|
+
sig { returns(T.nilable(String)) }
|
29
|
+
attr_reader :response_id
|
30
|
+
|
31
|
+
sig { params(response_id: String).void }
|
32
|
+
attr_writer :response_id
|
33
|
+
|
34
|
+
# Send this event to cancel an in-progress response. The server will respond with
|
35
|
+
# a `response.done` event with a status of `response.status=cancelled`. If there
|
36
|
+
# is no response to cancel, the server will respond with an error.
|
37
|
+
sig do
|
38
|
+
params(event_id: String, response_id: String, type: Symbol).returns(
|
39
|
+
T.attached_class
|
40
|
+
)
|
41
|
+
end
|
42
|
+
def self.new(
|
43
|
+
# Optional client-generated ID used to identify this event.
|
44
|
+
event_id: nil,
|
45
|
+
# A specific response ID to cancel - if not provided, will cancel an in-progress
|
46
|
+
# response in the default conversation.
|
47
|
+
response_id: nil,
|
48
|
+
# The event type, must be `response.cancel`.
|
49
|
+
type: :"response.cancel"
|
50
|
+
)
|
51
|
+
end
|
52
|
+
|
53
|
+
sig do
|
54
|
+
override.returns(
|
55
|
+
{ type: Symbol, event_id: String, response_id: String }
|
56
|
+
)
|
57
|
+
end
|
58
|
+
def to_hash
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|