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,103 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeResponseStatus < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute error
|
8
|
+
# A description of the error that caused the response to fail, populated when the
|
9
|
+
# `status` is `failed`.
|
10
|
+
#
|
11
|
+
# @return [OpenAI::Models::Realtime::RealtimeResponseStatus::Error, nil]
|
12
|
+
optional :error, -> { OpenAI::Realtime::RealtimeResponseStatus::Error }
|
13
|
+
|
14
|
+
# @!attribute reason
|
15
|
+
# The reason the Response did not complete. For a `cancelled` Response, one of
|
16
|
+
# `turn_detected` (the server VAD detected a new start of speech) or
|
17
|
+
# `client_cancelled` (the client sent a cancel event). For an `incomplete`
|
18
|
+
# Response, one of `max_output_tokens` or `content_filter` (the server-side safety
|
19
|
+
# filter activated and cut off the response).
|
20
|
+
#
|
21
|
+
# @return [Symbol, OpenAI::Models::Realtime::RealtimeResponseStatus::Reason, nil]
|
22
|
+
optional :reason, enum: -> { OpenAI::Realtime::RealtimeResponseStatus::Reason }
|
23
|
+
|
24
|
+
# @!attribute type
|
25
|
+
# The type of error that caused the response to fail, corresponding with the
|
26
|
+
# `status` field (`completed`, `cancelled`, `incomplete`, `failed`).
|
27
|
+
#
|
28
|
+
# @return [Symbol, OpenAI::Models::Realtime::RealtimeResponseStatus::Type, nil]
|
29
|
+
optional :type, enum: -> { OpenAI::Realtime::RealtimeResponseStatus::Type }
|
30
|
+
|
31
|
+
# @!method initialize(error: nil, reason: nil, type: nil)
|
32
|
+
# Some parameter documentations has been truncated, see
|
33
|
+
# {OpenAI::Models::Realtime::RealtimeResponseStatus} for more details.
|
34
|
+
#
|
35
|
+
# Additional details about the status.
|
36
|
+
#
|
37
|
+
# @param error [OpenAI::Models::Realtime::RealtimeResponseStatus::Error] A description of the error that caused the response to fail,
|
38
|
+
#
|
39
|
+
# @param reason [Symbol, OpenAI::Models::Realtime::RealtimeResponseStatus::Reason] The reason the Response did not complete. For a `cancelled` Response,
|
40
|
+
#
|
41
|
+
# @param type [Symbol, OpenAI::Models::Realtime::RealtimeResponseStatus::Type] The type of error that caused the response to fail, corresponding
|
42
|
+
|
43
|
+
# @see OpenAI::Models::Realtime::RealtimeResponseStatus#error
|
44
|
+
class Error < OpenAI::Internal::Type::BaseModel
|
45
|
+
# @!attribute code
|
46
|
+
# Error code, if any.
|
47
|
+
#
|
48
|
+
# @return [String, nil]
|
49
|
+
optional :code, String
|
50
|
+
|
51
|
+
# @!attribute type
|
52
|
+
# The type of error.
|
53
|
+
#
|
54
|
+
# @return [String, nil]
|
55
|
+
optional :type, String
|
56
|
+
|
57
|
+
# @!method initialize(code: nil, type: nil)
|
58
|
+
# A description of the error that caused the response to fail, populated when the
|
59
|
+
# `status` is `failed`.
|
60
|
+
#
|
61
|
+
# @param code [String] Error code, if any.
|
62
|
+
#
|
63
|
+
# @param type [String] The type of error.
|
64
|
+
end
|
65
|
+
|
66
|
+
# The reason the Response did not complete. For a `cancelled` Response, one of
|
67
|
+
# `turn_detected` (the server VAD detected a new start of speech) or
|
68
|
+
# `client_cancelled` (the client sent a cancel event). For an `incomplete`
|
69
|
+
# Response, one of `max_output_tokens` or `content_filter` (the server-side safety
|
70
|
+
# filter activated and cut off the response).
|
71
|
+
#
|
72
|
+
# @see OpenAI::Models::Realtime::RealtimeResponseStatus#reason
|
73
|
+
module Reason
|
74
|
+
extend OpenAI::Internal::Type::Enum
|
75
|
+
|
76
|
+
TURN_DETECTED = :turn_detected
|
77
|
+
CLIENT_CANCELLED = :client_cancelled
|
78
|
+
MAX_OUTPUT_TOKENS = :max_output_tokens
|
79
|
+
CONTENT_FILTER = :content_filter
|
80
|
+
|
81
|
+
# @!method self.values
|
82
|
+
# @return [Array<Symbol>]
|
83
|
+
end
|
84
|
+
|
85
|
+
# The type of error that caused the response to fail, corresponding with the
|
86
|
+
# `status` field (`completed`, `cancelled`, `incomplete`, `failed`).
|
87
|
+
#
|
88
|
+
# @see OpenAI::Models::Realtime::RealtimeResponseStatus#type
|
89
|
+
module Type
|
90
|
+
extend OpenAI::Internal::Type::Enum
|
91
|
+
|
92
|
+
COMPLETED = :completed
|
93
|
+
CANCELLED = :cancelled
|
94
|
+
INCOMPLETE = :incomplete
|
95
|
+
FAILED = :failed
|
96
|
+
|
97
|
+
# @!method self.values
|
98
|
+
# @return [Array<Symbol>]
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeResponseUsage < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute input_token_details
|
8
|
+
# Details about the input tokens used in the Response.
|
9
|
+
#
|
10
|
+
# @return [OpenAI::Models::Realtime::RealtimeResponseUsageInputTokenDetails, nil]
|
11
|
+
optional :input_token_details, -> { OpenAI::Realtime::RealtimeResponseUsageInputTokenDetails }
|
12
|
+
|
13
|
+
# @!attribute input_tokens
|
14
|
+
# The number of input tokens used in the Response, including text and audio
|
15
|
+
# tokens.
|
16
|
+
#
|
17
|
+
# @return [Integer, nil]
|
18
|
+
optional :input_tokens, Integer
|
19
|
+
|
20
|
+
# @!attribute output_token_details
|
21
|
+
# Details about the output tokens used in the Response.
|
22
|
+
#
|
23
|
+
# @return [OpenAI::Models::Realtime::RealtimeResponseUsageOutputTokenDetails, nil]
|
24
|
+
optional :output_token_details, -> { OpenAI::Realtime::RealtimeResponseUsageOutputTokenDetails }
|
25
|
+
|
26
|
+
# @!attribute output_tokens
|
27
|
+
# The number of output tokens sent in the Response, including text and audio
|
28
|
+
# tokens.
|
29
|
+
#
|
30
|
+
# @return [Integer, nil]
|
31
|
+
optional :output_tokens, Integer
|
32
|
+
|
33
|
+
# @!attribute total_tokens
|
34
|
+
# The total number of tokens in the Response including input and output text and
|
35
|
+
# audio tokens.
|
36
|
+
#
|
37
|
+
# @return [Integer, nil]
|
38
|
+
optional :total_tokens, Integer
|
39
|
+
|
40
|
+
# @!method initialize(input_token_details: nil, input_tokens: nil, output_token_details: nil, output_tokens: nil, total_tokens: nil)
|
41
|
+
# Some parameter documentations has been truncated, see
|
42
|
+
# {OpenAI::Models::Realtime::RealtimeResponseUsage} for more details.
|
43
|
+
#
|
44
|
+
# Usage statistics for the Response, this will correspond to billing. A Realtime
|
45
|
+
# API session will maintain a conversation context and append new Items to the
|
46
|
+
# Conversation, thus output from previous turns (text and audio tokens) will
|
47
|
+
# become the input for later turns.
|
48
|
+
#
|
49
|
+
# @param input_token_details [OpenAI::Models::Realtime::RealtimeResponseUsageInputTokenDetails] Details about the input tokens used in the Response.
|
50
|
+
#
|
51
|
+
# @param input_tokens [Integer] The number of input tokens used in the Response, including text and
|
52
|
+
#
|
53
|
+
# @param output_token_details [OpenAI::Models::Realtime::RealtimeResponseUsageOutputTokenDetails] Details about the output tokens used in the Response.
|
54
|
+
#
|
55
|
+
# @param output_tokens [Integer] The number of output tokens sent in the Response, including text and
|
56
|
+
#
|
57
|
+
# @param total_tokens [Integer] The total number of tokens in the Response including input and output
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeResponseUsageInputTokenDetails < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute audio_tokens
|
8
|
+
# The number of audio tokens used in the Response.
|
9
|
+
#
|
10
|
+
# @return [Integer, nil]
|
11
|
+
optional :audio_tokens, Integer
|
12
|
+
|
13
|
+
# @!attribute cached_tokens
|
14
|
+
# The number of cached tokens used in the Response.
|
15
|
+
#
|
16
|
+
# @return [Integer, nil]
|
17
|
+
optional :cached_tokens, Integer
|
18
|
+
|
19
|
+
# @!attribute text_tokens
|
20
|
+
# The number of text tokens used in the Response.
|
21
|
+
#
|
22
|
+
# @return [Integer, nil]
|
23
|
+
optional :text_tokens, Integer
|
24
|
+
|
25
|
+
# @!method initialize(audio_tokens: nil, cached_tokens: nil, text_tokens: nil)
|
26
|
+
# Details about the input tokens used in the Response.
|
27
|
+
#
|
28
|
+
# @param audio_tokens [Integer] The number of audio tokens used in the Response.
|
29
|
+
#
|
30
|
+
# @param cached_tokens [Integer] The number of cached tokens used in the Response.
|
31
|
+
#
|
32
|
+
# @param text_tokens [Integer] The number of text tokens used in the Response.
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeResponseUsageOutputTokenDetails < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute audio_tokens
|
8
|
+
# The number of audio tokens used in the Response.
|
9
|
+
#
|
10
|
+
# @return [Integer, nil]
|
11
|
+
optional :audio_tokens, Integer
|
12
|
+
|
13
|
+
# @!attribute text_tokens
|
14
|
+
# The number of text tokens used in the Response.
|
15
|
+
#
|
16
|
+
# @return [Integer, nil]
|
17
|
+
optional :text_tokens, Integer
|
18
|
+
|
19
|
+
# @!method initialize(audio_tokens: nil, text_tokens: nil)
|
20
|
+
# Details about the output tokens used in the Response.
|
21
|
+
#
|
22
|
+
# @param audio_tokens [Integer] The number of audio tokens used in the Response.
|
23
|
+
#
|
24
|
+
# @param text_tokens [Integer] The number of text tokens used in the Response.
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,369 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
# A realtime server event.
|
7
|
+
module RealtimeServerEvent
|
8
|
+
extend OpenAI::Internal::Type::Union
|
9
|
+
|
10
|
+
discriminator :type
|
11
|
+
|
12
|
+
# Returned when a conversation is created. Emitted right after session creation.
|
13
|
+
variant :"conversation.created", -> { OpenAI::Realtime::ConversationCreatedEvent }
|
14
|
+
|
15
|
+
# Returned when a conversation item is created. There are several scenarios that produce this event:
|
16
|
+
# - The server is generating a Response, which if successful will produce
|
17
|
+
# either one or two Items, which will be of type `message`
|
18
|
+
# (role `assistant`) or type `function_call`.
|
19
|
+
# - The input audio buffer has been committed, either by the client or the
|
20
|
+
# server (in `server_vad` mode). The server will take the content of the
|
21
|
+
# input audio buffer and add it to a new user message Item.
|
22
|
+
# - The client has sent a `conversation.item.create` event to add a new Item
|
23
|
+
# to the Conversation.
|
24
|
+
variant :"conversation.item.created", -> { OpenAI::Realtime::ConversationItemCreatedEvent }
|
25
|
+
|
26
|
+
# Returned when an item in the conversation is deleted by the client with a
|
27
|
+
# `conversation.item.delete` event. This event is used to synchronize the
|
28
|
+
# server's understanding of the conversation history with the client's view.
|
29
|
+
variant :"conversation.item.deleted", -> { OpenAI::Realtime::ConversationItemDeletedEvent }
|
30
|
+
|
31
|
+
# This event is the output of audio transcription for user audio written to the
|
32
|
+
# user audio buffer. Transcription begins when the input audio buffer is
|
33
|
+
# committed by the client or server (in `server_vad` mode). Transcription runs
|
34
|
+
# asynchronously with Response creation, so this event may come before or after
|
35
|
+
# the Response events.
|
36
|
+
#
|
37
|
+
# Realtime API models accept audio natively, and thus input transcription is a
|
38
|
+
# separate process run on a separate ASR (Automatic Speech Recognition) model.
|
39
|
+
# The transcript may diverge somewhat from the model's interpretation, and
|
40
|
+
# should be treated as a rough guide.
|
41
|
+
variant :"conversation.item.input_audio_transcription.completed",
|
42
|
+
-> { OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent }
|
43
|
+
|
44
|
+
# Returned when the text value of an input audio transcription content part is updated.
|
45
|
+
variant :"conversation.item.input_audio_transcription.delta",
|
46
|
+
-> { OpenAI::Realtime::ConversationItemInputAudioTranscriptionDeltaEvent }
|
47
|
+
|
48
|
+
# Returned when input audio transcription is configured, and a transcription
|
49
|
+
# request for a user message failed. These events are separate from other
|
50
|
+
# `error` events so that the client can identify the related Item.
|
51
|
+
variant :"conversation.item.input_audio_transcription.failed",
|
52
|
+
-> { OpenAI::Realtime::ConversationItemInputAudioTranscriptionFailedEvent }
|
53
|
+
|
54
|
+
# Returned when a conversation item is retrieved with `conversation.item.retrieve`.
|
55
|
+
variant :"conversation.item.retrieved",
|
56
|
+
-> { OpenAI::Realtime::RealtimeServerEvent::ConversationItemRetrieved }
|
57
|
+
|
58
|
+
# Returned when an earlier assistant audio message item is truncated by the
|
59
|
+
# client with a `conversation.item.truncate` event. This event is used to
|
60
|
+
# synchronize the server's understanding of the audio with the client's playback.
|
61
|
+
#
|
62
|
+
# This action will truncate the audio and remove the server-side text transcript
|
63
|
+
# to ensure there is no text in the context that hasn't been heard by the user.
|
64
|
+
variant :"conversation.item.truncated", -> { OpenAI::Realtime::ConversationItemTruncatedEvent }
|
65
|
+
|
66
|
+
# Returned when an error occurs, which could be a client problem or a server
|
67
|
+
# problem. Most errors are recoverable and the session will stay open, we
|
68
|
+
# recommend to implementors to monitor and log error messages by default.
|
69
|
+
variant :error, -> { OpenAI::Realtime::RealtimeErrorEvent }
|
70
|
+
|
71
|
+
# Returned when the input audio buffer is cleared by the client with a
|
72
|
+
# `input_audio_buffer.clear` event.
|
73
|
+
variant :"input_audio_buffer.cleared", -> { OpenAI::Realtime::InputAudioBufferClearedEvent }
|
74
|
+
|
75
|
+
# Returned when an input audio buffer is committed, either by the client or
|
76
|
+
# automatically in server VAD mode. The `item_id` property is the ID of the user
|
77
|
+
# message item that will be created, thus a `conversation.item.created` event
|
78
|
+
# will also be sent to the client.
|
79
|
+
variant :"input_audio_buffer.committed", -> { OpenAI::Realtime::InputAudioBufferCommittedEvent }
|
80
|
+
|
81
|
+
# Sent by the server when in `server_vad` mode to indicate that speech has been
|
82
|
+
# detected in the audio buffer. This can happen any time audio is added to the
|
83
|
+
# buffer (unless speech is already detected). The client may want to use this
|
84
|
+
# event to interrupt audio playback or provide visual feedback to the user.
|
85
|
+
#
|
86
|
+
# The client should expect to receive a `input_audio_buffer.speech_stopped` event
|
87
|
+
# when speech stops. The `item_id` property is the ID of the user message item
|
88
|
+
# that will be created when speech stops and will also be included in the
|
89
|
+
# `input_audio_buffer.speech_stopped` event (unless the client manually commits
|
90
|
+
# the audio buffer during VAD activation).
|
91
|
+
variant :"input_audio_buffer.speech_started", -> { OpenAI::Realtime::InputAudioBufferSpeechStartedEvent }
|
92
|
+
|
93
|
+
# Returned in `server_vad` mode when the server detects the end of speech in
|
94
|
+
# the audio buffer. The server will also send an `conversation.item.created`
|
95
|
+
# event with the user message item that is created from the audio buffer.
|
96
|
+
variant :"input_audio_buffer.speech_stopped", -> { OpenAI::Realtime::InputAudioBufferSpeechStoppedEvent }
|
97
|
+
|
98
|
+
# Emitted at the beginning of a Response to indicate the updated rate limits.
|
99
|
+
# When a Response is created some tokens will be "reserved" for the output
|
100
|
+
# tokens, the rate limits shown here reflect that reservation, which is then
|
101
|
+
# adjusted accordingly once the Response is completed.
|
102
|
+
variant :"rate_limits.updated", -> { OpenAI::Realtime::RateLimitsUpdatedEvent }
|
103
|
+
|
104
|
+
# Returned when the model-generated audio is updated.
|
105
|
+
variant :"response.output_audio.delta", -> { OpenAI::Realtime::ResponseAudioDeltaEvent }
|
106
|
+
|
107
|
+
# Returned when the model-generated audio is done. Also emitted when a Response
|
108
|
+
# is interrupted, incomplete, or cancelled.
|
109
|
+
variant :"response.output_audio.done", -> { OpenAI::Realtime::ResponseAudioDoneEvent }
|
110
|
+
|
111
|
+
# Returned when the model-generated transcription of audio output is updated.
|
112
|
+
variant :"response.output_audio_transcript.delta",
|
113
|
+
-> { OpenAI::Realtime::ResponseAudioTranscriptDeltaEvent }
|
114
|
+
|
115
|
+
# Returned when the model-generated transcription of audio output is done
|
116
|
+
# streaming. Also emitted when a Response is interrupted, incomplete, or
|
117
|
+
# cancelled.
|
118
|
+
variant :"response.output_audio_transcript.done",
|
119
|
+
-> { OpenAI::Realtime::ResponseAudioTranscriptDoneEvent }
|
120
|
+
|
121
|
+
# Returned when a new content part is added to an assistant message item during
|
122
|
+
# response generation.
|
123
|
+
variant :"response.content_part.added", -> { OpenAI::Realtime::ResponseContentPartAddedEvent }
|
124
|
+
|
125
|
+
# Returned when a content part is done streaming in an assistant message item.
|
126
|
+
# Also emitted when a Response is interrupted, incomplete, or cancelled.
|
127
|
+
variant :"response.content_part.done", -> { OpenAI::Realtime::ResponseContentPartDoneEvent }
|
128
|
+
|
129
|
+
# Returned when a new Response is created. The first event of response creation,
|
130
|
+
# where the response is in an initial state of `in_progress`.
|
131
|
+
variant :"response.created", -> { OpenAI::Realtime::ResponseCreatedEvent }
|
132
|
+
|
133
|
+
# Returned when a Response is done streaming. Always emitted, no matter the
|
134
|
+
# final state. The Response object included in the `response.done` event will
|
135
|
+
# include all output Items in the Response but will omit the raw audio data.
|
136
|
+
variant :"response.done", -> { OpenAI::Realtime::ResponseDoneEvent }
|
137
|
+
|
138
|
+
# Returned when the model-generated function call arguments are updated.
|
139
|
+
variant :"response.function_call_arguments.delta",
|
140
|
+
-> { OpenAI::Realtime::ResponseFunctionCallArgumentsDeltaEvent }
|
141
|
+
|
142
|
+
# Returned when the model-generated function call arguments are done streaming.
|
143
|
+
# Also emitted when a Response is interrupted, incomplete, or cancelled.
|
144
|
+
variant :"response.function_call_arguments.done",
|
145
|
+
-> { OpenAI::Realtime::ResponseFunctionCallArgumentsDoneEvent }
|
146
|
+
|
147
|
+
# Returned when a new Item is created during Response generation.
|
148
|
+
variant :"response.output_item.added", -> { OpenAI::Realtime::ResponseOutputItemAddedEvent }
|
149
|
+
|
150
|
+
# Returned when an Item is done streaming. Also emitted when a Response is
|
151
|
+
# interrupted, incomplete, or cancelled.
|
152
|
+
variant :"response.output_item.done", -> { OpenAI::Realtime::ResponseOutputItemDoneEvent }
|
153
|
+
|
154
|
+
# Returned when the text value of an "output_text" content part is updated.
|
155
|
+
variant :"response.output_text.delta", -> { OpenAI::Realtime::ResponseTextDeltaEvent }
|
156
|
+
|
157
|
+
# Returned when the text value of an "output_text" content part is done streaming. Also
|
158
|
+
# emitted when a Response is interrupted, incomplete, or cancelled.
|
159
|
+
variant :"response.output_text.done", -> { OpenAI::Realtime::ResponseTextDoneEvent }
|
160
|
+
|
161
|
+
# Returned when a Session is created. Emitted automatically when a new
|
162
|
+
# connection is established as the first server event. This event will contain
|
163
|
+
# the default Session configuration.
|
164
|
+
variant :"session.created", -> { OpenAI::Realtime::SessionCreatedEvent }
|
165
|
+
|
166
|
+
# Returned when a session is updated with a `session.update` event, unless
|
167
|
+
# there is an error.
|
168
|
+
variant :"session.updated", -> { OpenAI::Realtime::SessionUpdatedEvent }
|
169
|
+
|
170
|
+
# Returned when a transcription session is updated with a `transcription_session.update` event, unless
|
171
|
+
# there is an error.
|
172
|
+
variant :"transcription_session.updated", -> { OpenAI::Realtime::TranscriptionSessionUpdatedEvent }
|
173
|
+
|
174
|
+
# Returned when a transcription session is created.
|
175
|
+
variant :"transcription_session.created", -> { OpenAI::Realtime::TranscriptionSessionCreated }
|
176
|
+
|
177
|
+
# **WebRTC Only:** Emitted when the server begins streaming audio to the client. This event is
|
178
|
+
# emitted after an audio content part has been added (`response.content_part.added`)
|
179
|
+
# to the response.
|
180
|
+
# [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
|
181
|
+
variant :"output_audio_buffer.started",
|
182
|
+
-> { OpenAI::Realtime::RealtimeServerEvent::OutputAudioBufferStarted }
|
183
|
+
|
184
|
+
# **WebRTC Only:** Emitted when the output audio buffer has been completely drained on the server,
|
185
|
+
# and no more audio is forthcoming. This event is emitted after the full response
|
186
|
+
# data has been sent to the client (`response.done`).
|
187
|
+
# [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
|
188
|
+
variant :"output_audio_buffer.stopped",
|
189
|
+
-> { OpenAI::Realtime::RealtimeServerEvent::OutputAudioBufferStopped }
|
190
|
+
|
191
|
+
# **WebRTC Only:** Emitted when the output audio buffer is cleared. This happens either in VAD
|
192
|
+
# mode when the user has interrupted (`input_audio_buffer.speech_started`),
|
193
|
+
# or when the client has emitted the `output_audio_buffer.clear` event to manually
|
194
|
+
# cut off the current audio response.
|
195
|
+
# [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
|
196
|
+
variant :"output_audio_buffer.cleared",
|
197
|
+
-> { OpenAI::Realtime::RealtimeServerEvent::OutputAudioBufferCleared }
|
198
|
+
|
199
|
+
# Returned when a conversation item is added.
|
200
|
+
variant :"conversation.item.added", -> { OpenAI::Realtime::ConversationItemAdded }
|
201
|
+
|
202
|
+
# Returned when a conversation item is finalized.
|
203
|
+
variant :"conversation.item.done", -> { OpenAI::Realtime::ConversationItemDone }
|
204
|
+
|
205
|
+
# Returned when the server VAD timeout is triggered for the input audio buffer.
|
206
|
+
variant :"input_audio_buffer.timeout_triggered", -> { OpenAI::Realtime::InputAudioBufferTimeoutTriggered }
|
207
|
+
|
208
|
+
# Returned when an input audio transcription segment is identified for an item.
|
209
|
+
variant :"conversation.item.input_audio_transcription.segment",
|
210
|
+
-> { OpenAI::Realtime::ConversationItemInputAudioTranscriptionSegment }
|
211
|
+
|
212
|
+
# Returned when listing MCP tools is in progress for an item.
|
213
|
+
variant :"mcp_list_tools.in_progress", -> { OpenAI::Realtime::McpListToolsInProgress }
|
214
|
+
|
215
|
+
# Returned when listing MCP tools has completed for an item.
|
216
|
+
variant :"mcp_list_tools.completed", -> { OpenAI::Realtime::McpListToolsCompleted }
|
217
|
+
|
218
|
+
# Returned when listing MCP tools has failed for an item.
|
219
|
+
variant :"mcp_list_tools.failed", -> { OpenAI::Realtime::McpListToolsFailed }
|
220
|
+
|
221
|
+
# Returned when MCP tool call arguments are updated during response generation.
|
222
|
+
variant :"response.mcp_call_arguments.delta", -> { OpenAI::Realtime::ResponseMcpCallArgumentsDelta }
|
223
|
+
|
224
|
+
# Returned when MCP tool call arguments are finalized during response generation.
|
225
|
+
variant :"response.mcp_call_arguments.done", -> { OpenAI::Realtime::ResponseMcpCallArgumentsDone }
|
226
|
+
|
227
|
+
# Returned when an MCP tool call has started and is in progress.
|
228
|
+
variant :"response.mcp_call.in_progress", -> { OpenAI::Realtime::ResponseMcpCallInProgress }
|
229
|
+
|
230
|
+
# Returned when an MCP tool call has completed successfully.
|
231
|
+
variant :"response.mcp_call.completed", -> { OpenAI::Realtime::ResponseMcpCallCompleted }
|
232
|
+
|
233
|
+
# Returned when an MCP tool call has failed.
|
234
|
+
variant :"response.mcp_call.failed", -> { OpenAI::Realtime::ResponseMcpCallFailed }
|
235
|
+
|
236
|
+
class ConversationItemRetrieved < OpenAI::Internal::Type::BaseModel
|
237
|
+
# @!attribute event_id
|
238
|
+
# The unique ID of the server event.
|
239
|
+
#
|
240
|
+
# @return [String]
|
241
|
+
required :event_id, String
|
242
|
+
|
243
|
+
# @!attribute item
|
244
|
+
# A single item within a Realtime conversation.
|
245
|
+
#
|
246
|
+
# @return [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest]
|
247
|
+
required :item, union: -> { OpenAI::Realtime::ConversationItem }
|
248
|
+
|
249
|
+
# @!attribute type
|
250
|
+
# The event type, must be `conversation.item.retrieved`.
|
251
|
+
#
|
252
|
+
# @return [Symbol, :"conversation.item.retrieved"]
|
253
|
+
required :type, const: :"conversation.item.retrieved"
|
254
|
+
|
255
|
+
# @!method initialize(event_id:, item:, type: :"conversation.item.retrieved")
|
256
|
+
# Returned when a conversation item is retrieved with
|
257
|
+
# `conversation.item.retrieve`.
|
258
|
+
#
|
259
|
+
# @param event_id [String] The unique ID of the server event.
|
260
|
+
#
|
261
|
+
# @param item [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest] A single item within a Realtime conversation.
|
262
|
+
#
|
263
|
+
# @param type [Symbol, :"conversation.item.retrieved"] The event type, must be `conversation.item.retrieved`.
|
264
|
+
end
|
265
|
+
|
266
|
+
class OutputAudioBufferStarted < OpenAI::Internal::Type::BaseModel
|
267
|
+
# @!attribute event_id
|
268
|
+
# The unique ID of the server event.
|
269
|
+
#
|
270
|
+
# @return [String]
|
271
|
+
required :event_id, String
|
272
|
+
|
273
|
+
# @!attribute response_id
|
274
|
+
# The unique ID of the response that produced the audio.
|
275
|
+
#
|
276
|
+
# @return [String]
|
277
|
+
required :response_id, String
|
278
|
+
|
279
|
+
# @!attribute type
|
280
|
+
# The event type, must be `output_audio_buffer.started`.
|
281
|
+
#
|
282
|
+
# @return [Symbol, :"output_audio_buffer.started"]
|
283
|
+
required :type, const: :"output_audio_buffer.started"
|
284
|
+
|
285
|
+
# @!method initialize(event_id:, response_id:, type: :"output_audio_buffer.started")
|
286
|
+
# **WebRTC Only:** Emitted when the server begins streaming audio to the client.
|
287
|
+
# This event is emitted after an audio content part has been added
|
288
|
+
# (`response.content_part.added`) to the response.
|
289
|
+
# [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
|
290
|
+
#
|
291
|
+
# @param event_id [String] The unique ID of the server event.
|
292
|
+
#
|
293
|
+
# @param response_id [String] The unique ID of the response that produced the audio.
|
294
|
+
#
|
295
|
+
# @param type [Symbol, :"output_audio_buffer.started"] The event type, must be `output_audio_buffer.started`.
|
296
|
+
end
|
297
|
+
|
298
|
+
class OutputAudioBufferStopped < OpenAI::Internal::Type::BaseModel
|
299
|
+
# @!attribute event_id
|
300
|
+
# The unique ID of the server event.
|
301
|
+
#
|
302
|
+
# @return [String]
|
303
|
+
required :event_id, String
|
304
|
+
|
305
|
+
# @!attribute response_id
|
306
|
+
# The unique ID of the response that produced the audio.
|
307
|
+
#
|
308
|
+
# @return [String]
|
309
|
+
required :response_id, String
|
310
|
+
|
311
|
+
# @!attribute type
|
312
|
+
# The event type, must be `output_audio_buffer.stopped`.
|
313
|
+
#
|
314
|
+
# @return [Symbol, :"output_audio_buffer.stopped"]
|
315
|
+
required :type, const: :"output_audio_buffer.stopped"
|
316
|
+
|
317
|
+
# @!method initialize(event_id:, response_id:, type: :"output_audio_buffer.stopped")
|
318
|
+
# **WebRTC Only:** Emitted when the output audio buffer has been completely
|
319
|
+
# drained on the server, and no more audio is forthcoming. This event is emitted
|
320
|
+
# after the full response data has been sent to the client (`response.done`).
|
321
|
+
# [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
|
322
|
+
#
|
323
|
+
# @param event_id [String] The unique ID of the server event.
|
324
|
+
#
|
325
|
+
# @param response_id [String] The unique ID of the response that produced the audio.
|
326
|
+
#
|
327
|
+
# @param type [Symbol, :"output_audio_buffer.stopped"] The event type, must be `output_audio_buffer.stopped`.
|
328
|
+
end
|
329
|
+
|
330
|
+
class OutputAudioBufferCleared < OpenAI::Internal::Type::BaseModel
|
331
|
+
# @!attribute event_id
|
332
|
+
# The unique ID of the server event.
|
333
|
+
#
|
334
|
+
# @return [String]
|
335
|
+
required :event_id, String
|
336
|
+
|
337
|
+
# @!attribute response_id
|
338
|
+
# The unique ID of the response that produced the audio.
|
339
|
+
#
|
340
|
+
# @return [String]
|
341
|
+
required :response_id, String
|
342
|
+
|
343
|
+
# @!attribute type
|
344
|
+
# The event type, must be `output_audio_buffer.cleared`.
|
345
|
+
#
|
346
|
+
# @return [Symbol, :"output_audio_buffer.cleared"]
|
347
|
+
required :type, const: :"output_audio_buffer.cleared"
|
348
|
+
|
349
|
+
# @!method initialize(event_id:, response_id:, type: :"output_audio_buffer.cleared")
|
350
|
+
# **WebRTC Only:** Emitted when the output audio buffer is cleared. This happens
|
351
|
+
# either in VAD mode when the user has interrupted
|
352
|
+
# (`input_audio_buffer.speech_started`), or when the client has emitted the
|
353
|
+
# `output_audio_buffer.clear` event to manually cut off the current audio
|
354
|
+
# response.
|
355
|
+
# [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
|
356
|
+
#
|
357
|
+
# @param event_id [String] The unique ID of the server event.
|
358
|
+
#
|
359
|
+
# @param response_id [String] The unique ID of the response that produced the audio.
|
360
|
+
#
|
361
|
+
# @param type [Symbol, :"output_audio_buffer.cleared"] The event type, must be `output_audio_buffer.cleared`.
|
362
|
+
end
|
363
|
+
|
364
|
+
# @!method self.variants
|
365
|
+
# @return [Array(OpenAI::Models::Realtime::ConversationCreatedEvent, OpenAI::Models::Realtime::ConversationItemCreatedEvent, OpenAI::Models::Realtime::ConversationItemDeletedEvent, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionDeltaEvent, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionFailedEvent, OpenAI::Models::Realtime::RealtimeServerEvent::ConversationItemRetrieved, OpenAI::Models::Realtime::ConversationItemTruncatedEvent, OpenAI::Models::Realtime::RealtimeErrorEvent, OpenAI::Models::Realtime::InputAudioBufferClearedEvent, OpenAI::Models::Realtime::InputAudioBufferCommittedEvent, OpenAI::Models::Realtime::InputAudioBufferSpeechStartedEvent, OpenAI::Models::Realtime::InputAudioBufferSpeechStoppedEvent, OpenAI::Models::Realtime::RateLimitsUpdatedEvent, OpenAI::Models::Realtime::ResponseAudioDeltaEvent, OpenAI::Models::Realtime::ResponseAudioDoneEvent, OpenAI::Models::Realtime::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Realtime::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Realtime::ResponseContentPartAddedEvent, OpenAI::Models::Realtime::ResponseContentPartDoneEvent, OpenAI::Models::Realtime::ResponseCreatedEvent, OpenAI::Models::Realtime::ResponseDoneEvent, OpenAI::Models::Realtime::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Realtime::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Realtime::ResponseOutputItemAddedEvent, OpenAI::Models::Realtime::ResponseOutputItemDoneEvent, OpenAI::Models::Realtime::ResponseTextDeltaEvent, OpenAI::Models::Realtime::ResponseTextDoneEvent, OpenAI::Models::Realtime::SessionCreatedEvent, OpenAI::Models::Realtime::SessionUpdatedEvent, OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent, OpenAI::Models::Realtime::TranscriptionSessionCreated, OpenAI::Models::Realtime::RealtimeServerEvent::OutputAudioBufferStarted, OpenAI::Models::Realtime::RealtimeServerEvent::OutputAudioBufferStopped, OpenAI::Models::Realtime::RealtimeServerEvent::OutputAudioBufferCleared, OpenAI::Models::Realtime::ConversationItemAdded, OpenAI::Models::Realtime::ConversationItemDone, OpenAI::Models::Realtime::InputAudioBufferTimeoutTriggered, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionSegment, OpenAI::Models::Realtime::McpListToolsInProgress, OpenAI::Models::Realtime::McpListToolsCompleted, OpenAI::Models::Realtime::McpListToolsFailed, OpenAI::Models::Realtime::ResponseMcpCallArgumentsDelta, OpenAI::Models::Realtime::ResponseMcpCallArgumentsDone, OpenAI::Models::Realtime::ResponseMcpCallInProgress, OpenAI::Models::Realtime::ResponseMcpCallCompleted, OpenAI::Models::Realtime::ResponseMcpCallFailed)]
|
366
|
+
end
|
367
|
+
end
|
368
|
+
end
|
369
|
+
end
|