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,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#create_character
6
+ class VideoCreateCharacterResponse < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # Identifier for the character creation cameo.
9
+ #
10
+ # @return [String, nil]
11
+ required :id, String, nil?: true
12
+
13
+ # @!attribute created_at
14
+ # Unix timestamp (in seconds) when the character was created.
15
+ #
16
+ # @return [Integer]
17
+ required :created_at, Integer
18
+
19
+ # @!attribute name
20
+ # Display name for the character.
21
+ #
22
+ # @return [String, nil]
23
+ required :name, String, nil?: true
24
+
25
+ # @!method initialize(id:, created_at:, name:)
26
+ # @param id [String, nil] Identifier for the character creation cameo.
27
+ #
28
+ # @param created_at [Integer] Unix timestamp (in seconds) when the character was created.
29
+ #
30
+ # @param name [String, nil] Display name for the character.
31
+ end
32
+ end
33
+ end
@@ -14,10 +14,10 @@ module OpenAI
14
14
  required :prompt, String
15
15
 
16
16
  # @!attribute input_reference
17
- # Optional multipart reference asset that guides generation.
17
+ # Optional reference asset upload or reference object that guides generation.
18
18
  #
19
- # @return [Pathname, StringIO, IO, String, OpenAI::FilePart, nil]
20
- optional :input_reference, OpenAI::Internal::Type::FileInput
19
+ # @return [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::ImageInputReferenceParam, nil]
20
+ optional :input_reference, union: -> { OpenAI::VideoCreateParams::InputReference }
21
21
 
22
22
  # @!attribute model
23
23
  # The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults
@@ -45,7 +45,7 @@ module OpenAI
45
45
  #
46
46
  # @param prompt [String] Text prompt that describes the video to generate.
47
47
  #
48
- # @param input_reference [Pathname, StringIO, IO, String, OpenAI::FilePart] Optional multipart reference asset that guides generation.
48
+ # @param input_reference [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::ImageInputReferenceParam] Optional reference asset upload or reference object that guides generation.
49
49
  #
50
50
  # @param model [String, Symbol, OpenAI::Models::VideoModel] The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults
51
51
  #
@@ -54,6 +54,19 @@ module OpenAI
54
54
  # @param size [Symbol, OpenAI::Models::VideoSize] Output resolution formatted as width x height (allowed values: 720x1280, 1280x72
55
55
  #
56
56
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
57
+
58
+ # Optional reference asset upload or reference object that guides generation.
59
+ module InputReference
60
+ extend OpenAI::Internal::Type::Union
61
+
62
+ # Optional reference asset upload or reference object that guides generation.
63
+ variant OpenAI::Internal::Type::FileInput
64
+
65
+ variant -> { OpenAI::ImageInputReferenceParam }
66
+
67
+ # @!method self.variants
68
+ # @return [Array(StringIO, OpenAI::Models::ImageInputReferenceParam)]
69
+ end
57
70
  end
58
71
  end
59
72
  end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#edit
