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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +1 -1
- data/lib/openai/client.rb +4 -0
- data/lib/openai/internal/conversation_cursor_page.rb +2 -2
- data/lib/openai/models/all_models.rb +2 -0
- data/lib/openai/models/beta/chatkit/chat_session.rb +94 -0
- data/lib/openai/models/beta/chatkit/chat_session_automatic_thread_titling.rb +22 -0
- data/lib/openai/models/beta/chatkit/chat_session_chatkit_configuration.rb +38 -0
- data/lib/openai/models/beta/chatkit/chat_session_chatkit_configuration_param.rb +125 -0
- data/lib/openai/models/beta/chatkit/chat_session_expires_after_param.rb +30 -0
- data/lib/openai/models/beta/chatkit/chat_session_file_upload.rb +38 -0
- data/lib/openai/models/beta/chatkit/chat_session_history.rb +34 -0
- data/lib/openai/models/beta/chatkit/chat_session_rate_limits.rb +22 -0
- data/lib/openai/models/beta/chatkit/chat_session_rate_limits_param.rb +22 -0
- data/lib/openai/models/beta/chatkit/chat_session_status.rb +20 -0
- data/lib/openai/models/beta/chatkit/chat_session_workflow_param.rb +80 -0
- data/lib/openai/models/beta/chatkit/chatkit_attachment.rb +69 -0
- data/lib/openai/models/beta/chatkit/chatkit_response_output_text.rb +143 -0
- data/lib/openai/models/beta/chatkit/chatkit_thread.rb +145 -0
- data/lib/openai/models/beta/chatkit/chatkit_thread_assistant_message_item.rb +65 -0
- data/lib/openai/models/beta/chatkit/chatkit_thread_item_list.rb +374 -0
- data/lib/openai/models/beta/chatkit/chatkit_thread_user_message_item.rb +183 -0
- data/lib/openai/models/beta/chatkit/chatkit_widget_item.rb +64 -0
- data/lib/openai/models/beta/chatkit/session_cancel_params.rb +18 -0
- data/lib/openai/models/beta/chatkit/session_create_params.rb +63 -0
- data/lib/openai/models/beta/chatkit/thread_delete_params.rb +18 -0
- data/lib/openai/models/beta/chatkit/thread_delete_response.rb +39 -0
- data/lib/openai/models/beta/chatkit/thread_list_items_params.rb +66 -0
- data/lib/openai/models/beta/chatkit/thread_list_params.rb +75 -0
- data/lib/openai/models/beta/chatkit/thread_retrieve_params.rb +18 -0
- data/lib/openai/models/beta/chatkit_upload_file_params.rb +28 -0
- data/lib/openai/models/beta/chatkit_upload_file_response.rb +25 -0
- data/lib/openai/models/beta/chatkit_workflow.rb +78 -0
- data/lib/openai/models/beta/file_part.rb +56 -0
- data/lib/openai/models/beta/image_part.rb +64 -0
- data/lib/openai/models/image_edit_params.rb +4 -2
- data/lib/openai/models/image_model.rb +1 -0
- data/lib/openai/models/realtime/realtime_session.rb +4 -0
- data/lib/openai/models/realtime/realtime_session_create_request.rb +12 -0
- data/lib/openai/models/realtime/realtime_session_create_response.rb +12 -0
- data/lib/openai/models/responses/tool.rb +5 -2
- data/lib/openai/models/responses_model.rb +2 -0
- data/lib/openai/models/video.rb +122 -0
- data/lib/openai/models/video_create_error.rb +21 -0
- data/lib/openai/models/video_create_params.rb +54 -0
- data/lib/openai/models/video_delete_params.rb +14 -0
- data/lib/openai/models/video_delete_response.rb +35 -0
- data/lib/openai/models/video_download_content_params.rb +34 -0
- data/lib/openai/models/video_list_params.rb +54 -0
- data/lib/openai/models/video_model.rb +15 -0
- data/lib/openai/models/video_remix_params.rb +22 -0
- data/lib/openai/models/video_retrieve_params.rb +14 -0
- data/lib/openai/models/video_seconds.rb +16 -0
- data/lib/openai/models/video_size.rb +17 -0
- data/lib/openai/models.rb +22 -0
- data/lib/openai/resources/beta/chatkit/sessions.rb +71 -0
- data/lib/openai/resources/beta/chatkit/threads.rb +126 -0
- data/lib/openai/resources/beta/chatkit.rb +50 -0
- data/lib/openai/resources/beta.rb +4 -0
- data/lib/openai/resources/videos.rb +165 -0
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +46 -0
- data/rbi/openai/client.rbi +3 -0
- data/rbi/openai/models/all_models.rbi +10 -0
- data/rbi/openai/models/beta/chatkit/chat_session.rbi +141 -0
- data/rbi/openai/models/beta/chatkit/chat_session_automatic_thread_titling.rbi +35 -0
- data/rbi/openai/models/beta/chatkit/chat_session_chatkit_configuration.rbi +87 -0
- data/rbi/openai/models/beta/chatkit/chat_session_chatkit_configuration_param.rbi +256 -0
- data/rbi/openai/models/beta/chatkit/chat_session_expires_after_param.rbi +43 -0
- data/rbi/openai/models/beta/chatkit/chat_session_file_upload.rbi +61 -0
- data/rbi/openai/models/beta/chatkit/chat_session_history.rbi +52 -0
- data/rbi/openai/models/beta/chatkit/chat_session_rate_limits.rbi +37 -0
- data/rbi/openai/models/beta/chatkit/chat_session_rate_limits_param.rbi +40 -0
- data/rbi/openai/models/beta/chatkit/chat_session_status.rbi +43 -0
- data/rbi/openai/models/beta/chatkit/chat_session_workflow_param.rbi +166 -0
- data/rbi/openai/models/beta/chatkit/chatkit_attachment.rbi +116 -0
- data/rbi/openai/models/beta/chatkit/chatkit_response_output_text.rbi +287 -0
- data/rbi/openai/models/beta/chatkit/chatkit_thread.rbi +220 -0
- data/rbi/openai/models/beta/chatkit/chatkit_thread_assistant_message_item.rbi +94 -0
- data/rbi/openai/models/beta/chatkit/chatkit_thread_item_list.rbi +590 -0
- data/rbi/openai/models/beta/chatkit/chatkit_thread_user_message_item.rbi +324 -0
- data/rbi/openai/models/beta/chatkit/chatkit_widget_item.rbi +87 -0
- data/rbi/openai/models/beta/chatkit/session_cancel_params.rbi +34 -0
- data/rbi/openai/models/beta/chatkit/session_create_params.rbi +136 -0
- data/rbi/openai/models/beta/chatkit/thread_delete_params.rbi +34 -0
- data/rbi/openai/models/beta/chatkit/thread_delete_response.rbi +55 -0
- data/rbi/openai/models/beta/chatkit/thread_list_items_params.rbi +138 -0
- data/rbi/openai/models/beta/chatkit/thread_list_params.rbi +145 -0
- data/rbi/openai/models/beta/chatkit/thread_retrieve_params.rbi +34 -0
- data/rbi/openai/models/beta/chatkit_upload_file_params.rbi +50 -0
- data/rbi/openai/models/beta/chatkit_upload_file_response.rbi +25 -0
- data/rbi/openai/models/beta/chatkit_workflow.rbi +134 -0
- data/rbi/openai/models/beta/file_part.rbi +74 -0
- data/rbi/openai/models/beta/image_part.rbi +82 -0
- data/rbi/openai/models/image_edit_params.rbi +6 -3
- data/rbi/openai/models/image_model.rbi +2 -0
- data/rbi/openai/models/realtime/realtime_session.rbi +20 -0
- data/rbi/openai/models/realtime/realtime_session_create_request.rbi +20 -0
- data/rbi/openai/models/realtime/realtime_session_create_response.rbi +20 -0
- data/rbi/openai/models/responses/tool.rbi +11 -3
- data/rbi/openai/models/responses_model.rbi +10 -0
- data/rbi/openai/models/video.rbi +143 -0
- data/rbi/openai/models/video_create_error.rbi +26 -0
- data/rbi/openai/models/video_create_params.rbi +87 -0
- data/rbi/openai/models/video_delete_params.rbi +27 -0
- data/rbi/openai/models/video_delete_response.rbi +46 -0
- data/rbi/openai/models/video_download_content_params.rbi +89 -0
- data/rbi/openai/models/video_list_params.rbi +91 -0
- data/rbi/openai/models/video_model.rbi +19 -0
- data/rbi/openai/models/video_remix_params.rbi +40 -0
- data/rbi/openai/models/video_retrieve_params.rbi +27 -0
- data/rbi/openai/models/video_seconds.rbi +20 -0
- data/rbi/openai/models/video_size.rbi +23 -0
- data/rbi/openai/models.rbi +22 -0
- data/rbi/openai/resources/beta/chatkit/sessions.rbi +61 -0
- data/rbi/openai/resources/beta/chatkit/threads.rbi +110 -0
- data/rbi/openai/resources/beta/chatkit.rbi +35 -0
- data/rbi/openai/resources/beta.rbi +3 -0
- data/rbi/openai/resources/images.rbi +4 -2
- data/rbi/openai/resources/videos.rbi +121 -0
- data/sig/openai/client.rbs +2 -0
- data/sig/openai/models/all_models.rbs +4 -0
- data/sig/openai/models/beta/chatkit/chat_session.rbs +69 -0
- data/sig/openai/models/beta/chatkit/chat_session_automatic_thread_titling.rbs +17 -0
- data/sig/openai/models/beta/chatkit/chat_session_chatkit_configuration.rbs +34 -0
- data/sig/openai/models/beta/chatkit/chat_session_chatkit_configuration_param.rbs +103 -0
- data/sig/openai/models/beta/chatkit/chat_session_expires_after_param.rbs +20 -0
- data/sig/openai/models/beta/chatkit/chat_session_file_upload.rbs +30 -0
- data/sig/openai/models/beta/chatkit/chat_session_history.rbs +19 -0
- data/sig/openai/models/beta/chatkit/chat_session_rate_limits.rbs +18 -0
- data/sig/openai/models/beta/chatkit/chat_session_rate_limits_param.rbs +20 -0
- data/sig/openai/models/beta/chatkit/chat_session_status.rbs +19 -0
- data/sig/openai/models/beta/chatkit/chat_session_workflow_param.rbs +69 -0
- data/sig/openai/models/beta/chatkit/chatkit_attachment.rbs +57 -0
- data/sig/openai/models/beta/chatkit/chatkit_response_output_text.rbs +114 -0
- data/sig/openai/models/beta/chatkit/chatkit_thread.rbs +96 -0
- data/sig/openai/models/beta/chatkit/chatkit_thread_assistant_message_item.rbs +51 -0
- data/sig/openai/models/beta/chatkit/chatkit_thread_item_list.rbs +276 -0
- data/sig/openai/models/beta/chatkit/chatkit_thread_user_message_item.rbs +127 -0
- data/sig/openai/models/beta/chatkit/chatkit_widget_item.rbs +51 -0
- data/sig/openai/models/beta/chatkit/session_cancel_params.rbs +19 -0
- data/sig/openai/models/beta/chatkit/session_create_params.rbs +62 -0
- data/sig/openai/models/beta/chatkit/thread_delete_params.rbs +19 -0
- data/sig/openai/models/beta/chatkit/thread_delete_response.rbs +30 -0
- data/sig/openai/models/beta/chatkit/thread_list_items_params.rbs +66 -0
- data/sig/openai/models/beta/chatkit/thread_list_params.rbs +73 -0
- data/sig/openai/models/beta/chatkit/thread_retrieve_params.rbs +19 -0
- data/sig/openai/models/beta/chatkit_upload_file_params.rbs +26 -0
- data/sig/openai/models/beta/chatkit_upload_file_response.rbs +14 -0
- data/sig/openai/models/beta/chatkit_workflow.rbs +55 -0
- data/sig/openai/models/beta/file_part.rbs +42 -0
- data/sig/openai/models/beta/image_part.rbs +47 -0
- data/sig/openai/models/image_model.rbs +3 -1
- data/sig/openai/models/realtime/realtime_session.rbs +8 -0
- data/sig/openai/models/realtime/realtime_session_create_request.rbs +8 -0
- data/sig/openai/models/realtime/realtime_session_create_response.rbs +8 -0
- data/sig/openai/models/responses/tool.rbs +2 -1
- data/sig/openai/models/responses_model.rbs +4 -0
- data/sig/openai/models/video.rbs +88 -0
- data/sig/openai/models/video_create_error.rbs +15 -0
- data/sig/openai/models/video_create_params.rbs +58 -0
- data/sig/openai/models/video_delete_params.rbs +14 -0
- data/sig/openai/models/video_delete_response.rbs +22 -0
- data/sig/openai/models/video_download_content_params.rbs +40 -0
- data/sig/openai/models/video_list_params.rbs +55 -0
- data/sig/openai/models/video_model.rbs +14 -0
- data/sig/openai/models/video_remix_params.rbs +23 -0
- data/sig/openai/models/video_retrieve_params.rbs +15 -0
- data/sig/openai/models/video_seconds.rbs +15 -0
- data/sig/openai/models/video_size.rbs +16 -0
- data/sig/openai/models.rbs +22 -0
- data/sig/openai/resources/beta/chatkit/sessions.rbs +25 -0
- data/sig/openai/resources/beta/chatkit/threads.rbs +39 -0
- data/sig/openai/resources/beta/chatkit.rbs +18 -0
- data/sig/openai/resources/beta.rbs +2 -0
- data/sig/openai/resources/videos.rbs +45 -0
- 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
|
data/lib/openai/version.rb
CHANGED
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"
|
data/rbi/openai/client.rbi
CHANGED
@@ -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
|