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,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Beta
6
+ class ChatKit
7
+ # @return [OpenAI::Resources::Beta::ChatKit::Sessions]
8
+ attr_reader :sessions
9
+
10
+ # @return [OpenAI::Resources::Beta::ChatKit::Threads]
11
+ attr_reader :threads
12
+
13
+ # Some parameter documentations has been truncated, see
14
+ # {OpenAI::Models::Beta::ChatKitUploadFileParams} for more details.
15
+ #
16
+ # Upload a ChatKit file
17
+ #
18
+ # @overload upload_file(file:, request_options: {})
19
+ #
20
+ # @param file [Pathname, StringIO, IO, String, OpenAI::FilePart] Binary file contents to store with the ChatKit session. Supports PDFs and PNG, J
21
+ #
22
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
23
+ #
24
+ # @return [OpenAI::Models::Beta::FilePart, OpenAI::Models::Beta::ImagePart]
25
+ #
26
+ # @see OpenAI::Models::Beta::ChatKitUploadFileParams
27
+ def upload_file(params)
28
+ parsed, options = OpenAI::Beta::ChatKitUploadFileParams.dump_request(params)
29
+ @client.request(
30
+ method: :post,
31
+ path: "chatkit/files",
32
+ headers: {"content-type" => "multipart/form-data"},
33
+ body: parsed,
34
+ model: OpenAI::Models::Beta::ChatKitUploadFileResponse,
35
+ options: {extra_headers: {"OpenAI-Beta" => "chatkit_beta=v1"}, **options}
36
+ )
37
+ end
38
+
39
+ # @api private
40
+ #
41
+ # @param client [OpenAI::Client]
42
+ def initialize(client:)
43
+ @client = client
44
+ @sessions = OpenAI::Resources::Beta::ChatKit::Sessions.new(client: client)
45
+ @threads = OpenAI::Resources::Beta::ChatKit::Threads.new(client: client)
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -3,6 +3,9 @@
3
3
  module OpenAI
4
4
  module Resources
5
5
  class Beta
6
+ # @return [OpenAI::Resources::Beta::ChatKit]
7
+ attr_reader :chatkit
8
+
6
9
  # @return [OpenAI::Resources::Beta::Assistants]
7
10
  attr_reader :assistants
8
11
 
@@ -14,6 +17,7 @@ module OpenAI
14
17
  # @param client [OpenAI::Client]
15
18
  def initialize(client:)
16
19
  @client = client
20
+ @chatkit = OpenAI::Resources::Beta::ChatKit.new(client: client)
17
21
  @assistants = OpenAI::Resources::Beta::Assistants.new(client: client)
18
22
  @threads = OpenAI::Resources::Beta::Threads.new(client: client)
19
23
  end