6
+ class VideoEditParams < 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 how to edit the source video.
12
+ #
13
+ # @return [String]
14
+ required :prompt, String
15
+
16
+ # @!attribute video
17
+ # Reference to the completed video to edit.
18
+ #
19
+ # @return [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::VideoEditParams::Video::VideoReferenceInputParam]
20
+ required :video, union: -> { OpenAI::VideoEditParams::Video }
21
+
22
+ # @!method initialize(prompt:, video:, request_options: {})
23
+ # @param prompt [String] Text prompt that describes how to edit the source video.
24
+ #
25
+ # @param video [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::VideoEditParams::Video::VideoReferenceInputParam] Reference to the completed video to edit.
26
+ #
27
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
28
+
29
+ # Reference to the completed video to edit.
30
+ module Video
31
+ extend OpenAI::Internal::Type::Union
32
+
33
+ # Reference to the completed video to edit.
34
+ variant OpenAI::Internal::Type::FileInput
35
+
36
+ # Reference to the completed video.
37
+ variant -> { OpenAI::VideoEditParams::Video::VideoReferenceInputParam }
38
+
39
+ class VideoReferenceInputParam < OpenAI::Internal::Type::BaseModel
40
+ # @!attribute id
41
+ # The identifier of the completed video.
42
+ #
43
+ # @return [String]
44
+ required :id, String
45
+
46
+ # @!method initialize(id:)
47
+ # Reference to the completed video.
48
+ #
49
+ # @param id [String] The identifier of the completed video.
50
+ end
51
+
52
+ # @!method self.variants
53
+ # @return [Array(StringIO, OpenAI::Models::VideoEditParams::Video::VideoReferenceInputParam)]
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#extend_
6
+ class VideoExtendParams < 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 extension generation.
12
+ #
13
+ # @return [String]
14
+ required :prompt, String
15
+
16
+ # @!attribute seconds
17
+ # Length of the newly generated extension segment in seconds (allowed values: 4,
18
+ # 8, 12, 16, 20).
19
+ #
20
+ # @return [Symbol, OpenAI::Models::VideoSeconds]
21
+ required :seconds, enum: -> { OpenAI::VideoSeconds }
22
+
23
+ # @!attribute video
24
+ # Reference to the completed video to extend.
25
+ #
26
+ # @return [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::VideoExtendParams::Video::VideoReferenceInputParam]
27
+ required :video, union: -> { OpenAI::VideoExtendParams::Video }
28
+
29
+ # @!method initialize(prompt:, seconds:, video:, request_options: {})
30
+ # Some parameter documentations has been truncated, see
31
+ # {OpenAI::Models::VideoExtendParams} for more details.
32
+ #
33
+ # @param prompt [String] Updated text prompt that directs the extension generation.
34
+ #
35
+ # @param seconds [Symbol, OpenAI::Models::VideoSeconds] Length of the newly generated extension segment in seconds (allowed values: 4, 8
36
+ #
37
+ # @param video [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::VideoExtendParams::Video::VideoReferenceInputParam] Reference to the completed video to extend.
38
+ #
39
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
40
+
41
+ # Reference to the completed video to extend.
42
+ module Video
43
+ extend OpenAI::Internal::Type::Union
44
+
45
+ # Reference to the completed video to extend.
46
+ variant OpenAI::Internal::Type::FileInput
47
+
48
+ # Reference to the completed video.
49
+ variant -> { OpenAI::VideoExtendParams::Video::VideoReferenceInputParam }
50
+
51
+ class VideoReferenceInputParam < OpenAI::Internal::Type::BaseModel
52
+ # @!attribute id
53
+ # The identifier of the completed video.
54
+ #
55
+ # @return [String]
56
+ required :id, String
57
+
58
+ # @!method initialize(id:)
59
+ # Reference to the completed video.
60
+ #
61
+ # @param id [String] The identifier of the completed video.
62
+ end
63
+
64
+ # @!method self.variants
65
+ # @return [Array(StringIO, OpenAI::Models::VideoExtendParams::Video::VideoReferenceInputParam)]
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#get_character
6
+ class VideoGetCharacterParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute character_id
11
+ #
12
+ # @return [String]
13
+ required :character_id, String
14
+
15
+ # @!method initialize(character_id:, request_options: {})
16
+ # @param character_id [String]
17
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#get_character
6
+ class VideoGetCharacterResponse < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # Identifier for the character creation cameo.
9
+ #
10
+ # @return [String, nil]
11
+ required :id, String, nil?: true
12
+
13
+ # @!attribute created_at
14
+ # Unix timestamp (in seconds) when the character was created.
15
+ #
16
+ # @return [Integer]
17
+ required :created_at, Integer
18
+
19
+ # @!attribute name
20
+ # Display name for the character.
21
+ #
22
+ # @return [String, nil]
23
+ required :name, String, nil?: true
24
+
25
+ # @!method initialize(id:, created_at:, name:)
26
+ # @param id [String, nil] Identifier for the character creation cameo.
27
+ #
28
+ # @param created_at [Integer] Unix timestamp (in seconds) when the character was created.
29
+ #
30
+ # @param name [String, nil] Display name for the character.
31
+ end
32
+ end
33
+ end
data/lib/openai/models.rb CHANGED
@@ -176,6 +176,8 @@ module OpenAI
176
176
 
177
177
  ImageGenStreamEvent = OpenAI::Models::ImageGenStreamEvent
178
178
 
179
+ ImageInputReferenceParam = OpenAI::Models::ImageInputReferenceParam
180
+
179
181
  ImageModel = OpenAI::Models::ImageModel
180
182
 
181
183
  ImagesResponse = OpenAI::Models::ImagesResponse
@@ -279,6 +281,8 @@ module OpenAI
279
281
 
