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.
Files changed (239) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +4 -0
  5. data/lib/openai/models/beta/beta_response_input_item.rb +91 -1
  6. data/lib/openai/models/beta/beta_response_item.rb +93 -1
  7. data/lib/openai/models/beta/beta_response_output_item.rb +91 -1
  8. data/lib/openai/models/conversations/conversation_item.rb +91 -1
  9. data/lib/openai/models/live/audio_format.rb +109 -0
  10. data/lib/openai/models/live/built_in_voice.rb +38 -0
  11. data/lib/openai/models/live/client_config.rb +22 -0
  12. data/lib/openai/models/live/client_delegation.rb +22 -0
  13. data/lib/openai/models/live/client_event.rb +54 -0
  14. data/lib/openai/models/live/commentary_append_event.rb +59 -0
  15. data/lib/openai/models/live/commentary_appended_event.rb +65 -0
  16. data/lib/openai/models/live/custom_voice.rb +17 -0
  17. data/lib/openai/models/live/data_channel_config.rb +81 -0
  18. data/lib/openai/models/live/delegation_created_event.rb +140 -0
  19. data/lib/openai/models/live/error.rb +60 -0
  20. data/lib/openai/models/live/error_event.rb +52 -0
  21. data/lib/openai/models/live/fork_client_event.rb +53 -0
  22. data/lib/openai/models/live/fork_server_event.rb +295 -0
  23. data/lib/openai/models/live/fork_session_config.rb +107 -0
  24. data/lib/openai/models/live/fork_session_start_event.rb +48 -0
  25. data/lib/openai/models/live/function_tool.rb +60 -0
  26. data/lib/openai/models/live/info_event.rb +60 -0
  27. data/lib/openai/models/live/initial_item.rb +419 -0
  28. data/lib/openai/models/live/input_audio_append_event.rb +50 -0
  29. data/lib/openai/models/live/input_audio_mute_event.rb +33 -0
  30. data/lib/openai/models/live/input_audio_muted_event.rb +42 -0
  31. data/lib/openai/models/live/input_audio_unmute_event.rb +33 -0
  32. data/lib/openai/models/live/input_audio_unmuted_event.rb +42 -0
  33. data/lib/openai/models/live/input_transcript_delta_event.rb +76 -0
  34. data/lib/openai/models/live/instructions_append_event.rb +57 -0
  35. data/lib/openai/models/live/instructions_appended_event.rb +65 -0
  36. data/lib/openai/models/live/live_create_params.rb +57 -0
  37. data/lib/openai/models/live/live_create_response.rb +77 -0
  38. data/lib/openai/models/live/media_session_config.rb +227 -0
  39. data/lib/openai/models/live/media_session_fork_config.rb +75 -0
  40. data/lib/openai/models/live/output_audio_delta_event.rb +58 -0
  41. data/lib/openai/models/live/output_transcript_delta_event.rb +76 -0
  42. data/lib/openai/models/live/response_create_event.rb +33 -0
  43. data/lib/openai/models/live/response_event.rb +67 -0
  44. data/lib/openai/models/live/response_item_create_event.rb +44 -0
  45. data/lib/openai/models/live/responses_delegation_config.rb +332 -0
  46. data/lib/openai/models/live/responses_delegation_update_config.rb +332 -0
  47. data/lib/openai/models/live/server_event.rb +295 -0
  48. data/lib/openai/models/live/server_event_selector.rb +32 -0
  49. data/lib/openai/models/live/session_accept_params.rb +257 -0
  50. data/lib/openai/models/live/session_close_event.rb +33 -0
  51. data/lib/openai/models/live/session_closed_event.rb +113 -0
  52. data/lib/openai/models/live/session_config.rb +236 -0
  53. data/lib/openai/models/live/session_download_recording_params.rb +27 -0
  54. data/lib/openai/models/live/session_fork_params.rb +66 -0
  55. data/lib/openai/models/live/session_fork_response.rb +77 -0
  56. data/lib/openai/models/live/session_hangup_params.rb +22 -0
  57. data/lib/openai/models/live/session_refer_params.rb +34 -0
  58. data/lib/openai/models/live/session_reject_params.rb +32 -0
  59. data/lib/openai/models/live/session_resource.rb +268 -0
  60. data/lib/openai/models/live/session_start_event.rb +46 -0
  61. data/lib/openai/models/live/session_started_event.rb +51 -0
  62. data/lib/openai/models/live/session_update_config.rb +69 -0
  63. data/lib/openai/models/live/session_update_event.rb +46 -0
  64. data/lib/openai/models/live/session_updated_event.rb +51 -0
  65. data/lib/openai/models/live/session_usage.rb +24 -0
  66. data/lib/openai/models/live/session_usage_updated_event.rb +81 -0
  67. data/lib/openai/models/live/thinking_append_event.rb +59 -0
  68. data/lib/openai/models/live/thinking_appended_event.rb +65 -0
  69. data/lib/openai/models/responses/response_input_item.rb +91 -1
  70. data/lib/openai/models/responses/response_item.rb +93 -1
  71. data/lib/openai/models/responses/response_output_item.rb +91 -1
  72. data/lib/openai/models/webhooks/live_call_incoming_webhook_event.rb +12 -7
  73. data/lib/openai/models/webhooks/live_transport_incoming_webhook_event.rb +137 -0
  74. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +4 -4
  75. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +9 -2
  76. data/lib/openai/models.rb +2 -0
  77. data/lib/openai/resources/live/forks.rb +16 -0
  78. data/lib/openai/resources/live/sessions.rb +180 -0
  79. data/lib/openai/resources/live/sideband.rb +16 -0
  80. data/lib/openai/resources/live.rb +54 -0
  81. data/lib/openai/resources/webhooks.rb +1 -1
  82. data/lib/openai/version.rb +1 -1
  83. data/lib/openai.rb +65 -0
  84. data/rbi/openai/client.rbi +3 -0
  85. data/rbi/openai/models/beta/beta_response_input_item.rbi +109 -0
  86. data/rbi/openai/models/beta/beta_response_item.rbi +105 -0
  87. data/rbi/openai/models/beta/beta_response_output_item.rbi +119 -0
  88. data/rbi/openai/models/conversations/conversation_item.rbi +133 -0
  89. data/rbi/openai/models/live/audio_format.rbi +185 -0
  90. data/rbi/openai/models/live/built_in_voice.rbi +46 -0
  91. data/rbi/openai/models/live/client_config.rbi +54 -0
  92. data/rbi/openai/models/live/client_delegation.rbi +51 -0
  93. data/rbi/openai/models/live/client_event.rbi +41 -0
  94. data/rbi/openai/models/live/commentary_append_event.rbi +88 -0
  95. data/rbi/openai/models/live/commentary_appended_event.rbi +97 -0
  96. data/rbi/openai/models/live/custom_voice.rbi +46 -0
  97. data/rbi/openai/models/live/data_channel_config.rbi +119 -0
  98. data/rbi/openai/models/live/delegation_created_event.rbi +207 -0
  99. data/rbi/openai/models/live/error.rbi +95 -0
  100. data/rbi/openai/models/live/error_event.rbi +87 -0
  101. data/rbi/openai/models/live/fork_client_event.rbi +40 -0
  102. data/rbi/openai/models/live/fork_server_event.rbi +436 -0
  103. data/rbi/openai/models/live/fork_session_config.rbi +234 -0
  104. data/rbi/openai/models/live/fork_session_start_event.rbi +80 -0
  105. data/rbi/openai/models/live/function_tool.rbi +95 -0
  106. data/rbi/openai/models/live/info_event.rbi +92 -0
  107. data/rbi/openai/models/live/initial_item.rbi +661 -0
  108. data/rbi/openai/models/live/input_audio_append_event.rbi +79 -0
  109. data/rbi/openai/models/live/input_audio_mute_event.rbi +62 -0
  110. data/rbi/openai/models/live/input_audio_muted_event.rbi +74 -0
  111. data/rbi/openai/models/live/input_audio_unmute_event.rbi +62 -0
  112. data/rbi/openai/models/live/input_audio_unmuted_event.rbi +74 -0
  113. data/rbi/openai/models/live/input_transcript_delta_event.rbi +115 -0
  114. data/rbi/openai/models/live/instructions_append_event.rbi +86 -0
  115. data/rbi/openai/models/live/instructions_appended_event.rbi +97 -0
  116. data/rbi/openai/models/live/live_create_params.rbi +121 -0
  117. data/rbi/openai/models/live/live_create_response.rbi +160 -0
  118. data/rbi/openai/models/live/media_session_config.rbi +390 -0
  119. data/rbi/openai/models/live/media_session_fork_config.rbi +143 -0
  120. data/rbi/openai/models/live/output_audio_delta_event.rbi +93 -0
  121. data/rbi/openai/models/live/output_transcript_delta_event.rbi +115 -0
  122. data/rbi/openai/models/live/response_create_event.rbi +62 -0
  123. data/rbi/openai/models/live/response_event.rbi +105 -0
  124. data/rbi/openai/models/live/response_item_create_event.rbi +183 -0
  125. data/rbi/openai/models/live/responses_delegation_config.rbi +562 -0
  126. data/rbi/openai/models/live/responses_delegation_update_config.rbi +585 -0
  127. data/rbi/openai/models/live/server_event.rbi +436 -0
  128. data/rbi/openai/models/live/server_event_selector.rbi +64 -0
  129. data/rbi/openai/models/live/session_accept_params.rbi +451 -0
  130. data/rbi/openai/models/live/session_close_event.rbi +62 -0
  131. data/rbi/openai/models/live/session_closed_event.rbi +148 -0
  132. data/rbi/openai/models/live/session_config.rbi +427 -0
  133. data/rbi/openai/models/live/session_download_recording_params.rbi +57 -0
  134. data/rbi/openai/models/live/session_fork_params.rbi +131 -0
  135. data/rbi/openai/models/live/session_fork_response.rbi +160 -0
  136. data/rbi/openai/models/live/session_hangup_params.rbi +53 -0
  137. data/rbi/openai/models/live/session_refer_params.rbi +64 -0
  138. data/rbi/openai/models/live/session_reject_params.rbi +62 -0
  139. data/rbi/openai/models/live/session_resource.rbi +461 -0
  140. data/rbi/openai/models/live/session_start_event.rbi +78 -0
  141. data/rbi/openai/models/live/session_started_event.rbi +86 -0
  142. data/rbi/openai/models/live/session_update_config.rbi +134 -0
  143. data/rbi/openai/models/live/session_update_event.rbi +78 -0
  144. data/rbi/openai/models/live/session_updated_event.rbi +86 -0
  145. data/rbi/openai/models/live/session_usage.rbi +53 -0
  146. data/rbi/openai/models/live/session_usage_updated_event.rbi +148 -0
  147. data/rbi/openai/models/live/thinking_append_event.rbi +88 -0
  148. data/rbi/openai/models/live/thinking_appended_event.rbi +97 -0
  149. data/rbi/openai/models/responses/response_input_item.rbi +113 -0
  150. data/rbi/openai/models/responses/response_item.rbi +105 -0
  151. data/rbi/openai/models/responses/response_output_item.rbi +125 -0
  152. data/rbi/openai/models/webhooks/live_call_incoming_webhook_event.rbi +11 -7
  153. data/rbi/openai/models/webhooks/live_transport_incoming_webhook_event.rbi +226 -0
  154. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +4 -4
  155. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  156. data/rbi/openai/models.rbi +2 -0
  157. data/rbi/openai/resources/live/forks.rbi +19 -0
  158. data/rbi/openai/resources/live/sessions.rbi +110 -0
  159. data/rbi/openai/resources/live/sideband.rbi +19 -0
  160. data/rbi/openai/resources/live.rbi +43 -0
  161. data/rbi/openai/resources/responses.rbi +75 -38
  162. data/rbi/openai/resources/webhooks.rbi +1 -0
  163. data/sig/openai/client.rbs +2 -0
  164. data/sig/openai/models/beta/beta_response_input_item.rbs +56 -0
  165. data/sig/openai/models/beta/beta_response_item.rbs +56 -0
  166. data/sig/openai/models/beta/beta_response_output_item.rbs +56 -0
  167. data/sig/openai/models/conversations/conversation_item.rbs +56 -0
  168. data/sig/openai/models/live/audio_format.rbs +73 -0
  169. data/sig/openai/models/live/built_in_voice.rbs +58 -0
  170. data/sig/openai/models/live/client_config.rbs +15 -0
  171. data/sig/openai/models/live/client_delegation.rbs +15 -0
  172. data/sig/openai/models/live/client_event.rbs +24 -0
  173. data/sig/openai/models/live/commentary_append_event.rbs +37 -0
  174. data/sig/openai/models/live/commentary_appended_event.rbs +44 -0
  175. data/sig/openai/models/live/custom_voice.rbs +15 -0
  176. data/sig/openai/models/live/data_channel_config.rbs +56 -0
  177. data/sig/openai/models/live/delegation_created_event.rbs +89 -0
  178. data/sig/openai/models/live/error.rbs +46 -0
  179. data/sig/openai/models/live/error_event.rbs +39 -0
  180. data/sig/openai/models/live/fork_client_event.rbs +24 -0
  181. data/sig/openai/models/live/fork_server_event.rbs +212 -0
  182. data/sig/openai/models/live/fork_session_config.rbs +89 -0
  183. data/sig/openai/models/live/fork_session_start_event.rbs +32 -0
  184. data/sig/openai/models/live/function_tool.rbs +42 -0
  185. data/sig/openai/models/live/info_event.rbs +44 -0
  186. data/sig/openai/models/live/initial_item.rbs +332 -0
  187. data/sig/openai/models/live/input_audio_append_event.rbs +32 -0
  188. data/sig/openai/models/live/input_audio_mute_event.rbs +24 -0
  189. data/sig/openai/models/live/input_audio_muted_event.rbs +34 -0
  190. data/sig/openai/models/live/input_audio_unmute_event.rbs +24 -0
  191. data/sig/openai/models/live/input_audio_unmuted_event.rbs +34 -0
  192. data/sig/openai/models/live/input_transcript_delta_event.rbs +49 -0
  193. data/sig/openai/models/live/instructions_append_event.rbs +37 -0
  194. data/sig/openai/models/live/instructions_appended_event.rbs +44 -0
  195. data/sig/openai/models/live/live_create_params.rbs +45 -0
  196. data/sig/openai/models/live/live_create_response.rbs +49 -0
  197. data/sig/openai/models/live/media_session_config.rbs +157 -0
  198. data/sig/openai/models/live/media_session_fork_config.rbs +66 -0
  199. data/sig/openai/models/live/output_audio_delta_event.rbs +41 -0
  200. data/sig/openai/models/live/output_transcript_delta_event.rbs +49 -0
  201. data/sig/openai/models/live/response_create_event.rbs +18 -0
  202. data/sig/openai/models/live/response_event.rbs +44 -0
  203. data/sig/openai/models/live/response_item_create_event.rbs +32 -0
  204. data/sig/openai/models/live/responses_delegation_config.rbs +244 -0
  205. data/sig/openai/models/live/responses_delegation_update_config.rbs +246 -0
  206. data/sig/openai/models/live/server_event.rbs +212 -0
  207. data/sig/openai/models/live/server_event_selector.rbs +19 -0
  208. data/sig/openai/models/live/session_accept_params.rbs +185 -0
  209. data/sig/openai/models/live/session_close_event.rbs +17 -0
  210. data/sig/openai/models/live/session_closed_event.rbs +68 -0
  211. data/sig/openai/models/live/session_config.rbs +168 -0
  212. data/sig/openai/models/live/session_download_recording_params.rbs +25 -0
  213. data/sig/openai/models/live/session_fork_params.rbs +54 -0
  214. data/sig/openai/models/live/session_fork_response.rbs +49 -0
  215. data/sig/openai/models/live/session_hangup_params.rbs +25 -0
  216. data/sig/openai/models/live/session_refer_params.rbs +33 -0
  217. data/sig/openai/models/live/session_reject_params.rbs +33 -0
  218. data/sig/openai/models/live/session_resource.rbs +183 -0
  219. data/sig/openai/models/live/session_start_event.rbs +32 -0
  220. data/sig/openai/models/live/session_started_event.rbs +39 -0
  221. data/sig/openai/models/live/session_update_config.rbs +56 -0
  222. data/sig/openai/models/live/session_update_event.rbs +32 -0
  223. data/sig/openai/models/live/session_updated_event.rbs +39 -0
  224. data/sig/openai/models/live/session_usage.rbs +15 -0
  225. data/sig/openai/models/live/session_usage_updated_event.rbs +58 -0
  226. data/sig/openai/models/live/thinking_append_event.rbs +37 -0
  227. data/sig/openai/models/live/thinking_appended_event.rbs +44 -0
  228. data/sig/openai/models/responses/response_input_item.rbs +56 -0
  229. data/sig/openai/models/responses/response_item.rbs +56 -0
  230. data/sig/openai/models/responses/response_output_item.rbs +56 -0
  231. data/sig/openai/models/webhooks/live_transport_incoming_webhook_event.rbs +95 -0
  232. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  233. data/sig/openai/models.rbs +2 -0
  234. data/sig/openai/resources/live/forks.rbs +9 -0
  235. data/sig/openai/resources/live/sessions.rbs +44 -0
  236. data/sig/openai/resources/live/sideband.rbs +9 -0
  237. data/sig/openai/resources/live.rbs +19 -0
  238. data/sig/openai/resources/webhooks.rbs +1 -0
  239. metadata +196 -1