@@ -0,0 +1,165 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Videos
6
+ # Create a video
7
+ #
8
+ # @overload create(prompt:, input_reference: nil, model: nil, seconds: nil, size: nil, request_options: {})
9
+ #
10
+ # @param prompt [String] Text prompt that describes the video to generate.
11
+ #
12
+ # @param input_reference [Pathname, StringIO, IO, String, OpenAI::FilePart] Optional image reference that guides generation.
13
+ #
14
+ # @param model [Symbol, OpenAI::Models::VideoModel] The video generation model to use. Defaults to `sora-2`.
15
+ #
16
+ # @param seconds [Symbol, OpenAI::Models::VideoSeconds] Clip duration in seconds. Defaults to 4 seconds.
17
+ #
18
+ # @param size [Symbol, OpenAI::Models::VideoSize] Output resolution formatted as width x height. Defaults to 720x1280.
19
+ #
20
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
21
+ #
22
+ # @return [OpenAI::Models::Video]
23
+ #
24
+ # @see OpenAI::Models::VideoCreateParams
25
+ def create(params)
26
+ parsed, options = OpenAI::VideoCreateParams.dump_request(params)
27
+ @client.request(
28
+ method: :post,
29
+ path: "videos",
30
+ headers: {"content-type" => "multipart/form-data"},
31
+ body: parsed,
32
+ model: OpenAI::Video,
33
+ options: options
34
+ )
35
+ end
36
+
37
+ # Retrieve a video
38
+ #
39
+ # @overload retrieve(video_id, request_options: {})
40
+ #
41
+ # @param video_id [String] The identifier of the video to retrieve.
42
+ #
43
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
44
+ #
45
+ # @return [OpenAI::Models::Video]
46
+ #
47
+ # @see OpenAI::Models::VideoRetrieveParams
48
+ def retrieve(video_id, params = {})
49
+ @client.request(
50
+ method: :get,
51
+ path: ["videos/%1$s", video_id],
52
+ model: OpenAI::Video,
53
+ options: params[:request_options]
54
+ )
55
+ end
56
+
57
+ # Some parameter documentations has been truncated, see
58
+ # {OpenAI::Models::VideoListParams} for more details.
59
+ #
60
+ # List videos
61
+ #
62
+ # @overload list(after: nil, limit: nil, order: nil, request_options: {})
63
+ #
64
+ # @param after [String] Identifier for the last item from the previous pagination request
65
+ #
66
+ # @param limit [Integer] Number of items to retrieve
67
+ #
68
+ # @param order [Symbol, OpenAI::Models::VideoListParams::Order] Sort order of results by timestamp. Use `asc` for ascending order or `desc` for
69
+ #
70
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
71
+ #
72
+ # @return [OpenAI::Internal::ConversationCursorPage<OpenAI::Models::Video>]
73
+ #
74
+ # @see OpenAI::Models::VideoListParams
75
+ def list(params = {})
76
+ parsed, options = OpenAI::VideoListParams.dump_request(params)
77
+ @client.request(
78
+ method: :get,
79
+ path: "videos",
80
+ query: parsed,
81
+ page: OpenAI::Internal::ConversationCursorPage,
82
+ model: OpenAI::Video,
83
+ options: options
84
+ )
85
+ end
86
+
87
+ # Delete a video
88
+ #
89
+ # @overload delete(video_id, request_options: {})
90
+ #
91
+ # @param video_id [String] The identifier of the video to delete.
92
+ #
93
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
94
+ #
95
+ # @return [OpenAI::Models::VideoDeleteResponse]
96
+ #
97
+ # @see OpenAI::Models::VideoDeleteParams
98
+ def delete(video_id, params = {})
99
+ @client.request(
100
+ method: :delete,
101
+ path: ["videos/%1$s", video_id],
102
+ model: OpenAI::Models::VideoDeleteResponse,
103
+ options: params[:request_options]
104
+ )
105
+ end
106
+
107
+ # Download video content
108
+ #
109
+ # @overload download_content(video_id, variant: nil, request_options: {})
110
+ #
111
+ # @param video_id [String] The identifier of the video whose media to download.
112
+ #
113
+ # @param variant [Symbol, OpenAI::Models::VideoDownloadContentParams::Variant] Which downloadable asset to return. Defaults to the MP4 video.
114
+ #
115
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
116
+ #
117
+ # @return [StringIO]
118
+ #
119
+ # @see OpenAI::Models::VideoDownloadContentParams
120
+ def download_content(video_id, params = {})
121
+ parsed, options = OpenAI::VideoDownloadContentParams.dump_request(params)
122
+ @client.request(
123
+ method: :get,
124
+ path: ["videos/%1$s/content", video_id],
125
+ query: parsed,
126
+ headers: {"accept" => "application/binary"},
127
+ model: StringIO,
128
+ options: options
129
+ )
130
+ end
131
+
132
+ # Create a video remix
133
+ #
134
+ # @overload remix(video_id, prompt:, request_options: {})
135
+ #
136
+ # @param video_id [String] The identifier of the completed video to remix.
137
+ #
138
+ # @param prompt [String] Updated text prompt that directs the remix generation.
139
+ #
140
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
141
+ #
142
+ # @return [OpenAI::Models::Video]
143
+ #
144
+ # @see OpenAI::Models::VideoRemixParams
145
+ def remix(video_id, params)
146
+ parsed, options = OpenAI::VideoRemixParams.dump_request(params)
147
+ @client.request(
148
+ method: :post,
149
+ path: ["videos/%1$s/remix", video_id],
150
+ headers: {"content-type" => "multipart/form-data"},
151
+ body: parsed,
152
+ model: OpenAI::Video,
153
+ options: options
154
+ )
155
+ end
156
+
157
+ # @api private
158
+ #
159
+ # @param client [OpenAI::Client]
160
+ def initialize(client:)
161
+ @client = client
162
+ end
163
+ end
164
+ end
165
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.29.0"
4
+ VERSION = "0.30.0"
5
5
  end