280
282
  Video = OpenAI::Models::Video
281
283
 
284
+ VideoCreateCharacterParams = OpenAI::Models::VideoCreateCharacterParams
285
+
282
286
  VideoCreateError = OpenAI::Models::VideoCreateError
283
287
 
284
288
  VideoCreateParams = OpenAI::Models::VideoCreateParams
@@ -287,6 +291,12 @@ module OpenAI
287
291
 
288
292
  VideoDownloadContentParams = OpenAI::Models::VideoDownloadContentParams
289
293
 
294
+ VideoEditParams = OpenAI::Models::VideoEditParams
295
+
296
+ VideoExtendParams = OpenAI::Models::VideoExtendParams
297
+
298
+ VideoGetCharacterParams = OpenAI::Models::VideoGetCharacterParams
299
+
290
300
  VideoListParams = OpenAI::Models::VideoListParams
291
301
 
292
302
  VideoModel = OpenAI::Models::VideoModel
@@ -32,7 +32,7 @@ module OpenAI
32
32
  #
33
33
  # @param tool_choice [Symbol, OpenAI::Models::Responses::ToolChoiceOptions, OpenAI::Models::Responses::ToolChoiceAllowed, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction, OpenAI::Models::Responses::ToolChoiceMcp, OpenAI::Models::Responses::ToolChoiceCustom, OpenAI::Models::Responses::ToolChoiceApplyPatch, OpenAI::Models::Responses::ToolChoiceShell, nil] Controls which tool the model should use, if any.
34
34
  #
35
- # @param tools [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerUseTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::FunctionShellTool, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::NamespaceTool, OpenAI::Models::Responses::ToolSearchTool, OpenAI::Models::Responses::ApplyPatchTool, OpenAI::Models::Responses::WebSearchTool, OpenAI::Models::Responses::WebSearchPreviewTool>, nil] An array of tools the model may call while generating a response. You can specif
35
+ # @param tools [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::ComputerUsePreviewTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::FunctionShellTool, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::NamespaceTool, OpenAI::Models::Responses::ToolSearchTool, OpenAI::Models::Responses::ApplyPatchTool, OpenAI::Models::Responses::WebSearchTool, OpenAI::Models::Responses::WebSearchPreviewTool>, nil] An array of tools the model may call while generating a response. You can specif
36
36
  #
37
37
  # @param truncation [Symbol, OpenAI::Models::Responses::InputTokenCountParams::Truncation] The truncation strategy to use for the model response. - `auto`: If the input to
38
38
  #
@@ -74,7 +74,7 @@ module OpenAI
74
74
  #
75
75
  # @param tool_choice [Symbol, OpenAI::Models::Responses::ToolChoiceOptions, OpenAI::Models::Responses::ToolChoiceAllowed, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction, OpenAI::Models::Responses::ToolChoiceMcp, OpenAI::Models::Responses::ToolChoiceCustom, OpenAI::Models::Responses::ToolChoiceApplyPatch, OpenAI::Models::Responses::ToolChoiceShell] How the model should select which tool (or tools) to use when generating
76
76
  #
77
- # @param tools [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerUseTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::FunctionShellTool, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::NamespaceTool, OpenAI::Models::Responses::ToolSearchTool, OpenAI::Models::Responses::ApplyPatchTool, OpenAI::Models::Responses::WebSearchTool, OpenAI::Models::Responses::WebSearchPreviewTool>] An array of tools the model may call while generating a response. You
77
+ # @param tools [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::ComputerUsePreviewTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::FunctionShellTool, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::NamespaceTool, OpenAI::Models::Responses::ToolSearchTool, OpenAI::Models::Responses::ApplyPatchTool, OpenAI::Models::Responses::WebSearchTool, OpenAI::Models::Responses::WebSearchPreviewTool>] An array of tools the model may call while generating a response. You
78
78
  #
79
79
  # @param top_logprobs [Integer, nil] An integer between 0 and 20 specifying the number of most likely tokens to
80
80
  #
@@ -295,7 +295,7 @@ module OpenAI
295
295
  #
296
296
  # @param tool_choice [Symbol, OpenAI::Models::Responses::ToolChoiceOptions, OpenAI::Models::Responses::ToolChoiceAllowed, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction, OpenAI::Models::Responses::ToolChoiceMcp, OpenAI::Models::Responses::ToolChoiceCustom, OpenAI::Models::Responses::ToolChoiceApplyPatch, OpenAI::Models::Responses::ToolChoiceShell] How the model should select which tool (or tools) to use when generating
