openai 0.52.0 → 0.54.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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/evals/run_cancel_response.rb +2 -2
  5. data/lib/openai/models/evals/run_create_params.rb +2 -2
  6. data/lib/openai/models/evals/run_create_response.rb +2 -2
  7. data/lib/openai/models/evals/run_list_response.rb +2 -2
  8. data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
  9. data/lib/openai/models/image_input_reference_param.rb +23 -0
  10. data/lib/openai/models/responses/computer_tool.rb +5 -45
  11. data/lib/openai/models/responses/computer_use_preview_tool.rb +61 -0
  12. data/lib/openai/models/responses/input_token_count_params.rb +2 -2
  13. data/lib/openai/models/responses/response.rb +2 -2
  14. data/lib/openai/models/responses/response_create_params.rb +2 -2
  15. data/lib/openai/models/responses/response_input_file.rb +1 -24
  16. data/lib/openai/models/responses/response_input_file_content.rb +1 -27
  17. data/lib/openai/models/responses/response_tool_search_output_item.rb +2 -2
  18. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +2 -2
  19. data/lib/openai/models/responses/responses_client_event.rb +2 -2
  20. data/lib/openai/models/responses/tool.rb +3 -3
  21. data/lib/openai/models/video_create_character_params.rb +30 -0
  22. data/lib/openai/models/video_create_character_response.rb +33 -0
  23. data/lib/openai/models/video_create_params.rb +17 -4
  24. data/lib/openai/models/video_edit_params.rb +57 -0
  25. data/lib/openai/models/video_extend_params.rb +69 -0
  26. data/lib/openai/models/video_get_character_params.rb +20 -0
  27. data/lib/openai/models/video_get_character_response.rb +33 -0
  28. data/lib/openai/models.rb +10 -0
  29. data/lib/openai/resources/responses/input_tokens.rb +1 -1
  30. data/lib/openai/resources/responses.rb +2 -2
  31. data/lib/openai/resources/videos.rb +102 -1
  32. data/lib/openai/version.rb +1 -1
  33. data/lib/openai.rb +8 -1
  34. data/rbi/openai/client.rbi +6 -0
  35. data/rbi/openai/models/evals/run_cancel_response.rbi +2 -2
  36. data/rbi/openai/models/evals/run_create_params.rbi +4 -4
  37. data/rbi/openai/models/evals/run_create_response.rbi +2 -2
  38. data/rbi/openai/models/evals/run_list_response.rbi +2 -2
  39. data/rbi/openai/models/evals/run_retrieve_response.rbi +2 -2
  40. data/rbi/openai/models/image_input_reference_param.rbi +39 -0
  41. data/rbi/openai/models/responses/computer_tool.rbi +5 -87
  42. data/rbi/openai/models/responses/computer_use_preview_tool.rbi +124 -0
  43. data/rbi/openai/models/responses/input_token_count_params.rbi +3 -3
  44. data/rbi/openai/models/responses/response.rbi +1 -1
  45. data/rbi/openai/models/responses/response_create_params.rbi +4 -4
  46. data/rbi/openai/models/responses/response_input_file.rbi +0 -54
  47. data/rbi/openai/models/responses/response_input_file_content.rbi +0 -59
  48. data/rbi/openai/models/responses/response_tool_search_output_item.rbi +1 -1
  49. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +3 -3
  50. data/rbi/openai/models/responses/responses_client_event.rbi +4 -4
  51. data/rbi/openai/models/responses/tool.rbi +1 -1
  52. data/rbi/openai/models/video_create_character_params.rbi +51 -0
  53. data/rbi/openai/models/video_create_character_response.rbi +56 -0
  54. data/rbi/openai/models/video_create_params.rbi +44 -6
  55. data/rbi/openai/models/video_edit_params.rbi +111 -0
  56. data/rbi/openai/models/video_extend_params.rbi +121 -0
  57. data/rbi/openai/models/video_get_character_params.rbi +35 -0
  58. data/rbi/openai/models/video_get_character_response.rbi +56 -0
  59. data/rbi/openai/models.rbi +10 -0
  60. data/rbi/openai/resources/responses/input_tokens.rbi +1 -1
  61. data/rbi/openai/resources/responses.rbi +2 -2
  62. data/rbi/openai/resources/videos.rbi +84 -2
  63. data/sig/openai/client.rbs +3 -0
  64. data/sig/openai/models/image_input_reference_param.rbs +19 -0
  65. data/sig/openai/models/responses/computer_tool.rbs +4 -40
  66. data/sig/openai/models/responses/computer_use_preview_tool.rbs +51 -0
  67. data/sig/openai/models/responses/response_input_file.rbs +0 -20
  68. data/sig/openai/models/responses/response_input_file_content.rbs +0 -20
  69. data/sig/openai/models/responses/tool.rbs +1 -1
  70. data/sig/openai/models/video_create_character_params.rbs +28 -0
  71. data/sig/openai/models/video_create_character_response.rbs +18 -0
  72. data/sig/openai/models/video_create_params.rbs +15 -6
  73. data/sig/openai/models/video_edit_params.rbs +48 -0
  74. data/sig/openai/models/video_extend_params.rbs +56 -0
  75. data/sig/openai/models/video_get_character_params.rbs +23 -0
  76. data/sig/openai/models/video_get_character_response.rbs +18 -0
  77. data/sig/openai/models.rbs +10 -0
  78. data/sig/openai/resources/videos.rbs +25 -1
  79. metadata +26 -5
  80. data/lib/openai/models/responses/computer_use_tool.rb +0 -21
  81. data/rbi/openai/models/responses/computer_use_tool.rbi +0 -31
  82. data/sig/openai/models/responses/computer_use_tool.rbs +0 -15
