openai 0.29.0 → 0.30.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 (178) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +4 -0
  5. data/lib/openai/internal/conversation_cursor_page.rb +2 -2
  6. data/lib/openai/models/all_models.rb +2 -0
  7. data/lib/openai/models/beta/chatkit/chat_session.rb +94 -0
  8. data/lib/openai/models/beta/chatkit/chat_session_automatic_thread_titling.rb +22 -0
  9. data/lib/openai/models/beta/chatkit/chat_session_chatkit_configuration.rb +38 -0
  10. data/lib/openai/models/beta/chatkit/chat_session_chatkit_configuration_param.rb +125 -0
  11. data/lib/openai/models/beta/chatkit/chat_session_expires_after_param.rb +30 -0
  12. data/lib/openai/models/beta/chatkit/chat_session_file_upload.rb +38 -0
  13. data/lib/openai/models/beta/chatkit/chat_session_history.rb +34 -0
  14. data/lib/openai/models/beta/chatkit/chat_session_rate_limits.rb +22 -0
  15. data/lib/openai/models/beta/chatkit/chat_session_rate_limits_param.rb +22 -0
  16. data/lib/openai/models/beta/chatkit/chat_session_status.rb +20 -0
  17. data/lib/openai/models/beta/chatkit/chat_session_workflow_param.rb +80 -0
  18. data/lib/openai/models/beta/chatkit/chatkit_attachment.rb +69 -0
  19. data/lib/openai/models/beta/chatkit/chatkit_response_output_text.rb +143 -0
  20. data/lib/openai/models/beta/chatkit/chatkit_thread.rb +145 -0
  21. data/lib/openai/models/beta/chatkit/chatkit_thread_assistant_message_item.rb +65 -0
  22. data/lib/openai/models/beta/chatkit/chatkit_thread_item_list.rb +374 -0
  23. data/lib/openai/models/beta/chatkit/chatkit_thread_user_message_item.rb +183 -0
  24. data/lib/openai/models/beta/chatkit/chatkit_widget_item.rb +64 -0
  25. data/lib/openai/models/beta/chatkit/session_cancel_params.rb +18 -0
  26. data/lib/openai/models/beta/chatkit/session_create_params.rb +63 -0
  27. data/lib/openai/models/beta/chatkit/thread_delete_params.rb +18 -0
  28. data/lib/openai/models/beta/chatkit/thread_delete_response.rb +39 -0
  29. data/lib/openai/models/beta/chatkit/thread_list_items_params.rb +66 -0
  30. data/lib/openai/models/beta/chatkit/thread_list_params.rb +75 -0
  31. data/lib/openai/models/beta/chatkit/thread_retrieve_params.rb +18 -0
  32. data/lib/openai/models/beta/chatkit_upload_file_params.rb +28 -0
  33. data/lib/openai/models/beta/chatkit_upload_file_response.rb +25 -0
  34. data/lib/openai/models/beta/chatkit_workflow.rb +78 -0
  35. data/lib/openai/models/beta/file_part.rb +56 -0
  36. data/lib/openai/models/beta/image_part.rb +64 -0
  37. data/lib/openai/models/image_edit_params.rb +4 -2
  38. data/lib/openai/models/image_model.rb +1 -0
  39. data/lib/openai/models/realtime/realtime_session.rb +4 -0
  40. data/lib/openai/models/realtime/realtime_session_create_request.rb +12 -0
  41. data/lib/openai/models/realtime/realtime_session_create_response.rb +12 -0
  42. data/lib/openai/models/responses/tool.rb +5 -2
  43. data/lib/openai/models/responses_model.rb +2 -0
  44. data/lib/openai/models/video.rb +122 -0
  45. data/lib/openai/models/video_create_error.rb +21 -0
  46. data/lib/openai/models/video_create_params.rb +54 -0
  47. data/lib/openai/models/video_delete_params.rb +14 -0
  48. data/lib/openai/models/video_delete_response.rb +35 -0
  49. data/lib/openai/models/video_download_content_params.rb +34 -0
  50. data/lib/openai/models/video_list_params.rb +54 -0
  51. data/lib/openai/models/video_model.rb +15 -0
  52. data/lib/openai/models/video_remix_params.rb +22 -0
  53. data/lib/openai/models/video_retrieve_params.rb +14 -0
  54. data/lib/openai/models/video_seconds.rb +16 -0
  55. data/lib/openai/models/video_size.rb +17 -0
  56. data/lib/openai/models.rb +22 -0
  57. data/lib/openai/resources/beta/chatkit/sessions.rb +71 -0
  58. data/lib/openai/resources/beta/chatkit/threads.rb +126 -0
  59. data/lib/openai/resources/beta/chatkit.rb +50 -0
  60. data/lib/openai/resources/beta.rb +4 -0
  61. data/lib/openai/resources/videos.rb +165 -0
  62. data/lib/openai/version.rb +1 -1
  63. data/lib/openai.rb +46 -0
  64. data/rbi/openai/client.rbi +3 -0
  65. data/rbi/openai/models/all_models.rbi +10 -0
  66. data/rbi/openai/models/beta/chatkit/chat_session.rbi +141 -0
  67. data/rbi/openai/models/beta/chatkit/chat_session_automatic_thread_titling.rbi +35 -0
  68. data/rbi/openai/models/beta/chatkit/chat_session_chatkit_configuration.rbi +87 -0
  69. data/rbi/openai/models/beta/chatkit/chat_session_chatkit_configuration_param.rbi +256 -0
  70. data/rbi/openai/models/beta/chatkit/chat_session_expires_after_param.rbi +43 -0
  71. data/rbi/openai/models/beta/chatkit/chat_session_file_upload.rbi +61 -0
  72. data/rbi/openai/models/beta/chatkit/chat_session_history.rbi +52 -0
  73. data/rbi/openai/models/beta/chatkit/chat_session_rate_limits.rbi +37 -0
  74. data/rbi/openai/models/beta/chatkit/chat_session_rate_limits_param.rbi +40 -0
  75. data/rbi/openai/models/beta/chatkit/chat_session_status.rbi +43 -0
  76. data/rbi/openai/models/beta/chatkit/chat_session_workflow_param.rbi +166 -0
  77. data/rbi/openai/models/beta/chatkit/chatkit_attachment.rbi +116 -0
  78. data/rbi/openai/models/beta/chatkit/chatkit_response_output_text.rbi +287 -0
  79. data/rbi/openai/models/beta/chatkit/chatkit_thread.rbi +220 -0
  80. data/rbi/openai/models/beta/chatkit/chatkit_thread_assistant_message_item.rbi +94 -0
  81. data/rbi/openai/models/beta/chatkit/chatkit_thread_item_list.rbi +590 -0
  82. data/rbi/openai/models/beta/chatkit/chatkit_thread_user_message_item.rbi +324 -0
  83. data/rbi/openai/models/beta/chatkit/chatkit_widget_item.rbi +87 -0
  84. data/rbi/openai/models/beta/chatkit/session_cancel_params.rbi +34 -0
  85. data/rbi/openai/models/beta/chatkit/session_create_params.rbi +136 -0
  86. data/rbi/openai/models/beta/chatkit/thread_delete_params.rbi +34 -0
  87. data/rbi/openai/models/beta/chatkit/thread_delete_response.rbi +55 -0
  88. data/rbi/openai/models/beta/chatkit/thread_list_items_params.rbi +138 -0
  89. data/rbi/openai/models/beta/chatkit/thread_list_params.rbi +145 -0
  90. data/rbi/openai/models/beta/chatkit/thread_retrieve_params.rbi +34 -0
  91. data/rbi/openai/models/beta/chatkit_upload_file_params.rbi +50 -0
  92. data/rbi/openai/models/beta/chatkit_upload_file_response.rbi +25 -0
  93. data/rbi/openai/models/beta/chatkit_workflow.rbi +134 -0
  94. data/rbi/openai/models/beta/file_part.rbi +74 -0
  95. data/rbi/openai/models/beta/image_part.rbi +82 -0
  96. data/rbi/openai/models/image_edit_params.rbi +6 -3
  97. data/rbi/openai/models/image_model.rbi +2 -0
  98. data/rbi/openai/models/realtime/realtime_session.rbi +20 -0
  99. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +20 -0
  100. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +20 -0
  101. data/rbi/openai/models/responses/tool.rbi +11 -3
  102. data/rbi/openai/models/responses_model.rbi +10 -0
  103. data/rbi/openai/models/video.rbi +143 -0
  104. data/rbi/openai/models/video_create_error.rbi +26 -0
  105. data/rbi/openai/models/video_create_params.rbi +87 -0
  106. data/rbi/openai/models/video_delete_params.rbi +27 -0
  107. data/rbi/openai/models/video_delete_response.rbi +46 -0
  108. data/rbi/openai/models/video_download_content_params.rbi +89 -0
  109. data/rbi/openai/models/video_list_params.rbi +91 -0
  110. data/rbi/openai/models/video_model.rbi +19 -0
  111. data/rbi/openai/models/video_remix_params.rbi +40 -0
  112. data/rbi/openai/models/video_retrieve_params.rbi +27 -0
  113. data/rbi/openai/models/video_seconds.rbi +20 -0
  114. data/rbi/openai/models/video_size.rbi +23 -0
  115. data/rbi/openai/models.rbi +22 -0
  116. data/rbi/openai/resources/beta/chatkit/sessions.rbi +61 -0
  117. data/rbi/openai/resources/beta/chatkit/threads.rbi +110 -0
  118. data/rbi/openai/resources/beta/chatkit.rbi +35 -0
  119. data/rbi/openai/resources/beta.rbi +3 -0
  120. data/rbi/openai/resources/images.rbi +4 -2
  121. data/rbi/openai/resources/videos.rbi +121 -0
  122. data/sig/openai/client.rbs +2 -0
  123. data/sig/openai/models/all_models.rbs +4 -0
  124. data/sig/openai/models/beta/chatkit/chat_session.rbs +69 -0
  125. data/sig/openai/models/beta/chatkit/chat_session_automatic_thread_titling.rbs +17 -0
  126. data/sig/openai/models/beta/chatkit/chat_session_chatkit_configuration.rbs +34 -0
  127. data/sig/openai/models/beta/chatkit/chat_session_chatkit_configuration_param.rbs +103 -0
  128. data/sig/openai/models/beta/chatkit/chat_session_expires_after_param.rbs +20 -0
  129. data/sig/openai/models/beta/chatkit/chat_session_file_upload.rbs +30 -0
  130. data/sig/openai/models/beta/chatkit/chat_session_history.rbs +19 -0
  131. data/sig/openai/models/beta/chatkit/chat_session_rate_limits.rbs +18 -0
  132. data/sig/openai/models/beta/chatkit/chat_session_rate_limits_param.rbs +20 -0
  133. data/sig/openai/models/beta/chatkit/chat_session_status.rbs +19 -0
  134. data/sig/openai/models/beta/chatkit/chat_session_workflow_param.rbs +69 -0
  135. data/sig/openai/models/beta/chatkit/chatkit_attachment.rbs +57 -0
  136. data/sig/openai/models/beta/chatkit/chatkit_response_output_text.rbs +114 -0
  137. data/sig/openai/models/beta/chatkit/chatkit_thread.rbs +96 -0
  138. data/sig/openai/models/beta/chatkit/chatkit_thread_assistant_message_item.rbs +51 -0
  139. data/sig/openai/models/beta/chatkit/chatkit_thread_item_list.rbs +276 -0
  140. data/sig/openai/models/beta/chatkit/chatkit_thread_user_message_item.rbs +127 -0
  141. data/sig/openai/models/beta/chatkit/chatkit_widget_item.rbs +51 -0
  142. data/sig/openai/models/beta/chatkit/session_cancel_params.rbs +19 -0
  143. data/sig/openai/models/beta/chatkit/session_create_params.rbs +62 -0
  144. data/sig/openai/models/beta/chatkit/thread_delete_params.rbs +19 -0
  145. data/sig/openai/models/beta/chatkit/thread_delete_response.rbs +30 -0
  146. data/sig/openai/models/beta/chatkit/thread_list_items_params.rbs +66 -0
  147. data/sig/openai/models/beta/chatkit/thread_list_params.rbs +73 -0
  148. data/sig/openai/models/beta/chatkit/thread_retrieve_params.rbs +19 -0
  149. data/sig/openai/models/beta/chatkit_upload_file_params.rbs +26 -0
  150. data/sig/openai/models/beta/chatkit_upload_file_response.rbs +14 -0
  151. data/sig/openai/models/beta/chatkit_workflow.rbs +55 -0
  152. data/sig/openai/models/beta/file_part.rbs +42 -0
  153. data/sig/openai/models/beta/image_part.rbs +47 -0
  154. data/sig/openai/models/image_model.rbs +3 -1
  155. data/sig/openai/models/realtime/realtime_session.rbs +8 -0
  156. data/sig/openai/models/realtime/realtime_session_create_request.rbs +8 -0
  157. data/sig/openai/models/realtime/realtime_session_create_response.rbs +8 -0
  158. data/sig/openai/models/responses/tool.rbs +2 -1
  159. data/sig/openai/models/responses_model.rbs +4 -0
  160. data/sig/openai/models/video.rbs +88 -0
  161. data/sig/openai/models/video_create_error.rbs +15 -0
  162. data/sig/openai/models/video_create_params.rbs +58 -0
  163. data/sig/openai/models/video_delete_params.rbs +14 -0
  164. data/sig/openai/models/video_delete_response.rbs +22 -0
  165. data/sig/openai/models/video_download_content_params.rbs +40 -0
  166. data/sig/openai/models/video_list_params.rbs +55 -0
  167. data/sig/openai/models/video_model.rbs +14 -0
  168. data/sig/openai/models/video_remix_params.rbs +23 -0
  169. data/sig/openai/models/video_retrieve_params.rbs +15 -0
  170. data/sig/openai/models/video_seconds.rbs +15 -0
  171. data/sig/openai/models/video_size.rbs +16 -0
  172. data/sig/openai/models.rbs +22 -0
  173. data/sig/openai/resources/beta/chatkit/sessions.rbs +25 -0
  174. data/sig/openai/resources/beta/chatkit/threads.rbs +39 -0
  175. data/sig/openai/resources/beta/chatkit.rbs +18 -0
  176. data/sig/openai/resources/beta.rbs +2 -0
  177. data/sig/openai/resources/videos.rbs +45 -0
  178. metadata +140 -2