297
297
  #
298
- # @param tools [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerUseTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::FunctionShellTool, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::NamespaceTool, OpenAI::Models::Responses::ToolSearchTool, OpenAI::Models::Responses::ApplyPatchTool, OpenAI::Models::Responses::WebSearchTool, OpenAI::Models::Responses::WebSearchPreviewTool>] An array of tools the model may call while generating a response. You
298
+ # @param tools [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, OpenAI::Models::Responses::ComputerTool, OpenAI::Models::Responses::ComputerUsePreviewTool, OpenAI::Models::Responses::Tool::Mcp, OpenAI::Models::Responses::Tool::CodeInterpreter, OpenAI::Models::Responses::Tool::ImageGeneration, OpenAI::Models::Responses::Tool::LocalShell, OpenAI::Models::Responses::FunctionShellTool, OpenAI::Models::Responses::CustomTool, OpenAI::Models::Responses::NamespaceTool, OpenAI::Models::Responses::ToolSearchTool, OpenAI::Models::Responses::ApplyPatchTool, OpenAI::Models::Responses::WebSearchTool, OpenAI::Models::Responses::WebSearchPreviewTool>] An array of tools the model may call while generating a response. You
299
299
  #
300
300
  # @param top_logprobs [Integer, nil] An integer between 0 and 20 specifying the number of most likely tokens to
301
301
  #
@@ -12,7 +12,7 @@ module OpenAI
12
12
  #
13
13
  # @param prompt [String] Text prompt that describes the video to generate.
14
14
  #
15
- # @param input_reference [Pathname, StringIO, IO, String, OpenAI::FilePart] Optional multipart reference asset that guides generation.
15
+ # @param input_reference [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::ImageInputReferenceParam] Optional reference asset upload or reference object that guides generation.
16
16
  #
17
17
  # @param model [String, Symbol, OpenAI::Models::VideoModel] The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults
18
18
  #
@@ -108,6 +108,31 @@ module OpenAI
108
108
  )
109
109
  end
110
110
 
111
+ # Create a character from an uploaded video.
112
+ #
113
+ # @overload create_character(name:, video:, request_options: {})
114
+ #
115
+ # @param name [String] Display name for this API character.
116
+ #
117
+ # @param video [Pathname, StringIO, IO, String, OpenAI::FilePart] Video file used to create a character.
118
+ #
119
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
120
+ #
121
+ # @return [OpenAI::Models::VideoCreateCharacterResponse]
122
+ #
123
+ # @see OpenAI::Models::VideoCreateCharacterParams
124
+ def create_character(params)
125
+ parsed, options = OpenAI::VideoCreateCharacterParams.dump_request(params)
126
+ @client.request(
127
+ method: :post,
128
+ path: "videos/characters",
129
+ headers: {"content-type" => "multipart/form-data"},
130
+ body: parsed,
131
+ model: OpenAI::Models::VideoCreateCharacterResponse,
132
+ options: options
133
+ )
134
+ end
135
+
111
136
  # Download the generated video bytes or a derived preview asset.
112
137
  #
113
138
  # Streams the rendered video content for the specified video job.
@@ -136,6 +161,82 @@ module OpenAI
136
161
  )
137
162
  end
138
163
 