data/lib/openai.rb CHANGED
@@ -114,9 +114,39 @@ require_relative "openai/models/beta/assistant_tool_choice"
114
114
  require_relative "openai/models/beta/assistant_tool_choice_function"
115
115
  require_relative "openai/models/beta/assistant_tool_choice_option"
116
116
  require_relative "openai/models/beta/assistant_update_params"
117
+ require_relative "openai/models/beta/chatkit/chatkit_attachment"
118
+ require_relative "openai/models/beta/chatkit/chatkit_response_output_text"
119
+ require_relative "openai/models/beta/chatkit/chatkit_thread"
120
+ require_relative "openai/models/beta/chatkit/chatkit_thread_assistant_message_item"
121
+ require_relative "openai/models/beta/chatkit/chatkit_thread_item_list"
122
+ require_relative "openai/models/beta/chatkit/chatkit_thread_user_message_item"
123
+ require_relative "openai/models/beta/chatkit/chatkit_widget_item"
124
+ require_relative "openai/models/beta/chatkit/chat_session"
125
+ require_relative "openai/models/beta/chatkit/chat_session_automatic_thread_titling"
126
+ require_relative "openai/models/beta/chatkit/chat_session_chatkit_configuration"
127
+ require_relative "openai/models/beta/chatkit/chat_session_chatkit_configuration_param"
128
+ require_relative "openai/models/beta/chatkit/chat_session_expires_after_param"
129
+ require_relative "openai/models/beta/chatkit/chat_session_file_upload"
130
+ require_relative "openai/models/beta/chatkit/chat_session_history"
131
+ require_relative "openai/models/beta/chatkit/chat_session_rate_limits"
132
+ require_relative "openai/models/beta/chatkit/chat_session_rate_limits_param"
133
+ require_relative "openai/models/beta/chatkit/chat_session_status"
134
+ require_relative "openai/models/beta/chatkit/chat_session_workflow_param"
135
+ require_relative "openai/models/beta/chatkit/session_cancel_params"
136
+ require_relative "openai/models/beta/chatkit/session_create_params"
137
+ require_relative "openai/models/beta/chatkit/thread_delete_params"
138
+ require_relative "openai/models/beta/chatkit/thread_delete_response"
139
+ require_relative "openai/models/beta/chatkit/thread_list_items_params"
140
+ require_relative "openai/models/beta/chatkit/thread_list_params"
141
+ require_relative "openai/models/beta/chatkit/thread_retrieve_params"
142
+ require_relative "openai/models/beta/chatkit_upload_file_params"
143
+ require_relative "openai/models/beta/chatkit_upload_file_response"
144
+ require_relative "openai/models/beta/chatkit_workflow"
117
145
  require_relative "openai/models/beta/code_interpreter_tool"
146
+ require_relative "openai/models/beta/file_part"
118
147
  require_relative "openai/models/beta/file_search_tool"
119
148
  require_relative "openai/models/beta/function_tool"
149
+ require_relative "openai/models/beta/image_part"
120
150
  require_relative "openai/models/beta/message_stream_event"