@@ -0,0 +1,56 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ class VideoCreateCharacterResponse < OpenAI::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ OpenAI::Models::VideoCreateCharacterResponse,
10
+ OpenAI::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Identifier for the character creation cameo.
15
+ sig { returns(T.nilable(String)) }
16
+ attr_accessor :id
17
+
18
+ # Unix timestamp (in seconds) when the character was created.
19
+ sig { returns(Integer) }
20
+ attr_accessor :created_at
21
+
22
+ # Display name for the character.
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :name
25
+
26
+ sig do
27
+ params(
28
+ id: T.nilable(String),
29
+ created_at: Integer,
30
+ name: T.nilable(String)
31
+ ).returns(T.attached_class)
32
+ end
33
+ def self.new(
34
+ # Identifier for the character creation cameo.
35
+ id:,
36
+ # Unix timestamp (in seconds) when the character was created.
37
+ created_at:,
38
+ # Display name for the character.
39
+ name:
40
+ )
41
+ end
42
+
43
+ sig do
44
+ override.returns(
45
+ {
46
+ id: T.nilable(String),
47
+ created_at: Integer,
48
+ name: T.nilable(String)
49
+ }
50
+ )
51
+ end
52
+ def to_hash
53
+ end
54
+ end
55
+ end
56
+ end
@@ -15,11 +15,25 @@ module OpenAI
15
15
  sig { returns(String) }
16
16
  attr_accessor :prompt
17
17
 
18
- # Optional multipart reference asset that guides generation.
19
- sig { returns(T.nilable(OpenAI::Internal::FileInput)) }
18
+ # Optional reference asset upload or reference object that guides generation.
19
+ sig do
20
+ returns(
21
+ T.nilable(
22
+ T.any(OpenAI::Internal::FileInput, OpenAI::ImageInputReferenceParam)
23
+ )
24
+ )
25
+ end
20
26
  attr_reader :input_reference
21
27
 