164
+ # Create a new video generation job by editing a source video or existing
165
+ # generated video.
166
+ #
167
+ # @overload edit(prompt:, video:, request_options: {})
168
+ #
169
+ # @param prompt [String] Text prompt that describes how to edit the source video.
170
+ #
171
+ # @param video [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::VideoEditParams::Video::VideoReferenceInputParam] Reference to the completed video to edit.
172
+ #
173
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
174
+ #
175
+ # @return [OpenAI::Models::Video]
176
+ #
177
+ # @see OpenAI::Models::VideoEditParams
178
+ def edit(params)
179
+ parsed, options = OpenAI::VideoEditParams.dump_request(params)
180
+ @client.request(
181
+ method: :post,
182
+ path: "videos/edits",
183
+ headers: {"content-type" => "multipart/form-data"},
184
+ body: parsed,
185
+ model: OpenAI::Video,
186
+ options: options
187
+ )
188
+ end
189
+
190
+ # Some parameter documentations has been truncated, see
191
+ # {OpenAI::Models::VideoExtendParams} for more details.
192
+ #
193
+ # Create an extension of a completed video.
194
+ #
195
+ # @overload extend_(prompt:, seconds:, video:, request_options: {})
196
+ #
197
+ # @param prompt [String] Updated text prompt that directs the extension generation.
198
+ #
199
+ # @param seconds [Symbol, OpenAI::Models::VideoSeconds] Length of the newly generated extension segment in seconds (allowed values: 4, 8
200
+ #
201
+ # @param video [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::VideoExtendParams::Video::VideoReferenceInputParam] Reference to the completed video to extend.
202
+ #
203
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
204
+ #
205
+ # @return [OpenAI::Models::Video]
206
+ #
207
+ # @see OpenAI::Models::VideoExtendParams
208
+ def extend_(params)
209
+ parsed, options = OpenAI::VideoExtendParams.dump_request(params)
210
+ @client.request(
211
+ method: :post,
212
+ path: "videos/extensions",
213
+ headers: {"content-type" => "multipart/form-data"},
214
+ body: parsed,
215
+ model: OpenAI::Video,
216
+ options: options
217
+ )
218
+ end
219
+
220
+ # Fetch a character.
221
+ #
222
+ # @overload get_character(character_id, request_options: {})
223
+ #
224
+ # @param character_id [String] The identifier of the character to retrieve.
225
+ #
226
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
227
+ #
228
+ # @return [OpenAI::Models::VideoGetCharacterResponse]
229
+ #
230
+ # @see OpenAI::Models::VideoGetCharacterParams
231
+ def get_character(character_id, params = {})
232
+ @client.request(
233
+ method: :get,
234
+ path: ["videos/characters/%1$s", character_id],
235
+ model: OpenAI::Models::VideoGetCharacterResponse,
236
+ options: params[:request_options]
237
+ )
238
+ end
239
+
139
240
  # Create a remix of a completed video using a refreshed prompt.
140
241
  #
141
242
  # @overload remix(video_id, prompt:, request_options: {})
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.52.0"
4
+ VERSION = "0.54.0"
5
5
  end
data/lib/openai.rb CHANGED
@@ -403,6 +403,7 @@ require_relative "openai/models/image_gen_completed_event"
403
403
  require_relative "openai/models/image_generate_params"
404
404
  require_relative "openai/models/image_gen_partial_image_event"
405
405
  require_relative "openai/models/image_gen_stream_event"
406
+ require_relative "openai/models/image_input_reference_param"
406
407
  require_relative "openai/models/image_model"
407
408
  require_relative "openai/models/images_response"
408
409
  require_relative "openai/models/metadata"
@@ -540,7 +541,7 @@ require_relative "openai/models/responses/compacted_response"
540
541
  require_relative "openai/models/responses/computer_action"
541
542
  require_relative "openai/models/responses/computer_action_list"
542
543
  require_relative "openai/models/responses/computer_tool"
543
- require_relative "openai/models/responses/computer_use_tool"
544
+ require_relative "openai/models/responses/computer_use_preview_tool"
544
545
  require_relative "openai/models/responses/container_auto"
545
546
  require_relative "openai/models/responses/container_network_policy_allowlist"
546
547
  require_relative "openai/models/responses/container_network_policy_disabled"
@@ -733,11 +734,17 @@ require_relative "openai/models/vector_store_search_params"
733
734
  require_relative "openai/models/vector_store_search_response"
734
735
  require_relative "openai/models/vector_store_update_params"
735
736
  require_relative "openai/models/video"
737
+ require_relative "openai/models/video_create_character_params"
738
+ require_relative "openai/models/video_create_character_response"
736
739
  require_relative "openai/models/video_create_error"
737
740
  require_relative "openai/models/video_create_params"
738
741
  require_relative "openai/models/video_delete_params"
739
742
  require_relative "openai/models/video_delete_response"
740
743
  require_relative "openai/models/video_download_content_params"
744
+ require_relative "openai/models/video_edit_params"
745
+ require_relative "openai/models/video_extend_params"
746
+ require_relative "openai/models/video_get_character_params"
747
+ require_relative "openai/models/video_get_character_response"
741
748
  require_relative "openai/models/video_list_params"
742
749
  require_relative "openai/models/video_model"
743
750
  require_relative "openai/models/video_remix_params"
