openai 0.103.0 → 0.104.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 +81 -0
- data/README.md +23 -1
- data/lib/openai/client.rb +3 -386
- data/lib/openai/helpers/admin/organization/projects/api_keys.rb +42 -0
- data/lib/openai/helpers/agents/session_stream_resource.rb +60 -0
- data/lib/openai/helpers/beta/agents/artifacts.rb +18 -0
- data/lib/openai/helpers/beta/agents/files.rb +41 -0
- data/lib/openai/helpers/client_runtime.rb +391 -0
- data/lib/openai/helpers/files.rb +47 -0
- data/lib/openai/helpers/live/websocket.rb +8 -57
- data/lib/openai/helpers/models/chat/parsed.rb +32 -0
- data/lib/openai/helpers/models/responses/parsed.rb +30 -0
- data/lib/openai/helpers/models/responses/response.rb +32 -0
- data/lib/openai/helpers/models/webhooks/webhook_endpoint_with_secret.rb +20 -0
- data/lib/openai/helpers/realtime/client_extension.rb +1 -2
- data/lib/openai/helpers/realtime/connection_manager.rb +1 -1
- data/lib/openai/helpers/realtime/translation.rb +7 -50
- data/lib/openai/helpers/responses_websocket/client_extension.rb +1 -2
- data/lib/openai/helpers/streaming/chat_completion_resource.rb +36 -0
- data/lib/openai/helpers/streaming/response_stream.rb +1 -16
- data/lib/openai/helpers/streaming/response_stream_resource.rb +78 -0
- data/lib/openai/helpers/vector_stores/file_batches.rb +188 -0
- data/lib/openai/helpers/vector_stores/files.rb +198 -0
- data/lib/openai/helpers/websocket/client_request.rb +31 -6
- data/lib/openai/helpers/websocket/connection.rb +58 -0
- data/lib/openai/helpers/websocket/connection_manager.rb +4 -2
- data/lib/openai/helpers/websocket/protocol.rb +2 -1
- data/lib/openai/helpers/websocket/resource.rb +54 -0
- data/lib/openai/helpers/websocket/typed_connection.rb +95 -0
- data/lib/openai/helpers/websocket.rb +4 -0
- data/lib/openai/models/admin/organization/audit_log_list_response.rb +5 -3
- data/lib/openai/models/admin/organization/external_storage_configuration.rb +5 -3
- data/lib/openai/models/admin/organization/external_storage_create_params.rb +33 -3
- data/lib/openai/models/admin/organization/oci_external_storage_provider.rb +37 -0
- data/lib/openai/models/admin/organization/project_residency.rb +3 -0
- data/lib/openai/models/admin/organization/projects/api_key_update_params.rb +64 -0
- data/lib/openai/models/admin/organization/projects/api_key_update_scopes_params.rb +34 -0
- data/lib/openai/models/admin/organization/usage_decisions_params.rb +177 -0
- data/lib/openai/models/admin/organization/usage_decisions_response.rb +351 -0
- data/lib/openai/models/audio/speech_create_params.rb +6 -3
- data/lib/openai/models/audio/translation_create_response.rb +0 -1
- data/lib/openai/models/audio/voice.rb +17 -2
- data/lib/openai/models/audio/voice_create_params.rb +100 -3
- data/lib/openai/models/beta/agent_create_params.rb +4 -2
- data/lib/openai/models/beta/agent_list_params.rb +4 -4
- data/lib/openai/models/beta/agent_session.rb +37 -1
- data/lib/openai/models/beta/agent_update_params.rb +4 -2
- data/lib/openai/models/beta/agents/environment_list_params.rb +7 -7
- data/lib/openai/models/beta/agents/session_create_params.rb +39 -3
- data/lib/openai/models/beta/agents/session_list_params.rb +7 -10
- data/lib/openai/models/beta/agents/session_update_params.rb +33 -1
- data/lib/openai/models/beta/agents/sessions/artifact_list_params.rb +11 -11
- data/lib/openai/models/beta/agents/vault_list_params.rb +23 -13
- data/lib/openai/models/beta/agents/vault_status_filter.rb +1 -3
- data/lib/openai/models/beta/agents/vault_update_params.rb +47 -0
- data/lib/openai/models/beta/agents/vaults/credential_list_params.rb +23 -13
- data/lib/openai/models/beta/beta_response.rb +23 -2
- data/lib/openai/models/beta/beta_response_error.rb +19 -1
- data/lib/openai/models/beta/beta_response_input_item.rb +107 -1
- data/lib/openai/models/beta/beta_response_item.rb +107 -1
- data/lib/openai/models/beta/beta_response_output_item.rb +107 -1
- data/lib/openai/models/beta/beta_responses_client_event.rb +23 -2
- data/lib/openai/models/beta/response_compact_params.rb +21 -0
- data/lib/openai/models/beta/response_create_params.rb +23 -2
- data/lib/openai/models/beta/session_turn_error.rb +3 -0
- data/lib/openai/models/chat/chat_completion_audio_param.rb +3 -3
- data/lib/openai/models/chat/chat_completion_message.rb +0 -8
- data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +0 -8
- data/lib/openai/models/chat/completion_create_params.rb +5 -12
- data/lib/openai/models/chat_model.rb +21 -0
- data/lib/openai/models/conversations/conversation_item.rb +107 -1
- data/lib/openai/models/decision.rb +17 -2
- data/lib/openai/models/decision_create_params.rb +29 -12
- data/lib/openai/models/decision_input_image.rb +4 -3
- data/lib/openai/models/decision_input_message.rb +4 -4
- data/lib/openai/models/decision_input_part.rb +3 -2
- data/lib/openai/models/image_edit_completed_event.rb +1 -2
- data/lib/openai/models/image_edit_partial_image_event.rb +1 -2
- data/lib/openai/models/image_gen_completed_event.rb +1 -2
- data/lib/openai/models/image_gen_partial_image_event.rb +1 -2
- data/lib/openai/models/images_response.rb +1 -2
- data/lib/openai/models/live/built_in_voice.rb +1 -0
- data/lib/openai/models/live/client_event.rb +14 -2
- data/lib/openai/models/live/decision_create_event.rb +26 -0
- data/lib/openai/models/live/decision_event.rb +117 -0
- data/lib/openai/models/live/decision_item_create_event.rb +194 -0
- data/lib/openai/models/live/decision_item_created_event.rb +202 -0
- data/lib/openai/models/live/decision_item_delete_event.rb +38 -0
- data/lib/openai/models/live/decision_item_deleted_event.rb +46 -0
- data/lib/openai/models/live/decision_trigger.rb +244 -0
- data/lib/openai/models/live/decisions_delegation_config.rb +201 -0
- data/lib/openai/models/live/decisions_delegation_update_config.rb +208 -0
- data/lib/openai/models/live/delegation_created_event.rb +10 -10
- data/lib/openai/models/live/fork_client_event.rb +14 -2
- data/lib/openai/models/live/fork_server_event.rb +17 -2
- data/lib/openai/models/live/media_session_config.rb +47 -11
- data/lib/openai/models/live/output_audio_fixture_play_event.rb +48 -0
- data/lib/openai/models/live/output_audio_fixture_played_event.rb +42 -0
- data/lib/openai/models/live/output_audio_fixture_playing_event.rb +41 -0
- data/lib/openai/models/live/server_event.rb +17 -2
- data/lib/openai/models/live/session_accept_params.rb +47 -11
- data/lib/openai/models/live/session_config.rb +47 -11
- data/lib/openai/models/live/session_resource.rb +47 -11
- data/lib/openai/models/live/session_update_config.rb +38 -6
- data/lib/openai/models/live/session_update_event.rb +8 -8
- data/lib/openai/models/live/sideband_client_event.rb +57 -0
- data/lib/openai/models/live/sideband_server_event.rb +78 -0
- data/lib/openai/models/realtime/realtime_audio_config_output.rb +6 -3
- data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +6 -3
- data/lib/openai/models/realtime/realtime_response_status.rb +10 -1
- data/lib/openai/models/response_format_json_schema.rb +1 -1
- data/lib/openai/models/responses/function_tool.rb +8 -6
- data/lib/openai/models/responses/response.rb +2 -23
- data/lib/openai/models/responses/response_compact_params.rb +21 -0
- data/lib/openai/models/responses/response_create_params.rb +3 -6
- data/lib/openai/models/responses/response_error.rb +19 -1
- data/lib/openai/models/responses/response_format_text_config.rb +0 -4
- data/lib/openai/models/responses/response_function_tool_call.rb +0 -8
- data/lib/openai/models/responses/response_input_item.rb +107 -1
- data/lib/openai/models/responses/response_item.rb +107 -1
- data/lib/openai/models/responses/response_output_item.rb +107 -1
- data/lib/openai/models/responses/response_output_text.rb +0 -8
- data/lib/openai/models/responses/responses_client_event.rb +2 -2
- data/lib/openai/models/safety/safety_alert.rb +12 -1
- data/lib/openai/models/video_create_error.rb +19 -1
- data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -4
- data/lib/openai/models/webhooks/webhook_endpoint_with_secret.rb +0 -9
- data/lib/openai/resources/admin/organization/external_storage.rb +1 -1
- data/lib/openai/resources/admin/organization/projects/api_keys.rb +61 -0
- data/lib/openai/resources/admin/organization/usage.rb +67 -0
- data/lib/openai/resources/audio/speech.rb +2 -1
- data/lib/openai/resources/audio/voices.rb +10 -10
- data/lib/openai/resources/beta/agents/environments/files.rb +3 -31
- data/lib/openai/resources/beta/agents/environments.rb +3 -3
- data/lib/openai/resources/beta/agents/sessions/artifacts.rb +5 -11
- data/lib/openai/resources/beta/agents/sessions.rb +20 -56
- data/lib/openai/resources/beta/agents/vaults/credentials.rb +10 -6
- data/lib/openai/resources/beta/agents/vaults.rb +45 -6
- data/lib/openai/resources/beta/agents.rb +6 -4
- data/lib/openai/resources/beta/responses.rb +2 -2
- data/lib/openai/resources/chat/completions.rb +11 -37
- data/lib/openai/resources/decisions.rb +9 -15
- data/lib/openai/resources/files.rb +0 -39
- data/lib/openai/resources/live/forks.rb +19 -0
- data/lib/openai/resources/live/sideband.rb +19 -0
- data/lib/openai/resources/live.rb +19 -0
- data/lib/openai/resources/realtime/translations.rb +19 -0
- data/lib/openai/resources/realtime.rb +19 -0
- data/lib/openai/resources/responses.rb +44 -95
- data/lib/openai/resources/vector_stores/file_batches.rb +0 -178
- data/lib/openai/resources/vector_stores/files.rb +0 -188
- data/lib/openai/resources/webhooks.rb +13 -29
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +31 -0
- data/rbi/openai/client.rbi +0 -103
- data/rbi/openai/helpers/admin/organization/projects/api_keys.rbi +25 -0
- data/rbi/openai/helpers/beta/agents/artifacts.rbi +25 -0
- data/rbi/openai/helpers/beta/agents/files.rbi +48 -0
- data/rbi/openai/helpers/client_runtime.rbi +108 -0
- data/rbi/openai/helpers/files.rbi +25 -0
- data/rbi/openai/helpers/models/chat/parsed.rbi +21 -0
- data/rbi/openai/helpers/models/responses/parsed.rbi +19 -0
- data/rbi/openai/helpers/models/responses/response.rbi +15 -0
- data/rbi/openai/helpers/streaming/response_stream.rbi +301 -0
- data/rbi/openai/helpers/vector_stores/file_batches.rbi +102 -0
- data/rbi/openai/helpers/vector_stores/files.rbi +122 -0
- data/rbi/openai/helpers/websocket.rbi +82 -0
- data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +6 -3
- data/rbi/openai/models/admin/organization/external_storage_configuration.rbi +4 -2
- data/rbi/openai/models/admin/organization/external_storage_create_params.rbi +63 -4
- data/rbi/openai/models/admin/organization/oci_external_storage_provider.rbi +71 -0
- data/rbi/openai/models/admin/organization/project_residency.rbi +12 -0
- data/rbi/openai/models/admin/organization/projects/api_key_update_params.rbi +110 -0
- data/rbi/openai/models/admin/organization/projects/api_key_update_scopes_params.rbi +72 -0
- data/rbi/openai/models/admin/organization/usage_decisions_params.rbi +229 -0
- data/rbi/openai/models/admin/organization/usage_decisions_response.rbi +479 -0
- data/rbi/openai/models/audio/speech_create_params.rbi +6 -3
- data/rbi/openai/models/audio/voice.rbi +21 -2
- data/rbi/openai/models/audio/voice_create_params.rbi +149 -4
- data/rbi/openai/models/beta/agent_create_params.rbi +4 -2
- data/rbi/openai/models/beta/agent_list_params.rbi +8 -5
- data/rbi/openai/models/beta/agent_session.rbi +64 -1
- data/rbi/openai/models/beta/agent_update_params.rbi +4 -2
- data/rbi/openai/models/beta/agents/environment_list_params.rbi +7 -7
- data/rbi/openai/models/beta/agents/session_create_params.rbi +62 -2
- data/rbi/openai/models/beta/agents/session_list_params.rbi +11 -11
- data/rbi/openai/models/beta/agents/session_update_params.rbi +56 -0
- data/rbi/openai/models/beta/agents/sessions/artifact_list_params.rbi +19 -13
- data/rbi/openai/models/beta/agents/vault_list_params.rbi +30 -13
- data/rbi/openai/models/beta/agents/vault_status_filter.rbi +1 -3
- data/rbi/openai/models/beta/agents/vault_update_params.rbi +87 -0
- data/rbi/openai/models/beta/agents/vaults/credential_list_params.rbi +30 -13
- data/rbi/openai/models/beta/beta_response.rbi +2 -2
- data/rbi/openai/models/beta/beta_response_error.rbi +24 -3
- data/rbi/openai/models/beta/beta_response_input_item.rbi +191 -0
- data/rbi/openai/models/beta/beta_response_item.rbi +189 -0
- data/rbi/openai/models/beta/beta_response_output_item.rbi +191 -0
- data/rbi/openai/models/beta/beta_responses_client_event.rbi +2 -2
- data/rbi/openai/models/beta/response_create_params.rbi +2 -2
- data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
- data/rbi/openai/models/chat/chat_completion_audio_param.rbi +3 -3
- data/rbi/openai/models/chat/chat_completion_message.rbi +0 -4
- data/rbi/openai/models/chat/chat_completion_message_function_tool_call.rbi +0 -4
- data/rbi/openai/models/chat/completion_create_params.rbi +63 -78
- data/rbi/openai/models/conversations/conversation_item.rbi +191 -0
- data/rbi/openai/models/decision.rbi +14 -1
- data/rbi/openai/models/decision_create_params.rbi +23 -12
- data/rbi/openai/models/decision_input_image.rbi +4 -3
- data/rbi/openai/models/decision_input_message.rbi +4 -4
- data/rbi/openai/models/decision_input_part.rbi +2 -1
- data/rbi/openai/models/image_edit_completed_event.rbi +1 -0
- data/rbi/openai/models/image_edit_partial_image_event.rbi +1 -0
- data/rbi/openai/models/image_gen_completed_event.rbi +1 -0
- data/rbi/openai/models/image_gen_partial_image_event.rbi +1 -0
- data/rbi/openai/models/images_response.rbi +1 -0
- data/rbi/openai/models/live/built_in_voice.rbi +1 -0
- data/rbi/openai/models/live/client_event.rbi +4 -0
- data/rbi/openai/models/live/decision_create_event.rbi +55 -0
- data/rbi/openai/models/live/decision_event.rbi +185 -0
- data/rbi/openai/models/live/decision_item_create_event.rbi +338 -0
- data/rbi/openai/models/live/decision_item_created_event.rbi +354 -0
- data/rbi/openai/models/live/decision_item_delete_event.rbi +66 -0
- data/rbi/openai/models/live/decision_item_deleted_event.rbi +77 -0
- data/rbi/openai/models/live/decision_trigger.rbi +465 -0
- data/rbi/openai/models/live/decisions_delegation_config.rbi +393 -0
- data/rbi/openai/models/live/decisions_delegation_update_config.rbi +412 -0
- data/rbi/openai/models/live/delegation_created_event.rbi +8 -10
- data/rbi/openai/models/live/fork_client_event.rbi +4 -0
- data/rbi/openai/models/live/fork_server_event.rbi +5 -0
- data/rbi/openai/models/live/media_session_config.rbi +95 -14
- data/rbi/openai/models/live/output_audio_fixture_play_event.rbi +76 -0
- data/rbi/openai/models/live/output_audio_fixture_played_event.rbi +73 -0
- data/rbi/openai/models/live/output_audio_fixture_playing_event.rbi +72 -0
- data/rbi/openai/models/live/server_event.rbi +5 -0
- data/rbi/openai/models/live/session_accept_params.rbi +88 -12
- data/rbi/openai/models/live/session_config.rbi +100 -14
- data/rbi/openai/models/live/session_resource.rbi +81 -10
- data/rbi/openai/models/live/session_update_config.rbi +86 -9
- data/rbi/openai/models/live/session_update_event.rbi +8 -8
- data/rbi/openai/models/live/sideband_client_event.rbi +40 -0
- data/rbi/openai/models/live/sideband_server_event.rbi +47 -0
- data/rbi/openai/models/realtime/realtime_audio_config_output.rbi +6 -3
- data/rbi/openai/models/realtime/realtime_response_create_audio_output.rbi +6 -3
- data/rbi/openai/models/realtime/realtime_response_status.rbi +13 -1
- data/rbi/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rbi +1 -1
- data/rbi/openai/models/realtime/realtime_translation_output_audio_delta_event.rbi +3 -3
- data/rbi/openai/models/realtime/realtime_translation_session_close_event.rbi +1 -1
- data/rbi/openai/models/realtime/realtime_translation_session_update_event.rbi +5 -1
- data/rbi/openai/models/responses/response.rbi +2 -7
- data/rbi/openai/models/responses/response_create_params.rbi +5 -9
- data/rbi/openai/models/responses/response_error.rbi +24 -3
- data/rbi/openai/models/responses/response_function_tool_call.rbi +0 -4
- data/rbi/openai/models/responses/response_function_web_search.rbi +21 -17
- data/rbi/openai/models/responses/response_input_item.rbi +191 -0
- data/rbi/openai/models/responses/response_item.rbi +189 -0
- data/rbi/openai/models/responses/response_output_item.rbi +191 -0
- data/rbi/openai/models/responses/response_output_text.rbi +0 -4
- data/rbi/openai/models/responses/responses_client_event.rbi +2 -2
- data/rbi/openai/models/safety/safety_alert.rbi +13 -1
- data/rbi/openai/models/video_create_error.rbi +24 -3
- data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -1
- data/rbi/openai/resources/admin/organization/external_storage.rbi +2 -1
- data/rbi/openai/resources/admin/organization/projects/api_keys.rbi +48 -0
- data/rbi/openai/resources/admin/organization/usage.rbi +56 -0
- data/rbi/openai/resources/audio/speech.rbi +2 -1
- data/rbi/openai/resources/audio/voices.rbi +13 -10
- data/rbi/openai/resources/beta/agents/environments/files.rbi +3 -33
- data/rbi/openai/resources/beta/agents/environments.rbi +3 -3
- data/rbi/openai/resources/beta/agents/sessions/artifacts.rbi +5 -13
- data/rbi/openai/resources/beta/agents/sessions.rbi +15 -4
- data/rbi/openai/resources/beta/agents/vaults/credentials.rbi +9 -5
- data/rbi/openai/resources/beta/agents/vaults.rbi +34 -5
- data/rbi/openai/resources/beta/agents.rbi +6 -4
- data/rbi/openai/resources/beta/responses.rbi +2 -2
- data/rbi/openai/resources/chat/completions.rbi +26 -29
- data/rbi/openai/resources/decisions.rbi +9 -15
- data/rbi/openai/resources/files.rbi +0 -18
- data/rbi/openai/resources/live/forks.rbi +17 -0
- data/rbi/openai/resources/live/sideband.rbi +17 -0
- data/rbi/openai/resources/live.rbi +17 -0
- data/rbi/openai/resources/realtime/translations.rbi +17 -0
- data/rbi/openai/resources/realtime.rbi +17 -0
- data/rbi/openai/resources/responses.rbi +41 -333
- data/rbi/openai/resources/vector_stores/file_batches.rbi +0 -93
- data/rbi/openai/resources/vector_stores/files.rbi +0 -113
- data/rbi/openai/resources/webhooks.rbi +1 -1
- data/sig/openai/client.rbs +0 -50
- data/sig/openai/helpers/admin/organization/projects/api_keys.rbs +18 -0
- data/sig/openai/helpers/beta/agents/artifacts.rbs +17 -0
- data/sig/openai/helpers/beta/agents/files.rbs +30 -0
- data/sig/openai/helpers/client_runtime.rbs +53 -0
- data/sig/openai/helpers/files.rbs +12 -0
- data/sig/openai/helpers/models/responses/response.rbs +9 -0
- data/sig/openai/helpers/streaming/response_stream.rbs +37 -0
- data/sig/openai/helpers/vector_stores/file_batches.rbs +38 -0
- data/sig/openai/helpers/vector_stores/files.rbs +43 -0
- data/sig/openai/helpers/websocket.rbs +40 -0
- data/sig/openai/models/admin/organization/audit_log_list_response.rbs +1 -0
- data/sig/openai/models/admin/organization/external_storage_configuration.rbs +1 -0
- data/sig/openai/models/admin/organization/external_storage_create_params.rbs +33 -0
- data/sig/openai/models/admin/organization/oci_external_storage_provider.rbs +34 -0
- data/sig/openai/models/admin/organization/project_residency.rbs +6 -0
- data/sig/openai/models/admin/organization/projects/api_key_update_params.rbs +77 -0
- data/sig/openai/models/admin/organization/projects/api_key_update_scopes_params.rbs +38 -0
- data/sig/openai/models/admin/organization/usage_decisions_params.rbs +170 -0
- data/sig/openai/models/admin/organization/usage_decisions_response.rbs +319 -0
- data/sig/openai/models/audio/speech_create_params.rbs +4 -2
- data/sig/openai/models/audio/voice.rbs +21 -3
- data/sig/openai/models/audio/voice_create_params.rbs +90 -1
- data/sig/openai/models/beta/agent_create_params.rbs +4 -2
- data/sig/openai/models/beta/agent_list_params.rbs +9 -6
- data/sig/openai/models/beta/agent_session.rbs +36 -2
- data/sig/openai/models/beta/agent_update_params.rbs +4 -2
- data/sig/openai/models/beta/agents/environment_list_params.rbs +9 -9
- data/sig/openai/models/beta/agents/session_create_params.rbs +29 -2
- data/sig/openai/models/beta/agents/session_list_params.rbs +12 -12
- data/sig/openai/models/beta/agents/session_update_params.rbs +23 -0
- data/sig/openai/models/beta/agents/sessions/artifact_list_params.rbs +21 -15
- data/sig/openai/models/beta/agents/vault_list_params.rbs +32 -14
- data/sig/openai/models/beta/agents/vault_update_params.rbs +54 -0
- data/sig/openai/models/beta/agents/vaults/credential_list_params.rbs +32 -14
- data/sig/openai/models/beta/beta_response.rbs +2 -2
- data/sig/openai/models/beta/beta_response_error.rbs +19 -3
- data/sig/openai/models/beta/beta_response_input_item.rbs +110 -0
- data/sig/openai/models/beta/beta_response_item.rbs +110 -0
- data/sig/openai/models/beta/beta_response_output_item.rbs +110 -0
- data/sig/openai/models/beta/beta_responses_client_event.rbs +2 -2
- data/sig/openai/models/beta/response_create_params.rbs +2 -2
- data/sig/openai/models/beta/session_turn_error.rbs +4 -0
- data/sig/openai/models/chat/chat_completion_audio_param.rbs +2 -2
- data/sig/openai/models/chat/completion_create_params.rbs +2 -2
- data/sig/openai/models/conversations/conversation_item.rbs +110 -0
- data/sig/openai/models/decision.rbs +13 -0
- data/sig/openai/models/decision_create_params.rbs +19 -8
- data/sig/openai/models/decision_input_image.rbs +2 -2
- data/sig/openai/models/decision_input_message.rbs +2 -2
- data/sig/openai/models/live/built_in_voice.rbs +2 -0
- data/sig/openai/models/live/client_event.rbs +4 -0
- data/sig/openai/models/live/decision_create_event.rbs +18 -0
- data/sig/openai/models/live/decision_event.rbs +102 -0
- data/sig/openai/models/live/decision_item_create_event.rbs +183 -0
- data/sig/openai/models/live/decision_item_created_event.rbs +195 -0
- data/sig/openai/models/live/decision_item_delete_event.rbs +33 -0
- data/sig/openai/models/live/decision_item_deleted_event.rbs +49 -0
- data/sig/openai/models/live/decision_trigger.rbs +234 -0
- data/sig/openai/models/live/decisions_delegation_config.rbs +195 -0
- data/sig/openai/models/live/decisions_delegation_update_config.rbs +202 -0
- data/sig/openai/models/live/delegation_created_event.rbs +6 -7
- data/sig/openai/models/live/fork_client_event.rbs +4 -0
- data/sig/openai/models/live/fork_server_event.rbs +5 -0
- data/sig/openai/models/live/media_session_config.rbs +58 -11
- data/sig/openai/models/live/output_audio_fixture_play_event.rbs +42 -0
- data/sig/openai/models/live/output_audio_fixture_played_event.rbs +44 -0
- data/sig/openai/models/live/output_audio_fixture_playing_event.rbs +44 -0
- data/sig/openai/models/live/server_event.rbs +5 -0
- data/sig/openai/models/live/session_accept_params.rbs +57 -10
- data/sig/openai/models/live/session_config.rbs +58 -11
- data/sig/openai/models/live/session_resource.rbs +57 -10
- data/sig/openai/models/live/session_update_config.rbs +54 -3
- data/sig/openai/models/live/session_update_event.rbs +6 -6
- data/sig/openai/models/live/sideband_client_event.rbs +26 -0
- data/sig/openai/models/live/sideband_server_event.rbs +33 -0
- data/sig/openai/models/realtime/realtime_audio_config_output.rbs +6 -3
- data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +6 -3
- data/sig/openai/models/realtime/realtime_response_status.rbs +15 -3
- data/sig/openai/models/responses/response.rbs +2 -4
- data/sig/openai/models/responses/response_create_params.rbs +2 -2
- data/sig/openai/models/responses/response_error.rbs +19 -3
- data/sig/openai/models/responses/response_input_item.rbs +110 -0
- data/sig/openai/models/responses/response_item.rbs +110 -0
- data/sig/openai/models/responses/response_output_item.rbs +110 -0
- data/sig/openai/models/responses/responses_client_event.rbs +2 -2
- data/sig/openai/models/safety/safety_alert.rbs +12 -2
- data/sig/openai/models/video_create_error.rbs +19 -3
- data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -1
- data/sig/openai/resources/admin/organization/projects/api_keys.rbs +8 -0
- data/sig/openai/resources/admin/organization/usage.rbs +15 -0
- data/sig/openai/resources/beta/agents/environments/files.rbs +0 -17
- data/sig/openai/resources/beta/agents/sessions/artifacts.rbs +2 -6
- data/sig/openai/resources/beta/agents/sessions.rbs +4 -1
- data/sig/openai/resources/beta/agents/vaults/credentials.rbs +2 -1
- data/sig/openai/resources/beta/agents/vaults.rbs +9 -1
- data/sig/openai/resources/beta/agents.rbs +1 -1
- data/sig/openai/resources/files.rbs +0 -7
- data/sig/openai/resources/live/forks.rbs +8 -0
- data/sig/openai/resources/live/sideband.rbs +8 -0
- data/sig/openai/resources/live.rbs +7 -0
- data/sig/openai/resources/realtime/translations.rbs +7 -0
- data/sig/openai/resources/realtime.rbs +7 -0
- data/sig/openai/resources/responses.rbs +7 -31
- data/sig/openai/resources/vector_stores/file_batches.rbs +0 -31
- data/sig/openai/resources/vector_stores/files.rbs +0 -36
- data/sig/openai/resources/webhooks.rbs +1 -1
- metadata +89 -1
|
@@ -173,7 +173,7 @@ module OpenAI
|
|
|
173
173
|
# @param safety_identifier [String, nil]
|
|
174
174
|
# Body param: A stable identifier used to help detect users of your application
|
|
175
175
|
# that may be violating OpenAI's usage policies. The IDs should be a string that
|
|
176
|
-
# uniquely identifies each user, with a maximum length of
|
|
176
|
+
# uniquely identifies each user, with a maximum length of 128 characters. We
|
|
177
177
|
# recommend hashing their username or email address, in order to avoid sending us
|
|
178
178
|
# any identifying information.
|
|
179
179
|
# [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
|
|
@@ -474,7 +474,7 @@ module OpenAI
|
|
|
474
474
|
# @param safety_identifier [String, nil]
|
|
475
475
|
# Body param: A stable identifier used to help detect users of your application
|
|
476
476
|
# that may be violating OpenAI's usage policies. The IDs should be a string that
|
|
477
|
-
# uniquely identifies each user, with a maximum length of
|
|
477
|
+
# uniquely identifies each user, with a maximum length of 128 characters. We
|
|
478
478
|
# recommend hashing their username or email address, in order to avoid sending us
|
|
479
479
|
# any identifying information.
|
|
480
480
|
# [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative "../../helpers/streaming/chat_completion_resource"
|
|
3
4
|
require_relative "../../helpers/structured_output/chat_completion_parser"
|
|
4
5
|
|
|
5
6
|
module OpenAI
|
|
@@ -216,7 +217,7 @@ module OpenAI
|
|
|
216
217
|
# @param safety_identifier [String, nil]
|
|
217
218
|
# A stable identifier used to help detect users of your application that may be
|
|
218
219
|
# violating OpenAI's usage policies. The IDs should be a string that uniquely
|
|
219
|
-
# identifies each user, with a maximum length of
|
|
220
|
+
# identifies each user, with a maximum length of 128 characters. We recommend
|
|
220
221
|
# hashing their username or email address, in order to avoid sending us any
|
|
221
222
|
# identifying information.
|
|
222
223
|
# [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
|
|
@@ -350,41 +351,6 @@ module OpenAI
|
|
|
350
351
|
)
|
|
351
352
|
end
|
|
352
353
|
|
|
353
|
-
def get_structured_output_models(parsed)
|
|
354
|
-
OpenAI::Helpers::StructuredOutput::ChatCompletionParser.get_models(parsed)
|
|
355
|
-
end
|
|
356
|
-
|
|
357
|
-
def build_tools_with_models(tools, tool_models)
|
|
358
|
-
OpenAI::Helpers::StructuredOutput::ChatCompletionParser.build_tools(tools, tool_models)
|
|
359
|
-
end
|
|
360
|
-
|
|
361
|
-
def stream(params)
|
|
362
|
-
parsed, options = OpenAI::Chat::CompletionCreateParams.dump_request(params)
|
|
363
|
-
|
|
364
|
-
parsed.store(:stream, true)
|
|
365
|
-
|
|
366
|
-
response_format, tool_models = get_structured_output_models(parsed)
|
|
367
|
-
|
|
368
|
-
input_tools = build_tools_with_models(parsed[:tools], tool_models)
|
|
369
|
-
|
|
370
|
-
raw_stream = @client.request(
|
|
371
|
-
method: :post,
|
|
372
|
-
path: "chat/completions",
|
|
373
|
-
headers: {"accept" => "text/event-stream"},
|
|
374
|
-
body: parsed,
|
|
375
|
-
stream: OpenAI::Internal::Stream,
|
|
376
|
-
model: OpenAI::Chat::ChatCompletionChunk,
|
|
377
|
-
security: {bearer_auth: true},
|
|
378
|
-
options: options
|
|
379
|
-
)
|
|
380
|
-
|
|
381
|
-
OpenAI::Helpers::Streaming::ChatCompletionStream.new(
|
|
382
|
-
raw_stream: raw_stream,
|
|
383
|
-
response_format: response_format,
|
|
384
|
-
input_tools: input_tools
|
|
385
|
-
)
|
|
386
|
-
end
|
|
387
|
-
|
|
388
354
|
# See {OpenAI::Resources::Chat::Completions#create} for non-streaming counterpart.
|
|
389
355
|
#
|
|
390
356
|
# **Starting a new project?** We recommend trying
|
|
@@ -588,7 +554,7 @@ module OpenAI
|
|
|
588
554
|
# @param safety_identifier [String, nil]
|
|
589
555
|
# A stable identifier used to help detect users of your application that may be
|
|
590
556
|
# violating OpenAI's usage policies. The IDs should be a string that uniquely
|
|
591
|
-
# identifies each user, with a maximum length of
|
|
557
|
+
# identifies each user, with a maximum length of 128 characters. We recommend
|
|
592
558
|
# hashing their username or email address, in order to avoid sending us any
|
|
593
559
|
# identifying information.
|
|
594
560
|
# [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
|
|
@@ -842,6 +808,14 @@ module OpenAI
|
|
|
842
808
|
)
|
|
843
809
|
end
|
|
844
810
|
|
|
811
|
+
def get_structured_output_models(parsed)
|
|
812
|
+
OpenAI::Helpers::StructuredOutput::ChatCompletionParser.get_models(parsed)
|
|
813
|
+
end
|
|
814
|
+
|
|
815
|
+
def build_tools_with_models(tools, tool_models)
|
|
816
|
+
OpenAI::Helpers::StructuredOutput::ChatCompletionParser.build_tools(tools, tool_models)
|
|
817
|
+
end
|
|
818
|
+
|
|
845
819
|
# @api private
|
|
846
820
|
#
|
|
847
821
|
# @param client [OpenAI::Client]
|
|
@@ -3,29 +3,23 @@
|
|
|
3
3
|
module OpenAI
|
|
4
4
|
module Resources
|
|
5
5
|
class Decisions
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
# Supply input as a string or user messages containing text and inline images.
|
|
10
|
-
# Only user messages with `input_text` and `input_image` parts are supported;
|
|
11
|
-
# non-user roles, function calls, files, audio, and item references are not
|
|
12
|
-
# supported. Images require a data URL, not an external URL or file ID. At most
|
|
13
|
-
# 128 images are allowed across the request.
|
|
14
|
-
#
|
|
15
|
-
# Each question can return a refusal instead of a scored answer. A refusal has
|
|
16
|
-
# type `refusal` and the corresponding question name, or null if unnamed.
|
|
6
|
+
# Use this endpoint to quickly answer classification or scoring questions about
|
|
7
|
+
# some input. You can ask multiple questions in one request.
|
|
17
8
|
#
|
|
18
9
|
# @overload create(input:, model:, questions:, safety_identifier: nil, request_options: {})
|
|
19
10
|
#
|
|
20
11
|
# @param input [String, Array<OpenAI::Models::DecisionInputMessage>]
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
12
|
+
# The text or images to evaluate for every question. Provide a text string or user
|
|
13
|
+
# messages containing text and images. Images can be base64 data URLs or publicly
|
|
14
|
+
# accessible HTTP(S) URLs; at most 128 images are allowed across all messages in
|
|
15
|
+
# one request. Files, audio, tools, and item references are not supported.
|
|
25
16
|
#
|
|
26
17
|
# @param model [String]
|
|
18
|
+
# The model to use. Only `gpt-6-luna` is supported.
|
|
27
19
|
#
|
|
28
20
|
# @param questions [Array<OpenAI::Models::DecisionCreateParams::Question::Predicate, OpenAI::Models::DecisionCreateParams::Question::Choice, OpenAI::Models::DecisionCreateParams::Question::Score>]
|
|
21
|
+
# Ask 1–200 questions about the input. Each question can be a predicate, choice,
|
|
22
|
+
# or score. Answers come back in the same order.
|
|
29
23
|
#
|
|
30
24
|
# @param safety_identifier [String, nil]
|
|
31
25
|
# Opaque caller-provided end-user identifier, scoped by the verified org. Match
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative "../helpers/resource_polling"
|
|
4
|
-
|
|
5
3
|
module OpenAI
|
|
6
4
|
module Resources
|
|
7
5
|
# Files are used to upload documents that can be used with features like
|
|
@@ -187,43 +185,6 @@ module OpenAI
|
|
|
187
185
|
)
|
|
188
186
|
end
|
|
189
187
|
|
|
190
|
-
# Wait for an uploaded file to finish processing.
|
|
191
|
-
#
|
|
192
|
-
# The returned file may have an `error` status; callers should inspect the
|
|
193
|
-
# status before using it. Polling intervals and the overall timeout are in
|
|
194
|
-
# seconds. Finite timeouts include authentication and request replay time and
|
|
195
|
-
# disable transport retries so the deadline remains strict. Set `timeout` to
|
|
196
|
-
# `nil` to wait indefinitely and retain configured transport retries.
|
|
197
|
-
#
|
|
198
|
-
# @overload wait_for_processing(file_id, poll_interval: nil, timeout: 1800.0, request_options: {})
|
|
199
|
-
#
|
|
200
|
-
# @param file_id [String] The ID of the file to wait for.
|
|
201
|
-
#
|
|
202
|
-
# @param poll_interval [Integer, Float, nil] How often to retrieve the file. When omitted, the SDK honors the server's
|
|
203
|
-
# polling hint and otherwise waits 5 seconds.
|
|
204
|
-
#
|
|
205
|
-
# @param timeout [Integer, Float, nil] Maximum total time to poll. Defaults to 30 minutes. Set to `nil` to wait
|
|
206
|
-
# indefinitely.
|
|
207
|
-
#
|
|
208
|
-
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
209
|
-
#
|
|
210
|
-
# @raise [ArgumentError, OpenAI::Errors::PollingError]
|
|
211
|
-
# @return [OpenAI::Models::FileObject]
|
|
212
|
-
def wait_for_processing(
|
|
213
|
-
file_id,
|
|
214
|
-
poll_interval: nil,
|
|
215
|
-
timeout: OpenAI::Internal::Poller::DEFAULT_TIMEOUT,
|
|
216
|
-
request_options: {}
|
|
217
|
-
)
|
|
218
|
-
OpenAI::Helpers::ResourcePolling.wait_for_file(
|
|
219
|
-
self,
|
|
220
|
-
file_id,
|
|
221
|
-
poll_interval: poll_interval,
|
|
222
|
-
timeout: timeout,
|
|
223
|
-
request_options: request_options
|
|
224
|
-
)
|
|
225
|
-
end
|
|
226
|
-
|
|
227
188
|
# @api private
|
|
228
189
|
#
|
|
229
190
|
# @param client [OpenAI::Client]
|
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative "../../helpers/websocket/resource"
|
|
4
|
+
|
|
3
5
|
module OpenAI
|
|
4
6
|
module Resources
|
|
5
7
|
class Live
|
|
6
8
|
class Forks
|
|
9
|
+
include OpenAI::WebSocket::Resource
|
|
10
|
+
|
|
11
|
+
# @api private
|
|
12
|
+
def __websocket_request(session_id, query: {})
|
|
13
|
+
{method: :get, path: ["live/sessions/%1$s/fork", session_id], query: query, security: {bearer_auth: true}}
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# @api private
|
|
17
|
+
def __websocket_client_event
|
|
18
|
+
OpenAI::Models::Live::ForkClientEvent
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @api private
|
|
22
|
+
def __websocket_server_event
|
|
23
|
+
OpenAI::Models::Live::ForkServerEvent
|
|
24
|
+
end
|
|
25
|
+
|
|
7
26
|
# @api private
|
|
8
27
|
#
|
|
9
28
|
# @param client [OpenAI::Client]
|
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative "../../helpers/websocket/resource"
|
|
4
|
+
|
|
3
5
|
module OpenAI
|
|
4
6
|
module Resources
|
|
5
7
|
class Live
|
|
6
8
|
class Sideband
|
|
9
|
+
include OpenAI::WebSocket::Resource
|
|
10
|
+
|
|
11
|
+
# @api private
|
|
12
|
+
def __websocket_request(session_id, query: {})
|
|
13
|
+
{method: :get, path: ["live/sessions/%1$s/attach", session_id], query: query, security: {bearer_auth: true}}
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# @api private
|
|
17
|
+
def __websocket_client_event
|
|
18
|
+
OpenAI::Models::Live::SidebandClientEvent
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @api private
|
|
22
|
+
def __websocket_server_event
|
|
23
|
+
OpenAI::Models::Live::SidebandServerEvent
|
|
24
|
+
end
|
|
25
|
+
|
|
7
26
|
# @api private
|
|
8
27
|
#
|
|
9
28
|
# @param client [OpenAI::Client]
|
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative "../helpers/websocket/resource"
|
|
4
|
+
|
|
3
5
|
module OpenAI
|
|
4
6
|
module Resources
|
|
5
7
|
class Live
|
|
8
|
+
include OpenAI::WebSocket::Resource
|
|
9
|
+
|
|
10
|
+
# @api private
|
|
11
|
+
def __websocket_request(query: {})
|
|
12
|
+
{method: :get, path: "live/sessions", query: query, security: {bearer_auth: true}}
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# @api private
|
|
16
|
+
def __websocket_client_event
|
|
17
|
+
OpenAI::Models::Live::ClientEvent
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# @api private
|
|
21
|
+
def __websocket_server_event
|
|
22
|
+
OpenAI::Models::Live::ServerEvent
|
|
23
|
+
end
|
|
24
|
+
|
|
6
25
|
# @return [OpenAI::Resources::Live::Sideband]
|
|
7
26
|
attr_reader :sideband
|
|
8
27
|
|
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative "../../helpers/websocket/resource"
|
|
4
|
+
|
|
3
5
|
module OpenAI
|
|
4
6
|
module Resources
|
|
5
7
|
class Realtime
|
|
6
8
|
class Translations
|
|
9
|
+
include OpenAI::WebSocket::Resource
|
|
10
|
+
|
|
11
|
+
# @api private
|
|
12
|
+
def __websocket_request(query: {})
|
|
13
|
+
{method: :get, path: "realtime/translations", query: query, security: {bearer_auth: true}}
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# @api private
|
|
17
|
+
def __websocket_client_event
|
|
18
|
+
OpenAI::Models::Realtime::RealtimeTranslationClientEvent
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @api private
|
|
22
|
+
def __websocket_server_event
|
|
23
|
+
OpenAI::Models::Realtime::RealtimeTranslationServerEvent
|
|
24
|
+
end
|
|
25
|
+
|
|
7
26
|
# @return [OpenAI::Resources::Realtime::Translations::ClientSecrets]
|
|
8
27
|
attr_reader :client_secrets
|
|
9
28
|
|
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative "../helpers/websocket/resource"
|
|
4
|
+
|
|
3
5
|
module OpenAI
|
|
4
6
|
module Resources
|
|
5
7
|
class Realtime
|
|
8
|
+
include OpenAI::WebSocket::Resource
|
|
9
|
+
|
|
10
|
+
# @api private
|
|
11
|
+
def __websocket_request(query: {})
|
|
12
|
+
{method: :get, path: "realtime", query: query, security: {bearer_auth: true}}
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# @api private
|
|
16
|
+
def __websocket_client_event
|
|
17
|
+
OpenAI::Models::Realtime::RealtimeClientEvent
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# @api private
|
|
21
|
+
def __websocket_server_event
|
|
22
|
+
OpenAI::Models::Realtime::RealtimeServerEvent
|
|
23
|
+
end
|
|
24
|
+
|
|
6
25
|
# @return [OpenAI::Resources::Realtime::ClientSecrets]
|
|
7
26
|
attr_reader :client_secrets
|
|
8
27
|
|
|
@@ -1,11 +1,30 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative "../helpers/streaming/response_stream_resource"
|
|
4
|
+
require_relative "../helpers/websocket/resource"
|
|
3
5
|
require_relative "../helpers/structured_output/response_parser"
|
|
4
6
|
|
|
5
7
|
module OpenAI
|
|
6
8
|
module Resources
|
|
7
9
|
# Create and manage model responses.
|
|
8
10
|
class Responses
|
|
11
|
+
include OpenAI::WebSocket::Resource
|
|
12
|
+
|
|
13
|
+
# @api private
|
|
14
|
+
def __websocket_request(query: {})
|
|
15
|
+
{method: :get, path: "responses", query: query, security: {bearer_auth: true}}
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# @api private
|
|
19
|
+
def __websocket_client_event
|
|
20
|
+
OpenAI::Models::Responses::ResponsesClientEvent
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# @api private
|
|
24
|
+
def __websocket_server_event
|
|
25
|
+
OpenAI::Models::Responses::ResponsesServerEvent
|
|
26
|
+
end
|
|
27
|
+
|
|
9
28
|
# Create and manage model responses.
|
|
10
29
|
# @return [OpenAI::Resources::Responses::InputItems]
|
|
11
30
|
attr_reader :input_items
|
|
@@ -168,7 +187,7 @@ module OpenAI
|
|
|
168
187
|
# @param safety_identifier [String, nil]
|
|
169
188
|
# A stable identifier used to help detect users of your application that may be
|
|
170
189
|
# violating OpenAI's usage policies. The IDs should be a string that uniquely
|
|
171
|
-
# identifies each user, with a maximum length of
|
|
190
|
+
# identifies each user, with a maximum length of 128 characters. We recommend
|
|
172
191
|
# hashing their username or email address, in order to avoid sending us any
|
|
173
192
|
# identifying information.
|
|
174
193
|
# [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
|
|
@@ -307,61 +326,6 @@ module OpenAI
|
|
|
307
326
|
)
|
|
308
327
|
end
|
|
309
328
|
|
|
310
|
-
# Creates or resumes a streaming response and parses structured outputs.
|
|
311
|
-
# @overload stream(access_programs: nil, **params)
|
|
312
|
-
# @param access_programs [OpenAI::Models::Responses::ResponseCreateParams::AccessPrograms]
|
|
313
|
-
# Domain-specific access programs to use for this request.
|
|
314
|
-
# @param params [Hash{Symbol=>Object}] Other response creation or retrieval parameters.
|
|
315
|
-
def stream(params)
|
|
316
|
-
parsed, options = OpenAI::Responses::ResponseCreateParams.dump_request(params)
|
|
317
|
-
starting_after, response_id = parsed.values_at(:starting_after, :response_id)
|
|
318
|
-
|
|
319
|
-
if starting_after && !response_id
|
|
320
|
-
raise ArgumentError, "starting_after can only be used with response_id"
|
|
321
|
-
end
|
|
322
|
-
|
|
323
|
-
model, tool_models = get_structured_output_models(parsed)
|
|
324
|
-
|
|
325
|
-
unwrap = -> (raw) do
|
|
326
|
-
if raw[:type] == "response.completed" && raw[:response]
|
|
327
|
-
parse_structured_outputs!(raw[:response], model, tool_models)
|
|
328
|
-
end
|
|
329
|
-
|
|
330
|
-
raw
|
|
331
|
-
end
|
|
332
|
-
|
|
333
|
-
if response_id
|
|
334
|
-
retrieve_params = parsed.slice(:include, :starting_after)
|
|
335
|
-
retrieve_params[:request_options] = options
|
|
336
|
-
|
|
337
|
-
raw_stream = retrieve_streaming_internal(
|
|
338
|
-
response_id,
|
|
339
|
-
params: retrieve_params,
|
|
340
|
-
unwrap: unwrap
|
|
341
|
-
)
|
|
342
|
-
else
|
|
343
|
-
parsed[:stream] = true
|
|
344
|
-
|
|
345
|
-
raw_stream = @client.request(
|
|
346
|
-
method: :post,
|
|
347
|
-
path: "responses",
|
|
348
|
-
headers: {"accept" => "text/event-stream"},
|
|
349
|
-
body: parsed,
|
|
350
|
-
stream: OpenAI::Internal::Stream,
|
|
351
|
-
model: OpenAI::Models::Responses::ResponseStreamEvent,
|
|
352
|
-
unwrap: unwrap,
|
|
353
|
-
security: {bearer_auth: true},
|
|
354
|
-
options: options
|
|
355
|
-
)
|
|
356
|
-
end
|
|
357
|
-
|
|
358
|
-
OpenAI::Streaming::ResponseStream.new(
|
|
359
|
-
raw_stream: raw_stream,
|
|
360
|
-
text_format: model,
|
|
361
|
-
starting_after: starting_after
|
|
362
|
-
)
|
|
363
|
-
end
|
|
364
|
-
|
|
365
329
|
# See {OpenAI::Resources::Responses#create} for non-streaming counterpart.
|
|
366
330
|
#
|
|
367
331
|
# Creates a model response. Provide
|
|
@@ -376,7 +340,10 @@ module OpenAI
|
|
|
376
340
|
# [file search](https://developers.openai.com/api/docs/guides/tools-file-search)
|
|
377
341
|
# to use your own data as input for the model's response.
|
|
378
342
|
#
|
|
379
|
-
# @overload
|
|
343
|
+
# @overload stream_raw(access_programs: nil, background: nil, context_management: nil, conversation: nil, include: nil, input: nil, instructions: nil, max_output_tokens: nil, max_tool_calls: nil, metadata: nil, model: nil, moderation: nil, parallel_tool_calls: nil, previous_response_id: nil, prompt: nil, prompt_cache_key: nil, prompt_cache_options: nil, prompt_cache_retention: nil, reasoning: nil, safety_identifier: nil, service_tier: nil, store: nil, stream_options: nil, temperature: nil, text: nil, tool_choice: nil, tools: nil, top_logprobs: nil, top_p: nil, truncation: nil, user: nil, request_options: {})
|
|
344
|
+
#
|
|
345
|
+
# @param access_programs [OpenAI::Models::Responses::ResponseCreateParams::AccessPrograms]
|
|
346
|
+
# Domain-specific access programs to use for this request.
|
|
380
347
|
#
|
|
381
348
|
# @param background [Boolean, nil]
|
|
382
349
|
# Whether to run the model response in the background.
|
|
@@ -513,7 +480,7 @@ module OpenAI
|
|
|
513
480
|
# @param safety_identifier [String, nil]
|
|
514
481
|
# A stable identifier used to help detect users of your application that may be
|
|
515
482
|
# violating OpenAI's usage policies. The IDs should be a string that uniquely
|
|
516
|
-
# identifies each user, with a maximum length of
|
|
483
|
+
# identifies each user, with a maximum length of 128 characters. We recommend
|
|
517
484
|
# hashing their username or email address, in order to avoid sending us any
|
|
518
485
|
# identifying information.
|
|
519
486
|
# [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
|
|
@@ -672,13 +639,13 @@ module OpenAI
|
|
|
672
639
|
# @param starting_after [Integer]
|
|
673
640
|
# The sequence number of the event after which to start streaming.
|
|
674
641
|
#
|
|
675
|
-
# @param text [OpenAI::Responses::ResponseTextConfig, OpenAI::StructuredOutput::JsonSchemaConverter, Hash, nil]
|
|
676
|
-
#
|
|
677
|
-
# sent to the API.
|
|
642
|
+
# @param text [OpenAI::Responses::ResponseTextConfig, OpenAI::StructuredOutput::JsonSchemaConverter, Hash, nil]
|
|
643
|
+
# The structured-output model used to parse retrieved text output. This is a local
|
|
644
|
+
# parsing hint and is not sent to the API.
|
|
678
645
|
#
|
|
679
|
-
# @param tools [Array<OpenAI::Responses::FunctionTool, OpenAI::StructuredOutput::JsonSchemaConverter, Hash>, nil]
|
|
680
|
-
#
|
|
681
|
-
# and are not sent to the API.
|
|
646
|
+
# @param tools [Array<OpenAI::Responses::FunctionTool, OpenAI::StructuredOutput::JsonSchemaConverter, Hash>, nil]
|
|
647
|
+
# Structured-output models used to parse retrieved function tool calls. These are
|
|
648
|
+
# local parsing hints and are not sent to the API.
|
|
682
649
|
#
|
|
683
650
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
684
651
|
#
|
|
@@ -765,22 +732,6 @@ module OpenAI
|
|
|
765
732
|
)
|
|
766
733
|
end
|
|
767
734
|
|
|
768
|
-
private def retrieve_streaming_internal(response_id, params:, unwrap:)
|
|
769
|
-
parsed, options = OpenAI::Responses::ResponseRetrieveParams.dump_request(params)
|
|
770
|
-
parsed.store(:stream, true)
|
|
771
|
-
@client.request(
|
|
772
|
-
method: :get,
|
|
773
|
-
path: ["responses/%1$s", response_id],
|
|
774
|
-
query: parsed,
|
|
775
|
-
headers: {"accept" => "text/event-stream"},
|
|
776
|
-
stream: OpenAI::Internal::Stream,
|
|
777
|
-
model: OpenAI::Responses::ResponseStreamEvent,
|
|
778
|
-
security: {bearer_auth: true},
|
|
779
|
-
options: options,
|
|
780
|
-
unwrap: unwrap
|
|
781
|
-
)
|
|
782
|
-
end
|
|
783
|
-
|
|
784
735
|
# Deletes a model response with the given ID.
|
|
785
736
|
#
|
|
786
737
|
# @overload delete(response_id, request_options: {})
|
|
@@ -910,32 +861,30 @@ module OpenAI
|
|
|
910
861
|
)
|
|
911
862
|
end
|
|
912
863
|
|
|
913
|
-
|
|
914
|
-
#
|
|
915
|
-
# @param client [OpenAI::Client]
|
|
916
|
-
def initialize(client:)
|
|
917
|
-
@client = client
|
|
918
|
-
@input_items = OpenAI::Resources::Responses::InputItems.new(client: client)
|
|
919
|
-
@input_tokens = OpenAI::Resources::Responses::InputTokens.new(client: client)
|
|
920
|
-
end
|
|
921
|
-
|
|
922
|
-
private
|
|
923
|
-
|
|
924
|
-
def parse_structured_outputs!(raw, model, tool_models)
|
|
864
|
+
private def parse_structured_outputs!(raw, model, tool_models)
|
|
925
865
|
OpenAI::Helpers::StructuredOutput::ResponseParser.parse!(raw, model, tool_models)
|
|
926
866
|
end
|
|
927
867
|
|
|
928
|
-
def parse_retrieved_structured_outputs!(raw, model, tool_models)
|
|
868
|
+
private def parse_retrieved_structured_outputs!(raw, model, tool_models)
|
|
929
869
|
OpenAI::Helpers::StructuredOutput::ResponseParser.parse_retrieved!(raw, model, tool_models)
|
|
930
870
|
end
|
|
931
871
|
|
|
932
|
-
def get_structured_output_models(parsed)
|
|
872
|
+
private def get_structured_output_models(parsed)
|
|
933
873
|
OpenAI::Helpers::StructuredOutput::ResponseParser.get_models(parsed)
|
|
934
874
|
end
|
|
935
875
|
|
|
936
|
-
def get_retrieval_structured_output_models(parsed)
|
|
876
|
+
private def get_retrieval_structured_output_models(parsed)
|
|
937
877
|
OpenAI::Helpers::StructuredOutput::ResponseParser.get_retrieval_models(parsed)
|
|
938
878
|
end
|
|
879
|
+
|
|
880
|
+
# @api private
|
|
881
|
+
#
|
|
882
|
+
# @param client [OpenAI::Client]
|
|
883
|
+
def initialize(client:)
|
|
884
|
+
@client = client
|
|
885
|
+
@input_items = OpenAI::Resources::Responses::InputItems.new(client: client)
|
|
886
|
+
@input_tokens = OpenAI::Resources::Responses::InputTokens.new(client: client)
|
|
887
|
+
end
|
|
939
888
|
end
|
|
940
889
|
end
|
|
941
890
|
end
|