@@ -0,0 +1,419 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ # A developer, user, or assistant message supplied as text history before the Live
7
+ # session starts.
8
+ module InitialItem
9
+ extend OpenAI::Internal::Type::Union
10
+
11
+ discriminator :role
12
+
13
+ # A developer message included in the initial text history of a Live session.
14
+ variant :developer, -> { OpenAI::Live::InitialItem::Developer }
15
+
16
+ # A user message included in the initial text history of a Live session.
17
+ variant :user, -> { OpenAI::Live::InitialItem::User }
18
+
19
+ # An assistant message included in the initial text history of a Live session.
20
+ variant :assistant, -> { OpenAI::Live::InitialItem::Assistant }
21
+
22
+ class Developer < OpenAI::Internal::Type::BaseModel
23
+ # @!attribute content
24
+ # The message content. Supply exactly one text part for the initial Live
25
+ # conversation history.
26
+ #
27
+ # @return [Array<OpenAI::Models::Live::InitialItem::Developer::Content>]
28
+ required :content, -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Live::InitialItem::Developer::Content] }
29
+
30
+ # @!attribute role
31
+ # The author of this history message. Always `developer`.
32
+ #
33
+ # @return [Symbol, :developer]
34
+ required :role, const: :developer
35
+
36
+ # @!attribute id
37
+ # An optional identifier for the supplied history message. Live uses the message’s
38
+ # role and text to initialize the conversation.
39
+ #
40
+ # @return [String, nil]
41
+ optional :id, String, nil?: true
42
+
43
+ # @!attribute status
44
+ # The supplied message’s status. Live uses its text as history and does not resume
45
+ # an incomplete message.
46
+ #
47
+ # @return [Symbol, OpenAI::Models::Live::InitialItem::Developer::Status, nil]
48
+ optional :status, enum: -> { OpenAI::Live::InitialItem::Developer::Status }, nil?: true
49
+
50
+ # @!attribute type
51
+ # The history item type. Always `message`.
52
+ #
53
+ # @return [Symbol, OpenAI::Models::Live::InitialItem::Developer::Type, nil]
54
+ optional :type, enum: -> { OpenAI::Live::InitialItem::Developer::Type }
55
+
56
+ # @!method initialize(content:, id: nil, status: nil, type: nil, role: :developer)
57
+ # A developer message included in the initial text history of a Live session.
58
+ #
59
+ # @param content [Array<OpenAI::Models::Live::InitialItem::Developer::Content>]
60
+ # The message content. Supply exactly one text part for the initial Live
61
+ # conversation history.
62
+ #
63
+ # @param id [String, nil]
64
+ # An optional identifier for the supplied history message. Live uses the message’s
65
+ # role and text to initialize the conversation.
66
+ #
67
+ # @param status [Symbol, OpenAI::Models::Live::InitialItem::Developer::Status, nil]
68
+ # The supplied message’s status. Live uses its text as history and does not resume
69
+ # an incomplete message.
70
+ #
71
+ # @param type [Symbol, OpenAI::Models::Live::InitialItem::Developer::Type]
72
+ # The history item type. Always `message`.
73
+ #
74
+ # @param role [Symbol, :developer]
75
+ # The author of this history message. Always `developer`.
76
+ class Content < OpenAI::Internal::Type::BaseModel
77
+ # @!attribute text
78
+ # The message text to include in the Live session’s initial conversation history.
79
+ #
80
+ # @return [String]
81
+ required :text, String
82
+
83
+ # @!attribute type
84
+ # The text content type. Always `input_text`.
85
+ #
86
+ # @return [Symbol, OpenAI::Models::Live::InitialItem::Developer::Content::Type, nil]
87
+ optional :type, enum: -> { OpenAI::Live::InitialItem::Developer::Content::Type }
88
+
89
+ # @!method initialize(text:, type: nil)
90
+ # Text supplied in a developer or user message when starting a Live session.
91
+ #
92
+ # @param text [String]
93
+ # The message text to include in the Live session’s initial conversation history.
94
+ #
95
+ # @param type [Symbol, OpenAI::Models::Live::InitialItem::Developer::Content::Type]
96
+ # The text content type. Always `input_text`.
97
+
98
+ # The text content type. Always `input_text`.
99
+ #
100
+ # @see OpenAI::Models::Live::InitialItem::Developer::Content#type
101
+ module Type
102
+ extend OpenAI::Internal::Type::Enum
103
+
104
+ INPUT_TEXT = :input_text
105
+
106
+ # @!method self.values
107
+ # @return [Array<Symbol>]
108
+ end
109
+ end
110
+
111
+ # The supplied message’s status. Live uses its text as history and does not resume
112
+ # an incomplete message.
113
+ #
114
+ # @see OpenAI::Models::Live::InitialItem::Developer#status
115
+ module Status
116
+ extend OpenAI::Internal::Type::Enum
117
+
118
+ INCOMPLETE = :incomplete
119
+ COMPLETED = :completed
120
+
121
+ # @!method self.values
122
+ # @return [Array<Symbol>]
123
+ end
124
+
125
+ # The history item type. Always `message`.
126
+ #
127
+ # @see OpenAI::Models::Live::InitialItem::Developer#type
128
+ module Type
129
+ extend OpenAI::Internal::Type::Enum
130
+
131
+ MESSAGE = :message
132
+
133
+ # @!method self.values
134
+ # @return [Array<Symbol>]
135
+ end
136
+ end
137
+
138
+ class User < OpenAI::Internal::Type::BaseModel
139
+ # @!attribute content
140
+ # The message content. Supply exactly one text part for the initial Live
141
+ # conversation history.
142
+ #
143
+ # @return [Array<OpenAI::Models::Live::InitialItem::User::Content>]
144
+ required :content, -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Live::InitialItem::User::Content] }
145
+
146
+ # @!attribute role
147
+ # The author of this history message. Always `user`.
148
+ #
149
+ # @return [Symbol, :user]
150
+ required :role, const: :user
151
+
152
+ # @!attribute id
153
+ # An optional identifier for the supplied history message. Live uses the message’s
154
+ # role and text to initialize the conversation.
155
+ #
156
+ # @return [String, nil]
157
+ optional :id, String, nil?: true
158
+
159
+ # @!attribute status
160
+ # The supplied message’s status. Live uses its text as history and does not resume
161
+ # an incomplete message.
162
+ #
163
+ # @return [Symbol, OpenAI::Models::Live::InitialItem::User::Status, nil]
164
+ optional :status, enum: -> { OpenAI::Live::InitialItem::User::Status }, nil?: true
165
+
166
+ # @!attribute type
167
+ # The history item type. Always `message`.
168
+ #
169
+ # @return [Symbol, OpenAI::Models::Live::InitialItem::User::Type, nil]
170
+ optional :type, enum: -> { OpenAI::Live::InitialItem::User::Type }
171
+
172
+ # @!method initialize(content:, id: nil, status: nil, type: nil, role: :user)
173
+ # A user message included in the initial text history of a Live session.
174
+ #
175
+ # @param content [Array<OpenAI::Models::Live::InitialItem::User::Content>]
176
+ # The message content. Supply exactly one text part for the initial Live
177
+ # conversation history.
178
+ #
179
+ # @param id [String, nil]
180
+ # An optional identifier for the supplied history message. Live uses the message’s
181
+ # role and text to initialize the conversation.
182
+ #
183
+ # @param status [Symbol, OpenAI::Models::Live::InitialItem::User::Status, nil]
184
+ # The supplied message’s status. Live uses its text as history and does not resume
185
+ # an incomplete message.
186
+ #
187
+ # @param type [Symbol, OpenAI::Models::Live::InitialItem::User::Type]
188
+ # The history item type. Always `message`.
189
+ #
190
+ # @param role [Symbol, :user]
191
+ # The author of this history message. Always `user`.
192
+ class Content < OpenAI::Internal::Type::BaseModel
193
+ # @!attribute text
194
+ # The message text to include in the Live session’s initial conversation history.
195
+ #
196
+ # @return [String]
197
+ required :text, String
198
+
199
+ # @!attribute type
200
+ # The text content type. Always `input_text`.
201
+ #
202
+ # @return [Symbol, OpenAI::Models::Live::InitialItem::User::Content::Type, nil]
203
+ optional :type, enum: -> { OpenAI::Live::InitialItem::User::Content::Type }
204
+
205
+ # @!method initialize(text:, type: nil)
206
+ # Text supplied in a developer or user message when starting a Live session.
207
+ #
208
+ # @param text [String]
209
+ # The message text to include in the Live session’s initial conversation history.
210
+ #
211
+ # @param type [Symbol, OpenAI::Models::Live::InitialItem::User::Content::Type]
212
+ # The text content type. Always `input_text`.
213
+
214
+ # The text content type. Always `input_text`.
215
+ #
216
+ # @see OpenAI::Models::Live::InitialItem::User::Content#type
217
+ module Type
218
+ extend OpenAI::Internal::Type::Enum
219
+
220
+ INPUT_TEXT = :input_text
221
+
222
+ # @!method self.values
223
+ # @return [Array<Symbol>]
224
+ end
225
+ end
226
+
227
+ # The supplied message’s status. Live uses its text as history and does not resume
228
+ # an incomplete message.
229
+ #
230
+ # @see OpenAI::Models::Live::InitialItem::User#status
231
+ module Status
232
+ extend OpenAI::Internal::Type::Enum
233
+
234
+ INCOMPLETE = :incomplete
235
+ COMPLETED = :completed
236
+
237
+ # @!method self.values
238
+ # @return [Array<Symbol>]
239
+ end
240
+
241
+ # The history item type. Always `message`.
242
+ #
243
+ # @see OpenAI::Models::Live::InitialItem::User#type
244
+ module Type
245
+ extend OpenAI::Internal::Type::Enum
246
+
247
+ MESSAGE = :message
248
+
249
+ # @!method self.values
250
+ # @return [Array<Symbol>]
251
+ end
252
+ end
253
+
254
+ class Assistant < OpenAI::Internal::Type::BaseModel
255
+ # @!attribute content
256
+ # The message content. Supply exactly one text part for the initial Live
257
+ # conversation history.
258
+ #
259
+ # @return [Array<OpenAI::Models::Live::InitialItem::Assistant::Content::Text, OpenAI::Models::Live::InitialItem::Assistant::Content::OutputText>]
260
+ required(
261
+ :content,
262
+ -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Live::InitialItem::Assistant::Content] }
263
+ )
264
+
265
+ # @!attribute role
266
+ # The author of this history message. Always `assistant`.
267
+ #
268
+ # @return [Symbol, :assistant]
269
+ required :role, const: :assistant
270
+
271
+ # @!attribute id
272
+ # An optional identifier for the supplied history message. Live uses the message’s
273
+ # role and text to initialize the conversation.
274
+ #
275
+ # @return [String, nil]
276
+ optional :id, String, nil?: true
277
+
278
+ # @!attribute status
279
+ # The supplied message’s status. Live uses its text as history and does not resume
280
+ # an incomplete message.
281
+ #
282
+ # @return [Symbol, OpenAI::Models::Live::InitialItem::Assistant::Status, nil]
283
+ optional :status, enum: -> { OpenAI::Live::InitialItem::Assistant::Status }, nil?: true
284
+
285
+ # @!attribute type
286
+ # The history item type. Always `message`.
287
+ #
288
+ # @return [Symbol, OpenAI::Models::Live::InitialItem::Assistant::Type, nil]
289
+ optional :type, enum: -> { OpenAI::Live::InitialItem::Assistant::Type }
290
+
291
+ # @!method initialize(content:, id: nil, status: nil, type: nil, role: :assistant)
292
+ # An assistant message included in the initial text history of a Live session.
293
+ #
294
+ # @param content [Array<OpenAI::Models::Live::InitialItem::Assistant::Content::Text, OpenAI::Models::Live::InitialItem::Assistant::Content::OutputText>]
295
+ # The message content. Supply exactly one text part for the initial Live
296
+ # conversation history.
297
+ #
298
+ # @param id [String, nil]
299
+ # An optional identifier for the supplied history message. Live uses the message’s
300
+ # role and text to initialize the conversation.
301
+ #
302
+ # @param status [Symbol, OpenAI::Models::Live::InitialItem::Assistant::Status, nil]
303
+ # The supplied message’s status. Live uses its text as history and does not resume
304
+ # an incomplete message.
305
+ #
306
+ # @param type [Symbol, OpenAI::Models::Live::InitialItem::Assistant::Type]
307
+ # The history item type. Always `message`.
308
+ #
309
+ # @param role [Symbol, :assistant]
310
+ # The author of this history message. Always `assistant`.
311
+
312
+ # Assistant text supplied as conversation history when starting a Live session.
313
+ module Content
314
+ extend OpenAI::Internal::Type::Union
315
+
316
+ discriminator :type
317
+
318
+ # Assistant text supplied as conversation history when starting a Live session.
319
+ variant :text, -> { OpenAI::Live::InitialItem::Assistant::Content::Text }
320
+
321
+ # Assistant output text supplied as conversation history when starting a Live session.
322
+ variant :output_text, -> { OpenAI::Live::InitialItem::Assistant::Content::OutputText }
323
+
324
+ class Text < OpenAI::Internal::Type::BaseModel
325
+ # @!attribute text
326
+ # The message text to include in the Live session’s initial conversation history.
327
+ #
328
+ # @return [String]
329
+ required :text, String
330
+
331
+ # @!attribute type
332
+ # The text content type. Always `text`.
333
+ #
334
+ # @return [Symbol, OpenAI::Models::Live::InitialItem::Assistant::Content::Text::Type, nil]
335
+ optional :type, enum: -> { OpenAI::Live::InitialItem::Assistant::Content::Text::Type }
336
+
337
+ # @!method initialize(text:, type: nil)
338
+ # Assistant text supplied as conversation history when starting a Live session.
339
+ #
340
+ # @param text [String]
341
+ # The message text to include in the Live session’s initial conversation history.
342
+ #
343
+ # @param type [Symbol, OpenAI::Models::Live::InitialItem::Assistant::Content::Text::Type]
344
+ # The text content type. Always `text`.
345
+
346
+ # The text content type. Always `text`.
347
+ #
348
+ # @see OpenAI::Models::Live::InitialItem::Assistant::Content::Text#type
349
+ module Type
350
+ extend OpenAI::Internal::Type::Enum
351
+
352
+ TEXT = :text
353
+
354
+ # @!method self.values
355
+ # @return [Array<Symbol>]
356
+ end
357
+ end
358
+
359
+ class OutputText < OpenAI::Internal::Type::BaseModel
360
+ # @!attribute text
361
+ # The message text to include in the Live session’s initial conversation history.
362
+ #
363
+ # @return [String]
364
+ required :text, String
365
+
366
+ # @!attribute type
367
+ # The text content type. Always `output_text`.
368
+ #
369
+ # @return [Symbol, :output_text]
370
+ required :type, const: :output_text
371
+
372
+ # @!method initialize(text:, type: :output_text)
373
+ # Assistant output text supplied as conversation history when starting a Live
374
+ # session.
375
+ #
376
+ # @param text [String]
377
+ # The message text to include in the Live session’s initial conversation history.
378
+ #
379
+ # @param type [Symbol, :output_text]
380
+ # The text content type. Always `output_text`.
381
+ end
382
+
383
+ # @!method self.variants
384
+ # @return [Array(OpenAI::Models::Live::InitialItem::Assistant::Content::Text, OpenAI::Models::Live::InitialItem::Assistant::Content::OutputText)]
385
+ end
386
+
387
+ # The supplied message’s status. Live uses its text as history and does not resume
388
+ # an incomplete message.
389
+ #
390
+ # @see OpenAI::Models::Live::InitialItem::Assistant#status
391
+ module Status
392
+ extend OpenAI::Internal::Type::Enum
393
+
394
+ INCOMPLETE = :incomplete
395
+ COMPLETED = :completed
396
+
397
+ # @!method self.values
398
+ # @return [Array<Symbol>]
399
+ end
400
+
401
+ # The history item type. Always `message`.
402
+ #
403
+ # @see OpenAI::Models::Live::InitialItem::Assistant#type
404
+ module Type
405
+ extend OpenAI::Internal::Type::Enum
406
+
407
+ MESSAGE = :message
408
+
409
+ # @!method self.values
410
+ # @return [Array<Symbol>]
411
+ end
412
+ end
413
+
414
+ # @!method self.variants
415
+ # @return [Array(OpenAI::Models::Live::InitialItem::Developer, OpenAI::Models::Live::InitialItem::User, OpenAI::Models::Live::InitialItem::Assistant)]
416
+ end
417
+ end
418
+ end
419
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ class InputAudioAppendEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute audio
8
+ # Base64-encoded raw audio in the startup-selected format, without a WAV or other
9
+ # container header. Primary WebSocket only; media transports use their audio
10
+ # track. Audio appends have no acknowledgment. Reflected sideband server events
11
+ # reuse this event type and audio key, with no timestamps or event_id; their audio
12
+ # is always mono PCM16LE at 24 kHz.
13
+ #
14
+ # @return [String]
15
+ required :audio, String
16
+
17
+ # @!attribute type
18
+ # The Live client event type. Always `session.input_audio.append`.
19
+ #
20
+ # @return [Symbol, :"session.input_audio.append"]
21
+ required :type, const: :"session.input_audio.append"
22
+
23
+ # @!attribute event_id
24
+ # Optional client identifier for correlating this command with a server event's
25
+ # client_event_id or error.client_event_id.
26
+ #
27
+ # @return [String, nil]
28
+ optional :event_id, String, nil?: true
29
+
30
+ # @!method initialize(audio:, event_id: nil, type: :"session.input_audio.append")
31
+ # Send audio to a Live session over its primary WebSocket. WebRTC and SIP sessions
32
+ # send audio over their media transport.
33
+ #
34
+ # @param audio [String]
35
+ # Base64-encoded raw audio in the startup-selected format, without a WAV or other
36
+ # container header. Primary WebSocket only; media transports use their audio
37
+ # track. Audio appends have no acknowledgment. Reflected sideband server events
38
+ # reuse this event type and audio key, with no timestamps or event_id; their audio
39
+ # is always mono PCM16LE at 24 kHz.
40
+ #
41
+ # @param event_id [String, nil]
42
+ # Optional client identifier for correlating this command with a server event's
43
+ # client_event_id or error.client_event_id.
44
+ #
45
+ # @param type [Symbol, :"session.input_audio.append"]
46
+ # The Live client event type. Always `session.input_audio.append`.
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ class InputAudioMuteEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute type
8
+ # The Live client event type. Always `session.input_audio.mute`.
9
+ #
10
+ # @return [Symbol, :"session.input_audio.mute"]
11
+ required :type, const: :"session.input_audio.mute"
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.input_audio.mute")
21
+ # Mute audio input to the Live model without closing the session. The server
22
+ # acknowledges with `session.input_audio.muted`.
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.input_audio.mute"]
29
+ # The Live client event type. Always `session.input_audio.mute`.
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ class InputAudioMutedEvent < 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 type
14
+ # The event type, always `session.input_audio.muted`.
15
+ #
16
+ # @return [Symbol, :"session.input_audio.muted"]
17
+ required :type, const: :"session.input_audio.muted"
18
+
19
+ # @!attribute client_event_id
20
+ # The event_id of the client command associated with this server event, when
21
+ # supplied.
22
+ #
23
+ # @return [String, nil]
24
+ optional :client_event_id, String
25
+
26
+ # @!method initialize(event_id:, client_event_id: nil, type: :"session.input_audio.muted")
27
+ # Returned when a session.input_audio.mute command is accepted. Input audio is no
28
+ # longer sent to the model; sideband audio reflection continues.
29
+ #
30
+ # @param event_id [String]
31
+ # The unique ID of the Live server event.
32
+ #
33
+ # @param client_event_id [String]
34
+ # The event_id of the client command associated with this server event, when
35
+ # supplied.
36
+ #
37
+ # @param type [Symbol, :"session.input_audio.muted"]
38
+ # The event type, always `session.input_audio.muted`.
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ class InputAudioUnmuteEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute type
8
+ # The Live client event type. Always `session.input_audio.unmute`.
9
+ #
10
+ # @return [Symbol, :"session.input_audio.unmute"]
11
+ required :type, const: :"session.input_audio.unmute"
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.input_audio.unmute")
21
+ # Resume audio input to a Live model after muting it. The server acknowledges with
22
+ # `session.input_audio.unmuted`.
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.input_audio.unmute"]
29
+ # The Live client event type. Always `session.input_audio.unmute`.
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ class InputAudioUnmutedEvent < 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 type
14
+ # The event type, always `session.input_audio.unmuted`.
15
+ #
16
+ # @return [Symbol, :"session.input_audio.unmuted"]
17
+ required :type, const: :"session.input_audio.unmuted"
18
+
19
+ # @!attribute client_event_id
20
+ # The event_id of the client command associated with this server event, when
21
+ # supplied.
22
+ #
23
+ # @return [String, nil]
24
+ optional :client_event_id, String
25
+
26
+ # @!method initialize(event_id:, client_event_id: nil, type: :"session.input_audio.unmuted")
27
+ # Returned when a session.input_audio.unmute command is accepted. Input audio is
28
+ # sent to the model again.
29
+ #
30
+ # @param event_id [String]
31
+ # The unique ID of the Live server event.
32
+ #
33
+ # @param client_event_id [String]
34
+ # The event_id of the client command associated with this server event, when
35
+ # supplied.
36
+ #
37
+ # @param type [Symbol, :"session.input_audio.unmuted"]
38
+ # The event type, always `session.input_audio.unmuted`.
39
+ end
40
+ end
41
+ end
42
+ end