22
- sig { params(input_reference: OpenAI::Internal::FileInput).void }
28
+ sig do
29
+ params(
30
+ input_reference:
31
+ T.any(
32
+ OpenAI::Internal::FileInput,
33
+ OpenAI::ImageInputReferenceParam::OrHash
34
+ )
35
+ ).void
36
+ end
23
37
  attr_writer :input_reference
24
38
 
25
39
  # The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults
@@ -48,7 +62,11 @@ module OpenAI
48
62
  sig do
49
63
  params(
50
64
  prompt: String,
51
- input_reference: OpenAI::Internal::FileInput,
65
+ input_reference:
66
+ T.any(
67
+ OpenAI::Internal::FileInput,
68
+ OpenAI::ImageInputReferenceParam::OrHash
69
+ ),
52
70
  model: T.any(String, OpenAI::VideoModel::OrSymbol),
53
71
  seconds: OpenAI::VideoSeconds::OrSymbol,
54
72
  size: OpenAI::VideoSize::OrSymbol,
@@ -58,7 +76,7 @@ module OpenAI
58
76
  def self.new(
59
77
  # Text prompt that describes the video to generate.
60
78
  prompt:,
61
- # Optional multipart reference asset that guides generation.
79
+ # Optional reference asset upload or reference object that guides generation.
62
80
  input_reference: nil,
63
81
  # The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults
64
82
  # to `sora-2`.
@@ -76,7 +94,11 @@ module OpenAI
76
94
  override.returns(
77
95
  {
78
96
  prompt: String,
79
- input_reference: OpenAI::Internal::FileInput,
97
+ input_reference:
98
+ T.any(
99
+ OpenAI::Internal::FileInput,
100
+ OpenAI::ImageInputReferenceParam
101
+ ),
80
102
  model: T.any(String, OpenAI::VideoModel::OrSymbol),
81
103
  seconds: OpenAI::VideoSeconds::OrSymbol,
82
104
  size: OpenAI::VideoSize::OrSymbol,
@@ -86,6 +108,22 @@ module OpenAI
86
108
  end
87
109
  def to_hash
88
110
  end
111
+
112
+ # Optional reference asset upload or reference object that guides generation.
113
+ module InputReference
114
+ extend OpenAI::Internal::Type::Union
115
+
116
+ Variants =
117
+ T.type_alias { T.any(StringIO, OpenAI::ImageInputReferenceParam) }
118
+
119
+ sig do
120
+ override.returns(
121
+ T::Array[OpenAI::VideoCreateParams::InputReference::Variants]
122
+ )
123
+ end
124
+ def self.variants
125
+ end
126
+ end
89
127
  end
90
128
  end
91
129
  end
@@ -0,0 +1,111 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ class VideoEditParams < OpenAI::Internal::Type::BaseModel
6
+ extend OpenAI::Internal::Type::RequestParameters::Converter
7
+ include OpenAI::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(OpenAI::VideoEditParams, OpenAI::Internal::AnyHash)
12
+ end
13
+
14
+ # Text prompt that describes how to edit the source video.
15
+ sig { returns(String) }
16
+ attr_accessor :prompt
17
+
18
+ # Reference to the completed video to edit.
19
+ sig do
20
+ returns(
21
+ T.any(
22
+ OpenAI::Internal::FileInput,
23
+ OpenAI::VideoEditParams::Video::VideoReferenceInputParam
24
+ )
25
+ )
26
+ end
27
+ attr_accessor :video
28
+
29
+ sig do
30
+ params(
31
+ prompt: String,
32
+ video:
33
+ T.any(
34
+ OpenAI::Internal::FileInput,
35
+ OpenAI::VideoEditParams::Video::VideoReferenceInputParam::OrHash
36
+ ),
37
+ request_options: OpenAI::RequestOptions::OrHash
38
+ ).returns(T.attached_class)
39
+ end
40
+ def self.new(
41
+ # Text prompt that describes how to edit the source video.
42
+ prompt:,
43
+ # Reference to the completed video to edit.
44
+ video:,
45
+ request_options: {}
46
+ )
47
+ end
48
+
49
+ sig do
50
+ override.returns(
51
+ {
52
+ prompt: String,
53
+ video:
54
+ T.any(
55
+ OpenAI::Internal::FileInput,
56
+ OpenAI::VideoEditParams::Video::VideoReferenceInputParam
57
+ ),
58
+ request_options: OpenAI::RequestOptions
59
+ }
60
+ )
61
+ end
62
+ def to_hash
63
+ end
64
+
65
+ # Reference to the completed video to edit.
66
+ module Video
67
+ extend OpenAI::Internal::Type::Union
68
+
69
+ Variants =
70
+ T.type_alias do
71
+ T.any(
72
+ StringIO,
73
+ OpenAI::VideoEditParams::Video::VideoReferenceInputParam
74
+ )
75
+ end
76
+
77
+ class VideoReferenceInputParam < OpenAI::Internal::Type::BaseModel
78
+ OrHash =
79
+ T.type_alias do
80
+ T.any(
81
+ OpenAI::VideoEditParams::Video::VideoReferenceInputParam,
82
+ OpenAI::Internal::AnyHash
83
+ )
84
+ end
85
+
86
+ # The identifier of the completed video.
87
+ sig { returns(String) }
88
+ attr_accessor :id
89
+
90
+ # Reference to the completed video.
91
+ sig { params(id: String).returns(T.attached_class) }
92
+ def self.new(
93
+ # The identifier of the completed video.
94
+ id:
95
+ )
96
+ end
97
+
98
+ sig { override.returns({ id: String }) }
99
+ def to_hash
100
+ end
101
+ end
102
+
103
+ sig do
104
+ override.returns(T::Array[OpenAI::VideoEditParams::Video::Variants])
105
+ end
106
+ def self.variants
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,121 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ class VideoExtendParams < OpenAI::Internal::Type::BaseModel
6
+ extend OpenAI::Internal::Type::RequestParameters::Converter
7
+ include OpenAI::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(OpenAI::VideoExtendParams, OpenAI::Internal::AnyHash)
12
+ end
13
+
14
+ # Updated text prompt that directs the extension generation.
15
+ sig { returns(String) }
16
+ attr_accessor :prompt
17
+
18
+ # Length of the newly generated extension segment in seconds (allowed values: 4,
19
+ # 8, 12, 16, 20).
20
+ sig { returns(OpenAI::VideoSeconds::OrSymbol) }
21
+ attr_accessor :seconds
22
+
23
+ # Reference to the completed video to extend.
24
+ sig do
25
+ returns(
26
+ T.any(
27
+ OpenAI::Internal::FileInput,
28
+ OpenAI::VideoExtendParams::Video::VideoReferenceInputParam
29
+ )
30
+ )
31
+ end
32
+ attr_accessor :video
33
+
34
+ sig do
35
+ params(
36
+ prompt: String,
37
+ seconds: OpenAI::VideoSeconds::OrSymbol,
38
+ video:
39
+ T.any(
40
+ OpenAI::Internal::FileInput,
41
+ OpenAI::VideoExtendParams::Video::VideoReferenceInputParam::OrHash
42
+ ),
43
+ request_options: OpenAI::RequestOptions::OrHash
44
+ ).returns(T.attached_class)
45
+ end
46
+ def self.new(
47
+ # Updated text prompt that directs the extension generation.
48
+ prompt:,
49
+ # Length of the newly generated extension segment in seconds (allowed values: 4,
50
+ # 8, 12, 16, 20).
51
+ seconds:,
52
+ # Reference to the completed video to extend.
53
+ video:,
54
+ request_options: {}
55
+ )
56
+ end
57
+
58
+ sig do
59
+ override.returns(
60
+ {
61
+ prompt: String,
62
+ seconds: OpenAI::VideoSeconds::OrSymbol,
63
+ video:
64
+ T.any(
65
+ OpenAI::Internal::FileInput,
66
+ OpenAI::VideoExtendParams::Video::VideoReferenceInputParam
67
+ ),
68
+ request_options: OpenAI::RequestOptions
69
+ }
70
+ )
71
+ end
72
+ def to_hash
73
+ end
74
+
75
+ # Reference to the completed video to extend.
76
+ module Video
77
+ extend OpenAI::Internal::Type::Union
78
+
79
+ Variants =
80
+ T.type_alias do
81
+ T.any(
82
+ StringIO,
83
+ OpenAI::VideoExtendParams::Video::VideoReferenceInputParam
84
+ )
85
+ end
86
+
87
+ class VideoReferenceInputParam < OpenAI::Internal::Type::BaseModel
88
+ OrHash =
89
+ T.type_alias do
90
+ T.any(
91
+ OpenAI::VideoExtendParams::Video::VideoReferenceInputParam,
92
+ OpenAI::Internal::AnyHash
93
+ )
94
+ end
95
+
96
+ # The identifier of the completed video.
97
+ sig { returns(String) }
98
+ attr_accessor :id
99
+
100
+ # Reference to the completed video.
101
+ sig { params(id: String).returns(T.attached_class) }
102
+ def self.new(
103
+ # The identifier of the completed video.
104
+ id:
105
+ )
106
+ end
107
+
108
+ sig { override.returns({ id: String }) }
109
+ def to_hash
110
+ end
111
+ end
112
+
113
+ sig do
114
+ override.returns(T::Array[OpenAI::VideoExtendParams::Video::Variants])
115
+ end
116
+ def self.variants
117
+ end
118
+ end
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ class VideoGetCharacterParams < OpenAI::Internal::Type::BaseModel
6
+ extend OpenAI::Internal::Type::RequestParameters::Converter
7
+ include OpenAI::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(OpenAI::VideoGetCharacterParams, OpenAI::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :character_id
16
+
17
+ sig do
18
+ params(
19
+ character_id: String,
20
+ request_options: OpenAI::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(character_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { character_id: String, request_options: OpenAI::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,56 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ class VideoGetCharacterResponse < OpenAI::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ OpenAI::Models::VideoGetCharacterResponse,
10
+ OpenAI::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Identifier for the character creation cameo.
15
+ sig { returns(T.nilable(String)) }
16
+ attr_accessor :id
17
+
18
+ # Unix timestamp (in seconds) when the character was created.
19
+ sig { returns(Integer) }
20
+ attr_accessor :created_at
21
+
22
+ # Display name for the character.
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :name
25
+
26
+ sig do
27
+ params(
28
+ id: T.nilable(String),
29
+ created_at: Integer,
30
+ name: T.nilable(String)
31
+ ).returns(T.attached_class)
32
+ end
33
+ def self.new(
34
+ # Identifier for the character creation cameo.
35
+ id:,
36
+ # Unix timestamp (in seconds) when the character was created.
37
+ created_at:,
38
+ # Display name for the character.
39
+ name:
40
+ )
41
+ end
42
+
43
+ sig do
44
+ override.returns(
45
+ {
46
+ id: T.nilable(String),
47
+ created_at: Integer,
48
+ name: T.nilable(String)
49
+ }
50
+ )
51
+ end
52
+ def to_hash
53
+ end
54
+ end
55
+ end
56
+ end
@@ -139,6 +139,8 @@ module OpenAI
139
139
 
140
140
  ImageGenStreamEvent = OpenAI::Models::ImageGenStreamEvent
141
141
 
142
+ ImageInputReferenceParam = OpenAI::Models::ImageInputReferenceParam
143
+
142
144
  ImageModel = OpenAI::Models::ImageModel
143
145
 
144
146
  ImagesResponse = OpenAI::Models::ImagesResponse
@@ -244,6 +246,8 @@ module OpenAI
244
246
 
245
247
  Video = OpenAI::Models::Video
246
248
 
249
+ VideoCreateCharacterParams = OpenAI::Models::VideoCreateCharacterParams
250
+
247
251
  VideoCreateError = OpenAI::Models::VideoCreateError
248
252
 
249
253
  VideoCreateParams = OpenAI::Models::VideoCreateParams
@@ -252,6 +256,12 @@ module OpenAI
252
256
 
253
257
  VideoDownloadContentParams = OpenAI::Models::VideoDownloadContentParams
254
258
 
259
+ VideoEditParams = OpenAI::Models::VideoEditParams
260
+
261
+ VideoExtendParams = OpenAI::Models::VideoExtendParams
262
+
263
+ VideoGetCharacterParams = OpenAI::Models::VideoGetCharacterParams
264
+
255
265
  VideoListParams = OpenAI::Models::VideoListParams
256
266
 
257
267
  VideoModel = OpenAI::Models::VideoModel
@@ -47,8 +47,8 @@ module OpenAI
47
47
  T.any(
48
48
  OpenAI::Responses::FunctionTool::OrHash,
49
49
  OpenAI::Responses::FileSearchTool::OrHash,
50
- OpenAI::Responses::ComputerUseTool::OrHash,
51
50
  OpenAI::Responses::ComputerTool::OrHash,
51
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
52
52
  OpenAI::Responses::Tool::Mcp::OrHash,
53
53
  OpenAI::Responses::Tool::CodeInterpreter::OrHash,
54
54
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
@@ -94,8 +94,8 @@ module OpenAI
94
94
  T.any(
95
95
  OpenAI::Responses::FunctionTool::OrHash,
96
96
  OpenAI::Responses::FileSearchTool::OrHash,
97
- OpenAI::Responses::ComputerUseTool::OrHash,
98
97
  OpenAI::Responses::ComputerTool::OrHash,
98
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
99
99
  OpenAI::Responses::Tool::Mcp::OrHash,
100
100
  OpenAI::Responses::Tool::CodeInterpreter::OrHash,
101
101
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
@@ -392,8 +392,8 @@ module OpenAI
392
392
  T.any(
393
393
  OpenAI::Responses::FunctionTool::OrHash,
394
394
  OpenAI::Responses::FileSearchTool::OrHash,
395
- OpenAI::Responses::ComputerUseTool::OrHash,
396
395
  OpenAI::Responses::ComputerTool::OrHash,
396
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
397
397
  OpenAI::Responses::Tool::Mcp::OrHash,
398
398
  OpenAI::Responses::Tool::CodeInterpreter::OrHash,
399
399
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
@@ -7,7 +7,11 @@ module OpenAI
7
7
  sig do
8
8
  params(
9
9
  prompt: String,
10
- input_reference: OpenAI::Internal::FileInput,
10
+ input_reference:
11
+ T.any(
12
+ OpenAI::Internal::FileInput,
13
+ OpenAI::ImageInputReferenceParam::OrHash
14
+ ),
11
15
  model: T.any(String, OpenAI::VideoModel::OrSymbol),
12
16
  seconds: OpenAI::VideoSeconds::OrSymbol,
13
17
  size: OpenAI::VideoSize::OrSymbol,
@@ -17,7 +21,7 @@ module OpenAI
17
21
  def create(
18
22
  # Text prompt that describes the video to generate.
19
23
  prompt:,
20
- # Optional multipart reference asset that guides generation.
24
+ # Optional reference asset upload or reference object that guides generation.
21
25
  input_reference: nil,
22
26
  # The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults
23
27
  # to `sora-2`.
@@ -80,6 +84,23 @@ module OpenAI
80
84
  )
81
85
  end
82
86
 
87
+ # Create a character from an uploaded video.
88
+ sig do
89
+ params(
90
+ name: String,
91
+ video: OpenAI::Internal::FileInput,
92
+ request_options: OpenAI::RequestOptions::OrHash
93
+ ).returns(OpenAI::Models::VideoCreateCharacterResponse)
94
+ end
95
+ def create_character(
96
+ # Display name for this API character.
97
+ name:,
98
+ # Video file used to create a character.
99
+ video:,
100
+ request_options: {}
101
+ )
102
+ end
103
+
83
104
  # Download the generated video bytes or a derived preview asset.
84
105
  #
85
106
  # Streams the rendered video content for the specified video job.
@@ -99,6 +120,67 @@ module OpenAI
99
120
  )
100
121
  end
101
122
 
123
+ # Create a new video generation job by editing a source video or existing
124
+ # generated video.
125
+ sig do
126
+ params(
127
+ prompt: String,
128
+ video:
129
+ T.any(
130
+ OpenAI::Internal::FileInput,
131
+ OpenAI::VideoEditParams::Video::VideoReferenceInputParam::OrHash
132
+ ),
133
+ request_options: OpenAI::RequestOptions::OrHash
134
+ ).returns(OpenAI::Video)
135
+ end
136
+ def edit(
137
+ # Text prompt that describes how to edit the source video.
138
+ prompt:,
139
+ # Reference to the completed video to edit.
140
+ video:,
141
+ request_options: {}
142
+ )
143
+ end
144
+
145
+ # Create an extension of a completed video.
146
+ sig do
147
+ params(
148
+ prompt: String,
149
+ seconds: OpenAI::VideoSeconds::OrSymbol,
150
+ video:
151
+ T.any(
152
+ OpenAI::Internal::FileInput,
153
+ OpenAI::VideoExtendParams::Video::VideoReferenceInputParam::OrHash
154
+ ),
155
+ request_options: OpenAI::RequestOptions::OrHash
156
+ ).returns(OpenAI::Video)
157
+ end
158
+ def extend_(
159
+ # Updated text prompt that directs the extension generation.
160
+ prompt:,
161
+ # Length of the newly generated extension segment in seconds (allowed values: 4,
162
+ # 8, 12, 16, 20).
163
+ seconds:,
164
+ # Reference to the completed video to extend.
165
+ video:,
166
+ request_options: {}
167
+ )
168
+ end
169
+
170
+ # Fetch a character.
171
+ sig do
172
+ params(
173
+ character_id: String,
174
+ request_options: OpenAI::RequestOptions::OrHash
175
+ ).returns(OpenAI::Models::VideoGetCharacterResponse)
176
+ end
177
+ def get_character(
178
+ # The identifier of the character to retrieve.
179
+ character_id,
180
+ request_options: {}
181
+ )
182
+ end
183
+
102
184
  # Create a remix of a completed video using a refreshed prompt.
103
185
  sig do
104
186
  params(
@@ -14,6 +14,8 @@ module OpenAI
14
14
 
15
15
  attr_reader project: String?
16
16
 
17
+ attr_reader webhook_secret: String?
18
+
17
19
  attr_reader completions: OpenAI::Resources::Completions
18
20
 
19
21
  attr_reader chat: OpenAI::Resources::Chat
@@ -64,6 +66,7 @@ module OpenAI
64
66
  ?api_key: String?,
65
67
  ?organization: String?,
66
68
  ?project: String?,
69
+ ?webhook_secret: String?,
67
70
  ?base_url: String?,
68
71
  ?max_retries: Integer,
69
72
  ?timeout: Float,
@@ -0,0 +1,19 @@
1
+ module OpenAI
2
+ module Models
3
+ type image_input_reference_param = { file_id: String, image_url: String }
4
+
5
+ class ImageInputReferenceParam < OpenAI::Internal::Type::BaseModel
6
+ attr_reader file_id: String?
7
+
8
+ def file_id=: (String) -> String
9
+
10
+ attr_reader image_url: String?
11
+
12
+ def image_url=: (String) -> String
13
+
14
+ def initialize: (?file_id: String, ?image_url: String) -> void
15
+
16
+ def to_hash: -> { file_id: String, image_url: String }
17
+ end
18
+ end
19
+ end