121
151
  require_relative "openai/models/beta/run_step_stream_event"
122
152
  require_relative "openai/models/beta/run_stream_event"
@@ -642,6 +672,18 @@ require_relative "openai/models/vector_stores/vector_store_file_deleted"
642
672
  require_relative "openai/models/vector_store_search_params"
643
673
  require_relative "openai/models/vector_store_search_response"
644
674
  require_relative "openai/models/vector_store_update_params"
675
+ require_relative "openai/models/video"
676
+ require_relative "openai/models/video_create_error"
677
+ require_relative "openai/models/video_create_params"
678
+ require_relative "openai/models/video_delete_params"
679
+ require_relative "openai/models/video_delete_response"
680
+ require_relative "openai/models/video_download_content_params"
681
+ require_relative "openai/models/video_list_params"
682
+ require_relative "openai/models/video_model"
683
+ require_relative "openai/models/video_remix_params"
684
+ require_relative "openai/models/video_retrieve_params"
685
+ require_relative "openai/models/video_seconds"
686
+ require_relative "openai/models/video_size"
645
687
  require_relative "openai/models/webhooks/batch_cancelled_webhook_event"
646
688
  require_relative "openai/models/webhooks/batch_completed_webhook_event"
647
689
  require_relative "openai/models/webhooks/batch_expired_webhook_event"
@@ -667,6 +709,9 @@ require_relative "openai/resources/audio/translations"
667
709
  require_relative "openai/resources/batches"
668
710
  require_relative "openai/resources/beta"
669
711
  require_relative "openai/resources/beta/assistants"
712
+ require_relative "openai/resources/beta/chatkit"
713
+ require_relative "openai/resources/beta/chatkit/sessions"
714
+ require_relative "openai/resources/beta/chatkit/threads"
670
715
  require_relative "openai/resources/beta/threads"
671
716
  require_relative "openai/resources/beta/threads/messages"
672
717
  require_relative "openai/resources/beta/threads/runs"
@@ -708,6 +753,7 @@ require_relative "openai/resources/uploads/parts"
708
753
  require_relative "openai/resources/vector_stores"
709
754
  require_relative "openai/resources/vector_stores/file_batches"
710
755
  require_relative "openai/resources/vector_stores/files"
756
+ require_relative "openai/resources/videos"
711
757
  require_relative "openai/resources/webhooks"
712
758
  require_relative "openai/helpers/streaming/response_events"
713
759
  require_relative "openai/helpers/streaming/response_stream"
@@ -79,6 +79,9 @@ module OpenAI
79
79
  sig { returns(OpenAI::Resources::Containers) }
80
80
  attr_reader :containers
81
81
 
82
+ sig { returns(OpenAI::Resources::Videos) }
83
+ attr_reader :videos
84
+
82
85
  # @api private
83
86
  sig { override.returns(T::Hash[String, String]) }
84
87
  private def auth_headers
@@ -70,6 +70,16 @@ module OpenAI
70
70
  :"gpt-5-codex",
71
71
  OpenAI::AllModels::ResponsesOnlyModel::TaggedSymbol
72
72
  )
73
+ GPT_5_PRO =
74
+ T.let(
75
+ :"gpt-5-pro",
76
+ OpenAI::AllModels::ResponsesOnlyModel::TaggedSymbol
77
+ )
78
+ GPT_5_PRO_2025_10_06 =
79
+ T.let(
80
+ :"gpt-5-pro-2025-10-06",
81
+ OpenAI::AllModels::ResponsesOnlyModel::TaggedSymbol
82
+ )
73
83
 
74
84
  sig do
