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
@@ -304,7 +304,7 @@ module OpenAI
|
|
304
304
|
# An array of tools the model may call while generating a response. You can
|
305
305
|
# specify which tool to use by setting the `tool_choice` parameter.
|
306
306
|
#
|
307
|
-
#
|
307
|
+
# We support the following categories of tools:
|
308
308
|
#
|
309
309
|
# - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
|
310
310
|
# capabilities, like
|
@@ -312,6 +312,9 @@ module OpenAI
|
|
312
312
|
# [file search](https://platform.openai.com/docs/guides/tools-file-search).
|
313
313
|
# Learn more about
|
314
314
|
# [built-in tools](https://platform.openai.com/docs/guides/tools).
|
315
|
+
# - **MCP Tools**: Integrations with third-party systems via custom MCP servers or
|
316
|
+
# predefined connectors such as Google Drive and Notion. Learn more about
|
317
|
+
# [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).
|
315
318
|
# - **Function calls (custom tools)**: Functions that are defined by you, enabling
|
316
319
|
# the model to call your own code with strongly typed arguments and outputs.
|
317
320
|
# Learn more about
|
@@ -330,8 +333,8 @@ module OpenAI
|
|
330
333
|
OpenAI::Responses::Tool::ImageGeneration,
|
331
334
|
OpenAI::Responses::Tool::LocalShell,
|
332
335
|
OpenAI::Responses::CustomTool,
|
333
|
-
OpenAI::Responses::
|
334
|
-
OpenAI::Responses::
|
336
|
+
OpenAI::Responses::WebSearchTool,
|
337
|
+
OpenAI::Responses::WebSearchPreviewTool
|
335
338
|
)
|
336
339
|
]
|
337
340
|
)
|
@@ -352,8 +355,8 @@ module OpenAI
|
|
352
355
|
OpenAI::Responses::Tool::ImageGeneration::OrHash,
|
353
356
|
OpenAI::Responses::Tool::LocalShell::OrHash,
|
354
357
|
OpenAI::Responses::CustomTool::OrHash,
|
355
|
-
OpenAI::Responses::
|
356
|
-
OpenAI::Responses::
|
358
|
+
OpenAI::Responses::WebSearchTool::OrHash,
|
359
|
+
OpenAI::Responses::WebSearchPreviewTool::OrHash
|
357
360
|
)
|
358
361
|
]
|
359
362
|
).void
|
@@ -462,8 +465,8 @@ module OpenAI
|
|
462
465
|
OpenAI::Responses::Tool::ImageGeneration::OrHash,
|
463
466
|
OpenAI::Responses::Tool::LocalShell::OrHash,
|
464
467
|
OpenAI::Responses::CustomTool::OrHash,
|
465
|
-
OpenAI::Responses::
|
466
|
-
OpenAI::Responses::
|
468
|
+
OpenAI::Responses::WebSearchTool::OrHash,
|
469
|
+
OpenAI::Responses::WebSearchPreviewTool::OrHash
|
467
470
|
)
|
468
471
|
],
|
469
472
|
top_logprobs: T.nilable(Integer),
|
@@ -606,7 +609,7 @@ module OpenAI
|
|
606
609
|
# An array of tools the model may call while generating a response. You can
|
607
610
|
# specify which tool to use by setting the `tool_choice` parameter.
|
608
611
|
#
|
609
|
-
#
|
612
|
+
# We support the following categories of tools:
|
610
613
|
#
|
611
614
|
# - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
|
612
615
|
# capabilities, like
|
@@ -614,6 +617,9 @@ module OpenAI
|
|
614
617
|
# [file search](https://platform.openai.com/docs/guides/tools-file-search).
|
615
618
|
# Learn more about
|
616
619
|
# [built-in tools](https://platform.openai.com/docs/guides/tools).
|
620
|
+
# - **MCP Tools**: Integrations with third-party systems via custom MCP servers or
|
621
|
+
# predefined connectors such as Google Drive and Notion. Learn more about
|
622
|
+
# [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).
|
617
623
|
# - **Function calls (custom tools)**: Functions that are defined by you, enabling
|
618
624
|
# the model to call your own code with strongly typed arguments and outputs.
|
619
625
|
# Learn more about
|
@@ -707,8 +713,8 @@ module OpenAI
|
|
707
713
|
OpenAI::Responses::Tool::ImageGeneration,
|
708
714
|
OpenAI::Responses::Tool::LocalShell,
|
709
715
|
OpenAI::Responses::CustomTool,
|
710
|
-
OpenAI::Responses::
|
711
|
-
OpenAI::Responses::
|
716
|
+
OpenAI::Responses::WebSearchTool,
|
717
|
+
OpenAI::Responses::WebSearchPreviewTool
|
712
718
|
)
|
713
719
|
],
|
714
720
|
top_logprobs: T.nilable(Integer),
|
@@ -18,357 +18,11 @@ module OpenAI
|
|
18
18
|
OpenAI::Responses::Tool::ImageGeneration,
|
19
19
|
OpenAI::Responses::Tool::LocalShell,
|
20
20
|
OpenAI::Responses::CustomTool,
|
21
|
-
OpenAI::Responses::
|
22
|
-
OpenAI::Responses::
|
21
|
+
OpenAI::Responses::WebSearchTool,
|
22
|
+
OpenAI::Responses::WebSearchPreviewTool
|
23
23
|
)
|
24
24
|
end
|
25
25
|
|
26
|
-
class WebSearchTool < OpenAI::Internal::Type::BaseModel
|
27
|
-
OrHash =
|
28
|
-
T.type_alias do
|
29
|
-
T.any(
|
30
|
-
OpenAI::Responses::Tool::WebSearchTool,
|
31
|
-
OpenAI::Internal::AnyHash
|
32
|
-
)
|
33
|
-
end
|
34
|
-
|
35
|
-
# The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
|
36
|
-
sig do
|
37
|
-
returns(OpenAI::Responses::Tool::WebSearchTool::Type::OrSymbol)
|
38
|
-
end
|
39
|
-
attr_accessor :type
|
40
|
-
|
41
|
-
# Filters for the search.
|
42
|
-
sig do
|
43
|
-
returns(T.nilable(OpenAI::Responses::Tool::WebSearchTool::Filters))
|
44
|
-
end
|
45
|
-
attr_reader :filters
|
46
|
-
|
47
|
-
sig do
|
48
|
-
params(
|
49
|
-
filters:
|
50
|
-
T.nilable(
|
51
|
-
OpenAI::Responses::Tool::WebSearchTool::Filters::OrHash
|
52
|
-
)
|
53
|
-
).void
|
54
|
-
end
|
55
|
-
attr_writer :filters
|
56
|
-
|
57
|
-
# High level guidance for the amount of context window space to use for the
|
58
|
-
# search. One of `low`, `medium`, or `high`. `medium` is the default.
|
59
|
-
sig do
|
60
|
-
returns(
|
61
|
-
T.nilable(
|
62
|
-
OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::OrSymbol
|
63
|
-
)
|
64
|
-
)
|
65
|
-
end
|
66
|
-
attr_reader :search_context_size
|
67
|
-
|
68
|
-
sig do
|
69
|
-
params(
|
70
|
-
search_context_size:
|
71
|
-
OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::OrSymbol
|
72
|
-
).void
|
73
|
-
end
|
74
|
-
attr_writer :search_context_size
|
75
|
-
|
76
|
-
# The approximate location of the user.
|
77
|
-
sig do
|
78
|
-
returns(
|
79
|
-
T.nilable(OpenAI::Responses::Tool::WebSearchTool::UserLocation)
|
80
|
-
)
|
81
|
-
end
|
82
|
-
attr_reader :user_location
|
83
|
-
|
84
|
-
sig do
|
85
|
-
params(
|
86
|
-
user_location:
|
87
|
-
T.nilable(
|
88
|
-
OpenAI::Responses::Tool::WebSearchTool::UserLocation::OrHash
|
89
|
-
)
|
90
|
-
).void
|
91
|
-
end
|
92
|
-
attr_writer :user_location
|
93
|
-
|
94
|
-
# Search the Internet for sources related to the prompt. Learn more about the
|
95
|
-
# [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
|
96
|
-
sig do
|
97
|
-
params(
|
98
|
-
type: OpenAI::Responses::Tool::WebSearchTool::Type::OrSymbol,
|
99
|
-
filters:
|
100
|
-
T.nilable(
|
101
|
-
OpenAI::Responses::Tool::WebSearchTool::Filters::OrHash
|
102
|
-
),
|
103
|
-
search_context_size:
|
104
|
-
OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::OrSymbol,
|
105
|
-
user_location:
|
106
|
-
T.nilable(
|
107
|
-
OpenAI::Responses::Tool::WebSearchTool::UserLocation::OrHash
|
108
|
-
)
|
109
|
-
).returns(T.attached_class)
|
110
|
-
end
|
111
|
-
def self.new(
|
112
|
-
# The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
|
113
|
-
type:,
|
114
|
-
# Filters for the search.
|
115
|
-
filters: nil,
|
116
|
-
# High level guidance for the amount of context window space to use for the
|
117
|
-
# search. One of `low`, `medium`, or `high`. `medium` is the default.
|
118
|
-
search_context_size: nil,
|
119
|
-
# The approximate location of the user.
|
120
|
-
user_location: nil
|
121
|
-
)
|
122
|
-
end
|
123
|
-
|
124
|
-
sig do
|
125
|
-
override.returns(
|
126
|
-
{
|
127
|
-
type: OpenAI::Responses::Tool::WebSearchTool::Type::OrSymbol,
|
128
|
-
filters:
|
129
|
-
T.nilable(OpenAI::Responses::Tool::WebSearchTool::Filters),
|
130
|
-
search_context_size:
|
131
|
-
OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::OrSymbol,
|
132
|
-
user_location:
|
133
|
-
T.nilable(
|
134
|
-
OpenAI::Responses::Tool::WebSearchTool::UserLocation
|
135
|
-
)
|
136
|
-
}
|
137
|
-
)
|
138
|
-
end
|
139
|
-
def to_hash
|
140
|
-
end
|
141
|
-
|
142
|
-
# The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
|
143
|
-
module Type
|
144
|
-
extend OpenAI::Internal::Type::Enum
|
145
|
-
|
146
|
-
TaggedSymbol =
|
147
|
-
T.type_alias do
|
148
|
-
T.all(Symbol, OpenAI::Responses::Tool::WebSearchTool::Type)
|
149
|
-
end
|
150
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
151
|
-
|
152
|
-
WEB_SEARCH =
|
153
|
-
T.let(
|
154
|
-
:web_search,
|
155
|
-
OpenAI::Responses::Tool::WebSearchTool::Type::TaggedSymbol
|
156
|
-
)
|
157
|
-
WEB_SEARCH_2025_08_26 =
|
158
|
-
T.let(
|
159
|
-
:web_search_2025_08_26,
|
160
|
-
OpenAI::Responses::Tool::WebSearchTool::Type::TaggedSymbol
|
161
|
-
)
|
162
|
-
|
163
|
-
sig do
|
164
|
-
override.returns(
|
165
|
-
T::Array[
|
166
|
-
OpenAI::Responses::Tool::WebSearchTool::Type::TaggedSymbol
|
167
|
-
]
|
168
|
-
)
|
169
|
-
end
|
170
|
-
def self.values
|
171
|
-
end
|
172
|
-
end
|
173
|
-
|
174
|
-
class Filters < OpenAI::Internal::Type::BaseModel
|
175
|
-
OrHash =
|
176
|
-
T.type_alias do
|
177
|
-
T.any(
|
178
|
-
OpenAI::Responses::Tool::WebSearchTool::Filters,
|
179
|
-
OpenAI::Internal::AnyHash
|
180
|
-
)
|
181
|
-
end
|
182
|
-
|
183
|
-
# Allowed domains for the search. If not provided, all domains are allowed.
|
184
|
-
# Subdomains of the provided domains are allowed as well.
|
185
|
-
#
|
186
|
-
# Example: `["pubmed.ncbi.nlm.nih.gov"]`
|
187
|
-
sig { returns(T.nilable(T::Array[String])) }
|
188
|
-
attr_accessor :allowed_domains
|
189
|
-
|
190
|
-
# Filters for the search.
|
191
|
-
sig do
|
192
|
-
params(allowed_domains: T.nilable(T::Array[String])).returns(
|
193
|
-
T.attached_class
|
194
|
-
)
|
195
|
-
end
|
196
|
-
def self.new(
|
197
|
-
# Allowed domains for the search. If not provided, all domains are allowed.
|
198
|
-
# Subdomains of the provided domains are allowed as well.
|
199
|
-
#
|
200
|
-
# Example: `["pubmed.ncbi.nlm.nih.gov"]`
|
201
|
-
allowed_domains: nil
|
202
|
-
)
|
203
|
-
end
|
204
|
-
|
205
|
-
sig do
|
206
|
-
override.returns({ allowed_domains: T.nilable(T::Array[String]) })
|
207
|
-
end
|
208
|
-
def to_hash
|
209
|
-
end
|
210
|
-
end
|
211
|
-
|
212
|
-
# High level guidance for the amount of context window space to use for the
|
213
|
-
# search. One of `low`, `medium`, or `high`. `medium` is the default.
|
214
|
-
module SearchContextSize
|
215
|
-
extend OpenAI::Internal::Type::Enum
|
216
|
-
|
217
|
-
TaggedSymbol =
|
218
|
-
T.type_alias do
|
219
|
-
T.all(
|
220
|
-
Symbol,
|
221
|
-
OpenAI::Responses::Tool::WebSearchTool::SearchContextSize
|
222
|
-
)
|
223
|
-
end
|
224
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
225
|
-
|
226
|
-
LOW =
|
227
|
-
T.let(
|
228
|
-
:low,
|
229
|
-
OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::TaggedSymbol
|
230
|
-
)
|
231
|
-
MEDIUM =
|
232
|
-
T.let(
|
233
|
-
:medium,
|
234
|
-
OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::TaggedSymbol
|
235
|
-
)
|
236
|
-
HIGH =
|
237
|
-
T.let(
|
238
|
-
:high,
|
239
|
-
OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::TaggedSymbol
|
240
|
-
)
|
241
|
-
|
242
|
-
sig do
|
243
|
-
override.returns(
|
244
|
-
T::Array[
|
245
|
-
OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::TaggedSymbol
|
246
|
-
]
|
247
|
-
)
|
248
|
-
end
|
249
|
-
def self.values
|
250
|
-
end
|
251
|
-
end
|
252
|
-
|
253
|
-
class UserLocation < OpenAI::Internal::Type::BaseModel
|
254
|
-
OrHash =
|
255
|
-
T.type_alias do
|
256
|
-
T.any(
|
257
|
-
OpenAI::Responses::Tool::WebSearchTool::UserLocation,
|
258
|
-
OpenAI::Internal::AnyHash
|
259
|
-
)
|
260
|
-
end
|
261
|
-
|
262
|
-
# Free text input for the city of the user, e.g. `San Francisco`.
|
263
|
-
sig { returns(T.nilable(String)) }
|
264
|
-
attr_accessor :city
|
265
|
-
|
266
|
-
# The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of
|
267
|
-
# the user, e.g. `US`.
|
268
|
-
sig { returns(T.nilable(String)) }
|
269
|
-
attr_accessor :country
|
270
|
-
|
271
|
-
# Free text input for the region of the user, e.g. `California`.
|
272
|
-
sig { returns(T.nilable(String)) }
|
273
|
-
attr_accessor :region
|
274
|
-
|
275
|
-
# The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the
|
276
|
-
# user, e.g. `America/Los_Angeles`.
|
277
|
-
sig { returns(T.nilable(String)) }
|
278
|
-
attr_accessor :timezone
|
279
|
-
|
280
|
-
# The type of location approximation. Always `approximate`.
|
281
|
-
sig do
|
282
|
-
returns(
|
283
|
-
T.nilable(
|
284
|
-
OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type::OrSymbol
|
285
|
-
)
|
286
|
-
)
|
287
|
-
end
|
288
|
-
attr_reader :type
|
289
|
-
|
290
|
-
sig do
|
291
|
-
params(
|
292
|
-
type:
|
293
|
-
OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type::OrSymbol
|
294
|
-
).void
|
295
|
-
end
|
296
|
-
attr_writer :type
|
297
|
-
|
298
|
-
# The approximate location of the user.
|
299
|
-
sig do
|
300
|
-
params(
|
301
|
-
city: T.nilable(String),
|
302
|
-
country: T.nilable(String),
|
303
|
-
region: T.nilable(String),
|
304
|
-
timezone: T.nilable(String),
|
305
|
-
type:
|
306
|
-
OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type::OrSymbol
|
307
|
-
).returns(T.attached_class)
|
308
|
-
end
|
309
|
-
def self.new(
|
310
|
-
# Free text input for the city of the user, e.g. `San Francisco`.
|
311
|
-
city: nil,
|
312
|
-
# The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of
|
313
|
-
# the user, e.g. `US`.
|
314
|
-
country: nil,
|
315
|
-
# Free text input for the region of the user, e.g. `California`.
|
316
|
-
region: nil,
|
317
|
-
# The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the
|
318
|
-
# user, e.g. `America/Los_Angeles`.
|
319
|
-
timezone: nil,
|
320
|
-
# The type of location approximation. Always `approximate`.
|
321
|
-
type: nil
|
322
|
-
)
|
323
|
-
end
|
324
|
-
|
325
|
-
sig do
|
326
|
-
override.returns(
|
327
|
-
{
|
328
|
-
city: T.nilable(String),
|
329
|
-
country: T.nilable(String),
|
330
|
-
region: T.nilable(String),
|
331
|
-
timezone: T.nilable(String),
|
332
|
-
type:
|
333
|
-
OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type::OrSymbol
|
334
|
-
}
|
335
|
-
)
|
336
|
-
end
|
337
|
-
def to_hash
|
338
|
-
end
|
339
|
-
|
340
|
-
# The type of location approximation. Always `approximate`.
|
341
|
-
module Type
|
342
|
-
extend OpenAI::Internal::Type::Enum
|
343
|
-
|
344
|
-
TaggedSymbol =
|
345
|
-
T.type_alias do
|
346
|
-
T.all(
|
347
|
-
Symbol,
|
348
|
-
OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type
|
349
|
-
)
|
350
|
-
end
|
351
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
352
|
-
|
353
|
-
APPROXIMATE =
|
354
|
-
T.let(
|
355
|
-
:approximate,
|
356
|
-
OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type::TaggedSymbol
|
357
|
-
)
|
358
|
-
|
359
|
-
sig do
|
360
|
-
override.returns(
|
361
|
-
T::Array[
|
362
|
-
OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type::TaggedSymbol
|
363
|
-
]
|
364
|
-
)
|
365
|
-
end
|
366
|
-
def self.values
|
367
|
-
end
|
368
|
-
end
|
369
|
-
end
|
370
|
-
end
|
371
|
-
|
372
26
|
class Mcp < OpenAI::Internal::Type::BaseModel
|
373
27
|
OrHash =
|
374
28
|
T.type_alias do
|
@@ -0,0 +1,245 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Responses
|
6
|
+
class WebSearchPreviewTool < OpenAI::Internal::Type::BaseModel
|
7
|
+
OrHash =
|
8
|
+
T.type_alias do
|
9
|
+
T.any(
|
10
|
+
OpenAI::Responses::WebSearchPreviewTool,
|
11
|
+
OpenAI::Internal::AnyHash
|
12
|
+
)
|
13
|
+
end
|
14
|
+
|
15
|
+
# The type of the web search tool. One of `web_search_preview` or
|
16
|
+
# `web_search_preview_2025_03_11`.
|
17
|
+
sig { returns(OpenAI::Responses::WebSearchPreviewTool::Type::OrSymbol) }
|
18
|
+
attr_accessor :type
|
19
|
+
|
20
|
+
# High level guidance for the amount of context window space to use for the
|
21
|
+
# search. One of `low`, `medium`, or `high`. `medium` is the default.
|
22
|
+
sig do
|
23
|
+
returns(
|
24
|
+
T.nilable(
|
25
|
+
OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::OrSymbol
|
26
|
+
)
|
27
|
+
)
|
28
|
+
end
|
29
|
+
attr_reader :search_context_size
|
30
|
+
|
31
|
+
sig do
|
32
|
+
params(
|
33
|
+
search_context_size:
|
34
|
+
OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::OrSymbol
|
35
|
+
).void
|
36
|
+
end
|
37
|
+
attr_writer :search_context_size
|
38
|
+
|
39
|
+
# The user's location.
|
40
|
+
sig do
|
41
|
+
returns(
|
42
|
+
T.nilable(OpenAI::Responses::WebSearchPreviewTool::UserLocation)
|
43
|
+
)
|
44
|
+
end
|
45
|
+
attr_reader :user_location
|
46
|
+
|
47
|
+
sig do
|
48
|
+
params(
|
49
|
+
user_location:
|
50
|
+
T.nilable(
|
51
|
+
OpenAI::Responses::WebSearchPreviewTool::UserLocation::OrHash
|
52
|
+
)
|
53
|
+
).void
|
54
|
+
end
|
55
|
+
attr_writer :user_location
|
56
|
+
|
57
|
+
# This tool searches the web for relevant results to use in a response. Learn more
|
58
|
+
# about the
|
59
|
+
# [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
|
60
|
+
sig do
|
61
|
+
params(
|
62
|
+
type: OpenAI::Responses::WebSearchPreviewTool::Type::OrSymbol,
|
63
|
+
search_context_size:
|
64
|
+
OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::OrSymbol,
|
65
|
+
user_location:
|
66
|
+
T.nilable(
|
67
|
+
OpenAI::Responses::WebSearchPreviewTool::UserLocation::OrHash
|
68
|
+
)
|
69
|
+
).returns(T.attached_class)
|
70
|
+
end
|
71
|
+
def self.new(
|
72
|
+
# The type of the web search tool. One of `web_search_preview` or
|
73
|
+
# `web_search_preview_2025_03_11`.
|
74
|
+
type:,
|
75
|
+
# High level guidance for the amount of context window space to use for the
|
76
|
+
# search. One of `low`, `medium`, or `high`. `medium` is the default.
|
77
|
+
search_context_size: nil,
|
78
|
+
# The user's location.
|
79
|
+
user_location: nil
|
80
|
+
)
|
81
|
+
end
|
82
|
+
|
83
|
+
sig do
|
84
|
+
override.returns(
|
85
|
+
{
|
86
|
+
type: OpenAI::Responses::WebSearchPreviewTool::Type::OrSymbol,
|
87
|
+
search_context_size:
|
88
|
+
OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::OrSymbol,
|
89
|
+
user_location:
|
90
|
+
T.nilable(OpenAI::Responses::WebSearchPreviewTool::UserLocation)
|
91
|
+
}
|
92
|
+
)
|
93
|
+
end
|
94
|
+
def to_hash
|
95
|
+
end
|
96
|
+
|
97
|
+
# The type of the web search tool. One of `web_search_preview` or
|
98
|
+
# `web_search_preview_2025_03_11`.
|
99
|
+
module Type
|
100
|
+
extend OpenAI::Internal::Type::Enum
|
101
|
+
|
102
|
+
TaggedSymbol =
|
103
|
+
T.type_alias do
|
104
|
+
T.all(Symbol, OpenAI::Responses::WebSearchPreviewTool::Type)
|
105
|
+
end
|
106
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
107
|
+
|
108
|
+
WEB_SEARCH_PREVIEW =
|
109
|
+
T.let(
|
110
|
+
:web_search_preview,
|
111
|
+
OpenAI::Responses::WebSearchPreviewTool::Type::TaggedSymbol
|
112
|
+
)
|
113
|
+
WEB_SEARCH_PREVIEW_2025_03_11 =
|
114
|
+
T.let(
|
115
|
+
:web_search_preview_2025_03_11,
|
116
|
+
OpenAI::Responses::WebSearchPreviewTool::Type::TaggedSymbol
|
117
|
+
)
|
118
|
+
|
119
|
+
sig do
|
120
|
+
override.returns(
|
121
|
+
T::Array[
|
122
|
+
OpenAI::Responses::WebSearchPreviewTool::Type::TaggedSymbol
|
123
|
+
]
|
124
|
+
)
|
125
|
+
end
|
126
|
+
def self.values
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# High level guidance for the amount of context window space to use for the
|
131
|
+
# search. One of `low`, `medium`, or `high`. `medium` is the default.
|
132
|
+
module SearchContextSize
|
133
|
+
extend OpenAI::Internal::Type::Enum
|
134
|
+
|
135
|
+
TaggedSymbol =
|
136
|
+
T.type_alias do
|
137
|
+
T.all(
|
138
|
+
Symbol,
|
139
|
+
OpenAI::Responses::WebSearchPreviewTool::SearchContextSize
|
140
|
+
)
|
141
|
+
end
|
142
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
143
|
+
|
144
|
+
LOW =
|
145
|
+
T.let(
|
146
|
+
:low,
|
147
|
+
OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::TaggedSymbol
|
148
|
+
)
|
149
|
+
MEDIUM =
|
150
|
+
T.let(
|
151
|
+
:medium,
|
152
|
+
OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::TaggedSymbol
|
153
|
+
)
|
154
|
+
HIGH =
|
155
|
+
T.let(
|
156
|
+
:high,
|
157
|
+
OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::TaggedSymbol
|
158
|
+
)
|
159
|
+
|
160
|
+
sig do
|
161
|
+
override.returns(
|
162
|
+
T::Array[
|
163
|
+
OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::TaggedSymbol
|
164
|
+
]
|
165
|
+
)
|
166
|
+
end
|
167
|
+
def self.values
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
class UserLocation < OpenAI::Internal::Type::BaseModel
|
172
|
+
OrHash =
|
173
|
+
T.type_alias do
|
174
|
+
T.any(
|
175
|
+
OpenAI::Responses::WebSearchPreviewTool::UserLocation,
|
176
|
+
OpenAI::Internal::AnyHash
|
177
|
+
)
|
178
|
+
end
|
179
|
+
|
180
|
+
# The type of location approximation. Always `approximate`.
|
181
|
+
sig { returns(Symbol) }
|
182
|
+
attr_accessor :type
|
183
|
+
|
184
|
+
# Free text input for the city of the user, e.g. `San Francisco`.
|
185
|
+
sig { returns(T.nilable(String)) }
|
186
|
+
attr_accessor :city
|
187
|
+
|
188
|
+
# The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of
|
189
|
+
# the user, e.g. `US`.
|
190
|
+
sig { returns(T.nilable(String)) }
|
191
|
+
attr_accessor :country
|
192
|
+
|
193
|
+
# Free text input for the region of the user, e.g. `California`.
|
194
|
+
sig { returns(T.nilable(String)) }
|
195
|
+
attr_accessor :region
|
196
|
+
|
197
|
+
# The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the
|
198
|
+
# user, e.g. `America/Los_Angeles`.
|
199
|
+
sig { returns(T.nilable(String)) }
|
200
|
+
attr_accessor :timezone
|
201
|
+
|
202
|
+
# The user's location.
|
203
|
+
sig do
|
204
|
+
params(
|
205
|
+
city: T.nilable(String),
|
206
|
+
country: T.nilable(String),
|
207
|
+
region: T.nilable(String),
|
208
|
+
timezone: T.nilable(String),
|
209
|
+
type: Symbol
|
210
|
+
).returns(T.attached_class)
|
211
|
+
end
|
212
|
+
def self.new(
|
213
|
+
# Free text input for the city of the user, e.g. `San Francisco`.
|
214
|
+
city: nil,
|
215
|
+
# The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of
|
216
|
+
# the user, e.g. `US`.
|
217
|
+
country: nil,
|
218
|
+
# Free text input for the region of the user, e.g. `California`.
|
219
|
+
region: nil,
|
220
|
+
# The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the
|
221
|
+
# user, e.g. `America/Los_Angeles`.
|
222
|
+
timezone: nil,
|
223
|
+
# The type of location approximation. Always `approximate`.
|
224
|
+
type: :approximate
|
225
|
+
)
|
226
|
+
end
|
227
|
+
|
228
|
+
sig do
|
229
|
+
override.returns(
|
230
|
+
{
|
231
|
+
type: Symbol,
|
232
|
+
city: T.nilable(String),
|
233
|
+
country: T.nilable(String),
|
234
|
+
region: T.nilable(String),
|
235
|
+
timezone: T.nilable(String)
|
236
|
+
}
|
237
|
+
)
|
238
|
+
end
|
239
|
+
def to_hash
|
240
|
+
end
|
241
|
+
end
|
242
|
+
end
|
243
|
+
end
|
244
|
+
end
|
245
|
+
end
|