openai 0.88.0 → 0.89.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 +12 -0
- data/README.md +1 -1
- data/lib/openai/client.rb +4 -0
- data/lib/openai/models/beta/beta_response_input_item.rb +91 -1
- data/lib/openai/models/beta/beta_response_item.rb +93 -1
- data/lib/openai/models/beta/beta_response_output_item.rb +91 -1
- data/lib/openai/models/conversations/conversation_item.rb +91 -1
- data/lib/openai/models/live/audio_format.rb +109 -0
- data/lib/openai/models/live/built_in_voice.rb +38 -0
- data/lib/openai/models/live/client_config.rb +22 -0
- data/lib/openai/models/live/client_delegation.rb +22 -0
- data/lib/openai/models/live/client_event.rb +54 -0
- data/lib/openai/models/live/commentary_append_event.rb +59 -0
- data/lib/openai/models/live/commentary_appended_event.rb +65 -0
- data/lib/openai/models/live/custom_voice.rb +17 -0
- data/lib/openai/models/live/data_channel_config.rb +81 -0
- data/lib/openai/models/live/delegation_created_event.rb +140 -0
- data/lib/openai/models/live/error.rb +60 -0
- data/lib/openai/models/live/error_event.rb +52 -0
- data/lib/openai/models/live/fork_client_event.rb +53 -0
- data/lib/openai/models/live/fork_server_event.rb +295 -0
- data/lib/openai/models/live/fork_session_config.rb +107 -0
- data/lib/openai/models/live/fork_session_start_event.rb +48 -0
- data/lib/openai/models/live/function_tool.rb +60 -0
- data/lib/openai/models/live/info_event.rb +60 -0
- data/lib/openai/models/live/initial_item.rb +419 -0
- data/lib/openai/models/live/input_audio_append_event.rb +50 -0
- data/lib/openai/models/live/input_audio_mute_event.rb +33 -0
- data/lib/openai/models/live/input_audio_muted_event.rb +42 -0
- data/lib/openai/models/live/input_audio_unmute_event.rb +33 -0
- data/lib/openai/models/live/input_audio_unmuted_event.rb +42 -0
- data/lib/openai/models/live/input_transcript_delta_event.rb +76 -0
- data/lib/openai/models/live/instructions_append_event.rb +57 -0
- data/lib/openai/models/live/instructions_appended_event.rb +65 -0
- data/lib/openai/models/live/live_create_params.rb +57 -0
- data/lib/openai/models/live/live_create_response.rb +77 -0
- data/lib/openai/models/live/media_session_config.rb +227 -0
- data/lib/openai/models/live/media_session_fork_config.rb +75 -0
- data/lib/openai/models/live/output_audio_delta_event.rb +58 -0
- data/lib/openai/models/live/output_transcript_delta_event.rb +76 -0
- data/lib/openai/models/live/response_create_event.rb +33 -0
- data/lib/openai/models/live/response_event.rb +67 -0
- data/lib/openai/models/live/response_item_create_event.rb +44 -0
- data/lib/openai/models/live/responses_delegation_config.rb +332 -0
- data/lib/openai/models/live/responses_delegation_update_config.rb +332 -0
- data/lib/openai/models/live/server_event.rb +295 -0
- data/lib/openai/models/live/server_event_selector.rb +32 -0
- data/lib/openai/models/live/session_accept_params.rb +257 -0
- data/lib/openai/models/live/session_close_event.rb +33 -0
- data/lib/openai/models/live/session_closed_event.rb +113 -0
- data/lib/openai/models/live/session_config.rb +236 -0
- data/lib/openai/models/live/session_download_recording_params.rb +27 -0
- data/lib/openai/models/live/session_fork_params.rb +66 -0
- data/lib/openai/models/live/session_fork_response.rb +77 -0
- data/lib/openai/models/live/session_hangup_params.rb +22 -0
- data/lib/openai/models/live/session_refer_params.rb +34 -0
- data/lib/openai/models/live/session_reject_params.rb +32 -0
- data/lib/openai/models/live/session_resource.rb +268 -0
- data/lib/openai/models/live/session_start_event.rb +46 -0
- data/lib/openai/models/live/session_started_event.rb +51 -0
- data/lib/openai/models/live/session_update_config.rb +69 -0
- data/lib/openai/models/live/session_update_event.rb +46 -0
- data/lib/openai/models/live/session_updated_event.rb +51 -0
- data/lib/openai/models/live/session_usage.rb +24 -0
- data/lib/openai/models/live/session_usage_updated_event.rb +81 -0
- data/lib/openai/models/live/thinking_append_event.rb +59 -0
- data/lib/openai/models/live/thinking_appended_event.rb +65 -0
- data/lib/openai/models/responses/response_input_item.rb +91 -1
- data/lib/openai/models/responses/response_item.rb +93 -1
- data/lib/openai/models/responses/response_output_item.rb +91 -1
- data/lib/openai/models/webhooks/live_call_incoming_webhook_event.rb +12 -7
- data/lib/openai/models/webhooks/live_transport_incoming_webhook_event.rb +137 -0
- data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +4 -4
- data/lib/openai/models/webhooks/unwrap_webhook_event.rb +9 -2
- data/lib/openai/models.rb +2 -0
- data/lib/openai/resources/live/forks.rb +16 -0
- data/lib/openai/resources/live/sessions.rb +180 -0
- data/lib/openai/resources/live/sideband.rb +16 -0
- data/lib/openai/resources/live.rb +54 -0
- data/lib/openai/resources/webhooks.rb +1 -1
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +65 -0
- data/rbi/openai/client.rbi +3 -0
- data/rbi/openai/models/beta/beta_response_input_item.rbi +109 -0
- data/rbi/openai/models/beta/beta_response_item.rbi +105 -0
- data/rbi/openai/models/beta/beta_response_output_item.rbi +119 -0
- data/rbi/openai/models/conversations/conversation_item.rbi +133 -0
- data/rbi/openai/models/live/audio_format.rbi +185 -0
- data/rbi/openai/models/live/built_in_voice.rbi +46 -0
- data/rbi/openai/models/live/client_config.rbi +54 -0
- data/rbi/openai/models/live/client_delegation.rbi +51 -0
- data/rbi/openai/models/live/client_event.rbi +41 -0
- data/rbi/openai/models/live/commentary_append_event.rbi +88 -0
- data/rbi/openai/models/live/commentary_appended_event.rbi +97 -0
- data/rbi/openai/models/live/custom_voice.rbi +46 -0
- data/rbi/openai/models/live/data_channel_config.rbi +119 -0
- data/rbi/openai/models/live/delegation_created_event.rbi +207 -0
- data/rbi/openai/models/live/error.rbi +95 -0
- data/rbi/openai/models/live/error_event.rbi +87 -0
- data/rbi/openai/models/live/fork_client_event.rbi +40 -0
- data/rbi/openai/models/live/fork_server_event.rbi +436 -0
- data/rbi/openai/models/live/fork_session_config.rbi +234 -0
- data/rbi/openai/models/live/fork_session_start_event.rbi +80 -0
- data/rbi/openai/models/live/function_tool.rbi +95 -0
- data/rbi/openai/models/live/info_event.rbi +92 -0
- data/rbi/openai/models/live/initial_item.rbi +661 -0
- data/rbi/openai/models/live/input_audio_append_event.rbi +79 -0
- data/rbi/openai/models/live/input_audio_mute_event.rbi +62 -0
- data/rbi/openai/models/live/input_audio_muted_event.rbi +74 -0
- data/rbi/openai/models/live/input_audio_unmute_event.rbi +62 -0
- data/rbi/openai/models/live/input_audio_unmuted_event.rbi +74 -0
- data/rbi/openai/models/live/input_transcript_delta_event.rbi +115 -0
- data/rbi/openai/models/live/instructions_append_event.rbi +86 -0
- data/rbi/openai/models/live/instructions_appended_event.rbi +97 -0
- data/rbi/openai/models/live/live_create_params.rbi +121 -0
- data/rbi/openai/models/live/live_create_response.rbi +160 -0
- data/rbi/openai/models/live/media_session_config.rbi +390 -0
- data/rbi/openai/models/live/media_session_fork_config.rbi +143 -0
- data/rbi/openai/models/live/output_audio_delta_event.rbi +93 -0
- data/rbi/openai/models/live/output_transcript_delta_event.rbi +115 -0
- data/rbi/openai/models/live/response_create_event.rbi +62 -0
- data/rbi/openai/models/live/response_event.rbi +105 -0
- data/rbi/openai/models/live/response_item_create_event.rbi +183 -0
- data/rbi/openai/models/live/responses_delegation_config.rbi +562 -0
- data/rbi/openai/models/live/responses_delegation_update_config.rbi +585 -0
- data/rbi/openai/models/live/server_event.rbi +436 -0
- data/rbi/openai/models/live/server_event_selector.rbi +64 -0
- data/rbi/openai/models/live/session_accept_params.rbi +451 -0
- data/rbi/openai/models/live/session_close_event.rbi +62 -0
- data/rbi/openai/models/live/session_closed_event.rbi +148 -0
- data/rbi/openai/models/live/session_config.rbi +427 -0
- data/rbi/openai/models/live/session_download_recording_params.rbi +57 -0
- data/rbi/openai/models/live/session_fork_params.rbi +131 -0
- data/rbi/openai/models/live/session_fork_response.rbi +160 -0
- data/rbi/openai/models/live/session_hangup_params.rbi +53 -0
- data/rbi/openai/models/live/session_refer_params.rbi +64 -0
- data/rbi/openai/models/live/session_reject_params.rbi +62 -0
- data/rbi/openai/models/live/session_resource.rbi +461 -0
- data/rbi/openai/models/live/session_start_event.rbi +78 -0
- data/rbi/openai/models/live/session_started_event.rbi +86 -0
- data/rbi/openai/models/live/session_update_config.rbi +134 -0
- data/rbi/openai/models/live/session_update_event.rbi +78 -0
- data/rbi/openai/models/live/session_updated_event.rbi +86 -0
- data/rbi/openai/models/live/session_usage.rbi +53 -0
- data/rbi/openai/models/live/session_usage_updated_event.rbi +148 -0
- data/rbi/openai/models/live/thinking_append_event.rbi +88 -0
- data/rbi/openai/models/live/thinking_appended_event.rbi +97 -0
- data/rbi/openai/models/responses/response_input_item.rbi +113 -0
- data/rbi/openai/models/responses/response_item.rbi +105 -0
- data/rbi/openai/models/responses/response_output_item.rbi +125 -0
- data/rbi/openai/models/webhooks/live_call_incoming_webhook_event.rbi +11 -7
- data/rbi/openai/models/webhooks/live_transport_incoming_webhook_event.rbi +226 -0
- data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +4 -4
- data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
- data/rbi/openai/models.rbi +2 -0
- data/rbi/openai/resources/live/forks.rbi +19 -0
- data/rbi/openai/resources/live/sessions.rbi +110 -0
- data/rbi/openai/resources/live/sideband.rbi +19 -0
- data/rbi/openai/resources/live.rbi +43 -0
- data/rbi/openai/resources/responses.rbi +75 -38
- data/rbi/openai/resources/webhooks.rbi +1 -0
- data/sig/openai/client.rbs +2 -0
- data/sig/openai/models/beta/beta_response_input_item.rbs +56 -0
- data/sig/openai/models/beta/beta_response_item.rbs +56 -0
- data/sig/openai/models/beta/beta_response_output_item.rbs +56 -0
- data/sig/openai/models/conversations/conversation_item.rbs +56 -0
- data/sig/openai/models/live/audio_format.rbs +73 -0
- data/sig/openai/models/live/built_in_voice.rbs +58 -0
- data/sig/openai/models/live/client_config.rbs +15 -0
- data/sig/openai/models/live/client_delegation.rbs +15 -0
- data/sig/openai/models/live/client_event.rbs +24 -0
- data/sig/openai/models/live/commentary_append_event.rbs +37 -0
- data/sig/openai/models/live/commentary_appended_event.rbs +44 -0
- data/sig/openai/models/live/custom_voice.rbs +15 -0
- data/sig/openai/models/live/data_channel_config.rbs +56 -0
- data/sig/openai/models/live/delegation_created_event.rbs +89 -0
- data/sig/openai/models/live/error.rbs +46 -0
- data/sig/openai/models/live/error_event.rbs +39 -0
- data/sig/openai/models/live/fork_client_event.rbs +24 -0
- data/sig/openai/models/live/fork_server_event.rbs +212 -0
- data/sig/openai/models/live/fork_session_config.rbs +89 -0
- data/sig/openai/models/live/fork_session_start_event.rbs +32 -0
- data/sig/openai/models/live/function_tool.rbs +42 -0
- data/sig/openai/models/live/info_event.rbs +44 -0
- data/sig/openai/models/live/initial_item.rbs +332 -0
- data/sig/openai/models/live/input_audio_append_event.rbs +32 -0
- data/sig/openai/models/live/input_audio_mute_event.rbs +24 -0
- data/sig/openai/models/live/input_audio_muted_event.rbs +34 -0
- data/sig/openai/models/live/input_audio_unmute_event.rbs +24 -0
- data/sig/openai/models/live/input_audio_unmuted_event.rbs +34 -0
- data/sig/openai/models/live/input_transcript_delta_event.rbs +49 -0
- data/sig/openai/models/live/instructions_append_event.rbs +37 -0
- data/sig/openai/models/live/instructions_appended_event.rbs +44 -0
- data/sig/openai/models/live/live_create_params.rbs +45 -0
- data/sig/openai/models/live/live_create_response.rbs +49 -0
- data/sig/openai/models/live/media_session_config.rbs +157 -0
- data/sig/openai/models/live/media_session_fork_config.rbs +66 -0
- data/sig/openai/models/live/output_audio_delta_event.rbs +41 -0
- data/sig/openai/models/live/output_transcript_delta_event.rbs +49 -0
- data/sig/openai/models/live/response_create_event.rbs +18 -0
- data/sig/openai/models/live/response_event.rbs +44 -0
- data/sig/openai/models/live/response_item_create_event.rbs +32 -0
- data/sig/openai/models/live/responses_delegation_config.rbs +244 -0
- data/sig/openai/models/live/responses_delegation_update_config.rbs +246 -0
- data/sig/openai/models/live/server_event.rbs +212 -0
- data/sig/openai/models/live/server_event_selector.rbs +19 -0
- data/sig/openai/models/live/session_accept_params.rbs +185 -0
- data/sig/openai/models/live/session_close_event.rbs +17 -0
- data/sig/openai/models/live/session_closed_event.rbs +68 -0
- data/sig/openai/models/live/session_config.rbs +168 -0
- data/sig/openai/models/live/session_download_recording_params.rbs +25 -0
- data/sig/openai/models/live/session_fork_params.rbs +54 -0
- data/sig/openai/models/live/session_fork_response.rbs +49 -0
- data/sig/openai/models/live/session_hangup_params.rbs +25 -0
- data/sig/openai/models/live/session_refer_params.rbs +33 -0
- data/sig/openai/models/live/session_reject_params.rbs +33 -0
- data/sig/openai/models/live/session_resource.rbs +183 -0
- data/sig/openai/models/live/session_start_event.rbs +32 -0
- data/sig/openai/models/live/session_started_event.rbs +39 -0
- data/sig/openai/models/live/session_update_config.rbs +56 -0
- data/sig/openai/models/live/session_update_event.rbs +32 -0
- data/sig/openai/models/live/session_updated_event.rbs +39 -0
- data/sig/openai/models/live/session_usage.rbs +15 -0
- data/sig/openai/models/live/session_usage_updated_event.rbs +58 -0
- data/sig/openai/models/live/thinking_append_event.rbs +37 -0
- data/sig/openai/models/live/thinking_appended_event.rbs +44 -0
- data/sig/openai/models/responses/response_input_item.rbs +56 -0
- data/sig/openai/models/responses/response_item.rbs +56 -0
- data/sig/openai/models/responses/response_output_item.rbs +56 -0
- data/sig/openai/models/webhooks/live_transport_incoming_webhook_event.rbs +95 -0
- data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
- data/sig/openai/models.rbs +2 -0
- data/sig/openai/resources/live/forks.rbs +9 -0
- data/sig/openai/resources/live/sessions.rbs +44 -0
- data/sig/openai/resources/live/sideband.rbs +9 -0
- data/sig/openai/resources/live.rbs +19 -0
- data/sig/openai/resources/webhooks.rbs +1 -0
- metadata +196 -1
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Live
|
|
6
|
+
# @see OpenAI::Resources::Live::Sessions#accept
|
|
7
|
+
class SessionAcceptParams < OpenAI::Internal::Type::BaseModel
|
|
8
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include OpenAI::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
# @!attribute session_id
|
|
12
|
+
#
|
|
13
|
+
# @return [String]
|
|
14
|
+
required :session_id, String
|
|
15
|
+
|
|
16
|
+
# @!attribute session
|
|
17
|
+
# Model and startup configuration for the Live session that answers the incoming
|
|
18
|
+
# SIP call.
|
|
19
|
+
#
|
|
20
|
+
# @return [OpenAI::Models::Live::SessionAcceptParams::Session]
|
|
21
|
+
required :session, -> { OpenAI::Live::SessionAcceptParams::Session }
|
|
22
|
+
|
|
23
|
+
# @!method initialize(session_id:, session:, request_options: {})
|
|
24
|
+
# @param session_id [String]
|
|
25
|
+
#
|
|
26
|
+
# @param session [OpenAI::Models::Live::SessionAcceptParams::Session]
|
|
27
|
+
# Model and startup configuration for the Live session that answers the incoming
|
|
28
|
+
# SIP call.
|
|
29
|
+
#
|
|
30
|
+
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
|
|
31
|
+
|
|
32
|
+
class Session < OpenAI::Internal::Type::BaseModel
|
|
33
|
+
# @!attribute model
|
|
34
|
+
# The Live model to use for the accepted call.
|
|
35
|
+
#
|
|
36
|
+
# @return [String, Symbol, OpenAI::Models::Live::SessionAcceptParams::Session::Model]
|
|
37
|
+
required :model, union: -> { OpenAI::Live::SessionAcceptParams::Session::Model }
|
|
38
|
+
|
|
39
|
+
# @!attribute type
|
|
40
|
+
# The session type. Always `live`.
|
|
41
|
+
#
|
|
42
|
+
# @return [Symbol, :live]
|
|
43
|
+
required :type, const: :live
|
|
44
|
+
|
|
45
|
+
# @!attribute audio
|
|
46
|
+
# Startup audio output configuration. SIP negotiates the media format;
|
|
47
|
+
# audio.format is only accepted for primary WebSockets. Voice cannot change after
|
|
48
|
+
# startup.
|
|
49
|
+
#
|
|
50
|
+
# @return [OpenAI::Models::Live::SessionAcceptParams::Session::Audio, nil]
|
|
51
|
+
optional :audio, -> { OpenAI::Live::SessionAcceptParams::Session::Audio }
|
|
52
|
+
|
|
53
|
+
# @!attribute delegation
|
|
54
|
+
# Who handles tasks delegated by the Live model. Omitted or null selects your
|
|
55
|
+
# application; use `responses` to let the API manage a Responses backend.
|
|
56
|
+
#
|
|
57
|
+
# @return [OpenAI::Models::Live::ClientDelegation, OpenAI::Models::Live::SessionAcceptParams::Session::Delegation::Responses, nil]
|
|
58
|
+
optional(
|
|
59
|
+
:delegation,
|
|
60
|
+
union: -> {
|
|
61
|
+
OpenAI::Live::SessionAcceptParams::Session::Delegation
|
|
62
|
+
},
|
|
63
|
+
nil?: true
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
# @!attribute input
|
|
67
|
+
# Ordered text-only history supplied before startup. Supports developer, user, and
|
|
68
|
+
# assistant messages with one text part each; at most 128 messages and 8,192
|
|
69
|
+
# rendered tokens in total.
|
|
70
|
+
#
|
|
71
|
+
# @return [Array<OpenAI::Models::Live::InitialItem::Developer, OpenAI::Models::Live::InitialItem::User, OpenAI::Models::Live::InitialItem::Assistant>, nil]
|
|
72
|
+
optional :input, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Live::InitialItem] }
|
|
73
|
+
|
|
74
|
+
# @!attribute instructions
|
|
75
|
+
# Frontend instructions for voice, conversation, interruptions, and when to
|
|
76
|
+
# delegate. Start with the
|
|
77
|
+
# [Live prompting guide](https://developers.openai.com/api/docs/guides/live-prompting);
|
|
78
|
+
# put business rules and tool workflows in a separate
|
|
79
|
+
# [backend prompt](https://developers.openai.com/api/docs/guides/live-delegation#start-with-your-existing-backend-prompt).
|
|
80
|
+
# Limited to 16,384 client-supplied tokens. Omitted or blank instructions use
|
|
81
|
+
# server defaults. Immutable after startup.
|
|
82
|
+
#
|
|
83
|
+
# @return [String, nil]
|
|
84
|
+
optional :instructions, String, nil?: true
|
|
85
|
+
|
|
86
|
+
# @!attribute store
|
|
87
|
+
# Whether to store the session for later forking and recording download. Defaults
|
|
88
|
+
# to false for new sessions.
|
|
89
|
+
#
|
|
90
|
+
# @return [Boolean, nil]
|
|
91
|
+
optional :store, OpenAI::Internal::Type::Boolean
|
|
92
|
+
|
|
93
|
+
# @!method initialize(model:, audio: nil, delegation: nil, input: nil, instructions: nil, store: nil, type: :live)
|
|
94
|
+
# Model and startup configuration for the Live session that answers the incoming
|
|
95
|
+
# SIP call.
|
|
96
|
+
#
|
|
97
|
+
# @param model [String, Symbol, OpenAI::Models::Live::SessionAcceptParams::Session::Model]
|
|
98
|
+
# The Live model to use for the accepted call.
|
|
99
|
+
#
|
|
100
|
+
# @param audio [OpenAI::Models::Live::SessionAcceptParams::Session::Audio]
|
|
101
|
+
# Startup audio output configuration. SIP negotiates the media format;
|
|
102
|
+
# audio.format is only accepted for primary WebSockets. Voice cannot change after
|
|
103
|
+
# startup.
|
|
104
|
+
#
|
|
105
|
+
# @param delegation [OpenAI::Models::Live::ClientDelegation, OpenAI::Models::Live::SessionAcceptParams::Session::Delegation::Responses, nil]
|
|
106
|
+
# Who handles tasks delegated by the Live model. Omitted or null selects your
|
|
107
|
+
# application; use `responses` to let the API manage a Responses backend.
|
|
108
|
+
#
|
|
109
|
+
# @param input [Array<OpenAI::Models::Live::InitialItem::Developer, OpenAI::Models::Live::InitialItem::User, OpenAI::Models::Live::InitialItem::Assistant>]
|
|
110
|
+
# Ordered text-only history supplied before startup. Supports developer, user, and
|
|
111
|
+
# assistant messages with one text part each; at most 128 messages and 8,192
|
|
112
|
+
# rendered tokens in total.
|
|
113
|
+
#
|
|
114
|
+
# @param instructions [String, nil]
|
|
115
|
+
# Frontend instructions for voice, conversation, interruptions, and when to
|
|
116
|
+
# delegate. Start with the
|
|
117
|
+
# [Live prompting guide](https://developers.openai.com/api/docs/guides/live-prompting);
|
|
118
|
+
# put business rules and tool workflows in a separate
|
|
119
|
+
# [backend prompt](https://developers.openai.com/api/docs/guides/live-delegation#start-with-your-existing-backend-prompt).
|
|
120
|
+
# Limited to 16,384 client-supplied tokens. Omitted or blank instructions use
|
|
121
|
+
# server defaults. Immutable after startup.
|
|
122
|
+
#
|
|
123
|
+
# @param store [Boolean]
|
|
124
|
+
# Whether to store the session for later forking and recording download. Defaults
|
|
125
|
+
# to false for new sessions.
|
|
126
|
+
#
|
|
127
|
+
# @param type [Symbol, :live]
|
|
128
|
+
# The session type. Always `live`.
|
|
129
|
+
|
|
130
|
+
# The Live model to use for the accepted call.
|
|
131
|
+
#
|
|
132
|
+
# @see OpenAI::Models::Live::SessionAcceptParams::Session#model
|
|
133
|
+
module Model
|
|
134
|
+
extend OpenAI::Internal::Type::Union
|
|
135
|
+
|
|
136
|
+
variant String
|
|
137
|
+
|
|
138
|
+
# The Live model. Required in the session configuration for every transport; do not pass it as a URL query parameter.
|
|
139
|
+
variant const: -> { OpenAI::Models::Live::SessionAcceptParams::Session::Model::GPT_LIVE_1 }
|
|
140
|
+
|
|
141
|
+
# @!method self.variants
|
|
142
|
+
# @return [Array(String, Symbol)]
|
|
143
|
+
|
|
144
|
+
define_sorbet_constant!(:Variants) do
|
|
145
|
+
T.type_alias { T.any(String, OpenAI::Live::SessionAcceptParams::Session::Model::TaggedSymbol) }
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
# @!group
|
|
149
|
+
|
|
150
|
+
GPT_LIVE_1 = :"gpt-live-1"
|
|
151
|
+
|
|
152
|
+
# @!endgroup
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# @see OpenAI::Models::Live::SessionAcceptParams::Session#audio
|
|
156
|
+
class Audio < OpenAI::Internal::Type::BaseModel
|
|
157
|
+
# @!attribute output
|
|
158
|
+
# Settings for speech generated by the Live model. Choose the voice before
|
|
159
|
+
# starting the session.
|
|
160
|
+
#
|
|
161
|
+
# @return [OpenAI::Models::Live::SessionAcceptParams::Session::Audio::Output, nil]
|
|
162
|
+
optional :output, -> { OpenAI::Live::SessionAcceptParams::Session::Audio::Output }
|
|
163
|
+
|
|
164
|
+
# @!method initialize(output: nil)
|
|
165
|
+
# Startup audio output configuration. SIP negotiates the media format;
|
|
166
|
+
# audio.format is only accepted for primary WebSockets. Voice cannot change after
|
|
167
|
+
# startup.
|
|
168
|
+
#
|
|
169
|
+
# @param output [OpenAI::Models::Live::SessionAcceptParams::Session::Audio::Output]
|
|
170
|
+
# Settings for speech generated by the Live model. Choose the voice before
|
|
171
|
+
# starting the session.
|
|
172
|
+
|
|
173
|
+
# @see OpenAI::Models::Live::SessionAcceptParams::Session::Audio#output
|
|
174
|
+
class Output < OpenAI::Internal::Type::BaseModel
|
|
175
|
+
# @!attribute voice
|
|
176
|
+
# The voice used for Live speech, as a built-in voice name or a custom voice
|
|
177
|
+
# object containing its ID. Defaults to `marin` and cannot change after startup.
|
|
178
|
+
#
|
|
179
|
+
# @return [String, Symbol, OpenAI::Models::Live::BuiltInVoice, OpenAI::Models::Live::CustomVoice, nil]
|
|
180
|
+
optional :voice, union: -> { OpenAI::Live::SessionAcceptParams::Session::Audio::Output::Voice }
|
|
181
|
+
|
|
182
|
+
# @!method initialize(voice: nil)
|
|
183
|
+
# Settings for speech generated by the Live model. Choose the voice before
|
|
184
|
+
# starting the session.
|
|
185
|
+
#
|
|
186
|
+
# @param voice [String, Symbol, OpenAI::Models::Live::BuiltInVoice, OpenAI::Models::Live::CustomVoice]
|
|
187
|
+
# The voice used for Live speech, as a built-in voice name or a custom voice
|
|
188
|
+
# object containing its ID. Defaults to `marin` and cannot change after startup.
|
|
189
|
+
|
|
190
|
+
# The voice used for Live speech, as a built-in voice name or a custom voice
|
|
191
|
+
# object containing its ID. Defaults to `marin` and cannot change after startup.
|
|
192
|
+
#
|
|
193
|
+
# @see OpenAI::Models::Live::SessionAcceptParams::Session::Audio::Output#voice
|
|
194
|
+
module Voice
|
|
195
|
+
extend OpenAI::Internal::Type::Union
|
|
196
|
+
|
|
197
|
+
variant String
|
|
198
|
+
|
|
199
|
+
# A built-in voice available for Live speech.
|
|
200
|
+
variant enum: -> { OpenAI::Live::BuiltInVoice }
|
|
201
|
+
|
|
202
|
+
variant -> { OpenAI::Live::CustomVoice }
|
|
203
|
+
|
|
204
|
+
# @!method self.variants
|
|
205
|
+
# @return [Array(String, Symbol, OpenAI::Models::Live::BuiltInVoice, OpenAI::Models::Live::CustomVoice)]
|
|
206
|
+
end
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
# Who handles tasks delegated by the Live model. Omitted or null selects your
|
|
211
|
+
# application; use `responses` to let the API manage a Responses backend.
|
|
212
|
+
#
|
|
213
|
+
# @see OpenAI::Models::Live::SessionAcceptParams::Session#delegation
|
|
214
|
+
module Delegation
|
|
215
|
+
extend OpenAI::Internal::Type::Union
|
|
216
|
+
|
|
217
|
+
discriminator :type
|
|
218
|
+
|
|
219
|
+
# Delegate tasks to your application. The Live session emits delegation events that your backend handles.
|
|
220
|
+
variant :client, -> { OpenAI::Live::ClientDelegation }
|
|
221
|
+
|
|
222
|
+
# Delegate tasks to a Responses model managed by the Live session.
|
|
223
|
+
variant :responses, -> { OpenAI::Live::SessionAcceptParams::Session::Delegation::Responses }
|
|
224
|
+
|
|
225
|
+
class Responses < OpenAI::Internal::Type::BaseModel
|
|
226
|
+
# @!attribute responses
|
|
227
|
+
# Backend model, prompt, and tools used when the Live session delegates a task to
|
|
228
|
+
# Responses.
|
|
229
|
+
#
|
|
230
|
+
# @return [OpenAI::Models::Live::ResponsesDelegationConfig]
|
|
231
|
+
required :responses, -> { OpenAI::Live::ResponsesDelegationConfig }
|
|
232
|
+
|
|
233
|
+
# @!attribute type
|
|
234
|
+
# The delegation owner. Always `responses` for tasks handled by the Responses API.
|
|
235
|
+
#
|
|
236
|
+
# @return [Symbol, :responses]
|
|
237
|
+
required :type, const: :responses
|
|
238
|
+
|
|
239
|
+
# @!method initialize(responses:, type: :responses)
|
|
240
|
+
# Delegate tasks to a Responses model managed by the Live session.
|
|
241
|
+
#
|
|
242
|
+
# @param responses [OpenAI::Models::Live::ResponsesDelegationConfig]
|
|
243
|
+
# Backend model, prompt, and tools used when the Live session delegates a task to
|
|
244
|
+
# Responses.
|
|
245
|
+
#
|
|
246
|
+
# @param type [Symbol, :responses]
|
|
247
|
+
# The delegation owner. Always `responses` for tasks handled by the Responses API.
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
# @!method self.variants
|
|
251
|
+
# @return [Array(OpenAI::Models::Live::ClientDelegation, OpenAI::Models::Live::SessionAcceptParams::Session::Delegation::Responses)]
|
|
252
|
+
end
|
|
253
|
+
end
|
|
254
|
+
end
|
|
255
|
+
end
|
|
256
|
+
end
|
|
257
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Live
|
|
6
|
+
class SessionCloseEvent < OpenAI::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute type
|
|
8
|
+
# The Live client event type. Always `session.close`.
|
|
9
|
+
#
|
|
10
|
+
# @return [Symbol, :"session.close"]
|
|
11
|
+
required :type, const: :"session.close"
|
|
12
|
+
|
|
13
|
+
# @!attribute event_id
|
|
14
|
+
# Optional client identifier for correlating this command with a server event's
|
|
15
|
+
# client_event_id or error.client_event_id.
|
|
16
|
+
#
|
|
17
|
+
# @return [String, nil]
|
|
18
|
+
optional :event_id, String, nil?: true
|
|
19
|
+
|
|
20
|
+
# @!method initialize(event_id: nil, type: :"session.close")
|
|
21
|
+
# Request that the Live session close. The terminal `session.closed` event
|
|
22
|
+
# contains the close reason and final usage.
|
|
23
|
+
#
|
|
24
|
+
# @param event_id [String, nil]
|
|
25
|
+
# Optional client identifier for correlating this command with a server event's
|
|
26
|
+
# client_event_id or error.client_event_id.
|
|
27
|
+
#
|
|
28
|
+
# @param type [Symbol, :"session.close"]
|
|
29
|
+
# The Live client event type. Always `session.close`.
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Live
|
|
6
|
+
class SessionClosedEvent < OpenAI::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute event_id
|
|
8
|
+
# The unique ID of the Live server event.
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
required :event_id, String
|
|
12
|
+
|
|
13
|
+
# @!attribute reason
|
|
14
|
+
# Why the Live session ended: `close_requested` for an application close or hangup
|
|
15
|
+
# request, `expired` for the session duration limit, `content` for a safety
|
|
16
|
+
# filter, `remote_hangup` for a graceful remote disconnect, or `connection_lost`
|
|
17
|
+
# for an unexpected primary or upstream disconnection.
|
|
18
|
+
#
|
|
19
|
+
# @return [Symbol, OpenAI::Models::Live::SessionClosedEvent::Reason]
|
|
20
|
+
required :reason, union: -> { OpenAI::Live::SessionClosedEvent::Reason }
|
|
21
|
+
|
|
22
|
+
# @!attribute session
|
|
23
|
+
# The resolved Live session configuration and server-assigned session metadata.
|
|
24
|
+
#
|
|
25
|
+
# @return [OpenAI::Models::Live::SessionResource]
|
|
26
|
+
required :session, -> { OpenAI::Live::SessionResource }
|
|
27
|
+
|
|
28
|
+
# @!attribute type
|
|
29
|
+
# The event type, always `session.closed`.
|
|
30
|
+
#
|
|
31
|
+
# @return [Symbol, :"session.closed"]
|
|
32
|
+
required :type, const: :"session.closed"
|
|
33
|
+
|
|
34
|
+
# @!attribute usage
|
|
35
|
+
# The final cumulative Live audio usage after session finalization.
|
|
36
|
+
#
|
|
37
|
+
# @return [OpenAI::Models::Live::SessionUsage]
|
|
38
|
+
required :usage, -> { OpenAI::Live::SessionUsage }
|
|
39
|
+
|
|
40
|
+
# @!attribute client_event_id
|
|
41
|
+
# The event_id of the client command associated with this server event, when
|
|
42
|
+
# supplied.
|
|
43
|
+
#
|
|
44
|
+
# @return [String, nil]
|
|
45
|
+
optional :client_event_id, String
|
|
46
|
+
|
|
47
|
+
# @!method initialize(event_id:, reason:, session:, usage:, client_event_id: nil, type: :"session.closed")
|
|
48
|
+
# Returned after the Live session finishes finalizing, with the close reason,
|
|
49
|
+
# final session snapshot, and cumulative audio usage. A connection closing without
|
|
50
|
+
# this event does not confirm successful finalization.
|
|
51
|
+
#
|
|
52
|
+
# @param event_id [String]
|
|
53
|
+
# The unique ID of the Live server event.
|
|
54
|
+
#
|
|
55
|
+
# @param reason [Symbol, OpenAI::Models::Live::SessionClosedEvent::Reason]
|
|
56
|
+
# Why the Live session ended: `close_requested` for an application close or hangup
|
|
57
|
+
# request, `expired` for the session duration limit, `content` for a safety
|
|
58
|
+
# filter, `remote_hangup` for a graceful remote disconnect, or `connection_lost`
|
|
59
|
+
# for an unexpected primary or upstream disconnection.
|
|
60
|
+
#
|
|
61
|
+
# @param session [OpenAI::Models::Live::SessionResource]
|
|
62
|
+
# The resolved Live session configuration and server-assigned session metadata.
|
|
63
|
+
#
|
|
64
|
+
# @param usage [OpenAI::Models::Live::SessionUsage]
|
|
65
|
+
# The final cumulative Live audio usage after session finalization.
|
|
66
|
+
#
|
|
67
|
+
# @param client_event_id [String]
|
|
68
|
+
# The event_id of the client command associated with this server event, when
|
|
69
|
+
# supplied.
|
|
70
|
+
#
|
|
71
|
+
# @param type [Symbol, :"session.closed"]
|
|
72
|
+
# The event type, always `session.closed`.
|
|
73
|
+
|
|
74
|
+
# Why the Live session ended: `close_requested` for an application close or hangup
|
|
75
|
+
# request, `expired` for the session duration limit, `content` for a safety
|
|
76
|
+
# filter, `remote_hangup` for a graceful remote disconnect, or `connection_lost`
|
|
77
|
+
# for an unexpected primary or upstream disconnection.
|
|
78
|
+
#
|
|
79
|
+
# @see OpenAI::Models::Live::SessionClosedEvent#reason
|
|
80
|
+
module Reason
|
|
81
|
+
extend OpenAI::Internal::Type::Union
|
|
82
|
+
|
|
83
|
+
variant const: -> { OpenAI::Models::Live::SessionClosedEvent::Reason::CLOSE_REQUESTED }
|
|
84
|
+
|
|
85
|
+
variant const: -> { OpenAI::Models::Live::SessionClosedEvent::Reason::EXPIRED }
|
|
86
|
+
|
|
87
|
+
variant const: -> { OpenAI::Models::Live::SessionClosedEvent::Reason::CONTENT }
|
|
88
|
+
|
|
89
|
+
variant const: -> { OpenAI::Models::Live::SessionClosedEvent::Reason::REMOTE_HANGUP }
|
|
90
|
+
|
|
91
|
+
variant const: -> { OpenAI::Models::Live::SessionClosedEvent::Reason::CONNECTION_LOST }
|
|
92
|
+
|
|
93
|
+
# @!method self.variants
|
|
94
|
+
# @return [Array(Symbol)]
|
|
95
|
+
|
|
96
|
+
define_sorbet_constant!(:Variants) do
|
|
97
|
+
T.type_alias { OpenAI::Live::SessionClosedEvent::Reason::TaggedSymbol }
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# @!group
|
|
101
|
+
|
|
102
|
+
CLOSE_REQUESTED = :close_requested
|
|
103
|
+
EXPIRED = :expired
|
|
104
|
+
CONTENT = :content
|
|
105
|
+
REMOTE_HANGUP = :remote_hangup
|
|
106
|
+
CONNECTION_LOST = :connection_lost
|
|
107
|
+
|
|
108
|
+
# @!endgroup
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Live
|
|
6
|
+
class SessionConfig < OpenAI::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute model
|
|
8
|
+
# The Live model. Required in the session configuration for every transport; do
|
|
9
|
+
# not pass it as a URL query parameter.
|
|
10
|
+
#
|
|
11
|
+
# @return [String, Symbol, OpenAI::Models::Live::SessionConfig::Model]
|
|
12
|
+
required :model, union: -> { OpenAI::Live::SessionConfig::Model }
|
|
13
|
+
|
|
14
|
+
# @!attribute audio
|
|
15
|
+
# Startup audio configuration. Only primary WebSockets accept audio.format; WebRTC
|
|
16
|
+
# and SIP negotiate their media format. Voice and format are immutable after
|
|
17
|
+
# startup.
|
|
18
|
+
#
|
|
19
|
+
# @return [OpenAI::Models::Live::SessionConfig::Audio, nil]
|
|
20
|
+
optional :audio, -> { OpenAI::Live::SessionConfig::Audio }
|
|
21
|
+
|
|
22
|
+
# @!attribute client
|
|
23
|
+
# Startup-only capabilities for an untrusted frontend attached to a unified WebRTC
|
|
24
|
+
# session. Trusted sideband connections are unaffected.
|
|
25
|
+
#
|
|
26
|
+
# @return [OpenAI::Models::Live::ClientConfig, nil]
|
|
27
|
+
optional :client, -> { OpenAI::Live::ClientConfig }
|
|
28
|
+
|
|
29
|
+
# @!attribute delegation
|
|
30
|
+
# Who handles tasks delegated by the Live model. Omitted or null selects your
|
|
31
|
+
# application; use `responses` to let the API manage a Responses backend.
|
|
32
|
+
#
|
|
33
|
+
# @return [OpenAI::Models::Live::ClientDelegation, OpenAI::Models::Live::SessionConfig::Delegation::Responses, nil]
|
|
34
|
+
optional :delegation, union: -> { OpenAI::Live::SessionConfig::Delegation }, nil?: true
|
|
35
|
+
|
|
36
|
+
# @!attribute input
|
|
37
|
+
# Ordered text-only history supplied before startup. Supports developer, user, and
|
|
38
|
+
# assistant messages with one text part each; at most 128 messages and 8,192
|
|
39
|
+
# rendered tokens in total.
|
|
40
|
+
#
|
|
41
|
+
# @return [Array<OpenAI::Models::Live::InitialItem::Developer, OpenAI::Models::Live::InitialItem::User, OpenAI::Models::Live::InitialItem::Assistant>, nil]
|
|
42
|
+
optional :input, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Live::InitialItem] }
|
|
43
|
+
|
|
44
|
+
# @!attribute instructions
|
|
45
|
+
# Frontend instructions for voice, conversation, interruptions, and when to
|
|
46
|
+
# delegate. Start with the
|
|
47
|
+
# [Live prompting guide](https://developers.openai.com/api/docs/guides/live-prompting);
|
|
48
|
+
# put business rules and tool workflows in a separate
|
|
49
|
+
# [backend prompt](https://developers.openai.com/api/docs/guides/live-delegation#start-with-your-existing-backend-prompt).
|
|
50
|
+
# Limited to 16,384 client-supplied tokens. Omitted or blank instructions use
|
|
51
|
+
# server defaults. Immutable after startup.
|
|
52
|
+
#
|
|
53
|
+
# @return [String, nil]
|
|
54
|
+
optional :instructions, String, nil?: true
|
|
55
|
+
|
|
56
|
+
# @!attribute store
|
|
57
|
+
# Whether to store the session for later forking and recording download. Defaults
|
|
58
|
+
# to false for new sessions.
|
|
59
|
+
#
|
|
60
|
+
# @return [Boolean, nil]
|
|
61
|
+
optional :store, OpenAI::Internal::Type::Boolean
|
|
62
|
+
|
|
63
|
+
# @!method initialize(model:, audio: nil, client: nil, delegation: nil, input: nil, instructions: nil, store: nil)
|
|
64
|
+
# Initial configuration for a Live session, including its model, conversation
|
|
65
|
+
# instructions, audio, and delegated task handling.
|
|
66
|
+
#
|
|
67
|
+
# @param model [String, Symbol, OpenAI::Models::Live::SessionConfig::Model]
|
|
68
|
+
# The Live model. Required in the session configuration for every transport; do
|
|
69
|
+
# not pass it as a URL query parameter.
|
|
70
|
+
#
|
|
71
|
+
# @param audio [OpenAI::Models::Live::SessionConfig::Audio]
|
|
72
|
+
# Startup audio configuration. Only primary WebSockets accept audio.format; WebRTC
|
|
73
|
+
# and SIP negotiate their media format. Voice and format are immutable after
|
|
74
|
+
# startup.
|
|
75
|
+
#
|
|
76
|
+
# @param client [OpenAI::Models::Live::ClientConfig]
|
|
77
|
+
# Startup-only capabilities for an untrusted frontend attached to a unified WebRTC
|
|
78
|
+
# session. Trusted sideband connections are unaffected.
|
|
79
|
+
#
|
|
80
|
+
# @param delegation [OpenAI::Models::Live::ClientDelegation, OpenAI::Models::Live::SessionConfig::Delegation::Responses, nil]
|
|
81
|
+
# Who handles tasks delegated by the Live model. Omitted or null selects your
|
|
82
|
+
# application; use `responses` to let the API manage a Responses backend.
|
|
83
|
+
#
|
|
84
|
+
# @param input [Array<OpenAI::Models::Live::InitialItem::Developer, OpenAI::Models::Live::InitialItem::User, OpenAI::Models::Live::InitialItem::Assistant>]
|
|
85
|
+
# Ordered text-only history supplied before startup. Supports developer, user, and
|
|
86
|
+
# assistant messages with one text part each; at most 128 messages and 8,192
|
|
87
|
+
# rendered tokens in total.
|
|
88
|
+
#
|
|
89
|
+
# @param instructions [String, nil]
|
|
90
|
+
# Frontend instructions for voice, conversation, interruptions, and when to
|
|
91
|
+
# delegate. Start with the
|
|
92
|
+
# [Live prompting guide](https://developers.openai.com/api/docs/guides/live-prompting);
|
|
93
|
+
# put business rules and tool workflows in a separate
|
|
94
|
+
# [backend prompt](https://developers.openai.com/api/docs/guides/live-delegation#start-with-your-existing-backend-prompt).
|
|
95
|
+
# Limited to 16,384 client-supplied tokens. Omitted or blank instructions use
|
|
96
|
+
# server defaults. Immutable after startup.
|
|
97
|
+
#
|
|
98
|
+
# @param store [Boolean]
|
|
99
|
+
# Whether to store the session for later forking and recording download. Defaults
|
|
100
|
+
# to false for new sessions.
|
|
101
|
+
|
|
102
|
+
# The Live model. Required in the session configuration for every transport; do
|
|
103
|
+
# not pass it as a URL query parameter.
|
|
104
|
+
#
|
|
105
|
+
# @see OpenAI::Models::Live::SessionConfig#model
|
|
106
|
+
module Model
|
|
107
|
+
extend OpenAI::Internal::Type::Union
|
|
108
|
+
|
|
109
|
+
variant String
|
|
110
|
+
|
|
111
|
+
variant const: -> { OpenAI::Models::Live::SessionConfig::Model::GPT_LIVE_1 }
|
|
112
|
+
|
|
113
|
+
# @!method self.variants
|
|
114
|
+
# @return [Array(String, Symbol)]
|
|
115
|
+
|
|
116
|
+
define_sorbet_constant!(:Variants) do
|
|
117
|
+
T.type_alias { T.any(String, OpenAI::Live::SessionConfig::Model::TaggedSymbol) }
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# @!group
|
|
121
|
+
|
|
122
|
+
GPT_LIVE_1 = :"gpt-live-1"
|
|
123
|
+
|
|
124
|
+
# @!endgroup
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# @see OpenAI::Models::Live::SessionConfig#audio
|
|
128
|
+
class Audio < OpenAI::Internal::Type::BaseModel
|
|
129
|
+
# @!attribute format_
|
|
130
|
+
# Audio encoding and sample rate for audio sent and received over a Live WebSocket
|
|
131
|
+
# connection. WebRTC and SIP negotiate their media format separately.
|
|
132
|
+
#
|
|
133
|
+
# @return [OpenAI::Models::Live::AudioFormat::AudioPCM, OpenAI::Models::Live::AudioFormat::AudioPCMU, OpenAI::Models::Live::AudioFormat::AudioPCMA, nil]
|
|
134
|
+
optional :format_, union: -> { OpenAI::Live::AudioFormat }, api_name: :format
|
|
135
|
+
|
|
136
|
+
# @!attribute output
|
|
137
|
+
# The voice used for speech generated by the Live model.
|
|
138
|
+
#
|
|
139
|
+
# @return [OpenAI::Models::Live::SessionConfig::Audio::Output, nil]
|
|
140
|
+
optional :output, -> { OpenAI::Live::SessionConfig::Audio::Output }
|
|
141
|
+
|
|
142
|
+
# @!method initialize(format_: nil, output: nil)
|
|
143
|
+
# Startup audio configuration. Only primary WebSockets accept audio.format; WebRTC
|
|
144
|
+
# and SIP negotiate their media format. Voice and format are immutable after
|
|
145
|
+
# startup.
|
|
146
|
+
#
|
|
147
|
+
# @param format_ [OpenAI::Models::Live::AudioFormat::AudioPCM, OpenAI::Models::Live::AudioFormat::AudioPCMU, OpenAI::Models::Live::AudioFormat::AudioPCMA]
|
|
148
|
+
# Audio encoding and sample rate for audio sent and received over a Live WebSocket
|
|
149
|
+
# connection. WebRTC and SIP negotiate their media format separately.
|
|
150
|
+
#
|
|
151
|
+
# @param output [OpenAI::Models::Live::SessionConfig::Audio::Output]
|
|
152
|
+
# The voice used for speech generated by the Live model.
|
|
153
|
+
|
|
154
|
+
# @see OpenAI::Models::Live::SessionConfig::Audio#output
|
|
155
|
+
class Output < OpenAI::Internal::Type::BaseModel
|
|
156
|
+
# @!attribute voice
|
|
157
|
+
# The voice used for Live speech, as a built-in voice name or a custom voice
|
|
158
|
+
# object containing its ID. Defaults to `marin` and cannot change after startup.
|
|
159
|
+
#
|
|
160
|
+
# @return [String, Symbol, OpenAI::Models::Live::BuiltInVoice, OpenAI::Models::Live::CustomVoice, nil]
|
|
161
|
+
optional :voice, union: -> { OpenAI::Live::SessionConfig::Audio::Output::Voice }
|
|
162
|
+
|
|
163
|
+
# @!method initialize(voice: nil)
|
|
164
|
+
# The voice used for speech generated by the Live model.
|
|
165
|
+
#
|
|
166
|
+
# @param voice [String, Symbol, OpenAI::Models::Live::BuiltInVoice, OpenAI::Models::Live::CustomVoice]
|
|
167
|
+
# The voice used for Live speech, as a built-in voice name or a custom voice
|
|
168
|
+
# object containing its ID. Defaults to `marin` and cannot change after startup.
|
|
169
|
+
|
|
170
|
+
# The voice used for Live speech, as a built-in voice name or a custom voice
|
|
171
|
+
# object containing its ID. Defaults to `marin` and cannot change after startup.
|
|
172
|
+
#
|
|
173
|
+
# @see OpenAI::Models::Live::SessionConfig::Audio::Output#voice
|
|
174
|
+
module Voice
|
|
175
|
+
extend OpenAI::Internal::Type::Union
|
|
176
|
+
|
|
177
|
+
variant String
|
|
178
|
+
|
|
179
|
+
# A built-in voice available for Live speech.
|
|
180
|
+
variant enum: -> { OpenAI::Live::BuiltInVoice }
|
|
181
|
+
|
|
182
|
+
variant -> { OpenAI::Live::CustomVoice }
|
|
183
|
+
|
|
184
|
+
# @!method self.variants
|
|
185
|
+
# @return [Array(String, Symbol, OpenAI::Models::Live::BuiltInVoice, OpenAI::Models::Live::CustomVoice)]
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
# Who handles tasks delegated by the Live model. Omitted or null selects your
|
|
191
|
+
# application; use `responses` to let the API manage a Responses backend.
|
|
192
|
+
#
|
|
193
|
+
# @see OpenAI::Models::Live::SessionConfig#delegation
|
|
194
|
+
module Delegation
|
|
195
|
+
extend OpenAI::Internal::Type::Union
|
|
196
|
+
|
|
197
|
+
discriminator :type
|
|
198
|
+
|
|
199
|
+
# Delegate tasks to your application. The Live session emits delegation events that your backend handles.
|
|
200
|
+
variant :client, -> { OpenAI::Live::ClientDelegation }
|
|
201
|
+
|
|
202
|
+
# Delegate tasks to a Responses model managed by the Live session.
|
|
203
|
+
variant :responses, -> { OpenAI::Live::SessionConfig::Delegation::Responses }
|
|
204
|
+
|
|
205
|
+
class Responses < OpenAI::Internal::Type::BaseModel
|
|
206
|
+
# @!attribute responses
|
|
207
|
+
# Backend model, prompt, and tools used when the Live session delegates a task to
|
|
208
|
+
# Responses.
|
|
209
|
+
#
|
|
210
|
+
# @return [OpenAI::Models::Live::ResponsesDelegationConfig]
|
|
211
|
+
required :responses, -> { OpenAI::Live::ResponsesDelegationConfig }
|
|
212
|
+
|
|
213
|
+
# @!attribute type
|
|
214
|
+
# The delegation owner. Always `responses` for tasks handled by the Responses API.
|
|
215
|
+
#
|
|
216
|
+
# @return [Symbol, :responses]
|
|
217
|
+
required :type, const: :responses
|
|
218
|
+
|
|
219
|
+
# @!method initialize(responses:, type: :responses)
|
|
220
|
+
# Delegate tasks to a Responses model managed by the Live session.
|
|
221
|
+
#
|
|
222
|
+
# @param responses [OpenAI::Models::Live::ResponsesDelegationConfig]
|
|
223
|
+
# Backend model, prompt, and tools used when the Live session delegates a task to
|
|
224
|
+
# Responses.
|
|
225
|
+
#
|
|
226
|
+
# @param type [Symbol, :responses]
|
|
227
|
+
# The delegation owner. Always `responses` for tasks handled by the Responses API.
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
# @!method self.variants
|
|
231
|
+
# @return [Array(OpenAI::Models::Live::ClientDelegation, OpenAI::Models::Live::SessionConfig::Delegation::Responses)]
|
|
232
|
+
end
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Live
|
|
6
|
+
# @see OpenAI::Resources::Live::Sessions#download_recording
|
|
7
|
+
class SessionDownloadRecordingParams < OpenAI::Internal::Type::BaseModel
|
|
8
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include OpenAI::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
# @!attribute session_id
|
|
12
|
+
# The ID of the stored Live session to download. Use the session ID returned when
|
|
13
|
+
# the session started with storage enabled.
|
|
14
|
+
#
|
|
15
|
+
# @return [String]
|
|
16
|
+
required :session_id, String
|
|
17
|
+
|
|
18
|
+
# @!method initialize(session_id:, request_options: {})
|
|
19
|
+
# @param session_id [String]
|
|
20
|
+
# The ID of the stored Live session to download. Use the session ID returned when
|
|
21
|
+
# the session started with storage enabled.
|
|
22
|
+
#
|
|
23
|
+
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|