75
85
  override.returns(
@@ -0,0 +1,141 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module ChatKit
7
+ class ChatSession < OpenAI::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ OpenAI::Beta::ChatKit::ChatSession,
12
+ OpenAI::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # Identifier for the ChatKit session.
17
+ sig { returns(String) }
18
+ attr_accessor :id
19
+
20
+ # Resolved ChatKit feature configuration for the session.
21
+ sig do
22
+ returns(OpenAI::Beta::ChatKit::ChatSessionChatKitConfiguration)
23
+ end
24
+ attr_reader :chatkit_configuration
25
+
26
+ sig do
27
+ params(
28
+ chatkit_configuration:
29
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfiguration::OrHash
30
+ ).void
31
+ end
32
+ attr_writer :chatkit_configuration
33
+
34
+ # Ephemeral client secret that authenticates session requests.
35
+ sig { returns(String) }
36
+ attr_accessor :client_secret
37
+
38
+ # Unix timestamp (in seconds) for when the session expires.
39
+ sig { returns(Integer) }
40
+ attr_accessor :expires_at
41
+
42
+ # Convenience copy of the per-minute request limit.
43
+ sig { returns(Integer) }
44
+ attr_accessor :max_requests_per_1_minute
45
+
46
+ # Type discriminator that is always `chatkit.session`.
47
+ sig { returns(Symbol) }
48
+ attr_accessor :object
49
+
50
+ # Resolved rate limit values.
51
+ sig { returns(OpenAI::Beta::ChatKit::ChatSessionRateLimits) }
52
+ attr_reader :rate_limits
53
+
54
+ sig do
55
+ params(
56
+ rate_limits: OpenAI::Beta::ChatKit::ChatSessionRateLimits::OrHash
57
+ ).void
58
+ end
59
+ attr_writer :rate_limits
60
+
61
+ # Current lifecycle state of the session.
62
+ sig do
63
+ returns(OpenAI::Beta::ChatKit::ChatSessionStatus::TaggedSymbol)
64
+ end
65
+ attr_accessor :status
66
+
67
+ # User identifier associated with the session.
68
+ sig { returns(String) }
69
+ attr_accessor :user
70
+
71
+ # Workflow metadata for the session.
72
+ sig { returns(OpenAI::Beta::ChatKitWorkflow) }
73
+ attr_reader :workflow
74
+
75
+ sig { params(workflow: OpenAI::Beta::ChatKitWorkflow::OrHash).void }
76
+ attr_writer :workflow
77
+
78
+ # Represents a ChatKit session and its resolved configuration.
79
+ sig do
80
+ params(
81
+ id: String,
82
+ chatkit_configuration:
83
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfiguration::OrHash,
84
+ client_secret: String,
85
+ expires_at: Integer,
86
+ max_requests_per_1_minute: Integer,
87
+ rate_limits: OpenAI::Beta::ChatKit::ChatSessionRateLimits::OrHash,
88
+ status: OpenAI::Beta::ChatKit::ChatSessionStatus::OrSymbol,
89
+ user: String,
90
+ workflow: OpenAI::Beta::ChatKitWorkflow::OrHash,
91
+ object: Symbol
92
+ ).returns(T.attached_class)
93
+ end
94
+ def self.new(
95
+ # Identifier for the ChatKit session.
96
+ id:,
97
+ # Resolved ChatKit feature configuration for the session.
98
+ chatkit_configuration:,
99
+ # Ephemeral client secret that authenticates session requests.
100
+ client_secret:,
101
+ # Unix timestamp (in seconds) for when the session expires.
102
+ expires_at:,
103
+ # Convenience copy of the per-minute request limit.
104
+ max_requests_per_1_minute:,
105
+ # Resolved rate limit values.
106
+ rate_limits:,
107
+ # Current lifecycle state of the session.
108
+ status:,
109
+ # User identifier associated with the session.
110
+ user:,
111
+ # Workflow metadata for the session.
112
+ workflow:,
113
+ # Type discriminator that is always `chatkit.session`.
114
+ object: :"chatkit.session"
115
+ )
116
+ end
117
+
118
+ sig do
119
+ override.returns(
120
+ {
121
+ id: String,
122
+ chatkit_configuration:
123
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfiguration,
124
+ client_secret: String,
125
+ expires_at: Integer,
126
+ max_requests_per_1_minute: Integer,
127
+ object: Symbol,
128
+ rate_limits: OpenAI::Beta::ChatKit::ChatSessionRateLimits,
129
+ status: OpenAI::Beta::ChatKit::ChatSessionStatus::TaggedSymbol,
130
+ user: String,
131
+ workflow: OpenAI::Beta::ChatKitWorkflow
132
+ }
133
+ )
134
+ end
135
+ def to_hash
136
+ end
137
+ end
138
+ end
139
+ end
140
+ end
141
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module ChatKit
7
+ class ChatSessionAutomaticThreadTitling < OpenAI::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ OpenAI::Beta::ChatKit::ChatSessionAutomaticThreadTitling,
12
+ OpenAI::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # Whether automatic thread titling is enabled.
17
+ sig { returns(T::Boolean) }
18
+ attr_accessor :enabled
19
+
20
+ # Automatic thread title preferences for the session.
21
+ sig { params(enabled: T::Boolean).returns(T.attached_class) }
22
+ def self.new(
23
+ # Whether automatic thread titling is enabled.
24
+ enabled:
25
+ )
26
+ end
27
+
28
+ sig { override.returns({ enabled: T::Boolean }) }
29
+ def to_hash
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,87 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module ChatKit
7
+ class ChatSessionChatKitConfiguration < OpenAI::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ OpenAI::Beta::ChatKit::ChatSessionChatKitConfiguration,
12
+ OpenAI::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # Automatic thread titling preferences.
17
+ sig do
18
+ returns(OpenAI::Beta::ChatKit::ChatSessionAutomaticThreadTitling)
19
+ end
20
+ attr_reader :automatic_thread_titling
21
+
22
+ sig do
23
+ params(
24
+ automatic_thread_titling:
25
+ OpenAI::Beta::ChatKit::ChatSessionAutomaticThreadTitling::OrHash
26
+ ).void
27
+ end
28
+ attr_writer :automatic_thread_titling
29
+
30
+ # Upload settings for the session.
31
+ sig { returns(OpenAI::Beta::ChatKit::ChatSessionFileUpload) }
32
+ attr_reader :file_upload
33
+
34
+ sig do
35
+ params(
36
+ file_upload: OpenAI::Beta::ChatKit::ChatSessionFileUpload::OrHash
37
+ ).void
38
+ end
39
+ attr_writer :file_upload
40
+
41
+ # History retention configuration.
42
+ sig { returns(OpenAI::Beta::ChatKit::ChatSessionHistory) }
43
+ attr_reader :history
44
+
45
+ sig do
46
+ params(
47
+ history: OpenAI::Beta::ChatKit::ChatSessionHistory::OrHash
48
+ ).void
49
+ end
50
+ attr_writer :history
51
+
52
+ # ChatKit configuration for the session.
53
+ sig do
54
+ params(
55
+ automatic_thread_titling:
56
+ OpenAI::Beta::ChatKit::ChatSessionAutomaticThreadTitling::OrHash,
57
+ file_upload: OpenAI::Beta::ChatKit::ChatSessionFileUpload::OrHash,
58
+ history: OpenAI::Beta::ChatKit::ChatSessionHistory::OrHash
59
+ ).returns(T.attached_class)
60
+ end
61
+ def self.new(
62
+ # Automatic thread titling preferences.
63
+ automatic_thread_titling:,
64
+ # Upload settings for the session.
65
+ file_upload:,
66
+ # History retention configuration.
67
+ history:
68
+ )
69
+ end
70
+
71
+ sig do
72
+ override.returns(
73
+ {
74
+ automatic_thread_titling:
75
+ OpenAI::Beta::ChatKit::ChatSessionAutomaticThreadTitling,
76
+ file_upload: OpenAI::Beta::ChatKit::ChatSessionFileUpload,
77
+ history: OpenAI::Beta::ChatKit::ChatSessionHistory
78
+ }
79
+ )
80
+ end
81
+ def to_hash
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end