@@ -19,6 +19,9 @@ module OpenAI
19
19
  sig { returns(T.nilable(String)) }
20
20
  attr_reader :project
21
21
 
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :webhook_secret
24
+
22
25
  # Given a prompt, the model will return one or more predicted completions, and can
23
26
  # also return the probabilities of alternative tokens at each position.
24
27
  sig { returns(OpenAI::Resources::Completions) }
@@ -110,6 +113,7 @@ module OpenAI
110
113
  api_key: T.nilable(String),
111
114
  organization: T.nilable(String),
112
115
  project: T.nilable(String),
116
+ webhook_secret: T.nilable(String),
113
117
  base_url: T.nilable(String),
114
118
  max_retries: Integer,
115
119
  timeout: Float,
@@ -124,6 +128,8 @@ module OpenAI
124
128
  organization: ENV["OPENAI_ORG_ID"],
125
129
  # Defaults to `ENV["OPENAI_PROJECT_ID"]`
126
130
  project: ENV["OPENAI_PROJECT_ID"],
131
+ # Defaults to `ENV["OPENAI_WEBHOOK_SECRET"]`
132
+ webhook_secret: ENV["OPENAI_WEBHOOK_SECRET"],
127
133
  # Override the default base URL for the API, e.g.,
128
134
  # `"https://api.example.com/v2/"`. Defaults to `ENV["OPENAI_BASE_URL"]`
129
135
  base_url: ENV["OPENAI_BASE_URL"],