@@ -0,0 +1,256 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module ChatKit
7
+ class ChatSessionChatKitConfigurationParam < OpenAI::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam,
12
+ OpenAI::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # Configuration for automatic thread titling. When omitted, automatic thread
17
+ # titling is enabled by default.
18
+ sig do
19
+ returns(
20
+ T.nilable(
21
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::AutomaticThreadTitling
22
+ )
23
+ )
24
+ end
25
+ attr_reader :automatic_thread_titling
26
+
27
+ sig do
28
+ params(
29
+ automatic_thread_titling:
30
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::AutomaticThreadTitling::OrHash
31
+ ).void
32
+ end
33
+ attr_writer :automatic_thread_titling
34
+
35
+ # Configuration for upload enablement and limits. When omitted, uploads are
36
+ # disabled by default (max_files 10, max_file_size 512 MB).
37
+ sig do
38
+ returns(
39
+ T.nilable(
40
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::FileUpload
41
+ )
42
+ )
43
+ end
44
+ attr_reader :file_upload
45
+
46
+ sig do
47
+ params(
48
+ file_upload:
49
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::FileUpload::OrHash
50
+ ).void
51
+ end
52
+ attr_writer :file_upload
53
+
54
+ # Configuration for chat history retention. When omitted, history is enabled by
55
+ # default with no limit on recent_threads (null).
56
+ sig do
57
+ returns(
58
+ T.nilable(
59
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::History
60
+ )
61
+ )
62
+ end
63
+ attr_reader :history
64
+
65
+ sig do
66
+ params(
67
+ history:
68
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::History::OrHash
69
+ ).void
70
+ end
71
+ attr_writer :history
72
+
73
+ # Optional per-session configuration settings for ChatKit behavior.
74
+ sig do
75
+ params(
76
+ automatic_thread_titling:
77
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::AutomaticThreadTitling::OrHash,
78
+ file_upload:
79
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::FileUpload::OrHash,
80
+ history:
81
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::History::OrHash
82
+ ).returns(T.attached_class)
83
+ end
84
+ def self.new(
85
+ # Configuration for automatic thread titling. When omitted, automatic thread
86
+ # titling is enabled by default.
87
+ automatic_thread_titling: nil,
88
+ # Configuration for upload enablement and limits. When omitted, uploads are
89
+ # disabled by default (max_files 10, max_file_size 512 MB).
90
+ file_upload: nil,
91
+ # Configuration for chat history retention. When omitted, history is enabled by
92
+ # default with no limit on recent_threads (null).
93
+ history: nil
94
+ )
95
+ end
96
+
97
+ sig do
98
+ override.returns(
99
+ {
100
+ automatic_thread_titling:
101
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::AutomaticThreadTitling,
102
+ file_upload:
103
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::FileUpload,
104
+ history:
105
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::History
106
+ }
107
+ )
108
+ end
109
+ def to_hash
110
+ end
111
+
112
+ class AutomaticThreadTitling < OpenAI::Internal::Type::BaseModel
113
+ OrHash =
114
+ T.type_alias do
115
+ T.any(
116
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::AutomaticThreadTitling,
117
+ OpenAI::Internal::AnyHash
118
+ )
119
+ end
120
+
121
+ # Enable automatic thread title generation. Defaults to true.
122
+ sig { returns(T.nilable(T::Boolean)) }
123
+ attr_reader :enabled
124
+
125
+ sig { params(enabled: T::Boolean).void }
126
+ attr_writer :enabled
127
+
128
+ # Configuration for automatic thread titling. When omitted, automatic thread
129
+ # titling is enabled by default.
130
+ sig { params(enabled: T::Boolean).returns(T.attached_class) }
131
+ def self.new(
132
+ # Enable automatic thread title generation. Defaults to true.
133
+ enabled: nil
134
+ )
135
+ end
136
+
137
+ sig { override.returns({ enabled: T::Boolean }) }
138
+ def to_hash
139
+ end
140
+ end
141
+
142
+ class FileUpload < OpenAI::Internal::Type::BaseModel
143
+ OrHash =
144
+ T.type_alias do
145
+ T.any(
146
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::FileUpload,
147
+ OpenAI::Internal::AnyHash
148
+ )
149
+ end
150
+
151
+ # Enable uploads for this session. Defaults to false.
152
+ sig { returns(T.nilable(T::Boolean)) }
153
+ attr_reader :enabled
154
+
155
+ sig { params(enabled: T::Boolean).void }
156
+ attr_writer :enabled
157
+
158
+ # Maximum size in megabytes for each uploaded file. Defaults to 512 MB, which is
159
+ # the maximum allowable size.
160
+ sig { returns(T.nilable(Integer)) }
161
+ attr_reader :max_file_size
162
+
163
+ sig { params(max_file_size: Integer).void }
164
+ attr_writer :max_file_size
165
+
166
+ # Maximum number of files that can be uploaded to the session. Defaults to 10.
167
+ sig { returns(T.nilable(Integer)) }
168
+ attr_reader :max_files
169
+
170
+ sig { params(max_files: Integer).void }
171
+ attr_writer :max_files
172
+
173
+ # Configuration for upload enablement and limits. When omitted, uploads are
174
+ # disabled by default (max_files 10, max_file_size 512 MB).
175
+ sig do
176
+ params(
177
+ enabled: T::Boolean,
178
+ max_file_size: Integer,
179
+ max_files: Integer
180
+ ).returns(T.attached_class)
181
+ end
182
+ def self.new(
183
+ # Enable uploads for this session. Defaults to false.
184
+ enabled: nil,
185
+ # Maximum size in megabytes for each uploaded file. Defaults to 512 MB, which is
186
+ # the maximum allowable size.
187
+ max_file_size: nil,
188
+ # Maximum number of files that can be uploaded to the session. Defaults to 10.
189
+ max_files: nil
190
+ )
191
+ end
192
+
193
+ sig do
194
+ override.returns(
195
+ {
196
+ enabled: T::Boolean,
197
+ max_file_size: Integer,
198
+ max_files: Integer
199
+ }
200
+ )
201
+ end
202
+ def to_hash
203
+ end
204
+ end
205
+
206
+ class History < OpenAI::Internal::Type::BaseModel
207
+ OrHash =
208
+ T.type_alias do
209
+ T.any(
210
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfigurationParam::History,
211
+ OpenAI::Internal::AnyHash
212
+ )
213
+ end
214
+
215
+ # Enables chat users to access previous ChatKit threads. Defaults to true.
216
+ sig { returns(T.nilable(T::Boolean)) }
217
+ attr_reader :enabled
218
+
219
+ sig { params(enabled: T::Boolean).void }
220
+ attr_writer :enabled
221
+
222
+ # Number of recent ChatKit threads users have access to. Defaults to unlimited
223
+ # when unset.
224
+ sig { returns(T.nilable(Integer)) }
225
+ attr_reader :recent_threads
226
+
227
+ sig { params(recent_threads: Integer).void }
228
+ attr_writer :recent_threads
229
+
230
+ # Configuration for chat history retention. When omitted, history is enabled by
231
+ # default with no limit on recent_threads (null).
232
+ sig do
233
+ params(enabled: T::Boolean, recent_threads: Integer).returns(
234
+ T.attached_class
235
+ )
236
+ end
237
+ def self.new(
238
+ # Enables chat users to access previous ChatKit threads. Defaults to true.
239
+ enabled: nil,
240
+ # Number of recent ChatKit threads users have access to. Defaults to unlimited
241
+ # when unset.
242
+ recent_threads: nil
243
+ )
244
+ end
245
+
246
+ sig do
247
+ override.returns({ enabled: T::Boolean, recent_threads: Integer })
248
+ end
249
+ def to_hash
250
+ end
251
+ end
252
+ end
253
+ end
254
+ end
255
+ end
256
+ end
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module ChatKit
7
+ class ChatSessionExpiresAfterParam < OpenAI::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ OpenAI::Beta::ChatKit::ChatSessionExpiresAfterParam,
12
+ OpenAI::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # Base timestamp used to calculate expiration. Currently fixed to `created_at`.
17
+ sig { returns(Symbol) }
18
+ attr_accessor :anchor
19
+
20
+ # Number of seconds after the anchor when the session expires.
21
+ sig { returns(Integer) }
22
+ attr_accessor :seconds
23
+
24
+ # Controls when the session expires relative to an anchor timestamp.
25
+ sig do
26
+ params(seconds: Integer, anchor: Symbol).returns(T.attached_class)
27
+ end
28
+ def self.new(
29
+ # Number of seconds after the anchor when the session expires.
30
+ seconds:,
31
+ # Base timestamp used to calculate expiration. Currently fixed to `created_at`.
32
+ anchor: :created_at
33
+ )
34
+ end
35
+
36
+ sig { override.returns({ anchor: Symbol, seconds: Integer }) }
37
+ def to_hash
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,61 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module ChatKit
7
+ class ChatSessionFileUpload < OpenAI::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ OpenAI::Beta::ChatKit::ChatSessionFileUpload,
12
+ OpenAI::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # Indicates if uploads are enabled for the session.
17
+ sig { returns(T::Boolean) }
18
+ attr_accessor :enabled
19
+
20
+ # Maximum upload size in megabytes.
21
+ sig { returns(T.nilable(Integer)) }
22
+ attr_accessor :max_file_size
23
+
24
+ # Maximum number of uploads allowed during the session.
25
+ sig { returns(T.nilable(Integer)) }
26
+ attr_accessor :max_files
27
+
28
+ # Upload permissions and limits applied to the session.
29
+ sig do
30
+ params(
31
+ enabled: T::Boolean,
32
+ max_file_size: T.nilable(Integer),
33
+ max_files: T.nilable(Integer)
34
+ ).returns(T.attached_class)
35
+ end
36
+ def self.new(
37
+ # Indicates if uploads are enabled for the session.
38
+ enabled:,
39
+ # Maximum upload size in megabytes.
40
+ max_file_size:,
41
+ # Maximum number of uploads allowed during the session.
42
+ max_files:
43
+ )
44
+ end
45
+
46
+ sig do
47
+ override.returns(
48
+ {
49
+ enabled: T::Boolean,
50
+ max_file_size: T.nilable(Integer),
51
+ max_files: T.nilable(Integer)
52
+ }
53
+ )
54
+ end
55
+ def to_hash
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,52 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module ChatKit
7
+ class ChatSessionHistory < OpenAI::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ OpenAI::Beta::ChatKit::ChatSessionHistory,
12
+ OpenAI::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # Indicates if chat history is persisted for the session.
17
+ sig { returns(T::Boolean) }
18
+ attr_accessor :enabled
19
+
20
+ # Number of prior threads surfaced in history views. Defaults to null when all
21
+ # history is retained.
22
+ sig { returns(T.nilable(Integer)) }
23
+ attr_accessor :recent_threads
24
+
25
+ # History retention preferences returned for the session.
26
+ sig do
27
+ params(
28
+ enabled: T::Boolean,
29
+ recent_threads: T.nilable(Integer)
30
+ ).returns(T.attached_class)
31
+ end
32
+ def self.new(
33
+ # Indicates if chat history is persisted for the session.
34
+ enabled:,
35
+ # Number of prior threads surfaced in history views. Defaults to null when all
36
+ # history is retained.
37
+ recent_threads:
38
+ )
39
+ end
40
+
41
+ sig do
42
+ override.returns(
43
+ { enabled: T::Boolean, recent_threads: T.nilable(Integer) }
44
+ )
45
+ end
46
+ def to_hash
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,37 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module ChatKit
7
+ class ChatSessionRateLimits < OpenAI::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ OpenAI::Beta::ChatKit::ChatSessionRateLimits,
12
+ OpenAI::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # Maximum allowed requests per one-minute window.
17
+ sig { returns(Integer) }
18
+ attr_accessor :max_requests_per_1_minute
19
+
20
+ # Active per-minute request limit for the session.
21
+ sig do
22
+ params(max_requests_per_1_minute: Integer).returns(T.attached_class)
23
+ end
24
+ def self.new(
25
+ # Maximum allowed requests per one-minute window.
26
+ max_requests_per_1_minute:
27
+ )
28
+ end
29
+
30
+ sig { override.returns({ max_requests_per_1_minute: Integer }) }
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module ChatKit
7
+ class ChatSessionRateLimitsParam < OpenAI::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ OpenAI::Beta::ChatKit::ChatSessionRateLimitsParam,
12
+ OpenAI::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # Maximum number of requests allowed per minute for the session. Defaults to 10.
17
+ sig { returns(T.nilable(Integer)) }
18
+ attr_reader :max_requests_per_1_minute
19
+
20
+ sig { params(max_requests_per_1_minute: Integer).void }
21
+ attr_writer :max_requests_per_1_minute
22
+
23
+ # Controls request rate limits for the session.
24
+ sig do
25
+ params(max_requests_per_1_minute: Integer).returns(T.attached_class)
26
+ end
27
+ def self.new(
28
+ # Maximum number of requests allowed per minute for the session. Defaults to 10.
29
+ max_requests_per_1_minute: nil
30
+ )
31
+ end
32
+
33
+ sig { override.returns({ max_requests_per_1_minute: Integer }) }
34
+ def to_hash
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module ChatKit
7
+ module ChatSessionStatus
8
+ extend OpenAI::Internal::Type::Enum
9
+
10
+ TaggedSymbol =
11
+ T.type_alias do
12
+ T.all(Symbol, OpenAI::Beta::ChatKit::ChatSessionStatus)
13
+ end
14
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
15
+
16
+ ACTIVE =
17
+ T.let(
18
+ :active,
19
+ OpenAI::Beta::ChatKit::ChatSessionStatus::TaggedSymbol
20
+ )
21
+ EXPIRED =
22
+ T.let(
23
+ :expired,
24
+ OpenAI::Beta::ChatKit::ChatSessionStatus::TaggedSymbol
25
+ )
26
+ CANCELLED =
27
+ T.let(
28
+ :cancelled,
29
+ OpenAI::Beta::ChatKit::ChatSessionStatus::TaggedSymbol
30
+ )
31
+
32
+ sig do
33
+ override.returns(
34
+ T::Array[OpenAI::Beta::ChatKit::ChatSessionStatus::TaggedSymbol]
35
+ )
36
+ end
37
+ def self.values
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,166 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module ChatKit
7
+ class ChatSessionWorkflowParam < OpenAI::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ OpenAI::Beta::ChatKit::ChatSessionWorkflowParam,
12
+ OpenAI::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # Identifier for the workflow invoked by the session.
17
+ sig { returns(String) }
18
+ attr_accessor :id
19
+
20
+ # State variables forwarded to the workflow. Keys may be up to 64 characters,
21
+ # values must be primitive types, and the map defaults to an empty object.
22
+ sig do
23
+ returns(
24
+ T.nilable(
25
+ T::Hash[
26
+ Symbol,
27
+ OpenAI::Beta::ChatKit::ChatSessionWorkflowParam::StateVariable::Variants
28
+ ]
29
+ )
30
+ )
31
+ end
32
+ attr_reader :state_variables
33
+
34
+ sig do
35
+ params(
36
+ state_variables:
37
+ T::Hash[
38
+ Symbol,
39
+ OpenAI::Beta::ChatKit::ChatSessionWorkflowParam::StateVariable::Variants
40
+ ]
41
+ ).void
42
+ end
43
+ attr_writer :state_variables
44
+
45
+ # Optional tracing overrides for the workflow invocation. When omitted, tracing is
46
+ # enabled by default.
47
+ sig do
48
+ returns(
49
+ T.nilable(
50
+ OpenAI::Beta::ChatKit::ChatSessionWorkflowParam::Tracing
51
+ )
52
+ )
53
+ end
54
+ attr_reader :tracing
55
+
56
+ sig do
57
+ params(
58
+ tracing:
59
+ OpenAI::Beta::ChatKit::ChatSessionWorkflowParam::Tracing::OrHash
60
+ ).void
61
+ end
62
+ attr_writer :tracing
63
+
64
+ # Specific workflow version to run. Defaults to the latest deployed version.
65
+ sig { returns(T.nilable(String)) }
66
+ attr_reader :version
67
+
68
+ sig { params(version: String).void }
69
+ attr_writer :version
70
+
71
+ # Workflow reference and overrides applied to the chat session.
72
+ sig do
73
+ params(
74
+ id: String,
75
+ state_variables:
76
+ T::Hash[
77
+ Symbol,
78
+ OpenAI::Beta::ChatKit::ChatSessionWorkflowParam::StateVariable::Variants
79
+ ],
80
+ tracing:
81
+ OpenAI::Beta::ChatKit::ChatSessionWorkflowParam::Tracing::OrHash,
82
+ version: String
83
+ ).returns(T.attached_class)
84
+ end
85
+ def self.new(
86
+ # Identifier for the workflow invoked by the session.
87
+ id:,
88
+ # State variables forwarded to the workflow. Keys may be up to 64 characters,
89
+ # values must be primitive types, and the map defaults to an empty object.
90
+ state_variables: nil,
91
+ # Optional tracing overrides for the workflow invocation. When omitted, tracing is
92
+ # enabled by default.
93
+ tracing: nil,
94
+ # Specific workflow version to run. Defaults to the latest deployed version.
95
+ version: nil
96
+ )
97
+ end
98
+
99
+ sig do
100
+ override.returns(
101
+ {
102
+ id: String,
103
+ state_variables:
104
+ T::Hash[
105
+ Symbol,
106
+ OpenAI::Beta::ChatKit::ChatSessionWorkflowParam::StateVariable::Variants
107
+ ],
108
+ tracing:
109
+ OpenAI::Beta::ChatKit::ChatSessionWorkflowParam::Tracing,
110
+ version: String
111
+ }
112
+ )
113
+ end
114
+ def to_hash
115
+ end
116
+
117
+ module StateVariable
118
+ extend OpenAI::Internal::Type::Union
119
+
120
+ Variants = T.type_alias { T.any(String, T::Boolean, Float) }
121
+
122
+ sig do
123
+ override.returns(
124
+ T::Array[
125
+ OpenAI::Beta::ChatKit::ChatSessionWorkflowParam::StateVariable::Variants
126
+ ]
127
+ )
128
+ end
129
+ def self.variants
130
+ end
131
+ end
132
+
133
+ class Tracing < OpenAI::Internal::Type::BaseModel
134
+ OrHash =
135
+ T.type_alias do
136
+ T.any(
137
+ OpenAI::Beta::ChatKit::ChatSessionWorkflowParam::Tracing,
138
+ OpenAI::Internal::AnyHash
139
+ )
140
+ end
141
+
142
+ # Whether tracing is enabled during the session. Defaults to true.
143
+ sig { returns(T.nilable(T::Boolean)) }
144
+ attr_reader :enabled
145
+
146
+ sig { params(enabled: T::Boolean).void }
147
+ attr_writer :enabled
148
+
149
+ # Optional tracing overrides for the workflow invocation. When omitted, tracing is
150
+ # enabled by default.
151
+ sig { params(enabled: T::Boolean).returns(T.attached_class) }
152
+ def self.new(
153
+ # Whether tracing is enabled during the session. Defaults to true.
154
+ enabled: nil
155
+ )
156
+ end
157
+
158
+ sig { override.returns({ enabled: T::Boolean }) }
159
+ def to_hash
160
+ end
161
+ end
162
+ end
163
+ end
164
+ end
165
+ end
166
+ end