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,122 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#create
6
+ class Video < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # Unique identifier for the video job.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute completed_at
14
+ # Unix timestamp (seconds) for when the job completed, if finished.
15
+ #
16
+ # @return [Integer, nil]
17
+ required :completed_at, Integer, nil?: true
18
+
19
+ # @!attribute created_at
20
+ # Unix timestamp (seconds) for when the job was created.
21
+ #
22
+ # @return [Integer]
23
+ required :created_at, Integer
24
+
25
+ # @!attribute error
26
+ # Error payload that explains why generation failed, if applicable.
27
+ #
28
+ # @return [OpenAI::Models::VideoCreateError, nil]
29
+ required :error, -> { OpenAI::VideoCreateError }, nil?: true
30
+
31
+ # @!attribute expires_at
32
+ # Unix timestamp (seconds) for when the downloadable assets expire, if set.
33
+ #
34
+ # @return [Integer, nil]
35
+ required :expires_at, Integer, nil?: true
36
+
37
+ # @!attribute model
38
+ # The video generation model that produced the job.
39
+ #
40
+ # @return [Symbol, OpenAI::Models::VideoModel]
41
+ required :model, enum: -> { OpenAI::VideoModel }
42
+
43
+ # @!attribute object
44
+ # The object type, which is always `video`.
45
+ #
46
+ # @return [Symbol, :video]
47
+ required :object, const: :video
48
+
49
+ # @!attribute progress
50
+ # Approximate completion percentage for the generation task.
51
+ #
52
+ # @return [Integer]
53
+ required :progress, Integer
54
+
55
+ # @!attribute remixed_from_video_id
56
+ # Identifier of the source video if this video is a remix.
57
+ #
58
+ # @return [String, nil]
59
+ required :remixed_from_video_id, String, nil?: true
60
+
61
+ # @!attribute seconds
62
+ # Duration of the generated clip in seconds.
63
+ #
64
+ # @return [Symbol, OpenAI::Models::VideoSeconds]
65
+ required :seconds, enum: -> { OpenAI::VideoSeconds }
66
+
67
+ # @!attribute size
68
+ # The resolution of the generated video.
69
+ #
70
+ # @return [Symbol, OpenAI::Models::VideoSize]
71
+ required :size, enum: -> { OpenAI::VideoSize }
72
+
73
+ # @!attribute status
74
+ # Current lifecycle status of the video job.
75
+ #
76
+ # @return [Symbol, OpenAI::Models::Video::Status]
77
+ required :status, enum: -> { OpenAI::Video::Status }
78
+
79
+ # @!method initialize(id:, completed_at:, created_at:, error:, expires_at:, model:, progress:, remixed_from_video_id:, seconds:, size:, status:, object: :video)
80
+ # Structured information describing a generated video job.
81
+ #
82
+ # @param id [String] Unique identifier for the video job.
83
+ #
84
+ # @param completed_at [Integer, nil] Unix timestamp (seconds) for when the job completed, if finished.
85
+ #
86
+ # @param created_at [Integer] Unix timestamp (seconds) for when the job was created.
87
+ #
88
+ # @param error [OpenAI::Models::VideoCreateError, nil] Error payload that explains why generation failed, if applicable.
89
+ #
90
+ # @param expires_at [Integer, nil] Unix timestamp (seconds) for when the downloadable assets expire, if set.
91
+ #
92
+ # @param model [Symbol, OpenAI::Models::VideoModel] The video generation model that produced the job.
93
+ #
94
+ # @param progress [Integer] Approximate completion percentage for the generation task.
95
+ #
96
+ # @param remixed_from_video_id [String, nil] Identifier of the source video if this video is a remix.
97
+ #
98
+ # @param seconds [Symbol, OpenAI::Models::VideoSeconds] Duration of the generated clip in seconds.
99
+ #
100
+ # @param size [Symbol, OpenAI::Models::VideoSize] The resolution of the generated video.
101
+ #
102
+ # @param status [Symbol, OpenAI::Models::Video::Status] Current lifecycle status of the video job.
103
+ #
104
+ # @param object [Symbol, :video] The object type, which is always `video`.
105
+
106
+ # Current lifecycle status of the video job.
107
+ #
108
+ # @see OpenAI::Models::Video#status
109
+ module Status
110
+ extend OpenAI::Internal::Type::Enum
111
+
112
+ QUEUED = :queued
113
+ IN_PROGRESS = :in_progress
114
+ COMPLETED = :completed
115
+ FAILED = :failed
116
+
117
+ # @!method self.values
118
+ # @return [Array<Symbol>]
119
+ end
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ class VideoCreateError < OpenAI::Internal::Type::BaseModel
6
+ # @!attribute code
7
+ #
8
+ # @return [String]
9
+ required :code, String
10
+
11
+ # @!attribute message
12
+ #
13
+ # @return [String]
14
+ required :message, String
15
+
16
+ # @!method initialize(code:, message:)
17
+ # @param code [String]
18
+ # @param message [String]
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#create
6
+ class VideoCreateParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute prompt
11
+ # Text prompt that describes the video to generate.
12
+ #
13
+ # @return [String]
14
+ required :prompt, String
15
+
16
+ # @!attribute input_reference
17
+ # Optional image reference that guides generation.
18
+ #
19
+ # @return [Pathname, StringIO, IO, String, OpenAI::FilePart, nil]
20
+ optional :input_reference, OpenAI::Internal::Type::FileInput
21
+
22
+ # @!attribute model
23
+ # The video generation model to use. Defaults to `sora-2`.
24
+ #
25
+ # @return [Symbol, OpenAI::Models::VideoModel, nil]
26
+ optional :model, enum: -> { OpenAI::VideoModel }
27
+
28
+ # @!attribute seconds
29
+ # Clip duration in seconds. Defaults to 4 seconds.
30
+ #
31
+ # @return [Symbol, OpenAI::Models::VideoSeconds, nil]
32
+ optional :seconds, enum: -> { OpenAI::VideoSeconds }
33
+
34
+ # @!attribute size
35
+ # Output resolution formatted as width x height. Defaults to 720x1280.
36
+ #
37
+ # @return [Symbol, OpenAI::Models::VideoSize, nil]
38
+ optional :size, enum: -> { OpenAI::VideoSize }
39
+
40
+ # @!method initialize(prompt:, input_reference: nil, model: nil, seconds: nil, size: nil, request_options: {})
41
+ # @param prompt [String] Text prompt that describes the video to generate.
42
+ #
43
+ # @param input_reference [Pathname, StringIO, IO, String, OpenAI::FilePart] Optional image reference that guides generation.
44
+ #
45
+ # @param model [Symbol, OpenAI::Models::VideoModel] The video generation model to use. Defaults to `sora-2`.
46
+ #
47
+ # @param seconds [Symbol, OpenAI::Models::VideoSeconds] Clip duration in seconds. Defaults to 4 seconds.
48
+ #
49
+ # @param size [Symbol, OpenAI::Models::VideoSize] Output resolution formatted as width x height. Defaults to 720x1280.
50
+ #
51
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#delete
6
+ class VideoDeleteParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#delete
6
+ class VideoDeleteResponse < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # Identifier of the deleted video.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute deleted
14
+ # Indicates that the video resource was deleted.
15
+ #
16
+ # @return [Boolean]
17
+ required :deleted, OpenAI::Internal::Type::Boolean
18
+
19
+ # @!attribute object
20
+ # The object type that signals the deletion response.
21
+ #
22
+ # @return [Symbol, :"video.deleted"]
23
+ required :object, const: :"video.deleted"
24
+
25
+ # @!method initialize(id:, deleted:, object: :"video.deleted")
26
+ # Confirmation payload returned after deleting a video.
27
+ #
28
+ # @param id [String] Identifier of the deleted video.
29
+ #
30
+ # @param deleted [Boolean] Indicates that the video resource was deleted.
31
+ #
32
+ # @param object [Symbol, :"video.deleted"] The object type that signals the deletion response.
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#download_content
6
+ class VideoDownloadContentParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute variant
11
+ # Which downloadable asset to return. Defaults to the MP4 video.
12
+ #
13
+ # @return [Symbol, OpenAI::Models::VideoDownloadContentParams::Variant, nil]
14
+ optional :variant, enum: -> { OpenAI::VideoDownloadContentParams::Variant }
15
+
16
+ # @!method initialize(variant: nil, request_options: {})
17
+ # @param variant [Symbol, OpenAI::Models::VideoDownloadContentParams::Variant] Which downloadable asset to return. Defaults to the MP4 video.
18
+ #
19
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
20
+
21
+ # Which downloadable asset to return. Defaults to the MP4 video.
22
+ module Variant
23
+ extend OpenAI::Internal::Type::Enum
24
+
25
+ VIDEO = :video
26
+ THUMBNAIL = :thumbnail
27
+ SPRITESHEET = :spritesheet
28
+
29
+ # @!method self.values
30
+ # @return [Array<Symbol>]
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#list
6
+ class VideoListParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute after
11
+ # Identifier for the last item from the previous pagination request
12
+ #
13
+ # @return [String, nil]
14
+ optional :after, String
15
+
16
+ # @!attribute limit
17
+ # Number of items to retrieve
18
+ #
19
+ # @return [Integer, nil]
20
+ optional :limit, Integer
21
+
22
+ # @!attribute order
23
+ # Sort order of results by timestamp. Use `asc` for ascending order or `desc` for
24
+ # descending order.
25
+ #
26
+ # @return [Symbol, OpenAI::Models::VideoListParams::Order, nil]
27
+ optional :order, enum: -> { OpenAI::VideoListParams::Order }
28
+
29
+ # @!method initialize(after: nil, limit: nil, order: nil, request_options: {})
30
+ # Some parameter documentations has been truncated, see
31
+ # {OpenAI::Models::VideoListParams} for more details.
32
+ #
33
+ # @param after [String] Identifier for the last item from the previous pagination request
34
+ #
35
+ # @param limit [Integer] Number of items to retrieve
36
+ #
37
+ # @param order [Symbol, OpenAI::Models::VideoListParams::Order] Sort order of results by timestamp. Use `asc` for ascending order or `desc` for
38
+ #
39
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
40
+
41
+ # Sort order of results by timestamp. Use `asc` for ascending order or `desc` for
42
+ # descending order.
43
+ module Order
44
+ extend OpenAI::Internal::Type::Enum
45
+
46
+ ASC = :asc
47
+ DESC = :desc
48
+
49
+ # @!method self.values
50
+ # @return [Array<Symbol>]
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module VideoModel
6
+ extend OpenAI::Internal::Type::Enum
7
+
8
+ SORA_2 = :"sora-2"
9
+ SORA_2_PRO = :"sora-2-pro"
10
+
11
+ # @!method self.values
12
+ # @return [Array<Symbol>]
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#remix
6
+ class VideoRemixParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute prompt
11
+ # Updated text prompt that directs the remix generation.
12
+ #
13
+ # @return [String]
14
+ required :prompt, String
15
+
16
+ # @!method initialize(prompt:, request_options: {})
17
+ # @param prompt [String] Updated text prompt that directs the remix generation.
18
+ #
19
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#retrieve
6
+ class VideoRetrieveParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module VideoSeconds
6
+ extend OpenAI::Internal::Type::Enum
7
+
8
+ VIDEO_SECONDS_4 = :"4"
9
+ VIDEO_SECONDS_8 = :"8"
10
+ VIDEO_SECONDS_12 = :"12"
11
+
12
+ # @!method self.values
13
+ # @return [Array<Symbol>]
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module VideoSize
6
+ extend OpenAI::Internal::Type::Enum
7
+
8
+ VIDEO_SIZE_720X1280 = :"720x1280"
9
+ VIDEO_SIZE_1280X720 = :"1280x720"
10
+ VIDEO_SIZE_1024X1792 = :"1024x1792"
11
+ VIDEO_SIZE_1792X1024 = :"1792x1024"
12
+
13
+ # @!method self.values
14
+ # @return [Array<Symbol>]
15
+ end
16
+ end
17
+ end
data/lib/openai/models.rb CHANGED
@@ -259,5 +259,27 @@ module OpenAI
259
259
 