@@ -1212,8 +1212,8 @@ module OpenAI
1212
1212
  T.any(
1213
1213
  OpenAI::Responses::FunctionTool::OrHash,
1214
1214
  OpenAI::Responses::FileSearchTool::OrHash,
1215
- OpenAI::Responses::ComputerUseTool::OrHash,
1216
1215
  OpenAI::Responses::ComputerTool::OrHash,
1216
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
1217
1217
  OpenAI::Responses::Tool::Mcp::OrHash,
1218
1218
  OpenAI::Responses::Tool::CodeInterpreter::OrHash,
1219
1219
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
@@ -1252,8 +1252,8 @@ module OpenAI
1252
1252
  T.any(
1253
1253
  OpenAI::Responses::FunctionTool::OrHash,
1254
1254
  OpenAI::Responses::FileSearchTool::OrHash,
1255
- OpenAI::Responses::ComputerUseTool::OrHash,
1256
1255
  OpenAI::Responses::ComputerTool::OrHash,
1256
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
1257
1257
  OpenAI::Responses::Tool::Mcp::OrHash,
1258
1258
  OpenAI::Responses::Tool::CodeInterpreter::OrHash,
1259
1259
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
@@ -1187,8 +1187,8 @@ module OpenAI
1187
1187
  T.any(
1188
1188
  OpenAI::Responses::FunctionTool,
1189
1189
  OpenAI::Responses::FileSearchTool,
1190
- OpenAI::Responses::ComputerUseTool,
1191
1190
  OpenAI::Responses::ComputerTool,
1191
+ OpenAI::Responses::ComputerUsePreviewTool,
1192
1192
  OpenAI::Responses::Tool::Mcp,
1193
1193
  OpenAI::Responses::Tool::CodeInterpreter,
1194
1194
  OpenAI::Responses::Tool::ImageGeneration,
@@ -1214,8 +1214,8 @@ module OpenAI
1214
1214
  T.any(
1215
1215
  OpenAI::Responses::FunctionTool::OrHash,
1216
1216
  OpenAI::Responses::FileSearchTool::OrHash,
1217
- OpenAI::Responses::ComputerUseTool::OrHash,
1218
1217
  OpenAI::Responses::ComputerTool::OrHash,
1218
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
1219
1219
  OpenAI::Responses::Tool::Mcp::OrHash,
1220
1220
  OpenAI::Responses::Tool::CodeInterpreter::OrHash,
1221
1221
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
@@ -1254,8 +1254,8 @@ module OpenAI
1254
1254
  T.any(
1255
1255
  OpenAI::Responses::FunctionTool::OrHash,
1256
1256
  OpenAI::Responses::FileSearchTool::OrHash,
1257
- OpenAI::Responses::ComputerUseTool::OrHash,
1258
1257
  OpenAI::Responses::ComputerTool::OrHash,
1258
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
1259
1259
  OpenAI::Responses::Tool::Mcp::OrHash,
1260
1260
  OpenAI::Responses::Tool::CodeInterpreter::OrHash,
1261
1261
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
@@ -1334,8 +1334,8 @@ module OpenAI
1334
1334
  T.any(
1335
1335
  OpenAI::Responses::FunctionTool,
1336
1336
  OpenAI::Responses::FileSearchTool,
1337
- OpenAI::Responses::ComputerUseTool,
1338
1337
  OpenAI::Responses::ComputerTool,
1338
+ OpenAI::Responses::ComputerUsePreviewTool,
1339
1339
  OpenAI::Responses::Tool::Mcp,
1340
1340
  OpenAI::Responses::Tool::CodeInterpreter,
1341
1341
  OpenAI::Responses::Tool::ImageGeneration,
@@ -1212,8 +1212,8 @@ module OpenAI
1212
1212
  T.any(
1213
1213
  OpenAI::Responses::FunctionTool::OrHash,
1214
1214
  OpenAI::Responses::FileSearchTool::OrHash,
1215
- OpenAI::Responses::ComputerUseTool::OrHash,
1216
1215
  OpenAI::Responses::ComputerTool::OrHash,
1216
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
1217
1217
  OpenAI::Responses::Tool::Mcp::OrHash,
1218
1218
  OpenAI::Responses::Tool::CodeInterpreter::OrHash,
1219
1219
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
@@ -1252,8 +1252,8 @@ module OpenAI
1252
1252
  T.any(
1253
1253
  OpenAI::Responses::FunctionTool::OrHash,
1254
1254
  OpenAI::Responses::FileSearchTool::OrHash,
1255
- OpenAI::Responses::ComputerUseTool::OrHash,
1256
1255
  OpenAI::Responses::ComputerTool::OrHash,
1256
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
1257
1257
  OpenAI::Responses::Tool::Mcp::OrHash,
1258
1258
  OpenAI::Responses::Tool::CodeInterpreter::OrHash,
1259
1259
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
@@ -1208,8 +1208,8 @@ module OpenAI
1208
1208
  T.any(
1209
1209
  OpenAI::Responses::FunctionTool::OrHash,
1210
1210
  OpenAI::Responses::FileSearchTool::OrHash,
1211
- OpenAI::Responses::ComputerUseTool::OrHash,
1212
1211
  OpenAI::Responses::ComputerTool::OrHash,
1212
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
1213
1213
  OpenAI::Responses::Tool::Mcp::OrHash,
1214
1214
  OpenAI::Responses::Tool::CodeInterpreter::OrHash,
1215
1215
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
@@ -1248,8 +1248,8 @@ module OpenAI
1248
1248
  T.any(
1249
1249
  OpenAI::Responses::FunctionTool::OrHash,
1250
1250
  OpenAI::Responses::FileSearchTool::OrHash,
1251
- OpenAI::Responses::ComputerUseTool::OrHash,
1252
1251
  OpenAI::Responses::ComputerTool::OrHash,
1252
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
1253
1253
  OpenAI::Responses::Tool::Mcp::OrHash,
1254
1254
  OpenAI::Responses::Tool::CodeInterpreter::OrHash,
1255
1255
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
@@ -1214,8 +1214,8 @@ module OpenAI
1214
1214
  T.any(
1215
1215
  OpenAI::Responses::FunctionTool::OrHash,
1216
1216
  OpenAI::Responses::FileSearchTool::OrHash,
1217
- OpenAI::Responses::ComputerUseTool::OrHash,
1218
1217
  OpenAI::Responses::ComputerTool::OrHash,
1218
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
1219
1219
  OpenAI::Responses::Tool::Mcp::OrHash,
1220
1220
  OpenAI::Responses::Tool::CodeInterpreter::OrHash,
1221
1221
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
@@ -1254,8 +1254,8 @@ module OpenAI
1254
1254
  T.any(
1255
1255
  OpenAI::Responses::FunctionTool::OrHash,
1256
1256
  OpenAI::Responses::FileSearchTool::OrHash,
1257
- OpenAI::Responses::ComputerUseTool::OrHash,
1258
1257
  OpenAI::Responses::ComputerTool::OrHash,
1258
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
1259
1259
  OpenAI::Responses::Tool::Mcp::OrHash,
1260
1260
  OpenAI::Responses::Tool::CodeInterpreter::OrHash,
1261
1261
  OpenAI::Responses::Tool::ImageGeneration::OrHash,