openai 0.86.0 → 0.88.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 +16 -0
- data/README.md +10 -1
- data/examples/audio/record_and_play.rb +19 -0
- data/examples/responses/websocket_workflows.rb +159 -0
- data/lib/openai/helpers/local_audio/errors.rb +27 -0
- data/lib/openai/helpers/local_audio/process.rb +158 -0
- data/lib/openai/helpers/local_audio.rb +157 -0
- data/lib/openai/helpers/realtime/connection.rb +20 -2
- data/lib/openai/helpers/realtime/errors.rb +18 -0
- data/lib/openai/helpers/realtime/recovery.rb +489 -0
- data/lib/openai/helpers/realtime/resources/realtime_extension.rb +26 -1
- data/lib/openai/helpers/realtime.rb +1 -0
- data/lib/openai/models/admin/organization/admin_api_key.rb +26 -13
- data/lib/openai/models/admin/organization/admin_api_key_create_params.rb +3 -4
- data/lib/openai/models/admin/organization/admin_api_key_create_response.rb +16 -8
- data/lib/openai/models/admin/organization/admin_api_key_delete_params.rb +2 -1
- data/lib/openai/models/admin/organization/admin_api_key_list_params.rb +6 -3
- data/lib/openai/models/admin/organization/admin_api_key_retrieve_params.rb +2 -1
- data/lib/openai/models/admin/organization/audit_log_list_params.rb +47 -22
- data/lib/openai/models/admin/organization/audit_log_list_response.rb +486 -254
- data/lib/openai/models/admin/organization/certificate.rb +24 -11
- data/lib/openai/models/admin/organization/certificate_activate_response.rb +14 -7
- data/lib/openai/models/admin/organization/certificate_create_params.rb +4 -2
- data/lib/openai/models/admin/organization/certificate_deactivate_response.rb +14 -7
- data/lib/openai/models/admin/organization/certificate_delete_response.rb +4 -2
- data/lib/openai/models/admin/organization/certificate_list_params.rb +11 -6
- data/lib/openai/models/admin/organization/certificate_list_response.rb +14 -7
- data/lib/openai/models/admin/organization/certificate_retrieve_params.rb +3 -5
- data/lib/openai/models/admin/organization/certificate_update_params.rb +2 -1
- data/lib/openai/models/admin/organization/data_retention_update_params.rb +2 -1
- data/lib/openai/models/admin/organization/group.rb +11 -8
- data/lib/openai/models/admin/organization/group_create_params.rb +2 -1
- data/lib/openai/models/admin/organization/group_delete_response.rb +6 -3
- data/lib/openai/models/admin/organization/group_list_params.rb +10 -6
- data/lib/openai/models/admin/organization/group_update_params.rb +2 -1
- data/lib/openai/models/admin/organization/group_update_response.rb +9 -7
- data/lib/openai/models/admin/organization/groups/organization_group_user.rb +6 -3
- data/lib/openai/models/admin/organization/groups/role_create_params.rb +2 -1
- data/lib/openai/models/admin/organization/groups/role_create_response.rb +16 -8
- data/lib/openai/models/admin/organization/groups/role_delete_response.rb +5 -6
- data/lib/openai/models/admin/organization/groups/role_list_params.rb +7 -6
- data/lib/openai/models/admin/organization/groups/role_list_response.rb +24 -13
- data/lib/openai/models/admin/organization/groups/role_retrieve_response.rb +24 -13
- data/lib/openai/models/admin/organization/groups/user_create_params.rb +2 -1
- data/lib/openai/models/admin/organization/groups/user_create_response.rb +6 -3
- data/lib/openai/models/admin/organization/groups/user_delete_response.rb +4 -2
- data/lib/openai/models/admin/organization/groups/user_list_params.rb +8 -6
- data/lib/openai/models/admin/organization/groups/user_retrieve_response.rb +12 -6
- data/lib/openai/models/admin/organization/invite.rb +22 -12
- data/lib/openai/models/admin/organization/invite_create_params.rb +13 -8
- data/lib/openai/models/admin/organization/invite_delete_response.rb +2 -1
- data/lib/openai/models/admin/organization/invite_list_params.rb +8 -5
- data/lib/openai/models/admin/organization/organization_data_retention.rb +4 -2
- data/lib/openai/models/admin/organization/organization_spend_alert.rb +18 -9
- data/lib/openai/models/admin/organization/organization_spend_alert_deleted.rb +6 -3
- data/lib/openai/models/admin/organization/organization_spend_limit.rb +13 -9
- data/lib/openai/models/admin/organization/organization_spend_limit_deleted.rb +4 -2
- data/lib/openai/models/admin/organization/organization_user.rb +32 -16
- data/lib/openai/models/admin/organization/project.rb +16 -8
- data/lib/openai/models/admin/organization/project_create_params.rb +18 -9
- data/lib/openai/models/admin/organization/project_list_params.rb +11 -6
- data/lib/openai/models/admin/organization/project_update_params.rb +7 -6
- data/lib/openai/models/admin/organization/projects/api_key_list_params.rb +14 -7
- data/lib/openai/models/admin/organization/projects/certificate_activate_response.rb +14 -7
- data/lib/openai/models/admin/organization/projects/certificate_deactivate_response.rb +14 -7
- data/lib/openai/models/admin/organization/projects/certificate_list_params.rb +11 -7
- data/lib/openai/models/admin/organization/projects/certificate_list_response.rb +14 -7
- data/lib/openai/models/admin/organization/projects/data_retention_update_params.rb +2 -1
- data/lib/openai/models/admin/organization/projects/group_create_params.rb +4 -2
- data/lib/openai/models/admin/organization/projects/group_delete_response.rb +4 -2
- data/lib/openai/models/admin/organization/projects/group_list_params.rb +7 -7
- data/lib/openai/models/admin/organization/projects/group_retrieve_params.rb +2 -1
- data/lib/openai/models/admin/organization/projects/groups/role_create_params.rb +2 -1
- data/lib/openai/models/admin/organization/projects/groups/role_create_response.rb +16 -8
- data/lib/openai/models/admin/organization/projects/groups/role_delete_response.rb +5 -6
- data/lib/openai/models/admin/organization/projects/groups/role_list_params.rb +7 -7
- data/lib/openai/models/admin/organization/projects/groups/role_list_response.rb +24 -13
- data/lib/openai/models/admin/organization/projects/groups/role_retrieve_response.rb +24 -13
- data/lib/openai/models/admin/organization/projects/hosted_tool_permission_update_params.rb +20 -10
- data/lib/openai/models/admin/organization/projects/model_permission_update_params.rb +4 -2
- data/lib/openai/models/admin/organization/projects/project_api_key.rb +50 -20
- data/lib/openai/models/admin/organization/projects/project_data_retention.rb +4 -2
- data/lib/openai/models/admin/organization/projects/project_group.rb +12 -6
- data/lib/openai/models/admin/organization/projects/project_hosted_tool_permissions.rb +20 -10
- data/lib/openai/models/admin/organization/projects/project_model_permissions.rb +6 -3
- data/lib/openai/models/admin/organization/projects/project_model_permissions_deleted.rb +4 -2
- data/lib/openai/models/admin/organization/projects/project_rate_limit.rb +18 -9
- data/lib/openai/models/admin/organization/projects/project_service_account.rb +10 -5
- data/lib/openai/models/admin/organization/projects/project_spend_alert.rb +18 -9
- data/lib/openai/models/admin/organization/projects/project_spend_alert_deleted.rb +6 -3
- data/lib/openai/models/admin/organization/projects/project_spend_limit.rb +13 -10
- data/lib/openai/models/admin/organization/projects/project_spend_limit_deleted.rb +4 -2
- data/lib/openai/models/admin/organization/projects/project_user.rb +12 -6
- data/lib/openai/models/admin/organization/projects/rate_limit_list_rate_limits_params.rb +12 -7
- data/lib/openai/models/admin/organization/projects/rate_limit_update_rate_limit_params.rb +12 -6
- data/lib/openai/models/admin/organization/projects/role_create_params.rb +6 -3
- data/lib/openai/models/admin/organization/projects/role_delete_response.rb +6 -3
- data/lib/openai/models/admin/organization/projects/role_list_params.rb +7 -7
- data/lib/openai/models/admin/organization/projects/role_update_params.rb +6 -3
- data/lib/openai/models/admin/organization/projects/service_account_create_params.rb +22 -3
- data/lib/openai/models/admin/organization/projects/service_account_create_response.rb +17 -7
- data/lib/openai/models/admin/organization/projects/service_account_list_params.rb +8 -6
- data/lib/openai/models/admin/organization/projects/service_account_update_params.rb +4 -2
- data/lib/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rb +10 -5
- data/lib/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rb +13 -10
- data/lib/openai/models/admin/organization/projects/spend_alert_create_params.rb +14 -7
- data/lib/openai/models/admin/organization/projects/spend_alert_list_params.rb +10 -8
- data/lib/openai/models/admin/organization/projects/spend_alert_update_params.rb +14 -7
- data/lib/openai/models/admin/organization/projects/spend_limit_update_params.rb +7 -7
- data/lib/openai/models/admin/organization/projects/user_create_params.rb +6 -3
- data/lib/openai/models/admin/organization/projects/user_list_params.rb +8 -6
- data/lib/openai/models/admin/organization/projects/user_update_params.rb +2 -1
- data/lib/openai/models/admin/organization/projects/users/role_create_params.rb +2 -1
- data/lib/openai/models/admin/organization/projects/users/role_create_response.rb +6 -3
- data/lib/openai/models/admin/organization/projects/users/role_delete_response.rb +5 -6
- data/lib/openai/models/admin/organization/projects/users/role_list_params.rb +7 -7
- data/lib/openai/models/admin/organization/projects/users/role_list_response.rb +24 -13
- data/lib/openai/models/admin/organization/projects/users/role_retrieve_response.rb +24 -13
- data/lib/openai/models/admin/organization/role.rb +15 -10
- data/lib/openai/models/admin/organization/role_create_params.rb +6 -3
- data/lib/openai/models/admin/organization/role_delete_response.rb +6 -3
- data/lib/openai/models/admin/organization/role_list_params.rb +7 -6
- data/lib/openai/models/admin/organization/role_update_params.rb +6 -3
- data/lib/openai/models/admin/organization/spend_alert_create_params.rb +14 -7
- data/lib/openai/models/admin/organization/spend_alert_list_params.rb +10 -7
- data/lib/openai/models/admin/organization/spend_alert_update_params.rb +14 -7
- data/lib/openai/models/admin/organization/spend_limit_update_params.rb +7 -6
- data/lib/openai/models/admin/organization/usage_audio_speeches_params.rb +26 -13
- data/lib/openai/models/admin/organization/usage_audio_speeches_response.rb +205 -121
- data/lib/openai/models/admin/organization/usage_audio_transcriptions_params.rb +26 -13
- data/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb +205 -121
- data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_params.rb +20 -10
- data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb +205 -121
- data/lib/openai/models/admin/organization/usage_completions_params.rb +30 -13
- data/lib/openai/models/admin/organization/usage_completions_response.rb +205 -121
- data/lib/openai/models/admin/organization/usage_costs_params.rb +23 -12
- data/lib/openai/models/admin/organization/usage_costs_response.rb +205 -121
- data/lib/openai/models/admin/organization/usage_embeddings_params.rb +26 -12
- data/lib/openai/models/admin/organization/usage_embeddings_response.rb +205 -121
- data/lib/openai/models/admin/organization/usage_file_search_calls_params.rb +27 -13
- data/lib/openai/models/admin/organization/usage_file_search_calls_response.rb +205 -121
- data/lib/openai/models/admin/organization/usage_images_params.rb +33 -14
- data/lib/openai/models/admin/organization/usage_images_response.rb +205 -121
- data/lib/openai/models/admin/organization/usage_moderations_params.rb +26 -12
- data/lib/openai/models/admin/organization/usage_moderations_response.rb +205 -121
- data/lib/openai/models/admin/organization/usage_vector_stores_params.rb +20 -9
- data/lib/openai/models/admin/organization/usage_vector_stores_response.rb +205 -121
- data/lib/openai/models/admin/organization/usage_web_search_calls_params.rb +29 -14
- data/lib/openai/models/admin/organization/usage_web_search_calls_response.rb +205 -121
- data/lib/openai/models/admin/organization/user_list_params.rb +10 -6
- data/lib/openai/models/admin/organization/user_update_params.rb +8 -4
- data/lib/openai/models/admin/organization/users/role_create_params.rb +2 -1
- data/lib/openai/models/admin/organization/users/role_create_response.rb +6 -3
- data/lib/openai/models/admin/organization/users/role_delete_response.rb +5 -6
- data/lib/openai/models/admin/organization/users/role_list_params.rb +7 -6
- data/lib/openai/models/admin/organization/users/role_list_response.rb +24 -13
- data/lib/openai/models/admin/organization/users/role_retrieve_response.rb +24 -13
- data/lib/openai/models/audio/speech_create_params.rb +34 -16
- data/lib/openai/models/audio/transcription.rb +35 -20
- data/lib/openai/models/audio/transcription_create_params.rb +86 -24
- data/lib/openai/models/audio/transcription_diarized.rb +28 -14
- data/lib/openai/models/audio/transcription_diarized_segment.rb +14 -9
- data/lib/openai/models/audio/transcription_language.rb +2 -1
- data/lib/openai/models/audio/transcription_segment.rb +23 -13
- data/lib/openai/models/audio/transcription_stream_event.rb +4 -4
- data/lib/openai/models/audio/transcription_text_delta_event.rb +19 -16
- data/lib/openai/models/audio/transcription_text_done_event.rb +36 -24
- data/lib/openai/models/audio/transcription_text_segment_event.rb +13 -7
- data/lib/openai/models/audio/transcription_verbose.rb +16 -8
- data/lib/openai/models/audio/transcription_word.rb +6 -3
- data/lib/openai/models/audio/translation_create_params.rb +26 -8
- data/lib/openai/models/audio/translation_verbose.rb +8 -4
- data/lib/openai/models/auto_file_chunking_strategy_param.rb +2 -1
- data/lib/openai/models/batch.rb +55 -26
- data/lib/openai/models/batch_create_params.rb +40 -14
- data/lib/openai/models/batch_error.rb +8 -4
- data/lib/openai/models/batch_list_params.rb +8 -5
- data/lib/openai/models/batch_request_counts.rb +6 -3
- data/lib/openai/models/batch_usage.rb +16 -11
- data/lib/openai/models/beta/assistant.rb +99 -49
- data/lib/openai/models/beta/assistant_create_params.rb +127 -61
- data/lib/openai/models/beta/assistant_list_params.rb +16 -7
- data/lib/openai/models/beta/assistant_response_format_option.rb +5 -5
- data/lib/openai/models/beta/assistant_stream_event.rb +137 -185
- data/lib/openai/models/beta/assistant_tool_choice.rb +2 -1
- data/lib/openai/models/beta/assistant_tool_choice_function.rb +2 -1
- data/lib/openai/models/beta/assistant_update_params.rb +94 -41
- data/lib/openai/models/beta/beta_apply_patch_tool.rb +4 -3
- data/lib/openai/models/beta/beta_compacted_response.rb +12 -8
- data/lib/openai/models/beta/beta_computer_action.rb +78 -58
- data/lib/openai/models/beta/beta_computer_tool.rb +3 -2
- data/lib/openai/models/beta/beta_computer_use_preview_tool.rb +9 -5
- data/lib/openai/models/beta/beta_container_auto.rb +10 -5
- data/lib/openai/models/beta/beta_container_network_policy_allowlist.rb +6 -3
- data/lib/openai/models/beta/beta_container_network_policy_disabled.rb +2 -1
- data/lib/openai/models/beta/beta_container_network_policy_domain_secret.rb +6 -3
- data/lib/openai/models/beta/beta_container_reference.rb +4 -2
- data/lib/openai/models/beta/beta_custom_tool.rb +24 -16
- data/lib/openai/models/beta/beta_easy_input_message.rb +13 -7
- data/lib/openai/models/beta/beta_file_search_tool.rb +64 -37
- data/lib/openai/models/beta/beta_function_shell_tool.rb +4 -3
- data/lib/openai/models/beta/beta_function_tool.rb +19 -13
- data/lib/openai/models/beta/beta_inline_skill.rb +8 -4
- data/lib/openai/models/beta/beta_inline_skill_source.rb +6 -3
- data/lib/openai/models/beta/beta_local_environment.rb +4 -2
- data/lib/openai/models/beta/beta_local_skill.rb +6 -3
- data/lib/openai/models/beta/beta_namespace_tool.rb +23 -13
- data/lib/openai/models/beta/beta_response.rb +372 -165
- data/lib/openai/models/beta/beta_response_apply_patch_tool_call.rb +38 -21
- data/lib/openai/models/beta/beta_response_apply_patch_tool_call_output.rb +21 -13
- data/lib/openai/models/beta/beta_response_audio_delta_event.rb +10 -8
- data/lib/openai/models/beta/beta_response_audio_done_event.rb +8 -7
- data/lib/openai/models/beta/beta_response_audio_transcript_delta_event.rb +10 -8
- data/lib/openai/models/beta/beta_response_audio_transcript_done_event.rb +8 -7
- data/lib/openai/models/beta/beta_response_code_interpreter_call_code_delta_event.rb +15 -11
- data/lib/openai/models/beta/beta_response_code_interpreter_call_code_done_event.rb +14 -7
- data/lib/openai/models/beta/beta_response_code_interpreter_call_completed_event.rb +13 -10
- data/lib/openai/models/beta/beta_response_code_interpreter_call_in_progress_event.rb +13 -10
- data/lib/openai/models/beta/beta_response_code_interpreter_call_interpreting_event.rb +13 -10
- data/lib/openai/models/beta/beta_response_code_interpreter_tool_call.rb +26 -15
- data/lib/openai/models/beta/beta_response_compaction_item.rb +13 -7
- data/lib/openai/models/beta/beta_response_compaction_item_param.rb +11 -6
- data/lib/openai/models/beta/beta_response_completed_event.rb +10 -8
- data/lib/openai/models/beta/beta_response_computer_tool_call.rb +27 -17
- data/lib/openai/models/beta/beta_response_computer_tool_call_output_item.rb +26 -15
- data/lib/openai/models/beta/beta_response_computer_tool_call_output_screenshot.rb +7 -7
- data/lib/openai/models/beta/beta_response_configuration_update_item.rb +13 -10
- data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +13 -10
- data/lib/openai/models/beta/beta_response_container_reference.rb +2 -1
- data/lib/openai/models/beta/beta_response_content.rb +5 -3
- data/lib/openai/models/beta/beta_response_content_part_added_event.rb +20 -13
- data/lib/openai/models/beta/beta_response_content_part_done_event.rb +20 -13
- data/lib/openai/models/beta/beta_response_conversation_param.rb +2 -1
- data/lib/openai/models/beta/beta_response_created_event.rb +10 -8
- data/lib/openai/models/beta/beta_response_custom_tool_call.rb +22 -14
- data/lib/openai/models/beta/beta_response_custom_tool_call_input_delta_event.rb +14 -7
- data/lib/openai/models/beta/beta_response_custom_tool_call_input_done_event.rb +14 -7
- data/lib/openai/models/beta/beta_response_custom_tool_call_item.rb +23 -14
- data/lib/openai/models/beta/beta_response_custom_tool_call_output.rb +22 -14
- data/lib/openai/models/beta/beta_response_custom_tool_call_output_item.rb +18 -11
- data/lib/openai/models/beta/beta_response_error.rb +12 -9
- data/lib/openai/models/beta/beta_response_error_event.rb +14 -10
- data/lib/openai/models/beta/beta_response_failed_event.rb +10 -8
- data/lib/openai/models/beta/beta_response_file_search_call_completed_event.rb +12 -10
- data/lib/openai/models/beta/beta_response_file_search_call_in_progress_event.rb +12 -10
- data/lib/openai/models/beta/beta_response_file_search_call_searching_event.rb +12 -10
- data/lib/openai/models/beta/beta_response_file_search_tool_call.rb +30 -20
- data/lib/openai/models/beta/beta_response_format_text_config.rb +6 -4
- data/lib/openai/models/beta/beta_response_format_text_json_schema_config.rb +19 -10
- data/lib/openai/models/beta/beta_response_function_call_arguments_delta_event.rb +14 -11
- data/lib/openai/models/beta/beta_response_function_call_arguments_done_event.rb +12 -6
- data/lib/openai/models/beta/beta_response_function_call_output_item.rb +1 -1
- data/lib/openai/models/beta/beta_response_function_shell_call_output_content.rb +12 -6
- data/lib/openai/models/beta/beta_response_function_shell_tool_call.rb +28 -16
- data/lib/openai/models/beta/beta_response_function_shell_tool_call_output.rb +40 -27
- data/lib/openai/models/beta/beta_response_function_tool_call.rb +26 -16
- data/lib/openai/models/beta/beta_response_function_tool_call_item.rb +24 -15
- data/lib/openai/models/beta/beta_response_function_tool_call_output_item.rb +31 -18
- data/lib/openai/models/beta/beta_response_function_web_search.rb +37 -39
- data/lib/openai/models/beta/beta_response_image_gen_call_completed_event.rb +12 -6
- data/lib/openai/models/beta/beta_response_image_gen_call_generating_event.rb +12 -6
- data/lib/openai/models/beta/beta_response_image_gen_call_in_progress_event.rb +12 -6
- data/lib/openai/models/beta/beta_response_image_gen_call_partial_image_event.rb +25 -16
- data/lib/openai/models/beta/beta_response_in_progress_event.rb +10 -8
- data/lib/openai/models/beta/beta_response_incomplete_event.rb +10 -8
- data/lib/openai/models/beta/beta_response_inject_created_event.rb +9 -7
- data/lib/openai/models/beta/beta_response_inject_event.rb +6 -3
- data/lib/openai/models/beta/beta_response_inject_failed_event.rb +17 -11
- data/lib/openai/models/beta/beta_response_input_audio.rb +6 -9
- data/lib/openai/models/beta/beta_response_input_content.rb +1 -1
- data/lib/openai/models/beta/beta_response_input_file.rb +22 -11
- data/lib/openai/models/beta/beta_response_input_file_content.rb +22 -11
- data/lib/openai/models/beta/beta_response_input_image.rb +17 -10
- data/lib/openai/models/beta/beta_response_input_image_content.rb +17 -10
- data/lib/openai/models/beta/beta_response_input_item.rb +560 -291
- data/lib/openai/models/beta/beta_response_input_message_item.rb +16 -10
- data/lib/openai/models/beta/beta_response_input_text.rb +10 -7
- data/lib/openai/models/beta/beta_response_input_text_content.rb +10 -7
- data/lib/openai/models/beta/beta_response_item.rb +316 -150
- data/lib/openai/models/beta/beta_response_local_environment.rb +2 -1
- data/lib/openai/models/beta/beta_response_mcp_call_arguments_delta_event.rb +15 -10
- data/lib/openai/models/beta/beta_response_mcp_call_arguments_done_event.rb +14 -10
- data/lib/openai/models/beta/beta_response_mcp_call_completed_event.rb +12 -6
- data/lib/openai/models/beta/beta_response_mcp_call_failed_event.rb +12 -6
- data/lib/openai/models/beta/beta_response_mcp_call_in_progress_event.rb +12 -6
- data/lib/openai/models/beta/beta_response_mcp_list_tools_completed_event.rb +12 -6
- data/lib/openai/models/beta/beta_response_mcp_list_tools_failed_event.rb +12 -6
- data/lib/openai/models/beta/beta_response_mcp_list_tools_in_progress_event.rb +12 -6
- data/lib/openai/models/beta/beta_response_output_audio.rb +6 -6
- data/lib/openai/models/beta/beta_response_output_item.rb +328 -155
- data/lib/openai/models/beta/beta_response_output_item_added_event.rb +15 -9
- data/lib/openai/models/beta/beta_response_output_item_done_event.rb +12 -9
- data/lib/openai/models/beta/beta_response_output_message.rb +20 -11
- data/lib/openai/models/beta/beta_response_output_refusal.rb +4 -2
- data/lib/openai/models/beta/beta_response_output_text.rb +42 -25
- data/lib/openai/models/beta/beta_response_output_text_annotation_added_event.rb +54 -31
- data/lib/openai/models/beta/beta_response_prompt.rb +10 -8
- data/lib/openai/models/beta/beta_response_queued_event.rb +10 -5
- data/lib/openai/models/beta/beta_response_reasoning_item.rb +33 -17
- data/lib/openai/models/beta/beta_response_reasoning_summary_part_added_event.rb +20 -14
- data/lib/openai/models/beta/beta_response_reasoning_summary_part_done_event.rb +23 -15
- data/lib/openai/models/beta/beta_response_reasoning_summary_text_delta_event.rb +16 -12
- data/lib/openai/models/beta/beta_response_reasoning_summary_text_done_event.rb +16 -12
- data/lib/openai/models/beta/beta_response_reasoning_text_delta_event.rb +16 -11
- data/lib/openai/models/beta/beta_response_reasoning_text_done_event.rb +16 -11
- data/lib/openai/models/beta/beta_response_refusal_delta_event.rb +16 -11
- data/lib/openai/models/beta/beta_response_refusal_done_event.rb +16 -11
- data/lib/openai/models/beta/beta_response_shell_call_command_added_event.rb +14 -7
- data/lib/openai/models/beta/beta_response_shell_call_command_delta_event.rb +16 -8
- data/lib/openai/models/beta/beta_response_shell_call_command_done_event.rb +14 -7
- data/lib/openai/models/beta/beta_response_shell_call_output_content_delta_event.rb +20 -10
- data/lib/openai/models/beta/beta_response_shell_call_output_content_done_event.rb +31 -20
- data/lib/openai/models/beta/beta_response_steer_accepted_event.rb +13 -9
- data/lib/openai/models/beta/beta_response_steer_event.rb +14 -6
- data/lib/openai/models/beta/beta_response_steer_failed_event.rb +45 -22
- data/lib/openai/models/beta/beta_response_steer_input.rb +42 -24
- data/lib/openai/models/beta/beta_response_steer_input_content.rb +1 -1
- data/lib/openai/models/beta/beta_response_steer_pending_event.rb +24 -11
- data/lib/openai/models/beta/beta_response_text_config.rb +22 -8
- data/lib/openai/models/beta/beta_response_text_delta_event.rb +28 -22
- data/lib/openai/models/beta/beta_response_text_done_event.rb +28 -22
- data/lib/openai/models/beta/beta_response_tool_search_call.rb +18 -9
- data/lib/openai/models/beta/beta_response_tool_search_output_item.rb +18 -9
- data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +16 -8
- data/lib/openai/models/beta/beta_response_usage.rb +18 -12
- data/lib/openai/models/beta/beta_response_web_search_call_completed_event.rb +12 -10
- data/lib/openai/models/beta/beta_response_web_search_call_in_progress_event.rb +12 -10
- data/lib/openai/models/beta/beta_response_web_search_call_searching_event.rb +12 -10
- data/lib/openai/models/beta/beta_responses_client_event.rb +401 -162
- data/lib/openai/models/beta/beta_responses_server_event.rb +862 -629
- data/lib/openai/models/beta/beta_skill_reference.rb +6 -3
- data/lib/openai/models/beta/beta_tool.rb +236 -129
- data/lib/openai/models/beta/beta_tool_choice_allowed.rb +21 -6
- data/lib/openai/models/beta/beta_tool_choice_apply_patch.rb +2 -1
- data/lib/openai/models/beta/beta_tool_choice_custom.rb +4 -2
- data/lib/openai/models/beta/beta_tool_choice_function.rb +4 -2
- data/lib/openai/models/beta/beta_tool_choice_mcp.rb +6 -6
- data/lib/openai/models/beta/beta_tool_choice_shell.rb +2 -1
- data/lib/openai/models/beta/beta_tool_choice_types.rb +16 -7
- data/lib/openai/models/beta/beta_tool_search_tool.rb +8 -4
- data/lib/openai/models/beta/beta_web_search_preview_tool.rb +21 -15
- data/lib/openai/models/beta/beta_web_search_tool.rb +31 -21
- data/lib/openai/models/beta/chatkit/chat_session.rb +20 -10
- data/lib/openai/models/beta/chatkit/chat_session_automatic_thread_titling.rb +2 -1
- data/lib/openai/models/beta/chatkit/chat_session_chatkit_configuration.rb +6 -3
- data/lib/openai/models/beta/chatkit/chat_session_chatkit_configuration_param.rb +23 -21
- data/lib/openai/models/beta/chatkit/chat_session_expires_after_param.rb +4 -2
- data/lib/openai/models/beta/chatkit/chat_session_file_upload.rb +6 -3
- data/lib/openai/models/beta/chatkit/chat_session_history.rb +5 -5
- data/lib/openai/models/beta/chatkit/chat_session_rate_limits.rb +2 -1
- data/lib/openai/models/beta/chatkit/chat_session_rate_limits_param.rb +2 -1
- data/lib/openai/models/beta/chatkit/chat_session_workflow_param.rb +12 -9
- data/lib/openai/models/beta/chatkit/chatkit_attachment.rb +10 -5
- data/lib/openai/models/beta/chatkit/chatkit_response_output_text.rb +22 -11
- data/lib/openai/models/beta/chatkit/chatkit_thread.rb +23 -14
- data/lib/openai/models/beta/chatkit/chatkit_thread_assistant_message_item.rb +12 -6
- data/lib/openai/models/beta/chatkit/chatkit_thread_item_list.rb +65 -41
- data/lib/openai/models/beta/chatkit/chatkit_thread_user_message_item.rb +29 -18
- data/lib/openai/models/beta/chatkit/chatkit_widget_item.rb +12 -6
- data/lib/openai/models/beta/chatkit/session_create_params.rb +12 -8
- data/lib/openai/models/beta/chatkit/thread_delete_response.rb +6 -3
- data/lib/openai/models/beta/chatkit/thread_list_items_params.rb +10 -7
- data/lib/openai/models/beta/chatkit/thread_list_params.rb +13 -8
- data/lib/openai/models/beta/chatkit_workflow.rb +12 -9
- data/lib/openai/models/beta/code_interpreter_tool.rb +2 -1
- data/lib/openai/models/beta/file_search_tool.rb +29 -16
- data/lib/openai/models/beta/function_tool.rb +2 -1
- data/lib/openai/models/beta/message_stream_event.rb +32 -41
- data/lib/openai/models/beta/response_compact_params.rb +89 -46
- data/lib/openai/models/beta/response_create_params.rb +382 -149
- data/lib/openai/models/beta/response_retrieve_params.rb +12 -6
- data/lib/openai/models/beta/responses/beta_response_item_list.rb +10 -5
- data/lib/openai/models/beta/responses/input_item_list_params.rb +13 -7
- data/lib/openai/models/beta/responses/input_token_count_params.rb +113 -42
- data/lib/openai/models/beta/run_step_stream_event.rb +36 -57
- data/lib/openai/models/beta/run_stream_event.rb +61 -72
- data/lib/openai/models/beta/thread.rb +32 -21
- data/lib/openai/models/beta/thread_create_and_run_params.rb +232 -123
- data/lib/openai/models/beta/thread_create_params.rb +89 -52
- data/lib/openai/models/beta/thread_stream_event.rb +7 -7
- data/lib/openai/models/beta/thread_update_params.rb +25 -19
- data/lib/openai/models/beta/threads/file_citation_annotation.rb +6 -3
- data/lib/openai/models/beta/threads/file_citation_delta_annotation.rb +10 -5
- data/lib/openai/models/beta/threads/file_path_annotation.rb +6 -3
- data/lib/openai/models/beta/threads/file_path_delta_annotation.rb +8 -4
- data/lib/openai/models/beta/threads/image_file.rb +10 -8
- data/lib/openai/models/beta/threads/image_file_content_block.rb +5 -3
- data/lib/openai/models/beta/threads/image_file_delta.rb +10 -8
- data/lib/openai/models/beta/threads/image_file_delta_block.rb +7 -4
- data/lib/openai/models/beta/threads/image_url.rb +6 -5
- data/lib/openai/models/beta/threads/image_url_content_block.rb +2 -1
- data/lib/openai/models/beta/threads/image_url_delta.rb +6 -5
- data/lib/openai/models/beta/threads/image_url_delta_block.rb +4 -2
- data/lib/openai/models/beta/threads/message.rb +52 -28
- data/lib/openai/models/beta/threads/message_content.rb +4 -3
- data/lib/openai/models/beta/threads/message_content_delta.rb +4 -3
- data/lib/openai/models/beta/threads/message_content_part_param.rb +4 -3
- data/lib/openai/models/beta/threads/message_create_params.rb +25 -12
- data/lib/openai/models/beta/threads/message_delta.rb +4 -2
- data/lib/openai/models/beta/threads/message_delta_event.rb +6 -3
- data/lib/openai/models/beta/threads/message_list_params.rb +18 -8
- data/lib/openai/models/beta/threads/message_update_params.rb +7 -4
- data/lib/openai/models/beta/threads/refusal_content_block.rb +2 -1
- data/lib/openai/models/beta/threads/refusal_delta_block.rb +4 -2
- data/lib/openai/models/beta/threads/required_action_function_tool_call.rb +15 -10
- data/lib/openai/models/beta/threads/run.rb +174 -89
- data/lib/openai/models/beta/threads/run_create_params.rb +173 -74
- data/lib/openai/models/beta/threads/run_list_params.rb +16 -7
- data/lib/openai/models/beta/threads/run_submit_tool_outputs_params.rb +7 -7
- data/lib/openai/models/beta/threads/run_update_params.rb +7 -4
- data/lib/openai/models/beta/threads/runs/code_interpreter_logs.rb +6 -3
- data/lib/openai/models/beta/threads/runs/code_interpreter_output_image.rb +9 -9
- data/lib/openai/models/beta/threads/runs/code_interpreter_tool_call.rb +24 -22
- data/lib/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rb +15 -14
- data/lib/openai/models/beta/threads/runs/file_search_tool_call.rb +31 -25
- data/lib/openai/models/beta/threads/runs/file_search_tool_call_delta.rb +9 -7
- data/lib/openai/models/beta/threads/runs/function_tool_call.rb +15 -15
- data/lib/openai/models/beta/threads/runs/function_tool_call_delta.rb +17 -16
- data/lib/openai/models/beta/threads/runs/message_creation_step_details.rb +4 -2
- data/lib/openai/models/beta/threads/runs/run_step.rb +62 -29
- data/lib/openai/models/beta/threads/runs/run_step_delta.rb +2 -1
- data/lib/openai/models/beta/threads/runs/run_step_delta_event.rb +6 -3
- data/lib/openai/models/beta/threads/runs/run_step_delta_message_delta.rb +4 -2
- data/lib/openai/models/beta/threads/runs/step_list_params.rb +29 -13
- data/lib/openai/models/beta/threads/runs/step_retrieve_params.rb +9 -5
- data/lib/openai/models/beta/threads/runs/tool_call_delta_object.rb +6 -5
- data/lib/openai/models/beta/threads/runs/tool_calls_step_details.rb +6 -5
- data/lib/openai/models/beta/threads/text.rb +2 -1
- data/lib/openai/models/beta/threads/text_content_block.rb +2 -1
- data/lib/openai/models/beta/threads/text_content_block_param.rb +4 -2
- data/lib/openai/models/beta/threads/text_delta.rb +2 -1
- data/lib/openai/models/beta/threads/text_delta_block.rb +4 -2
- data/lib/openai/models/chat/chat_completion.rb +143 -75
- data/lib/openai/models/chat/chat_completion_allowed_tool_choice.rb +4 -5
- data/lib/openai/models/chat/chat_completion_allowed_tools.rb +18 -5
- data/lib/openai/models/chat/chat_completion_assistant_message_param.rb +31 -26
- data/lib/openai/models/chat/chat_completion_audio.rb +11 -8
- data/lib/openai/models/chat/chat_completion_audio_param.rb +11 -7
- data/lib/openai/models/chat/chat_completion_chunk.rb +174 -97
- data/lib/openai/models/chat/chat_completion_content_part.rb +22 -20
- data/lib/openai/models/chat/chat_completion_content_part_image.rb +17 -15
- data/lib/openai/models/chat/chat_completion_content_part_input_audio.rb +13 -13
- data/lib/openai/models/chat/chat_completion_content_part_refusal.rb +4 -2
- data/lib/openai/models/chat/chat_completion_content_part_text.rb +11 -9
- data/lib/openai/models/chat/chat_completion_custom_tool.rb +20 -16
- data/lib/openai/models/chat/chat_completion_deleted.rb +6 -3
- data/lib/openai/models/chat/chat_completion_developer_message_param.rb +7 -6
- data/lib/openai/models/chat/chat_completion_function_call_option.rb +2 -1
- data/lib/openai/models/chat/chat_completion_function_message_param.rb +6 -3
- data/lib/openai/models/chat/chat_completion_function_tool.rb +2 -1
- data/lib/openai/models/chat/chat_completion_message.rb +39 -24
- data/lib/openai/models/chat/chat_completion_message_custom_tool_call.rb +10 -5
- data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +13 -9
- data/lib/openai/models/chat/chat_completion_named_tool_choice.rb +4 -2
- data/lib/openai/models/chat/chat_completion_named_tool_choice_custom.rb +4 -2
- data/lib/openai/models/chat/chat_completion_prediction_content.rb +8 -6
- data/lib/openai/models/chat/chat_completion_store_message.rb +26 -16
- data/lib/openai/models/chat/chat_completion_stream_options.rb +15 -5
- data/lib/openai/models/chat/chat_completion_system_message_param.rb +7 -6
- data/lib/openai/models/chat/chat_completion_token_logprob.rb +25 -14
- data/lib/openai/models/chat/chat_completion_tool_message_param.rb +6 -3
- data/lib/openai/models/chat/chat_completion_user_message_param.rb +8 -7
- data/lib/openai/models/chat/completion_create_params.rb +388 -161
- data/lib/openai/models/chat/completion_list_params.rb +12 -7
- data/lib/openai/models/chat/completion_update_params.rb +7 -4
- data/lib/openai/models/chat/completions/message_list_params.rb +7 -6
- data/lib/openai/models/comparison_filter.rb +17 -6
- data/lib/openai/models/completion.rb +17 -10
- data/lib/openai/models/completion_choice.rb +5 -4
- data/lib/openai/models/completion_create_params.rb +124 -37
- data/lib/openai/models/completion_usage.rb +34 -18
- data/lib/openai/models/compound_filter.rb +5 -5
- data/lib/openai/models/container_create_params.rb +15 -10
- data/lib/openai/models/container_create_response.rb +28 -16
- data/lib/openai/models/container_list_params.rb +13 -7
- data/lib/openai/models/container_list_response.rb +28 -16
- data/lib/openai/models/container_retrieve_response.rb +28 -16
- data/lib/openai/models/containers/file_create_params.rb +8 -5
- data/lib/openai/models/containers/file_create_response.rb +14 -7
- data/lib/openai/models/containers/file_list_params.rb +11 -6
- data/lib/openai/models/containers/file_list_response.rb +14 -7
- data/lib/openai/models/containers/file_retrieve_response.rb +14 -7
- data/lib/openai/models/content_provenance_check.rb +44 -25
- data/lib/openai/models/content_provenance_check_create_params.rb +6 -1
- data/lib/openai/models/conversations/computer_screenshot_content.rb +16 -9
- data/lib/openai/models/conversations/conversation.rb +16 -10
- data/lib/openai/models/conversations/conversation_create_params.rb +9 -4
- data/lib/openai/models/conversations/conversation_item.rb +216 -100
- data/lib/openai/models/conversations/conversation_item_list.rb +10 -5
- data/lib/openai/models/conversations/conversation_update_params.rb +7 -4
- data/lib/openai/models/conversations/item_create_params.rb +7 -6
- data/lib/openai/models/conversations/item_list_params.rb +29 -7
- data/lib/openai/models/conversations/item_retrieve_params.rb +5 -5
- data/lib/openai/models/conversations/message.rb +22 -12
- data/lib/openai/models/conversations/summary_text_content.rb +4 -2
- data/lib/openai/models/create_embedding_response.rb +12 -6
- data/lib/openai/models/custom_tool_input_format.rb +8 -4
- data/lib/openai/models/embedding.rb +9 -7
- data/lib/openai/models/embedding_create_params.rb +36 -18
- data/lib/openai/models/error_object.rb +8 -4
- data/lib/openai/models/eval_create_params.rb +105 -74
- data/lib/openai/models/eval_create_response.rb +69 -42
- data/lib/openai/models/eval_custom_data_source_config.rb +5 -5
- data/lib/openai/models/eval_list_params.rb +10 -7
- data/lib/openai/models/eval_list_response.rb +69 -42
- data/lib/openai/models/eval_retrieve_response.rb +69 -42
- data/lib/openai/models/eval_stored_completions_data_source_config.rb +12 -6
- data/lib/openai/models/eval_update_params.rb +9 -5
- data/lib/openai/models/eval_update_response.rb +69 -42
- data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +97 -64
- data/lib/openai/models/evals/create_eval_jsonl_run_data_source.rb +12 -7
- data/lib/openai/models/evals/eval_api_error.rb +4 -2
- data/lib/openai/models/evals/run_cancel_response.rb +204 -114
- data/lib/openai/models/evals/run_create_params.rb +156 -90
- data/lib/openai/models/evals/run_create_response.rb +204 -114
- data/lib/openai/models/evals/run_list_params.rb +10 -7
- data/lib/openai/models/evals/run_list_response.rb +204 -114
- data/lib/openai/models/evals/run_retrieve_response.rb +204 -114
- data/lib/openai/models/evals/runs/output_item_list_params.rb +10 -7
- data/lib/openai/models/evals/runs/output_item_list_response.rb +66 -38
- data/lib/openai/models/evals/runs/output_item_retrieve_response.rb +66 -39
- data/lib/openai/models/file_create_params.rb +23 -10
- data/lib/openai/models/file_list_params.rb +13 -7
- data/lib/openai/models/file_object.rb +22 -12
- data/lib/openai/models/fine_tuning/alpha/grader_run_params.rb +18 -10
- data/lib/openai/models/fine_tuning/alpha/grader_validate_params.rb +2 -1
- data/lib/openai/models/fine_tuning/alpha/grader_validate_response.rb +2 -1
- data/lib/openai/models/fine_tuning/checkpoints/permission_create_params.rb +2 -1
- data/lib/openai/models/fine_tuning/checkpoints/permission_create_response.rb +8 -4
- data/lib/openai/models/fine_tuning/checkpoints/permission_delete_response.rb +6 -3
- data/lib/openai/models/fine_tuning/checkpoints/permission_list_params.rb +8 -4
- data/lib/openai/models/fine_tuning/checkpoints/permission_list_response.rb +8 -4
- data/lib/openai/models/fine_tuning/checkpoints/permission_retrieve_params.rb +8 -4
- data/lib/openai/models/fine_tuning/checkpoints/permission_retrieve_response.rb +8 -4
- data/lib/openai/models/fine_tuning/dpo_hyperparameters.rb +12 -7
- data/lib/openai/models/fine_tuning/dpo_method.rb +2 -1
- data/lib/openai/models/fine_tuning/fine_tuning_job.rb +82 -41
- data/lib/openai/models/fine_tuning/fine_tuning_job_event.rb +14 -7
- data/lib/openai/models/fine_tuning/fine_tuning_job_wandb_integration.rb +13 -7
- data/lib/openai/models/fine_tuning/fine_tuning_job_wandb_integration_object.rb +7 -6
- data/lib/openai/models/fine_tuning/job_create_params.rb +107 -42
- data/lib/openai/models/fine_tuning/job_list_events_params.rb +4 -2
- data/lib/openai/models/fine_tuning/job_list_params.rb +7 -6
- data/lib/openai/models/fine_tuning/jobs/checkpoint_list_params.rb +4 -2
- data/lib/openai/models/fine_tuning/jobs/fine_tuning_job_checkpoint.rb +14 -7
- data/lib/openai/models/fine_tuning/reinforcement_hyperparameters.rb +17 -10
- data/lib/openai/models/fine_tuning/reinforcement_method.rb +4 -2
- data/lib/openai/models/fine_tuning/supervised_hyperparameters.rb +9 -6
- data/lib/openai/models/fine_tuning/supervised_method.rb +2 -1
- data/lib/openai/models/function_definition.rb +22 -9
- data/lib/openai/models/graders/grader_input_item.rb +11 -11
- data/lib/openai/models/graders/label_model_grader.rb +29 -25
- data/lib/openai/models/graders/multi_grader.rb +9 -7
- data/lib/openai/models/graders/python_grader.rb +8 -4
- data/lib/openai/models/graders/score_model_grader.rb +48 -38
- data/lib/openai/models/graders/string_check_grader.rb +10 -5
- data/lib/openai/models/graders/text_similarity_grader.rb +11 -8
- data/lib/openai/models/image.rb +10 -6
- data/lib/openai/models/image_create_variation_params.rb +23 -9
- data/lib/openai/models/image_edit_completed_event.rb +62 -27
- data/lib/openai/models/image_edit_params.rb +169 -72
- data/lib/openai/models/image_edit_partial_image_event.rb +49 -18
- data/lib/openai/models/image_gen_completed_event.rb +62 -27
- data/lib/openai/models/image_gen_partial_image_event.rb +49 -18
- data/lib/openai/models/image_generate_params.rb +141 -62
- data/lib/openai/models/image_input_reference_param.rb +2 -1
- data/lib/openai/models/image_model.rb +4 -0
- data/lib/openai/models/images_response.rb +69 -30
- data/lib/openai/models/model.rb +10 -5
- data/lib/openai/models/moderation.rb +115 -62
- data/lib/openai/models/moderation_create_params.rb +16 -13
- data/lib/openai/models/moderation_create_response.rb +6 -3
- data/lib/openai/models/moderation_image_url_input.rb +6 -3
- data/lib/openai/models/moderation_text_input.rb +4 -2
- data/lib/openai/models/other_file_chunking_strategy_object.rb +2 -1
- data/lib/openai/models/realtime/audio_transcription.rb +29 -10
- data/lib/openai/models/realtime/call_accept_params.rb +85 -30
- data/lib/openai/models/realtime/call_create_params.rb +4 -2
- data/lib/openai/models/realtime/call_refer_params.rb +3 -4
- data/lib/openai/models/realtime/call_reject_params.rb +3 -4
- data/lib/openai/models/realtime/client_secret_create_params.rb +16 -11
- data/lib/openai/models/realtime/client_secret_create_response.rb +6 -6
- data/lib/openai/models/realtime/conversation_created_event.rb +10 -5
- data/lib/openai/models/realtime/conversation_item_added.rb +9 -7
- data/lib/openai/models/realtime/conversation_item_create_event.rb +16 -7
- data/lib/openai/models/realtime/conversation_item_created_event.rb +10 -7
- data/lib/openai/models/realtime/conversation_item_delete_event.rb +6 -3
- data/lib/openai/models/realtime/conversation_item_deleted_event.rb +6 -3
- data/lib/openai/models/realtime/conversation_item_done.rb +9 -7
- data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +36 -21
- data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +17 -10
- data/lib/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rb +18 -13
- data/lib/openai/models/realtime/conversation_item_input_audio_transcription_segment.rb +18 -9
- data/lib/openai/models/realtime/conversation_item_retrieve_event.rb +6 -3
- data/lib/openai/models/realtime/conversation_item_truncate_event.rb +13 -8
- data/lib/openai/models/realtime/conversation_item_truncated_event.rb +10 -8
- data/lib/openai/models/realtime/conversation_item_with_reference.rb +47 -24
- data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +7 -6
- data/lib/openai/models/realtime/input_audio_buffer_clear_event.rb +4 -2
- data/lib/openai/models/realtime/input_audio_buffer_cleared_event.rb +4 -2
- data/lib/openai/models/realtime/input_audio_buffer_commit_event.rb +4 -2
- data/lib/openai/models/realtime/input_audio_buffer_committed_event.rb +9 -7
- data/lib/openai/models/realtime/input_audio_buffer_dtmf_event_received_event.rb +6 -7
- data/lib/openai/models/realtime/input_audio_buffer_speech_started_event.rb +11 -7
- data/lib/openai/models/realtime/input_audio_buffer_speech_stopped_event.rb +10 -7
- data/lib/openai/models/realtime/input_audio_buffer_timeout_triggered.rb +12 -8
- data/lib/openai/models/realtime/log_prob_properties.rb +6 -6
- data/lib/openai/models/realtime/mcp_list_tools_completed.rb +6 -3
- data/lib/openai/models/realtime/mcp_list_tools_failed.rb +6 -3
- data/lib/openai/models/realtime/mcp_list_tools_in_progress.rb +6 -3
- data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +5 -3
- data/lib/openai/models/realtime/rate_limits_updated_event.rb +14 -11
- data/lib/openai/models/realtime/realtime_audio_config_input.rb +38 -12
- data/lib/openai/models/realtime/realtime_audio_config_output.rb +18 -6
- data/lib/openai/models/realtime/realtime_audio_formats.rb +8 -4
- data/lib/openai/models/realtime/realtime_audio_input_turn_detection.rb +61 -25
- data/lib/openai/models/realtime/realtime_client_event.rb +1 -1
- data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +26 -19
- data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +18 -11
- data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +15 -10
- data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +18 -13
- data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +32 -21
- data/lib/openai/models/realtime/realtime_error.rb +10 -8
- data/lib/openai/models/realtime/realtime_error_event.rb +6 -3
- data/lib/openai/models/realtime/realtime_function_tool.rb +9 -7
- data/lib/openai/models/realtime/realtime_mcp_approval_request.rb +10 -5
- data/lib/openai/models/realtime/realtime_mcp_approval_response.rb +10 -5
- data/lib/openai/models/realtime/realtime_mcp_list_tools.rb +16 -12
- data/lib/openai/models/realtime/realtime_mcp_tool_call.rb +16 -8
- data/lib/openai/models/realtime/realtime_reasoning.rb +3 -4
- data/lib/openai/models/realtime/realtime_response.rb +47 -19
- data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +11 -7
- data/lib/openai/models/realtime/realtime_response_create_mcp_tool.rb +71 -43
- data/lib/openai/models/realtime/realtime_response_create_params.rb +56 -18
- data/lib/openai/models/realtime/realtime_response_status.rb +16 -8
- data/lib/openai/models/realtime/realtime_response_usage.rb +16 -8
- data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +16 -8
- data/lib/openai/models/realtime/realtime_response_usage_output_token_details.rb +4 -2
- data/lib/openai/models/realtime/realtime_server_event.rb +30 -18
- data/lib/openai/models/realtime/realtime_session.rb +191 -82
- data/lib/openai/models/realtime/realtime_session_create_request.rb +86 -32
- data/lib/openai/models/realtime/realtime_session_create_response.rb +256 -110
- data/lib/openai/models/realtime/realtime_tools_config_union.rb +73 -45
- data/lib/openai/models/realtime/realtime_tracing_config.rb +9 -7
- data/lib/openai/models/realtime/realtime_transcription_session_audio_input.rb +38 -13
- data/lib/openai/models/realtime/realtime_transcription_session_audio_input_turn_detection.rb +61 -25
- data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +10 -8
- data/lib/openai/models/realtime/realtime_transcription_session_create_response.rb +28 -22
- data/lib/openai/models/realtime/realtime_transcription_session_turn_detection.rb +13 -8
- data/lib/openai/models/realtime/realtime_translation_client_secret_create_request.rb +16 -12
- data/lib/openai/models/realtime/realtime_translation_client_secret_create_response.rb +7 -7
- data/lib/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rb +6 -3
- data/lib/openai/models/realtime/realtime_translation_input_transcript_delta_event.rb +11 -8
- data/lib/openai/models/realtime/realtime_translation_output_audio_delta_event.rb +16 -11
- data/lib/openai/models/realtime/realtime_translation_output_transcript_delta_event.rb +11 -8
- data/lib/openai/models/realtime/realtime_translation_session.rb +25 -25
- data/lib/openai/models/realtime/realtime_translation_session_close_event.rb +4 -2
- data/lib/openai/models/realtime/realtime_translation_session_closed_event.rb +4 -2
- data/lib/openai/models/realtime/realtime_translation_session_create_request.rb +18 -23
- data/lib/openai/models/realtime/realtime_translation_session_created_event.rb +6 -3
- data/lib/openai/models/realtime/realtime_translation_session_update_event.rb +7 -7
- data/lib/openai/models/realtime/realtime_translation_session_update_request.rb +16 -22
- data/lib/openai/models/realtime/realtime_translation_session_updated_event.rb +6 -3
- data/lib/openai/models/realtime/realtime_truncation_retention_ratio.rb +16 -11
- data/lib/openai/models/realtime/response_audio_delta_event.rb +14 -7
- data/lib/openai/models/realtime/response_audio_done_event.rb +12 -6
- data/lib/openai/models/realtime/response_audio_transcript_delta_event.rb +14 -7
- data/lib/openai/models/realtime/response_audio_transcript_done_event.rb +14 -7
- data/lib/openai/models/realtime/response_cancel_event.rb +7 -6
- data/lib/openai/models/realtime/response_content_part_added_event.rb +22 -11
- data/lib/openai/models/realtime/response_content_part_done_event.rb +22 -11
- data/lib/openai/models/realtime/response_create_event.rb +6 -3
- data/lib/openai/models/realtime/response_created_event.rb +6 -3
- data/lib/openai/models/realtime/response_done_event.rb +6 -3
- data/lib/openai/models/realtime/response_function_call_arguments_delta_event.rb +14 -11
- data/lib/openai/models/realtime/response_function_call_arguments_done_event.rb +16 -12
- data/lib/openai/models/realtime/response_mcp_call_arguments_delta.rb +14 -7
- data/lib/openai/models/realtime/response_mcp_call_arguments_done.rb +12 -6
- data/lib/openai/models/realtime/response_mcp_call_completed.rb +8 -4
- data/lib/openai/models/realtime/response_mcp_call_failed.rb +8 -4
- data/lib/openai/models/realtime/response_mcp_call_in_progress.rb +8 -4
- data/lib/openai/models/realtime/response_output_item_added_event.rb +10 -5
- data/lib/openai/models/realtime/response_output_item_done_event.rb +10 -5
- data/lib/openai/models/realtime/response_text_delta_event.rb +14 -7
- data/lib/openai/models/realtime/response_text_done_event.rb +14 -7
- data/lib/openai/models/realtime/session_created_event.rb +6 -3
- data/lib/openai/models/realtime/session_update_event.rb +10 -6
- data/lib/openai/models/realtime/session_updated_event.rb +6 -3
- data/lib/openai/models/realtime/transcription_session_update.rb +45 -26
- data/lib/openai/models/realtime/transcription_session_updated_event.rb +42 -28
- data/lib/openai/models/reasoning.rb +33 -10
- data/lib/openai/models/reasoning_effort.rb +1 -1
- data/lib/openai/models/response_format_json_object.rb +2 -1
- data/lib/openai/models/response_format_json_schema.rb +21 -14
- data/lib/openai/models/response_format_text.rb +2 -1
- data/lib/openai/models/response_format_text_grammar.rb +5 -3
- data/lib/openai/models/response_format_text_python.rb +3 -2
- data/lib/openai/models/responses/apply_patch_tool.rb +4 -3
- data/lib/openai/models/responses/compacted_response.rb +12 -8
- data/lib/openai/models/responses/computer_action.rb +78 -58
- data/lib/openai/models/responses/computer_tool.rb +3 -2
- data/lib/openai/models/responses/computer_use_preview_tool.rb +9 -5
- data/lib/openai/models/responses/container_auto.rb +10 -5
- data/lib/openai/models/responses/container_network_policy_allowlist.rb +6 -3
- data/lib/openai/models/responses/container_network_policy_disabled.rb +2 -1
- data/lib/openai/models/responses/container_network_policy_domain_secret.rb +6 -3
- data/lib/openai/models/responses/container_reference.rb +4 -2
- data/lib/openai/models/responses/custom_tool.rb +16 -12
- data/lib/openai/models/responses/easy_input_message.rb +13 -7
- data/lib/openai/models/responses/file_search_tool.rb +25 -17
- data/lib/openai/models/responses/function_shell_tool.rb +4 -3
- data/lib/openai/models/responses/function_tool.rb +19 -13
- data/lib/openai/models/responses/inline_skill.rb +8 -4
- data/lib/openai/models/responses/inline_skill_source.rb +6 -3
- data/lib/openai/models/responses/input_item_list_params.rb +13 -7
- data/lib/openai/models/responses/input_token_count_params.rb +79 -30
- data/lib/openai/models/responses/local_environment.rb +4 -2
- data/lib/openai/models/responses/local_skill.rb +6 -3
- data/lib/openai/models/responses/namespace_tool.rb +23 -13
- data/lib/openai/models/responses/response.rb +336 -152
- data/lib/openai/models/responses/response_apply_patch_tool_call.rb +34 -19
- data/lib/openai/models/responses/response_apply_patch_tool_call_output.rb +17 -11
- data/lib/openai/models/responses/response_audio_delta_event.rb +6 -6
- data/lib/openai/models/responses/response_audio_done_event.rb +4 -5
- data/lib/openai/models/responses/response_audio_transcript_delta_event.rb +6 -6
- data/lib/openai/models/responses/response_audio_transcript_done_event.rb +4 -5
- data/lib/openai/models/responses/response_code_interpreter_call_code_delta_event.rb +11 -9
- data/lib/openai/models/responses/response_code_interpreter_call_code_done_event.rb +10 -5
- data/lib/openai/models/responses/response_code_interpreter_call_completed_event.rb +9 -8
- data/lib/openai/models/responses/response_code_interpreter_call_in_progress_event.rb +9 -8
- data/lib/openai/models/responses/response_code_interpreter_call_interpreting_event.rb +9 -8
- data/lib/openai/models/responses/response_code_interpreter_tool_call.rb +22 -13
- data/lib/openai/models/responses/response_compact_params.rb +89 -46
- data/lib/openai/models/responses/response_compaction_item.rb +9 -5
- data/lib/openai/models/responses/response_compaction_item_param.rb +7 -4
- data/lib/openai/models/responses/response_completed_event.rb +6 -6
- data/lib/openai/models/responses/response_computer_tool_call.rb +101 -82
- data/lib/openai/models/responses/response_computer_tool_call_output_item.rb +22 -14
- data/lib/openai/models/responses/response_computer_tool_call_output_screenshot.rb +7 -7
- data/lib/openai/models/responses/response_configuration_update_item.rb +9 -8
- data/lib/openai/models/responses/response_configuration_update_item_param.rb +9 -8
- data/lib/openai/models/responses/response_container_reference.rb +2 -1
- data/lib/openai/models/responses/response_content.rb +5 -3
- data/lib/openai/models/responses/response_content_part_added_event.rb +16 -11
- data/lib/openai/models/responses/response_content_part_done_event.rb +16 -11
- data/lib/openai/models/responses/response_conversation_param.rb +2 -1
- data/lib/openai/models/responses/response_create_params.rb +334 -130
- data/lib/openai/models/responses/response_created_event.rb +6 -6
- data/lib/openai/models/responses/response_custom_tool_call.rb +18 -12
- data/lib/openai/models/responses/response_custom_tool_call_input_delta_event.rb +10 -5
- data/lib/openai/models/responses/response_custom_tool_call_input_done_event.rb +10 -5
- data/lib/openai/models/responses/response_custom_tool_call_item.rb +21 -13
- data/lib/openai/models/responses/response_custom_tool_call_output.rb +18 -12
- data/lib/openai/models/responses/response_custom_tool_call_output_item.rb +16 -10
- data/lib/openai/models/responses/response_error.rb +12 -9
- data/lib/openai/models/responses/response_error_event.rb +10 -8
- data/lib/openai/models/responses/response_failed_event.rb +6 -6
- data/lib/openai/models/responses/response_file_search_call_completed_event.rb +8 -8
- data/lib/openai/models/responses/response_file_search_call_in_progress_event.rb +8 -8
- data/lib/openai/models/responses/response_file_search_call_searching_event.rb +8 -8
- data/lib/openai/models/responses/response_file_search_tool_call.rb +26 -19
- data/lib/openai/models/responses/response_format_text_config.rb +2 -2
- data/lib/openai/models/responses/response_format_text_json_schema_config.rb +19 -11
- data/lib/openai/models/responses/response_function_call_arguments_delta_event.rb +10 -9
- data/lib/openai/models/responses/response_function_call_arguments_done_event.rb +8 -4
- data/lib/openai/models/responses/response_function_call_output_item.rb +1 -1
- data/lib/openai/models/responses/response_function_shell_call_output_content.rb +12 -6
- data/lib/openai/models/responses/response_function_shell_tool_call.rb +24 -14
- data/lib/openai/models/responses/response_function_shell_tool_call_output.rb +36 -25
- data/lib/openai/models/responses/response_function_tool_call.rb +22 -14
- data/lib/openai/models/responses/response_function_tool_call_item.rb +22 -14
- data/lib/openai/models/responses/response_function_tool_call_output_item.rb +27 -17
- data/lib/openai/models/responses/response_function_web_search.rb +33 -37
- data/lib/openai/models/responses/response_image_gen_call_completed_event.rb +8 -4
- data/lib/openai/models/responses/response_image_gen_call_generating_event.rb +8 -4
- data/lib/openai/models/responses/response_image_gen_call_in_progress_event.rb +8 -4
- data/lib/openai/models/responses/response_image_gen_call_partial_image_event.rb +21 -14
- data/lib/openai/models/responses/response_in_progress_event.rb +6 -6
- data/lib/openai/models/responses/response_incomplete_event.rb +6 -6
- data/lib/openai/models/responses/response_input_audio.rb +6 -9
- data/lib/openai/models/responses/response_input_content.rb +1 -1
- data/lib/openai/models/responses/response_input_file.rb +22 -11
- data/lib/openai/models/responses/response_input_file_content.rb +22 -11
- data/lib/openai/models/responses/response_input_image.rb +17 -10
- data/lib/openai/models/responses/response_input_image_content.rb +17 -10
- data/lib/openai/models/responses/response_input_item.rb +397 -209
- data/lib/openai/models/responses/response_input_message_item.rb +12 -8
- data/lib/openai/models/responses/response_input_text.rb +10 -7
- data/lib/openai/models/responses/response_input_text_content.rb +10 -7
- data/lib/openai/models/responses/response_item.rb +205 -93
- data/lib/openai/models/responses/response_item_list.rb +10 -5
- data/lib/openai/models/responses/response_local_environment.rb +2 -1
- data/lib/openai/models/responses/response_mcp_call_arguments_delta_event.rb +11 -9
- data/lib/openai/models/responses/response_mcp_call_arguments_done_event.rb +10 -8
- data/lib/openai/models/responses/response_mcp_call_completed_event.rb +8 -4
- data/lib/openai/models/responses/response_mcp_call_failed_event.rb +8 -4
- data/lib/openai/models/responses/response_mcp_call_in_progress_event.rb +8 -4
- data/lib/openai/models/responses/response_mcp_list_tools_completed_event.rb +8 -4
- data/lib/openai/models/responses/response_mcp_list_tools_failed_event.rb +8 -4
- data/lib/openai/models/responses/response_mcp_list_tools_in_progress_event.rb +8 -4
- data/lib/openai/models/responses/response_output_audio.rb +6 -6
- data/lib/openai/models/responses/response_output_item.rb +217 -98
- data/lib/openai/models/responses/response_output_item_added_event.rb +11 -7
- data/lib/openai/models/responses/response_output_item_done_event.rb +8 -7
- data/lib/openai/models/responses/response_output_message.rb +16 -9
- data/lib/openai/models/responses/response_output_refusal.rb +4 -2
- data/lib/openai/models/responses/response_output_text.rb +42 -25
- data/lib/openai/models/responses/response_output_text_annotation_added_event.rb +50 -29
- data/lib/openai/models/responses/response_prompt.rb +10 -8
- data/lib/openai/models/responses/response_queued_event.rb +6 -3
- data/lib/openai/models/responses/response_reasoning_item.rb +29 -15
- data/lib/openai/models/responses/response_reasoning_summary_part_added_event.rb +16 -12
- data/lib/openai/models/responses/response_reasoning_summary_part_done_event.rb +19 -13
- data/lib/openai/models/responses/response_reasoning_summary_text_delta_event.rb +12 -10
- data/lib/openai/models/responses/response_reasoning_summary_text_done_event.rb +12 -10
- data/lib/openai/models/responses/response_reasoning_text_delta_event.rb +12 -9
- data/lib/openai/models/responses/response_reasoning_text_done_event.rb +12 -9
- data/lib/openai/models/responses/response_refusal_delta_event.rb +12 -9
- data/lib/openai/models/responses/response_refusal_done_event.rb +12 -9
- data/lib/openai/models/responses/response_retrieve_params.rb +12 -6
- data/lib/openai/models/responses/response_shell_call_command_added_event.rb +10 -5
- data/lib/openai/models/responses/response_shell_call_command_delta_event.rb +12 -6
- data/lib/openai/models/responses/response_shell_call_command_done_event.rb +10 -5
- data/lib/openai/models/responses/response_shell_call_output_content_delta_event.rb +16 -8
- data/lib/openai/models/responses/response_shell_call_output_content_done_event.rb +27 -18
- data/lib/openai/models/responses/response_steer_accepted_event.rb +13 -9
- data/lib/openai/models/responses/response_steer_event.rb +14 -6
- data/lib/openai/models/responses/response_steer_failed_event.rb +45 -22
- data/lib/openai/models/responses/response_steer_input.rb +34 -20
- data/lib/openai/models/responses/response_steer_input_content.rb +1 -1
- data/lib/openai/models/responses/response_steer_pending_event.rb +24 -11
- data/lib/openai/models/responses/response_text_config.rb +22 -8
- data/lib/openai/models/responses/response_text_delta_event.rb +24 -20
- data/lib/openai/models/responses/response_text_done_event.rb +24 -20
- data/lib/openai/models/responses/response_tool_search_call.rb +14 -7
- data/lib/openai/models/responses/response_tool_search_output_item.rb +14 -7
- data/lib/openai/models/responses/response_tool_search_output_item_param.rb +12 -6
- data/lib/openai/models/responses/response_usage.rb +18 -12
- data/lib/openai/models/responses/response_web_search_call_completed_event.rb +8 -8
- data/lib/openai/models/responses/response_web_search_call_in_progress_event.rb +8 -8
- data/lib/openai/models/responses/response_web_search_call_searching_event.rb +8 -8
- data/lib/openai/models/responses/responses_client_event.rb +353 -140
- data/lib/openai/models/responses/responses_server_event.rb +744 -570
- data/lib/openai/models/responses/skill_reference.rb +6 -3
- data/lib/openai/models/responses/tool.rb +236 -129
- data/lib/openai/models/responses/tool_choice_allowed.rb +21 -6
- data/lib/openai/models/responses/tool_choice_apply_patch.rb +2 -1
- data/lib/openai/models/responses/tool_choice_custom.rb +4 -2
- data/lib/openai/models/responses/tool_choice_function.rb +4 -2
- data/lib/openai/models/responses/tool_choice_mcp.rb +6 -6
- data/lib/openai/models/responses/tool_choice_shell.rb +2 -1
- data/lib/openai/models/responses/tool_choice_types.rb +16 -7
- data/lib/openai/models/responses/tool_search_tool.rb +8 -4
- data/lib/openai/models/responses/web_search_preview_tool.rb +21 -16
- data/lib/openai/models/responses/web_search_tool.rb +31 -21
- data/lib/openai/models/safety/alert_retrieve_params.rb +2 -1
- data/lib/openai/models/safety/safety_alert.rb +6 -5
- data/lib/openai/models/skill.rb +14 -7
- data/lib/openai/models/skill_create_params.rb +6 -1
- data/lib/openai/models/skill_list.rb +10 -5
- data/lib/openai/models/skill_list_params.rb +7 -6
- data/lib/openai/models/skill_update_params.rb +2 -1
- data/lib/openai/models/skills/deleted_skill_version.rb +2 -1
- data/lib/openai/models/skills/skill_version.rb +14 -7
- data/lib/openai/models/skills/skill_version_list.rb +10 -5
- data/lib/openai/models/skills/version_create_params.rb +8 -2
- data/lib/openai/models/skills/version_delete_params.rb +2 -1
- data/lib/openai/models/skills/version_list_params.rb +6 -3
- data/lib/openai/models/skills/version_retrieve_params.rb +2 -1
- data/lib/openai/models/skills/versions/content_retrieve_params.rb +2 -1
- data/lib/openai/models/static_file_chunking_strategy.rb +6 -4
- data/lib/openai/models/static_file_chunking_strategy_object.rb +2 -1
- data/lib/openai/models/static_file_chunking_strategy_object_param.rb +2 -1
- data/lib/openai/models/upload.rb +21 -13
- data/lib/openai/models/upload_complete_params.rb +5 -5
- data/lib/openai/models/upload_create_params.rb +23 -13
- data/lib/openai/models/uploads/part_create_params.rb +6 -4
- data/lib/openai/models/uploads/upload_part.rb +8 -4
- data/lib/openai/models/vector_store.rb +42 -23
- data/lib/openai/models/vector_store_create_params.rb +28 -16
- data/lib/openai/models/vector_store_list_params.rb +16 -7
- data/lib/openai/models/vector_store_search_params.rb +13 -9
- data/lib/openai/models/vector_store_search_response.rb +18 -11
- data/lib/openai/models/vector_store_update_params.rb +16 -11
- data/lib/openai/models/vector_stores/file_batch_create_params.rb +47 -23
- data/lib/openai/models/vector_stores/file_batch_list_files_params.rb +18 -8
- data/lib/openai/models/vector_stores/file_content_response.rb +4 -2
- data/lib/openai/models/vector_stores/file_create_params.rb +18 -9
- data/lib/openai/models/vector_stores/file_list_params.rb +18 -8
- data/lib/openai/models/vector_stores/file_update_params.rb +6 -4
- data/lib/openai/models/vector_stores/vector_store_file.rb +35 -16
- data/lib/openai/models/vector_stores/vector_store_file_batch.rb +27 -15
- data/lib/openai/models/video.rb +27 -16
- data/lib/openai/models/video_create_character_params.rb +8 -2
- data/lib/openai/models/video_create_character_response.rb +6 -3
- data/lib/openai/models/video_create_error.rb +12 -6
- data/lib/openai/models/video_create_params.rb +15 -7
- data/lib/openai/models/video_delete_response.rb +6 -3
- data/lib/openai/models/video_download_content_params.rb +2 -1
- data/lib/openai/models/video_edit_params.rb +10 -3
- data/lib/openai/models/video_extend_params.rb +12 -6
- data/lib/openai/models/video_get_character_response.rb +6 -3
- data/lib/openai/models/video_list_params.rb +7 -6
- data/lib/openai/models/video_remix_params.rb +2 -1
- data/lib/openai/models/webhooks/batch_cancelled_webhook_event.rb +12 -12
- data/lib/openai/models/webhooks/batch_completed_webhook_event.rb +12 -12
- data/lib/openai/models/webhooks/batch_expired_webhook_event.rb +12 -12
- data/lib/openai/models/webhooks/batch_failed_webhook_event.rb +12 -12
- data/lib/openai/models/webhooks/eval_run_canceled_webhook_event.rb +12 -12
- data/lib/openai/models/webhooks/eval_run_failed_webhook_event.rb +12 -12
- data/lib/openai/models/webhooks/eval_run_succeeded_webhook_event.rb +12 -12
- data/lib/openai/models/webhooks/fine_tuning_job_cancelled_webhook_event.rb +12 -13
- data/lib/openai/models/webhooks/fine_tuning_job_failed_webhook_event.rb +12 -13
- data/lib/openai/models/webhooks/fine_tuning_job_succeeded_webhook_event.rb +12 -13
- data/lib/openai/models/webhooks/live_call_incoming_webhook_event.rb +26 -23
- data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +30 -24
- data/lib/openai/models/webhooks/response_cancelled_webhook_event.rb +12 -13
- data/lib/openai/models/webhooks/response_completed_webhook_event.rb +12 -13
- data/lib/openai/models/webhooks/response_failed_webhook_event.rb +12 -12
- data/lib/openai/models/webhooks/response_incomplete_webhook_event.rb +12 -13
- data/lib/openai/models/webhooks/safety_alert_created_webhook_event.rb +10 -5
- data/lib/openai/models/webhooks/safety_org_alert_created_webhook_event.rb +10 -5
- data/lib/openai/resources/admin/organization/admin_api_keys.rb +13 -9
- data/lib/openai/resources/admin/organization/audit_logs.rb +44 -22
- data/lib/openai/resources/admin/organization/certificates.rb +26 -17
- data/lib/openai/resources/admin/organization/data_retention.rb +2 -1
- data/lib/openai/resources/admin/organization/groups/roles.rb +21 -13
- data/lib/openai/resources/admin/organization/groups/users.rb +22 -13
- data/lib/openai/resources/admin/organization/groups.rb +20 -11
- data/lib/openai/resources/admin/organization/invites.rb +21 -13
- data/lib/openai/resources/admin/organization/projects/api_keys.rb +24 -12
- data/lib/openai/resources/admin/organization/projects/certificates.rb +17 -10
- data/lib/openai/resources/admin/organization/projects/data_retention.rb +6 -3
- data/lib/openai/resources/admin/organization/projects/groups/roles.rb +29 -18
- data/lib/openai/resources/admin/organization/projects/groups.rb +25 -16
- data/lib/openai/resources/admin/organization/projects/hosted_tool_permissions.rb +14 -7
- data/lib/openai/resources/admin/organization/projects/model_permissions.rb +10 -5
- data/lib/openai/resources/admin/organization/projects/rate_limits.rb +32 -20
- data/lib/openai/resources/admin/organization/projects/roles.rb +35 -21
- data/lib/openai/resources/admin/organization/projects/service_accounts/api_keys.rb +10 -5
- data/lib/openai/resources/admin/organization/projects/service_accounts.rb +40 -19
- data/lib/openai/resources/admin/organization/projects/spend_alerts.rb +42 -24
- data/lib/openai/resources/admin/organization/projects/spend_limit.rb +13 -10
- data/lib/openai/resources/admin/organization/projects/users/roles.rb +29 -18
- data/lib/openai/resources/admin/organization/projects/users.rb +32 -18
- data/lib/openai/resources/admin/organization/projects.rb +40 -22
- data/lib/openai/resources/admin/organization/roles.rb +25 -15
- data/lib/openai/resources/admin/organization/spend_alerts.rb +32 -18
- data/lib/openai/resources/admin/organization/spend_limit.rb +7 -6
- data/lib/openai/resources/admin/organization/usage.rb +296 -145
- data/lib/openai/resources/admin/organization/users/roles.rb +21 -13
- data/lib/openai/resources/admin/organization/users.rb +24 -13
- data/lib/openai/resources/audio/speech.rb +25 -10
- data/lib/openai/resources/audio/transcriptions.rb +172 -56
- data/lib/openai/resources/audio/translations.rb +26 -8
- data/lib/openai/resources/batches.rb +43 -15
- data/lib/openai/resources/beta/assistants.rb +177 -59
- data/lib/openai/resources/beta/chatkit/sessions.rb +14 -9
- data/lib/openai/resources/beta/chatkit/threads.rb +29 -18
- data/lib/openai/resources/beta/responses/input_items.rb +17 -9
- data/lib/openai/resources/beta/responses/input_tokens.rb +65 -28
- data/lib/openai/resources/beta/responses.rb +640 -195
- data/lib/openai/resources/beta/threads/messages.rb +65 -30
- data/lib/openai/resources/beta/threads/runs/steps.rb +50 -23
- data/lib/openai/resources/beta/threads/runs.rb +309 -109
- data/lib/openai/resources/beta/threads.rb +240 -78
- data/lib/openai/resources/chat/completions/messages.rb +9 -7
- data/lib/openai/resources/chat/completions.rb +594 -169
- data/lib/openai/resources/completions.rb +212 -40
- data/lib/openai/resources/containers/files.rb +19 -11
- data/lib/openai/resources/containers.rb +27 -14
- data/lib/openai/resources/content_provenance_checks.rb +7 -2
- data/lib/openai/resources/conversations/items.rb +58 -26
- data/lib/openai/resources/conversations.rb +23 -12
- data/lib/openai/resources/embeddings.rb +26 -8
- data/lib/openai/resources/evals/runs/output_items.rb +21 -12
- data/lib/openai/resources/evals/runs.rb +37 -21
- data/lib/openai/resources/evals.rb +43 -23
- data/lib/openai/resources/files.rb +42 -21
- data/lib/openai/resources/fine_tuning/alpha/graders.rb +15 -7
- data/lib/openai/resources/fine_tuning/checkpoints/permissions.rb +36 -34
- data/lib/openai/resources/fine_tuning/jobs/checkpoints.rb +6 -6
- data/lib/openai/resources/fine_tuning/jobs.rb +84 -42
- data/lib/openai/resources/images.rb +423 -131
- data/lib/openai/resources/models.rb +4 -2
- data/lib/openai/resources/moderations.rb +10 -6
- data/lib/openai/resources/realtime/calls.rb +114 -48
- data/lib/openai/resources/realtime/client_secrets.rb +9 -6
- data/lib/openai/resources/responses/input_items.rb +15 -8
- data/lib/openai/resources/responses/input_tokens.rb +60 -26
- data/lib/openai/resources/responses.rb +601 -262
- data/lib/openai/resources/safety/alerts.rb +2 -1
- data/lib/openai/resources/skills/content.rb +2 -1
- data/lib/openai/resources/skills/versions/content.rb +4 -2
- data/lib/openai/resources/skills/versions.rb +26 -11
- data/lib/openai/resources/skills.rb +21 -11
- data/lib/openai/resources/uploads/parts.rb +13 -9
- data/lib/openai/resources/uploads.rb +35 -27
- data/lib/openai/resources/vector_stores/file_batches.rb +60 -26
- data/lib/openai/resources/vector_stores/files.rb +62 -31
- data/lib/openai/resources/vector_stores.rb +67 -34
- data/lib/openai/resources/videos.rb +64 -31
- data/lib/openai/version.rb +1 -1
- data/local-audio.md +146 -0
- data/rbi/openai/helpers/local_audio/interface.rbi +110 -0
- data/rbi/openai/helpers/realtime/connection.rbi +18 -2
- data/rbi/openai/helpers/realtime/extensions.rbi +8 -0
- data/rbi/openai/helpers/realtime/recovery.rbi +27 -0
- data/rbi/openai/models/admin/organization/audit_log_list_params.rbi +2 -2
- data/rbi/openai/models/admin/organization/project_create_params.rbi +4 -4
- data/rbi/openai/models/admin/organization/projects/project_api_key.rbi +13 -1
- data/rbi/openai/models/admin/organization/projects/service_account_create_params.rbi +18 -0
- data/rbi/openai/models/admin/organization/projects/service_account_create_response.rbi +19 -1
- data/rbi/openai/models/audio/speech_create_params.rbi +9 -6
- data/rbi/openai/models/audio/transcription_create_params.rbi +2 -2
- data/rbi/openai/models/audio/transcription_stream_event.rbi +1 -1
- data/rbi/openai/models/audio/transcription_text_delta_event.rbi +3 -3
- data/rbi/openai/models/audio/transcription_text_done_event.rbi +3 -3
- data/rbi/openai/models/audio/transcription_text_segment_event.rbi +1 -1
- data/rbi/openai/models/audio/translation_create_params.rbi +2 -2
- data/rbi/openai/models/batch.rbi +4 -4
- data/rbi/openai/models/batch_create_params.rbi +6 -4
- data/rbi/openai/models/batch_usage.rbi +2 -2
- data/rbi/openai/models/beta/assistant.rbi +24 -24
- data/rbi/openai/models/beta/assistant_create_params.rbi +40 -40
- data/rbi/openai/models/beta/assistant_response_format_option.rbi +4 -4
- data/rbi/openai/models/beta/assistant_stream_event.rbi +63 -65
- data/rbi/openai/models/beta/assistant_update_params.rbi +30 -30
- data/rbi/openai/models/beta/beta_computer_tool.rbi +1 -1
- data/rbi/openai/models/beta/beta_computer_use_preview_tool.rbi +1 -1
- data/rbi/openai/models/beta/beta_custom_tool.rbi +1 -1
- data/rbi/openai/models/beta/beta_file_search_tool.rbi +1 -1
- data/rbi/openai/models/beta/beta_function_tool.rbi +1 -1
- data/rbi/openai/models/beta/beta_response.rbi +72 -64
- data/rbi/openai/models/beta/beta_response_compaction_item.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_compaction_item_param.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_computer_tool_call.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_file_search_tool_call.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_format_text_config.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_format_text_json_schema_config.rbi +3 -3
- data/rbi/openai/models/beta/beta_response_function_tool_call.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_function_tool_call_item.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_function_web_search.rbi +2 -2
- data/rbi/openai/models/beta/beta_response_input_image.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_input_image_content.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_input_item.rbi +86 -1
- data/rbi/openai/models/beta/beta_response_item.rbi +78 -1
- data/rbi/openai/models/beta/beta_response_output_item.rbi +84 -1
- data/rbi/openai/models/beta/beta_response_prompt.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_reasoning_item.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_text_config.rbi +4 -4
- data/rbi/openai/models/beta/beta_response_usage.rbi +2 -2
- data/rbi/openai/models/beta/beta_responses_client_event.rbi +98 -84
- data/rbi/openai/models/beta/beta_tool.rbi +94 -55
- data/rbi/openai/models/beta/beta_tool_choice_types.rbi +4 -4
- data/rbi/openai/models/beta/beta_web_search_preview_tool.rbi +1 -1
- data/rbi/openai/models/beta/beta_web_search_tool.rbi +1 -1
- data/rbi/openai/models/beta/file_search_tool.rbi +5 -5
- data/rbi/openai/models/beta/message_stream_event.rbi +16 -16
- data/rbi/openai/models/beta/response_compact_params.rbi +44 -44
- data/rbi/openai/models/beta/response_create_params.rbi +96 -82
- data/rbi/openai/models/beta/responses/input_token_count_params.rbi +20 -20
- data/rbi/openai/models/beta/run_step_stream_event.rbi +14 -16
- data/rbi/openai/models/beta/run_stream_event.rbi +31 -31
- data/rbi/openai/models/beta/thread.rbi +9 -9
- data/rbi/openai/models/beta/thread_create_and_run_params.rbi +61 -56
- data/rbi/openai/models/beta/thread_create_params.rbi +24 -22
- data/rbi/openai/models/beta/thread_stream_event.rbi +3 -3
- data/rbi/openai/models/beta/thread_update_params.rbi +8 -8
- data/rbi/openai/models/beta/threads/image_file.rbi +6 -6
- data/rbi/openai/models/beta/threads/image_file_content_block.rbi +3 -2
- data/rbi/openai/models/beta/threads/image_file_delta.rbi +6 -6
- data/rbi/openai/models/beta/threads/image_file_delta_block.rbi +3 -2
- data/rbi/openai/models/beta/threads/message.rbi +9 -9
- data/rbi/openai/models/beta/threads/message_content.rbi +3 -2
- data/rbi/openai/models/beta/threads/message_content_delta.rbi +3 -2
- data/rbi/openai/models/beta/threads/message_content_part_param.rbi +3 -2
- data/rbi/openai/models/beta/threads/required_action_function_tool_call.rbi +2 -2
- data/rbi/openai/models/beta/threads/run.rbi +33 -31
- data/rbi/openai/models/beta/threads/run_create_params.rbi +37 -34
- data/rbi/openai/models/beta/threads/runs/code_interpreter_output_image.rbi +4 -4
- data/rbi/openai/models/beta/threads/runs/code_interpreter_tool_call.rbi +4 -4
- data/rbi/openai/models/beta/threads/runs/function_tool_call.rbi +2 -4
- data/rbi/openai/models/beta/threads/runs/function_tool_call_delta.rbi +2 -4
- data/rbi/openai/models/beta/threads/runs/run_step.rbi +12 -10
- data/rbi/openai/models/beta/threads/runs/step_list_params.rbi +2 -2
- data/rbi/openai/models/beta/threads/runs/step_retrieve_params.rbi +2 -2
- data/rbi/openai/models/chat/chat_completion.rbi +27 -21
- data/rbi/openai/models/chat/chat_completion_assistant_message_param.rbi +4 -5
- data/rbi/openai/models/chat/chat_completion_audio.rbi +1 -1
- data/rbi/openai/models/chat/chat_completion_audio_param.rbi +1 -1
- data/rbi/openai/models/chat/chat_completion_chunk.rbi +28 -22
- data/rbi/openai/models/chat/chat_completion_content_part.rbi +3 -4
- data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +5 -4
- data/rbi/openai/models/chat/chat_completion_content_part_input_audio.rbi +1 -1
- data/rbi/openai/models/chat/chat_completion_content_part_text.rbi +1 -2
- data/rbi/openai/models/chat/chat_completion_message.rbi +4 -4
- data/rbi/openai/models/chat/chat_completion_store_message.rbi +3 -4
- data/rbi/openai/models/chat/completion_create_params.rbi +95 -85
- data/rbi/openai/models/completion_create_params.rbi +34 -32
- data/rbi/openai/models/conversations/conversation_item.rbi +89 -2
- data/rbi/openai/models/conversations/item_create_params.rbi +2 -2
- data/rbi/openai/models/conversations/item_retrieve_params.rbi +2 -2
- data/rbi/openai/models/embedding.rbi +2 -2
- data/rbi/openai/models/embedding_create_params.rbi +14 -14
- data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +5 -5
- data/rbi/openai/models/evals/run_cancel_response.rbi +22 -20
- data/rbi/openai/models/evals/run_create_params.rbi +22 -20
- data/rbi/openai/models/evals/run_create_response.rbi +22 -20
- data/rbi/openai/models/evals/run_list_response.rbi +22 -20
- data/rbi/openai/models/evals/run_retrieve_response.rbi +22 -20
- data/rbi/openai/models/fine_tuning/alpha/grader_run_params.rbi +10 -8
- data/rbi/openai/models/fine_tuning/fine_tuning_job.rbi +6 -6
- data/rbi/openai/models/fine_tuning/job_create_params.rbi +17 -15
- data/rbi/openai/models/function_definition.rbi +6 -6
- data/rbi/openai/models/graders/score_model_grader.rbi +2 -2
- data/rbi/openai/models/image_create_variation_params.rbi +2 -2
- data/rbi/openai/models/image_edit_completed_event.rbi +20 -9
- data/rbi/openai/models/image_edit_params.rbi +91 -62
- data/rbi/openai/models/image_edit_partial_image_event.rbi +20 -9
- data/rbi/openai/models/image_gen_completed_event.rbi +20 -9
- data/rbi/openai/models/image_gen_partial_image_event.rbi +20 -9
- data/rbi/openai/models/image_generate_params.rbi +73 -50
- data/rbi/openai/models/image_model.rbi +4 -0
- data/rbi/openai/models/images_response.rbi +27 -16
- data/rbi/openai/models/moderation_create_params.rbi +9 -9
- data/rbi/openai/models/realtime/audio_transcription.rbi +2 -2
- data/rbi/openai/models/realtime/call_accept_params.rbi +1 -1
- data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +1 -1
- data/rbi/openai/models/realtime/realtime_audio_config_input.rbi +2 -2
- data/rbi/openai/models/realtime/realtime_response_create_mcp_tool.rbi +4 -4
- data/rbi/openai/models/realtime/realtime_response_create_params.rbi +3 -3
- data/rbi/openai/models/realtime/realtime_server_event.rbi +3 -3
- data/rbi/openai/models/realtime/realtime_session.rbi +4 -4
- data/rbi/openai/models/realtime/realtime_session_create_request.rbi +2 -2
- data/rbi/openai/models/realtime/realtime_session_create_response.rbi +7 -7
- data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +5 -5
- data/rbi/openai/models/realtime/realtime_transcription_session_audio_input.rbi +2 -2
- data/rbi/openai/models/reasoning.rbi +3 -3
- data/rbi/openai/models/reasoning_effort.rbi +1 -1
- data/rbi/openai/models/response_format_json_schema.rbi +3 -3
- data/rbi/openai/models/response_format_text_grammar.rbi +1 -1
- data/rbi/openai/models/response_format_text_python.rbi +1 -1
- data/rbi/openai/models/responses/computer_tool.rbi +1 -1
- data/rbi/openai/models/responses/computer_use_preview_tool.rbi +1 -1
- data/rbi/openai/models/responses/custom_tool.rbi +1 -1
- data/rbi/openai/models/responses/file_search_tool.rbi +1 -1
- data/rbi/openai/models/responses/function_tool.rbi +1 -1
- data/rbi/openai/models/responses/input_token_count_params.rbi +16 -16
- data/rbi/openai/models/responses/response.rbi +66 -58
- data/rbi/openai/models/responses/response_compact_params.rbi +44 -44
- data/rbi/openai/models/responses/response_compaction_item.rbi +1 -1
- data/rbi/openai/models/responses/response_compaction_item_param.rbi +1 -1
- data/rbi/openai/models/responses/response_computer_tool_call.rbi +1 -1
- data/rbi/openai/models/responses/response_create_params.rbi +90 -76
- data/rbi/openai/models/responses/response_file_search_tool_call.rbi +1 -1
- data/rbi/openai/models/responses/response_format_text_config.rbi +1 -1
- data/rbi/openai/models/responses/response_format_text_json_schema_config.rbi +3 -3
- data/rbi/openai/models/responses/response_function_tool_call.rbi +1 -1
- data/rbi/openai/models/responses/response_function_tool_call_item.rbi +1 -1
- data/rbi/openai/models/responses/response_function_web_search.rbi +2 -2
- data/rbi/openai/models/responses/response_input_image.rbi +1 -1
- data/rbi/openai/models/responses/response_input_image_content.rbi +1 -1
- data/rbi/openai/models/responses/response_input_item.rbi +88 -1
- data/rbi/openai/models/responses/response_item.rbi +80 -1
- data/rbi/openai/models/responses/response_output_item.rbi +84 -1
- data/rbi/openai/models/responses/response_prompt.rbi +1 -1
- data/rbi/openai/models/responses/response_reasoning_item.rbi +1 -1
- data/rbi/openai/models/responses/response_text_config.rbi +4 -4
- data/rbi/openai/models/responses/response_usage.rbi +2 -2
- data/rbi/openai/models/responses/responses_client_event.rbi +92 -78
- data/rbi/openai/models/responses/tool.rbi +94 -55
- data/rbi/openai/models/responses/tool_choice_types.rbi +4 -4
- data/rbi/openai/models/responses/web_search_preview_tool.rbi +1 -1
- data/rbi/openai/models/responses/web_search_tool.rbi +1 -1
- data/rbi/openai/models/upload.rbi +2 -2
- data/rbi/openai/models/upload_create_params.rbi +2 -2
- data/rbi/openai/models/vector_store_create_params.rbi +6 -6
- data/rbi/openai/models/vector_stores/file_batch_create_params.rbi +18 -18
- data/rbi/openai/models/vector_stores/file_create_params.rbi +6 -6
- data/rbi/openai/models/vector_stores/vector_store_file.rbi +4 -4
- data/rbi/openai/models/vector_stores/vector_store_file_batch.rbi +4 -4
- data/rbi/openai/models/webhooks/live_call_incoming_webhook_event.rbi +10 -6
- data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +14 -6
- data/rbi/openai/resources/admin/organization/audit_logs.rbi +1 -1
- data/rbi/openai/resources/admin/organization/projects/service_accounts.rbi +7 -0
- data/rbi/openai/resources/admin/organization/projects.rbi +2 -2
- data/rbi/openai/resources/audio/speech.rbi +3 -2
- data/rbi/openai/resources/audio/transcriptions.rbi +2 -2
- data/rbi/openai/resources/audio/translations.rbi +1 -1
- data/rbi/openai/resources/batches.rbi +3 -2
- data/rbi/openai/resources/beta/assistants.rbi +18 -18
- data/rbi/openai/resources/beta/responses/input_tokens.rbi +6 -6
- data/rbi/openai/resources/beta/responses.rbi +112 -102
- data/rbi/openai/resources/beta/threads/messages.rbi +9 -6
- data/rbi/openai/resources/beta/threads/runs/steps.rbi +2 -2
- data/rbi/openai/resources/beta/threads/runs.rbi +37 -33
- data/rbi/openai/resources/beta/threads.rbi +27 -24
- data/rbi/openai/resources/chat/completions.rbi +90 -82
- data/rbi/openai/resources/completions.rbi +30 -28
- data/rbi/openai/resources/content_provenance_checks.rbi +1 -1
- data/rbi/openai/resources/conversations/items.rbi +2 -2
- data/rbi/openai/resources/embeddings.rbi +5 -5
- data/rbi/openai/resources/evals.rbi +1 -1
- data/rbi/openai/resources/files.rbi +5 -5
- data/rbi/openai/resources/fine_tuning/alpha/graders.rbi +5 -4
- data/rbi/openai/resources/fine_tuning/checkpoints/permissions.rbi +8 -4
- data/rbi/openai/resources/fine_tuning/jobs.rbi +10 -9
- data/rbi/openai/resources/images.rbi +113 -83
- data/rbi/openai/resources/moderations.rbi +5 -4
- data/rbi/openai/resources/realtime/calls.rbi +6 -6
- data/rbi/openai/resources/realtime/client_secrets.rbi +1 -1
- data/rbi/openai/resources/responses/input_tokens.rbi +6 -6
- data/rbi/openai/resources/responses.rbi +112 -100
- data/rbi/openai/resources/uploads/parts.rbi +5 -4
- data/rbi/openai/resources/uploads.rbi +10 -10
- data/rbi/openai/resources/vector_stores/file_batches.rbi +6 -6
- data/rbi/openai/resources/vector_stores/files.rbi +6 -6
- data/rbi/openai/resources/vector_stores.rbi +3 -3
- data/realtime.md +101 -0
- data/responses-websocket.md +182 -0
- data/sig/openai/helpers/local_audio/interface.rbs +62 -0
- data/sig/openai/helpers/realtime/connection.rbs +9 -1
- data/sig/openai/helpers/realtime/extensions.rbs +4 -0
- data/sig/openai/helpers/realtime/recovery.rbs +19 -0
- data/sig/openai/models/admin/organization/projects/project_api_key.rbs +7 -2
- data/sig/openai/models/admin/organization/projects/service_account_create_params.rbs +5 -0
- data/sig/openai/models/admin/organization/projects/service_account_create_response.rbs +7 -2
- data/sig/openai/models/beta/beta_response_input_item.rbs +39 -2
- data/sig/openai/models/beta/beta_response_item.rbs +39 -2
- data/sig/openai/models/beta/beta_response_output_item.rbs +39 -2
- data/sig/openai/models/beta/beta_tool.rbs +11 -1
- data/sig/openai/models/conversations/conversation_item.rbs +39 -2
- data/sig/openai/models/image_edit_completed_event.rbs +11 -4
- data/sig/openai/models/image_edit_params.rbs +3 -1
- data/sig/openai/models/image_edit_partial_image_event.rbs +11 -4
- data/sig/openai/models/image_gen_completed_event.rbs +11 -4
- data/sig/openai/models/image_gen_partial_image_event.rbs +11 -4
- data/sig/openai/models/image_generate_params.rbs +4 -1
- data/sig/openai/models/image_model.rbs +8 -0
- data/sig/openai/models/images_response.rbs +10 -4
- data/sig/openai/models/responses/response_input_item.rbs +39 -2
- data/sig/openai/models/responses/response_item.rbs +39 -2
- data/sig/openai/models/responses/response_output_item.rbs +39 -2
- data/sig/openai/models/responses/tool.rbs +11 -1
- data/sig/openai/resources/admin/organization/projects/service_accounts.rbs +1 -0
- metadata +15 -1
|
@@ -9,24 +9,36 @@ module OpenAI
|
|
|
9
9
|
# @return [OpenAI::Resources::VectorStores::FileBatches]
|
|
10
10
|
attr_reader :file_batches
|
|
11
11
|
|
|
12
|
-
# Some parameter documentations has been truncated, see
|
|
13
|
-
# {OpenAI::Models::VectorStoreCreateParams} for more details.
|
|
14
|
-
#
|
|
15
12
|
# Create a vector store.
|
|
16
13
|
#
|
|
17
14
|
# @overload create(chunking_strategy: nil, description: nil, expires_after: nil, file_ids: nil, metadata: nil, name: nil, request_options: {})
|
|
18
15
|
#
|
|
19
|
-
# @param chunking_strategy [OpenAI::Models::AutoFileChunkingStrategyParam, OpenAI::Models::StaticFileChunkingStrategyObjectParam]
|
|
16
|
+
# @param chunking_strategy [OpenAI::Models::AutoFileChunkingStrategyParam, OpenAI::Models::StaticFileChunkingStrategyObjectParam]
|
|
17
|
+
# The chunking strategy used to chunk the file(s). If not set, will use the `auto`
|
|
18
|
+
# strategy. Only applicable if `file_ids` is non-empty.
|
|
19
|
+
#
|
|
20
|
+
# @param description [String]
|
|
21
|
+
# A description for the vector store. Can be used to describe the vector store's
|
|
22
|
+
# purpose.
|
|
20
23
|
#
|
|
21
|
-
# @param
|
|
24
|
+
# @param expires_after [OpenAI::Models::VectorStoreCreateParams::ExpiresAfter]
|
|
25
|
+
# The expiration policy for a vector store.
|
|
22
26
|
#
|
|
23
|
-
# @param
|
|
27
|
+
# @param file_ids [Array<String>]
|
|
28
|
+
# A list of [File](https://developers.openai.com/api/reference/resources/files)
|
|
29
|
+
# IDs that the vector store should use. Useful for tools like `file_search` that
|
|
30
|
+
# can access files.
|
|
24
31
|
#
|
|
25
|
-
# @param
|
|
32
|
+
# @param metadata [Hash{Symbol=>String}, nil]
|
|
33
|
+
# Set of 16 key-value pairs that can be attached to an object. This can be useful
|
|
34
|
+
# for storing additional information about the object in a structured format, and
|
|
35
|
+
# querying for objects via API or the dashboard.
|
|
26
36
|
#
|
|
27
|
-
#
|
|
37
|
+
# Keys are strings with a maximum length of 64 characters. Values are strings with
|
|
38
|
+
# a maximum length of 512 characters.
|
|
28
39
|
#
|
|
29
|
-
# @param name [String]
|
|
40
|
+
# @param name [String]
|
|
41
|
+
# The name of the vector store.
|
|
30
42
|
#
|
|
31
43
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
32
44
|
#
|
|
@@ -49,7 +61,8 @@ module OpenAI
|
|
|
49
61
|
#
|
|
50
62
|
# @overload retrieve(vector_store_id, request_options: {})
|
|
51
63
|
#
|
|
52
|
-
# @param vector_store_id [String]
|
|
64
|
+
# @param vector_store_id [String]
|
|
65
|
+
# The ID of the vector store to retrieve.
|
|
53
66
|
#
|
|
54
67
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
55
68
|
#
|
|
@@ -66,20 +79,26 @@ module OpenAI
|
|
|
66
79
|
)
|
|
67
80
|
end
|
|
68
81
|
|
|
69
|
-
# Some parameter documentations has been truncated, see
|
|
70
|
-
# {OpenAI::Models::VectorStoreUpdateParams} for more details.
|
|
71
|
-
#
|
|
72
82
|
# Modifies a vector store.
|
|
73
83
|
#
|
|
74
84
|
# @overload update(vector_store_id, expires_after: nil, metadata: nil, name: nil, request_options: {})
|
|
75
85
|
#
|
|
76
|
-
# @param vector_store_id [String]
|
|
86
|
+
# @param vector_store_id [String]
|
|
87
|
+
# The ID of the vector store to modify.
|
|
77
88
|
#
|
|
78
|
-
# @param expires_after [OpenAI::Models::VectorStoreUpdateParams::ExpiresAfter, nil]
|
|
89
|
+
# @param expires_after [OpenAI::Models::VectorStoreUpdateParams::ExpiresAfter, nil]
|
|
90
|
+
# The expiration policy for a vector store.
|
|
79
91
|
#
|
|
80
|
-
# @param metadata [Hash{Symbol=>String}, nil]
|
|
92
|
+
# @param metadata [Hash{Symbol=>String}, nil]
|
|
93
|
+
# Set of 16 key-value pairs that can be attached to an object. This can be useful
|
|
94
|
+
# for storing additional information about the object in a structured format, and
|
|
95
|
+
# querying for objects via API or the dashboard.
|
|
81
96
|
#
|
|
82
|
-
#
|
|
97
|
+
# Keys are strings with a maximum length of 64 characters. Values are strings with
|
|
98
|
+
# a maximum length of 512 characters.
|
|
99
|
+
#
|
|
100
|
+
# @param name [String, nil]
|
|
101
|
+
# The name of the vector store.
|
|
83
102
|
#
|
|
84
103
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
85
104
|
#
|
|
@@ -98,20 +117,29 @@ module OpenAI
|
|
|
98
117
|
)
|
|
99
118
|
end
|
|
100
119
|
|
|
101
|
-
# Some parameter documentations has been truncated, see
|
|
102
|
-
# {OpenAI::Models::VectorStoreListParams} for more details.
|
|
103
|
-
#
|
|
104
120
|
# Returns a list of vector stores.
|
|
105
121
|
#
|
|
106
122
|
# @overload list(after: nil, before: nil, limit: nil, order: nil, request_options: {})
|
|
107
123
|
#
|
|
108
|
-
# @param after [String]
|
|
124
|
+
# @param after [String]
|
|
125
|
+
# A cursor for use in pagination. `after` is an object ID that defines your place
|
|
126
|
+
# in the list. For instance, if you make a list request and receive 100 objects,
|
|
127
|
+
# ending with obj_foo, your subsequent call can include after=obj_foo in order to
|
|
128
|
+
# fetch the next page of the list.
|
|
109
129
|
#
|
|
110
|
-
# @param before [String]
|
|
130
|
+
# @param before [String]
|
|
131
|
+
# A cursor for use in pagination. `before` is an object ID that defines your place
|
|
132
|
+
# in the list. For instance, if you make a list request and receive 100 objects,
|
|
133
|
+
# starting with obj_foo, your subsequent call can include before=obj_foo in order
|
|
134
|
+
# to fetch the previous page of the list.
|
|
111
135
|
#
|
|
112
|
-
# @param limit [Integer]
|
|
136
|
+
# @param limit [Integer]
|
|
137
|
+
# A limit on the number of objects to be returned. Limit can range between 1 and
|
|
138
|
+
# 100, and the default is 20.
|
|
113
139
|
#
|
|
114
|
-
# @param order [Symbol, OpenAI::Models::VectorStoreListParams::Order]
|
|
140
|
+
# @param order [Symbol, OpenAI::Models::VectorStoreListParams::Order]
|
|
141
|
+
# Sort order by the `created_at` timestamp of the objects. `asc` for ascending
|
|
142
|
+
# order and `desc` for descending order.
|
|
115
143
|
#
|
|
116
144
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
117
145
|
#
|
|
@@ -136,7 +164,8 @@ module OpenAI
|
|
|
136
164
|
#
|
|
137
165
|
# @overload delete(vector_store_id, request_options: {})
|
|
138
166
|
#
|
|
139
|
-
# @param vector_store_id [String]
|
|
167
|
+
# @param vector_store_id [String]
|
|
168
|
+
# The ID of the vector store to delete.
|
|
140
169
|
#
|
|
141
170
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
142
171
|
#
|
|
@@ -153,25 +182,29 @@ module OpenAI
|
|
|
153
182
|
)
|
|
154
183
|
end
|
|
155
184
|
|
|
156
|
-
# Some parameter documentations has been truncated, see
|
|
157
|
-
# {OpenAI::Models::VectorStoreSearchParams} for more details.
|
|
158
|
-
#
|
|
159
185
|
# Search a vector store for relevant chunks based on a query and file attributes
|
|
160
186
|
# filter.
|
|
161
187
|
#
|
|
162
188
|
# @overload search(vector_store_id, query:, filters: nil, max_num_results: nil, ranking_options: nil, rewrite_query: nil, request_options: {})
|
|
163
189
|
#
|
|
164
|
-
# @param vector_store_id [String]
|
|
190
|
+
# @param vector_store_id [String]
|
|
191
|
+
# The ID of the vector store to search.
|
|
165
192
|
#
|
|
166
|
-
# @param query [String, Array<String>]
|
|
193
|
+
# @param query [String, Array<String>]
|
|
194
|
+
# A query string for a search
|
|
167
195
|
#
|
|
168
|
-
# @param filters [OpenAI::Models::ComparisonFilter, OpenAI::Models::CompoundFilter]
|
|
196
|
+
# @param filters [OpenAI::Models::ComparisonFilter, OpenAI::Models::CompoundFilter]
|
|
197
|
+
# A filter to apply based on file attributes.
|
|
169
198
|
#
|
|
170
|
-
# @param max_num_results [Integer]
|
|
199
|
+
# @param max_num_results [Integer]
|
|
200
|
+
# The maximum number of results to return. This number should be between 1 and 50
|
|
201
|
+
# inclusive.
|
|
171
202
|
#
|
|
172
|
-
# @param ranking_options [OpenAI::Models::VectorStoreSearchParams::RankingOptions]
|
|
203
|
+
# @param ranking_options [OpenAI::Models::VectorStoreSearchParams::RankingOptions]
|
|
204
|
+
# Ranking options for search.
|
|
173
205
|
#
|
|
174
|
-
# @param rewrite_query [Boolean]
|
|
206
|
+
# @param rewrite_query [Boolean]
|
|
207
|
+
# Whether to rewrite the natural language query for vector search.
|
|
175
208
|
#
|
|
176
209
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
177
210
|
#
|
|
@@ -7,9 +7,6 @@ module OpenAI
|
|
|
7
7
|
class Videos
|
|
8
8
|
# @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.
|
|
9
9
|
#
|
|
10
|
-
# Some parameter documentations has been truncated, see
|
|
11
|
-
# {OpenAI::Models::VideoCreateParams} for more details.
|
|
12
|
-
#
|
|
13
10
|
# Create a new video generation job from a prompt and optional reference assets.
|
|
14
11
|
#
|
|
15
12
|
# `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
|
|
@@ -18,15 +15,26 @@ module OpenAI
|
|
|
18
15
|
#
|
|
19
16
|
# @overload create(prompt:, input_reference: nil, model: nil, seconds: nil, size: nil, request_options: {})
|
|
20
17
|
#
|
|
21
|
-
# @param prompt [String]
|
|
18
|
+
# @param prompt [String]
|
|
19
|
+
# Text prompt that describes the video to generate.
|
|
20
|
+
#
|
|
21
|
+
# @param input_reference [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::ImageInputReferenceParam]
|
|
22
|
+
# Optional reference asset upload or reference object that guides generation.
|
|
22
23
|
#
|
|
23
|
-
#
|
|
24
|
+
# `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
|
|
25
|
+
# metadata. Use `OpenAI::FilePart` when you need to override the filename or
|
|
26
|
+
# content type.
|
|
24
27
|
#
|
|
25
|
-
# @param model [String, Symbol, OpenAI::Models::VideoModel]
|
|
28
|
+
# @param model [String, Symbol, OpenAI::Models::VideoModel]
|
|
29
|
+
# The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults
|
|
30
|
+
# to `sora-2`.
|
|
26
31
|
#
|
|
27
|
-
# @param seconds [Symbol, OpenAI::Models::VideoSeconds]
|
|
32
|
+
# @param seconds [Symbol, OpenAI::Models::VideoSeconds]
|
|
33
|
+
# Clip duration in seconds (allowed values: 4, 8, 12). Defaults to 4 seconds.
|
|
28
34
|
#
|
|
29
|
-
# @param size [Symbol, OpenAI::Models::VideoSize]
|
|
35
|
+
# @param size [Symbol, OpenAI::Models::VideoSize]
|
|
36
|
+
# Output resolution formatted as width x height (allowed values: 720x1280,
|
|
37
|
+
# 1280x720, 1024x1792, 1792x1024). Defaults to 720x1280.
|
|
30
38
|
#
|
|
31
39
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
32
40
|
#
|
|
@@ -52,7 +60,8 @@ module OpenAI
|
|
|
52
60
|
#
|
|
53
61
|
# @overload retrieve(video_id, request_options: {})
|
|
54
62
|
#
|
|
55
|
-
# @param video_id [String]
|
|
63
|
+
# @param video_id [String]
|
|
64
|
+
# The identifier of the video to retrieve.
|
|
56
65
|
#
|
|
57
66
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
58
67
|
#
|
|
@@ -71,18 +80,19 @@ module OpenAI
|
|
|
71
80
|
|
|
72
81
|
# @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.
|
|
73
82
|
#
|
|
74
|
-
# Some parameter documentations has been truncated, see
|
|
75
|
-
# {OpenAI::Models::VideoListParams} for more details.
|
|
76
|
-
#
|
|
77
83
|
# List recently generated videos for the current project.
|
|
78
84
|
#
|
|
79
85
|
# @overload list(after: nil, limit: nil, order: nil, request_options: {})
|
|
80
86
|
#
|
|
81
|
-
# @param after [String]
|
|
87
|
+
# @param after [String]
|
|
88
|
+
# Identifier for the last item from the previous pagination request
|
|
82
89
|
#
|
|
83
|
-
# @param limit [Integer]
|
|
90
|
+
# @param limit [Integer]
|
|
91
|
+
# Number of items to retrieve
|
|
84
92
|
#
|
|
85
|
-
# @param order [Symbol, OpenAI::Models::VideoListParams::Order]
|
|
93
|
+
# @param order [Symbol, OpenAI::Models::VideoListParams::Order]
|
|
94
|
+
# Sort order of results by timestamp. Use `asc` for ascending order or `desc` for
|
|
95
|
+
# descending order.
|
|
86
96
|
#
|
|
87
97
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
88
98
|
#
|
|
@@ -109,7 +119,8 @@ module OpenAI
|
|
|
109
119
|
#
|
|
110
120
|
# @overload delete(video_id, request_options: {})
|
|
111
121
|
#
|
|
112
|
-
# @param video_id [String]
|
|
122
|
+
# @param video_id [String]
|
|
123
|
+
# The identifier of the video to delete.
|
|
113
124
|
#
|
|
114
125
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
115
126
|
#
|
|
@@ -136,9 +147,15 @@ module OpenAI
|
|
|
136
147
|
#
|
|
137
148
|
# @overload create_character(name:, video:, request_options: {})
|
|
138
149
|
#
|
|
139
|
-
# @param name [String]
|
|
150
|
+
# @param name [String]
|
|
151
|
+
# Display name for this API character.
|
|
152
|
+
#
|
|
153
|
+
# @param video [Pathname, StringIO, IO, String, OpenAI::FilePart]
|
|
154
|
+
# Video file used to create a character.
|
|
140
155
|
#
|
|
141
|
-
#
|
|
156
|
+
# `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
|
|
157
|
+
# metadata. Use `OpenAI::FilePart` when you need to override the filename or
|
|
158
|
+
# content type.
|
|
142
159
|
#
|
|
143
160
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
144
161
|
#
|
|
@@ -166,9 +183,11 @@ module OpenAI
|
|
|
166
183
|
#
|
|
167
184
|
# @overload download_content(video_id, variant: nil, request_options: {})
|
|
168
185
|
#
|
|
169
|
-
# @param video_id [String]
|
|
186
|
+
# @param video_id [String]
|
|
187
|
+
# The identifier of the video whose media to download.
|
|
170
188
|
#
|
|
171
|
-
# @param variant [Symbol, OpenAI::Models::VideoDownloadContentParams::Variant]
|
|
189
|
+
# @param variant [Symbol, OpenAI::Models::VideoDownloadContentParams::Variant]
|
|
190
|
+
# Which downloadable asset to return. Defaults to the MP4 video.
|
|
172
191
|
#
|
|
173
192
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
174
193
|
#
|
|
@@ -200,9 +219,15 @@ module OpenAI
|
|
|
200
219
|
#
|
|
201
220
|
# @overload edit(prompt:, video:, request_options: {})
|
|
202
221
|
#
|
|
203
|
-
# @param prompt [String]
|
|
222
|
+
# @param prompt [String]
|
|
223
|
+
# Text prompt that describes how to edit the source video.
|
|
204
224
|
#
|
|
205
|
-
# @param video [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::VideoEditParams::Video::VideoReferenceInputParam]
|
|
225
|
+
# @param video [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::VideoEditParams::Video::VideoReferenceInputParam]
|
|
226
|
+
# Reference to the completed video to edit.
|
|
227
|
+
#
|
|
228
|
+
# `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
|
|
229
|
+
# metadata. Use `OpenAI::FilePart` when you need to override the filename or
|
|
230
|
+
# content type.
|
|
206
231
|
#
|
|
207
232
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
208
233
|
#
|
|
@@ -224,9 +249,6 @@ module OpenAI
|
|
|
224
249
|
|
|
225
250
|
# @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.
|
|
226
251
|
#
|
|
227
|
-
# Some parameter documentations has been truncated, see
|
|
228
|
-
# {OpenAI::Models::VideoExtendParams} for more details.
|
|
229
|
-
#
|
|
230
252
|
# Create an extension of a completed video.
|
|
231
253
|
#
|
|
232
254
|
# `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
|
|
@@ -235,11 +257,19 @@ module OpenAI
|
|
|
235
257
|
#
|
|
236
258
|
# @overload extend_(prompt:, seconds:, video:, request_options: {})
|
|
237
259
|
#
|
|
238
|
-
# @param prompt [String]
|
|
260
|
+
# @param prompt [String]
|
|
261
|
+
# Updated text prompt that directs the extension generation.
|
|
262
|
+
#
|
|
263
|
+
# @param seconds [Symbol, OpenAI::Models::VideoSeconds]
|
|
264
|
+
# Length of the newly generated extension segment in seconds (allowed values: 4,
|
|
265
|
+
# 8, 12, 16, 20).
|
|
239
266
|
#
|
|
240
|
-
# @param
|
|
267
|
+
# @param video [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::VideoExtendParams::Video::VideoReferenceInputParam]
|
|
268
|
+
# Reference to the completed video to extend.
|
|
241
269
|
#
|
|
242
|
-
#
|
|
270
|
+
# `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
|
|
271
|
+
# metadata. Use `OpenAI::FilePart` when you need to override the filename or
|
|
272
|
+
# content type.
|
|
243
273
|
#
|
|
244
274
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
245
275
|
#
|
|
@@ -265,7 +295,8 @@ module OpenAI
|
|
|
265
295
|
#
|
|
266
296
|
# @overload get_character(character_id, request_options: {})
|
|
267
297
|
#
|
|
268
|
-
# @param character_id [String]
|
|
298
|
+
# @param character_id [String]
|
|
299
|
+
# The identifier of the character to retrieve.
|
|
269
300
|
#
|
|
270
301
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
271
302
|
#
|
|
@@ -288,9 +319,11 @@ module OpenAI
|
|
|
288
319
|
#
|
|
289
320
|
# @overload remix(video_id, prompt:, request_options: {})
|
|
290
321
|
#
|
|
291
|
-
# @param video_id [String]
|
|
322
|
+
# @param video_id [String]
|
|
323
|
+
# The identifier of the completed video to remix.
|
|
292
324
|
#
|
|
293
|
-
# @param prompt [String]
|
|
325
|
+
# @param prompt [String]
|
|
326
|
+
# Updated text prompt that directs the remix generation.
|
|
294
327
|
#
|
|
295
328
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
296
329
|
#
|
data/lib/openai/version.rb
CHANGED
data/local-audio.md
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# Local recording and playback
|
|
2
|
+
|
|
3
|
+
Use `OpenAI::LocalAudio` to record a finite microphone clip or play generated
|
|
4
|
+
speech. These helpers run separately installed FFmpeg and FFplay executables.
|
|
5
|
+
They do not add native gem dependencies. Loading `openai` or the helper does not
|
|
6
|
+
open a device; calling `record` or `play` starts the corresponding operation.
|
|
7
|
+
|
|
8
|
+
## Setup
|
|
9
|
+
|
|
10
|
+
Install FFmpeg and FFplay and make both executables available on `PATH`. Your
|
|
11
|
+
FFmpeg build must include the capture backend for your operating system. Allow
|
|
12
|
+
microphone access in your operating system when recording.
|
|
13
|
+
|
|
14
|
+
With `OPENAI_API_KEY` configured, run:
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
bundle exec ruby examples/audio/record_and_play.rb
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
The example records five seconds, uploads the clip for transcription, prints the
|
|
21
|
+
transcript, and plays generated speech. Models and voice are constants at the top
|
|
22
|
+
of the example so they are easy to change.
|
|
23
|
+
|
|
24
|
+
## Record a clip
|
|
25
|
+
|
|
26
|
+
```ruby
|
|
27
|
+
require "openai"
|
|
28
|
+
require "openai/helpers/local_audio"
|
|
29
|
+
|
|
30
|
+
client = OpenAI::Client.new
|
|
31
|
+
clip = OpenAI::LocalAudio.record(duration: 5, timeout: 10)
|
|
32
|
+
transcript = client.audio.transcriptions.create(model: "gpt-transcribe", file: clip)
|
|
33
|
+
puts(transcript.text)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`record(duration:, device: nil, timeout: nil)` returns an `OpenAI::FilePart`
|
|
37
|
+
containing a rewound `StringIO`, named `audio.wav` with content type `audio/wav`.
|
|
38
|
+
The audio is mono, 24 kHz, signed 16-bit PCM. The helper buffers the recording in
|
|
39
|
+
memory, so memory use grows with recording duration.
|
|
40
|
+
|
|
41
|
+
`duration` is required and must be positive and finite. `timeout` is an optional
|
|
42
|
+
positive, finite wall-clock deadline in seconds. An expired deadline raises an
|
|
43
|
+
error rather than returning a partial recording.
|
|
44
|
+
|
|
45
|
+
### Choose a microphone
|
|
46
|
+
|
|
47
|
+
On macOS and Linux, omitting `device:` uses the capture backend's default device.
|
|
48
|
+
To select another microphone, pass `device:` directly:
|
|
49
|
+
|
|
50
|
+
```ruby
|
|
51
|
+
# macOS: AVFoundation audio device index (or its device name).
|
|
52
|
+
clip = OpenAI::LocalAudio.record(duration: 5, device: 0)
|
|
53
|
+
|
|
54
|
+
# Linux: ALSA device name; integer 0 is shorthand for "hw:0".
|
|
55
|
+
clip = OpenAI::LocalAudio.record(duration: 5, device: "hw:0")
|
|
56
|
+
|
|
57
|
+
# Windows: DirectShow requires an explicit audio device name.
|
|
58
|
+
clip = OpenAI::LocalAudio.record(duration: 5, device: "Microphone (USB Audio)")
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
For Windows, add the appropriate `device:` argument to the example's `record`
|
|
62
|
+
call. There is no device environment variable to configure. Device names and
|
|
63
|
+
indices are local to your machine and may change when hardware is reconnected.
|
|
64
|
+
|
|
65
|
+
List capture devices using your platform's tools:
|
|
66
|
+
|
|
67
|
+
```sh
|
|
68
|
+
# macOS (FFmpeg prints the list and exits without recording)
|
|
69
|
+
ffmpeg -f avfoundation -list_devices true -i ""
|
|
70
|
+
|
|
71
|
+
# Linux
|
|
72
|
+
arecord -L
|
|
73
|
+
|
|
74
|
+
# Windows (FFmpeg prints the list and exits without recording)
|
|
75
|
+
ffmpeg -list_devices true -f dshow -i dummy
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Play speech
|
|
79
|
+
|
|
80
|
+
```ruby
|
|
81
|
+
speech = client.audio.speech.create(
|
|
82
|
+
model: "gpt-4o-mini-tts",
|
|
83
|
+
voice: "marin",
|
|
84
|
+
input: "Recording complete."
|
|
85
|
+
)
|
|
86
|
+
OpenAI::LocalAudio.play(speech, timeout: 30)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
`play(source, format: :auto, timeout: nil)` waits for FFplay to finish and returns
|
|
90
|
+
`nil`. It accepts `IO`, `StringIO`, or a `FilePart` containing IO or binary bytes.
|
|
91
|
+
It reads from the source's current position and leaves caller-owned IO open. Bare
|
|
92
|
+
strings are not interpreted as file paths or URLs.
|
|
93
|
+
|
|
94
|
+
The default `format: :auto` supports self-contained WAV, MP3, Ogg, AAC and FLAC
|
|
95
|
+
streams. For headerless mono 24 kHz signed little-endian PCM16, pass
|
|
96
|
+
`format: :pcm`. PCM must end on a complete two-byte sample. Playback uses FFplay's
|
|
97
|
+
configured output device; this helper has no output-device selector.
|
|
98
|
+
|
|
99
|
+
Both methods close their pipes and terminate/reap owned subprocesses on errors
|
|
100
|
+
or interruption. Errors are under `OpenAI::LocalAudio::Error`:
|
|
101
|
+
`DependencyError`, `UnsupportedPlatformError`, `DeviceError`, `PlaybackError`,
|
|
102
|
+
`FormatError`, and `TimeoutError`. Media subprocesses receive a restricted
|
|
103
|
+
environment without the API key, and their diagnostics are not included in
|
|
104
|
+
exceptions. FFplay can exit successfully despite a decoder or device error, so
|
|
105
|
+
the helper drains error-level diagnostics through a pipe, retaining only whether
|
|
106
|
+
an error occurred. Diagnostic contents are discarded and never written to disk.
|
|
107
|
+
|
|
108
|
+
## Model choices
|
|
109
|
+
|
|
110
|
+
Checked against OpenAI documentation on September 8, 2026:
|
|
111
|
+
|
|
112
|
+
- [`gpt-transcribe`](https://developers.openai.com/api/docs/guides/speech-to-text) is the recommended model for general-purpose file transcription.
|
|
113
|
+
- [`gpt-4o-mini-tts`](https://developers.openai.com/api/docs/guides/text-to-speech) is the current recommended speech-generation model; `marin` is one of the recommended voices for quality.
|
|
114
|
+
|
|
115
|
+
## Realtime applications
|
|
116
|
+
|
|
117
|
+
For streaming audio and conversation events, use the existing
|
|
118
|
+
[Realtime API helpers](realtime.md) and [Realtime examples](examples/realtime/README.md).
|
|
119
|
+
The finite helpers here do not manage a continuous microphone stream,
|
|
120
|
+
interruptible voice conversation, echo cancellation, or playback-position tracking.
|
|
121
|
+
|
|
122
|
+
## End-to-end verification
|
|
123
|
+
|
|
124
|
+
Run the actual recording example against the live API without opening physical
|
|
125
|
+
devices:
|
|
126
|
+
|
|
127
|
+
```sh
|
|
128
|
+
bundle exec ruby scripts/test-local-audio-examples.rb
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
To also run the invalid-audio regression against installed FFplay:
|
|
132
|
+
|
|
133
|
+
```sh
|
|
134
|
+
OPENAI_AUDIO_FFPLAY_TEST=1 bundle exec ruby test/openai/helpers/local_audio_test.rb
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
This opt-in test requires `OPENAI_API_KEY`, FFmpeg and FFplay and makes paid API
|
|
138
|
+
calls. It generates synthetic speech, substitutes that file for microphone input,
|
|
139
|
+
runs real FFmpeg capture and transcription, generates speech, and plays it through
|
|
140
|
+
FFplay's dummy output driver. It checks the transcription and successful example
|
|
141
|
+
completion with a 90-second example deadline. Captured API output is not logged;
|
|
142
|
+
temporary synthetic media is removed on normal exit or exceptions.
|
|
143
|
+
|
|
144
|
+
This verifies the software flow, not physical microphone permissions, speaker
|
|
145
|
+
output, or device compatibility. Physical hardware and platform behavior must be
|
|
146
|
+
checked on the intended host.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module LocalAudio
|
|
5
|
+
sig {
|
|
6
|
+
params(duration: Numeric, device: T.nilable(T.any(String, Integer)), timeout: T.nilable(Numeric)).returns(
|
|
7
|
+
OpenAI::FilePart
|
|
8
|
+
)
|
|
9
|
+
}
|
|
10
|
+
def self.record(duration:, device: nil, timeout: nil)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
sig {
|
|
14
|
+
params(source: T.any(IO, StringIO, OpenAI::FilePart), format: Symbol, timeout: T.nilable(Numeric)).returns(
|
|
15
|
+
NilClass
|
|
16
|
+
)
|
|
17
|
+
}
|
|
18
|
+
def self.play(source, format: :auto, timeout: nil)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @api private
|
|
22
|
+
sig { params(source: T.any(IO, StringIO, OpenAI::FilePart)).returns(T.any(IO, StringIO)) }
|
|
23
|
+
def self.playback_source(source)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# @api private
|
|
27
|
+
sig { params(device: T.nilable(T.any(String, Integer)), platform: String).returns([String, String]) }
|
|
28
|
+
def self.capture_device(device, platform: RUBY_PLATFORM)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @api private
|
|
32
|
+
sig { params(bytes: Integer).returns(String) }
|
|
33
|
+
def self.wav_header(bytes)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# @api private
|
|
37
|
+
class MediaProcess
|
|
38
|
+
sig { returns(T::Hash[String, String]) }
|
|
39
|
+
def self.environment
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
sig { returns(Float) }
|
|
43
|
+
def self.clock
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
sig { params(value: Numeric, name: T.any(String, Symbol)).returns(Float) }
|
|
47
|
+
def self.duration(value, name:)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
sig {
|
|
51
|
+
params(
|
|
52
|
+
argv: T::Array[String],
|
|
53
|
+
input: T.any(IO, String),
|
|
54
|
+
output: T.any(IO, String),
|
|
55
|
+
timeout: T.nilable(Numeric),
|
|
56
|
+
capture_errors: T::Boolean
|
|
57
|
+
)
|
|
58
|
+
.void
|
|
59
|
+
}
|
|
60
|
+
def initialize(argv, input:, output:, timeout:, capture_errors: false)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
sig { void }
|
|
64
|
+
def check_deadline
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
sig { returns(T::Boolean) }
|
|
68
|
+
def errors?
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
sig { params(io: T.any(IO, StringIO), stop_on_exit: T::Boolean).returns(T.nilable(String)) }
|
|
72
|
+
def read(io, stop_on_exit: false)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
sig { params(io: IO, bytes: String).void }
|
|
76
|
+
def write(io, bytes)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
sig { returns(Process::Status) }
|
|
80
|
+
def wait
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
sig { void }
|
|
84
|
+
def close
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
class Error < OpenAI::Errors::Error
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
class DependencyError < OpenAI::LocalAudio::Error
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
class UnsupportedPlatformError < OpenAI::LocalAudio::Error
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
class DeviceError < OpenAI::LocalAudio::Error
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
class PlaybackError < OpenAI::LocalAudio::Error
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
class TimeoutError < OpenAI::LocalAudio::Error
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
class FormatError < OpenAI::LocalAudio::Error
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
end
|
|
110
|
+
end
|
|
@@ -39,9 +39,9 @@ module OpenAI
|
|
|
39
39
|
|
|
40
40
|
# @api private
|
|
41
41
|
sig do
|
|
42
|
-
params(socket: T.untyped, url: URI::Generic).returns(T.attached_class)
|
|
42
|
+
params(socket: T.untyped, url: URI::Generic, recovery: T.untyped).returns(T.attached_class)
|
|
43
43
|
end
|
|
44
|
-
def self.new(socket:, url:)
|
|
44
|
+
def self.new(socket:, url:, recovery: nil)
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
sig do
|
|
@@ -75,6 +75,22 @@ module OpenAI
|
|
|
75
75
|
def send_raw(data)
|
|
76
76
|
end
|
|
77
77
|
|
|
78
|
+
sig { returns(T::Boolean) }
|
|
79
|
+
def reconnecting?
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
sig { returns(T::Array[String]) }
|
|
83
|
+
def pending_messages
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
sig { returns(T::Array[String]) }
|
|
87
|
+
def take_pending_messages
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
sig { void }
|
|
91
|
+
def flush_pending
|
|
92
|
+
end
|
|
93
|
+
|
|
78
94
|
sig { params(code: Integer, reason: String).void }
|
|
79
95
|
def close(code: 1000, reason: "")
|
|
80
96
|
end
|