260
260
  VectorStoreUpdateParams = OpenAI::Models::VectorStoreUpdateParams
261
261
 
262
+ Video = OpenAI::Models::Video
263
+
264
+ VideoCreateError = OpenAI::Models::VideoCreateError
265
+
266
+ VideoCreateParams = OpenAI::Models::VideoCreateParams
267
+
268
+ VideoDeleteParams = OpenAI::Models::VideoDeleteParams
269
+
270
+ VideoDownloadContentParams = OpenAI::Models::VideoDownloadContentParams
271
+
272
+ VideoListParams = OpenAI::Models::VideoListParams
273
+
274
+ VideoModel = OpenAI::Models::VideoModel
275
+
276
+ VideoRemixParams = OpenAI::Models::VideoRemixParams
277
+
278
+ VideoRetrieveParams = OpenAI::Models::VideoRetrieveParams
279
+
280
+ VideoSeconds = OpenAI::Models::VideoSeconds
281
+
282
+ VideoSize = OpenAI::Models::VideoSize
283
+
262
284
  Webhooks = OpenAI::Models::Webhooks
263
285
  end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Beta
6
+ class ChatKit
7
+ class Sessions
8
+ # Some parameter documentations has been truncated, see
9
+ # {OpenAI::Models::Beta::ChatKit::SessionCreateParams} for more details.
10
+ #
11
+ # Create a ChatKit session
12
+ #
13
+ # @overload create(user:, workflow:, chatkit_configuration: nil, expires_after: nil, rate_limits: nil, request_options: {})
14
+ #
15
+ # @param user [String] A free-form string that identifies your end user; ensures this Session can acces
16
+ #
17
+ # @param workflow [OpenAI::Models::Beta::ChatKit::ChatSessionWorkflowParam] Workflow that powers the session.
18
+ #
19
+ # @param chatkit_configuration [OpenAI::Models::Beta::ChatKit::ChatSessionChatKitConfigurationParam] Optional overrides for ChatKit runtime configuration features
20
+ #
21
+ # @param expires_after [OpenAI::Models::Beta::ChatKit::ChatSessionExpiresAfterParam] Optional override for session expiration timing in seconds from creation. Defaul
22
+ #
23
+ # @param rate_limits [OpenAI::Models::Beta::ChatKit::ChatSessionRateLimitsParam] Optional override for per-minute request limits. When omitted, defaults to 10.
24
+ #
25
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
26
+ #
27
+ # @return [OpenAI::Models::Beta::ChatKit::ChatSession]
28
+ #
29
+ # @see OpenAI::Models::Beta::ChatKit::SessionCreateParams
30
+ def create(params)
31
+ parsed, options = OpenAI::Beta::ChatKit::SessionCreateParams.dump_request(params)
32
+ @client.request(
33
+ method: :post,
34
+ path: "chatkit/sessions",
35
+ body: parsed,
36
+ model: OpenAI::Beta::ChatKit::ChatSession,
37
+ options: {extra_headers: {"OpenAI-Beta" => "chatkit_beta=v1"}, **options}
38
+ )
39
+ end
40
+
41
+ # Cancel a ChatKit session
42
+ #
43
+ # @overload cancel(session_id, request_options: {})
44
+ #
45
+ # @param session_id [String] Unique identifier for the ChatKit session to cancel.
46
+ #
47
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
48
+ #
49
+ # @return [OpenAI::Models::Beta::ChatKit::ChatSession]
50
+ #
51
+ # @see OpenAI::Models::Beta::ChatKit::SessionCancelParams
52
+ def cancel(session_id, params = {})
53
+ @client.request(
54
+ method: :post,
55
+ path: ["chatkit/sessions/%1$s/cancel", session_id],
56
+ model: OpenAI::Beta::ChatKit::ChatSession,
57
+ options: {extra_headers: {"OpenAI-Beta" => "chatkit_beta=v1"}, **params[:request_options].to_h}
58
+ )
59
+ end
60
+
61
+ # @api private
62
+ #
63
+ # @param client [OpenAI::Client]
64
+ def initialize(client:)
65
+ @client = client
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,126 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Beta
6
+ class ChatKit
7
+ class Threads
8
+ # Retrieve a ChatKit thread
9
+ #
10
+ # @overload retrieve(thread_id, request_options: {})
11
+ #
12
+ # @param thread_id [String] Identifier of the ChatKit thread to retrieve.
13
+ #
14
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
15
+ #
16
+ # @return [OpenAI::Models::Beta::ChatKit::ChatKitThread]
17
+ #
18
+ # @see OpenAI::Models::Beta::ChatKit::ThreadRetrieveParams
19
+ def retrieve(thread_id, params = {})
20
+ @client.request(
21
+ method: :get,
22
+ path: ["chatkit/threads/%1$s", thread_id],
23
+ model: OpenAI::Beta::ChatKit::ChatKitThread,
24
+ options: {extra_headers: {"OpenAI-Beta" => "chatkit_beta=v1"}, **params[:request_options].to_h}
25
+ )
26
+ end
27
+
28
+ # Some parameter documentations has been truncated, see
29
+ # {OpenAI::Models::Beta::ChatKit::ThreadListParams} for more details.
30
+ #
31
+ # List ChatKit threads
32
+ #
33
+ # @overload list(after: nil, before: nil, limit: nil, order: nil, user: nil, request_options: {})
34
+ #
35
+ # @param after [String] List items created after this thread item ID. Defaults to null for the first pag
36
+ #
37
+ # @param before [String] List items created before this thread item ID. Defaults to null for the newest r
38
+ #
39
+ # @param limit [Integer] Maximum number of thread items to return. Defaults to 20.
40
+ #
41
+ # @param order [Symbol, OpenAI::Models::Beta::ChatKit::ThreadListParams::Order] Sort order for results by creation time. Defaults to `desc`.
42
+ #
43
+ # @param user [String] Filter threads that belong to this user identifier. Defaults to null to return a
44
+ #
45
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
46
+ #
47
+ # @return [OpenAI::Internal::ConversationCursorPage<OpenAI::Models::Beta::ChatKit::ChatKitThread>]
48
+ #
49
+ # @see OpenAI::Models::Beta::ChatKit::ThreadListParams
50
+ def list(params = {})
51
+ parsed, options = OpenAI::Beta::ChatKit::ThreadListParams.dump_request(params)
52
+ @client.request(
53
+ method: :get,
54
+ path: "chatkit/threads",
55
+ query: parsed,
56
+ page: OpenAI::Internal::ConversationCursorPage,
57
+ model: OpenAI::Beta::ChatKit::ChatKitThread,
58
+ options: {extra_headers: {"OpenAI-Beta" => "chatkit_beta=v1"}, **options}
59
+ )
60
+ end
61
+
62
+ # Delete a ChatKit thread
63
+ #
64
+ # @overload delete(thread_id, request_options: {})
65
+ #
66
+ # @param thread_id [String] Identifier of the ChatKit thread to delete.
67
+ #
68
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
69
+ #
70
+ # @return [OpenAI::Models::Beta::ChatKit::ThreadDeleteResponse]
71
+ #
72
+ # @see OpenAI::Models::Beta::ChatKit::ThreadDeleteParams
73
+ def delete(thread_id, params = {})
74
+ @client.request(
75
+ method: :delete,
76
+ path: ["chatkit/threads/%1$s", thread_id],
77
+ model: OpenAI::Models::Beta::ChatKit::ThreadDeleteResponse,
78
+ options: {extra_headers: {"OpenAI-Beta" => "chatkit_beta=v1"}, **params[:request_options].to_h}
79
+ )
80
+ end
81
+
82
+ # Some parameter documentations has been truncated, see
83
+ # {OpenAI::Models::Beta::ChatKit::ThreadListItemsParams} for more details.
84
+ #
85
+ # List ChatKit thread items
86
+ #
87
+ # @overload list_items(thread_id, after: nil, before: nil, limit: nil, order: nil, request_options: {})
88
+ #
89
+ # @param thread_id [String] Identifier of the ChatKit thread whose items are requested.
90
+ #
91
+ # @param after [String] List items created after this thread item ID. Defaults to null for the first pag
92
+ #
93
+ # @param before [String] List items created before this thread item ID. Defaults to null for the newest r
94
+ #
95
+ # @param limit [Integer] Maximum number of thread items to return. Defaults to 20.
96
+ #
97
+ # @param order [Symbol, OpenAI::Models::Beta::ChatKit::ThreadListItemsParams::Order] Sort order for results by creation time. Defaults to `desc`.
98
+ #
99
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
100
+ #
101
+ # @return [OpenAI::Internal::ConversationCursorPage<OpenAI::Models::Beta::ChatKit::ChatKitThreadUserMessageItem, OpenAI::Models::Beta::ChatKit::ChatKitThreadAssistantMessageItem, OpenAI::Models::Beta::ChatKit::ChatKitWidgetItem, OpenAI::Models::Beta::ChatKit::ChatKitThreadItemList::Data::ChatKitClientToolCall, OpenAI::Models::Beta::ChatKit::ChatKitThreadItemList::Data::ChatKitTask, OpenAI::Models::Beta::ChatKit::ChatKitThreadItemList::Data::ChatKitTaskGroup>]
102
+ #
103
+ # @see OpenAI::Models::Beta::ChatKit::ThreadListItemsParams
104
+ def list_items(thread_id, params = {})
105
+ parsed, options = OpenAI::Beta::ChatKit::ThreadListItemsParams.dump_request(params)
106
+ @client.request(
107
+ method: :get,
108
+ path: ["chatkit/threads/%1$s/items", thread_id],
109
+ query: parsed,
110
+ page: OpenAI::Internal::ConversationCursorPage,
111
+ model: OpenAI::Beta::ChatKit::ChatKitThreadItemList::Data,
112
+ options: {extra_headers: {"OpenAI-Beta" => "chatkit_beta=v1"}, **options}
113
+ )
114
+ end
115
+
116
+ # @api private
117
+ #
118
+ # @param client [OpenAI::Client]
119
+ def initialize(client:)
120
+ @client = client
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end