openai 0.34.1 → 0.35.1

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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/README.md +1 -1
  4. data/lib/openai/internal/transport/base_client.rb +7 -1
  5. data/lib/openai/internal/transport/pooled_net_requester.rb +30 -24
  6. data/lib/openai/models/custom_tool_input_format.rb +6 -0
  7. data/lib/openai/models/image_edit_params.rb +1 -1
  8. data/lib/openai/models/realtime/realtime_session_create_request.rb +14 -3
  9. data/lib/openai/models/realtime/realtime_session_create_response.rb +15 -4
  10. data/lib/openai/models/realtime/realtime_tracing_config.rb +1 -1
  11. data/lib/openai/models/realtime/realtime_truncation.rb +13 -2
  12. data/lib/openai/models/realtime/realtime_truncation_retention_ratio.rb +38 -4
  13. data/lib/openai/models/reasoning.rb +4 -0
  14. data/lib/openai/models/responses/custom_tool.rb +3 -0
  15. data/lib/openai/models/responses/easy_input_message.rb +3 -3
  16. data/lib/openai/models/responses/file_search_tool.rb +33 -1
  17. data/lib/openai/models/responses/response_content.rb +1 -4
  18. data/lib/openai/models/responses/response_input_content.rb +1 -4
  19. data/lib/openai/models/responses/response_input_item.rb +2 -2
  20. data/lib/openai/models/responses/response_input_message_item.rb +2 -2
  21. data/lib/openai/models/responses/tool.rb +30 -2
  22. data/lib/openai/models/vector_stores/file_batch_create_params.rb +77 -11
  23. data/lib/openai/models/video.rb +9 -1
  24. data/lib/openai/resources/files.rb +13 -14
  25. data/lib/openai/resources/images.rb +2 -2
  26. data/lib/openai/resources/realtime/calls.rb +1 -1
  27. data/lib/openai/resources/responses.rb +4 -0
  28. data/lib/openai/resources/vector_stores/file_batches.rb +6 -4
  29. data/lib/openai/version.rb +1 -1
  30. data/rbi/openai/internal/transport/base_client.rbi +5 -0
  31. data/rbi/openai/internal/type/base_model.rbi +8 -4
  32. data/rbi/openai/models/custom_tool_input_format.rbi +2 -0
  33. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +26 -4
  34. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +26 -4
  35. data/rbi/openai/models/realtime/realtime_truncation.rbi +13 -2
  36. data/rbi/openai/models/realtime/realtime_truncation_retention_ratio.rbi +84 -6
  37. data/rbi/openai/models/reasoning.rbi +6 -0
  38. data/rbi/openai/models/responses/custom_tool.rbi +2 -0
  39. data/rbi/openai/models/responses/file_search_tool.rbi +65 -0
  40. data/rbi/openai/models/responses/response_content.rbi +0 -1
  41. data/rbi/openai/models/responses/response_input_content.rbi +1 -2
  42. data/rbi/openai/models/responses/response_input_item.rbi +3 -6
  43. data/rbi/openai/models/responses/response_input_message_item.rbi +1 -2
  44. data/rbi/openai/models/responses/tool.rbi +73 -4
  45. data/rbi/openai/models/vector_stores/file_batch_create_params.rbi +181 -12
  46. data/rbi/openai/models/video.rbi +8 -0
  47. data/rbi/openai/resources/files.rbi +13 -14
  48. data/rbi/openai/resources/realtime/calls.rbi +17 -6
  49. data/rbi/openai/resources/vector_stores/file_batches.rbi +15 -5
  50. data/sig/openai/internal/transport/base_client.rbs +2 -0
  51. data/sig/openai/models/realtime/realtime_truncation_retention_ratio.rbs +29 -2
  52. data/sig/openai/models/responses/file_search_tool.rbs +24 -0
  53. data/sig/openai/models/responses/response_content.rbs +0 -1
  54. data/sig/openai/models/responses/response_input_content.rbs +0 -1
  55. data/sig/openai/models/responses/tool.rbs +30 -3
  56. data/sig/openai/models/vector_stores/file_batch_create_params.rbs +56 -6
  57. data/sig/openai/models/video.rbs +5 -0
  58. data/sig/openai/resources/vector_stores/file_batches.rbs +2 -1
  59. metadata +4 -3
@@ -8,7 +8,6 @@ module OpenAI
8
8
  sig do
9
9
  params(
10
10
  vector_store_id: String,
11
- file_ids: T::Array[String],
12
11
  attributes:
13
12
  T.nilable(
14
13
  T::Hash[
@@ -21,16 +20,17 @@ module OpenAI
21
20
  OpenAI::AutoFileChunkingStrategyParam::OrHash,
22
21
  OpenAI::StaticFileChunkingStrategyObjectParam::OrHash
23
22
  ),
23
+ file_ids: T::Array[String],
24
+ files:
25
+ T::Array[
26
+ OpenAI::VectorStores::FileBatchCreateParams::File::OrHash
27
+ ],
24
28
  request_options: OpenAI::RequestOptions::OrHash
25
29
  ).returns(OpenAI::VectorStores::VectorStoreFileBatch)
26
30
  end
27
31
  def create(
28
32
  # The ID of the vector store for which to create a File Batch.
29
33
  vector_store_id,
30
- # A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that
31
- # the vector store should use. Useful for tools like `file_search` that can access
32
- # files.
33
- file_ids:,
34
34
  # Set of 16 key-value pairs that can be attached to an object. This can be useful
35
35
  # for storing additional information about the object in a structured format, and
36
36
  # querying for objects via API or the dashboard. Keys are strings with a maximum
@@ -40,6 +40,16 @@ module OpenAI
40
40
  # The chunking strategy used to chunk the file(s). If not set, will use the `auto`
41
41
  # strategy. Only applicable if `file_ids` is non-empty.
42
42
  chunking_strategy: nil,
43
+ # A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that
44
+ # the vector store should use. Useful for tools like `file_search` that can access
45
+ # files. If `attributes` or `chunking_strategy` are provided, they will be applied
46
+ # to all files in the batch. Mutually exclusive with `files`.
47
+ file_ids: nil,
48
+ # A list of objects that each include a `file_id` plus optional `attributes` or
49
+ # `chunking_strategy`. Use this when you need to override metadata for specific
50
+ # files. The global `attributes` or `chunking_strategy` will be ignored and must
51
+ # be specified for each file. Mutually exclusive with `file_ids`.
52
+ files: nil,
43
53
  request_options: {}
44
54
  )
45
55
  end
@@ -87,6 +87,8 @@ module OpenAI
87
87
 
88
88
  private def auth_headers: -> ::Hash[String, String]
89
89
 
90
+ private def user_agent: -> String
91
+
90
92
  private def generate_idempotency_key: -> String
91
93
 
92
94
  private def build_request: (
@@ -2,19 +2,46 @@ module OpenAI
2
2
  module Models
3
3
  module Realtime
4
4
  type realtime_truncation_retention_ratio =
5
- { retention_ratio: Float, type: :retention_ratio }
5
+ {
6
+ retention_ratio: Float,
7
+ type: :retention_ratio,
8
+ token_limits: OpenAI::Realtime::RealtimeTruncationRetentionRatio::TokenLimits
9
+ }
6
10
 
7
11
  class RealtimeTruncationRetentionRatio < OpenAI::Internal::Type::BaseModel
8
12
  attr_accessor retention_ratio: Float
9
13
 
10
14
  attr_accessor type: :retention_ratio
11
15
 
16
+ attr_reader token_limits: OpenAI::Realtime::RealtimeTruncationRetentionRatio::TokenLimits?
17
+
18
+ def token_limits=: (
19
+ OpenAI::Realtime::RealtimeTruncationRetentionRatio::TokenLimits
20
+ ) -> OpenAI::Realtime::RealtimeTruncationRetentionRatio::TokenLimits
21
+
12
22
  def initialize: (
13
23
  retention_ratio: Float,
24
+ ?token_limits: OpenAI::Realtime::RealtimeTruncationRetentionRatio::TokenLimits,
14
25
  ?type: :retention_ratio
15
26
  ) -> void
16
27
 
17
- def to_hash: -> { retention_ratio: Float, type: :retention_ratio }
28
+ def to_hash: -> {
29
+ retention_ratio: Float,
30
+ type: :retention_ratio,
31
+ token_limits: OpenAI::Realtime::RealtimeTruncationRetentionRatio::TokenLimits
32
+ }
33
+
34
+ type token_limits = { post_instructions: Integer }
35
+
36
+ class TokenLimits < OpenAI::Internal::Type::BaseModel
37
+ attr_reader post_instructions: Integer?
38
+
39
+ def post_instructions=: (Integer) -> Integer
40
+
41
+ def initialize: (?post_instructions: Integer) -> void
42
+
43
+ def to_hash: -> { post_instructions: Integer }
44
+ end
18
45
  end
19
46
  end
20
47
  end
@@ -53,11 +53,18 @@ module OpenAI
53
53
 
54
54
  type ranking_options =
55
55
  {
56
+ hybrid_search: OpenAI::Responses::FileSearchTool::RankingOptions::HybridSearch,
56
57
  ranker: OpenAI::Models::Responses::FileSearchTool::RankingOptions::ranker,
57
58
  score_threshold: Float
58
59
  }
59
60
 
60
61
  class RankingOptions < OpenAI::Internal::Type::BaseModel
62
+ attr_reader hybrid_search: OpenAI::Responses::FileSearchTool::RankingOptions::HybridSearch?
63
+
64
+ def hybrid_search=: (
65
+ OpenAI::Responses::FileSearchTool::RankingOptions::HybridSearch
66
+ ) -> OpenAI::Responses::FileSearchTool::RankingOptions::HybridSearch
67
+
61
68
  attr_reader ranker: OpenAI::Models::Responses::FileSearchTool::RankingOptions::ranker?
62
69
 
63
70
  def ranker=: (
@@ -69,15 +76,32 @@ module OpenAI
69
76
  def score_threshold=: (Float) -> Float
70
77
 
71
78
  def initialize: (
79
+ ?hybrid_search: OpenAI::Responses::FileSearchTool::RankingOptions::HybridSearch,
72
80
  ?ranker: OpenAI::Models::Responses::FileSearchTool::RankingOptions::ranker,
73
81
  ?score_threshold: Float
74
82
  ) -> void
75
83
 
76
84
  def to_hash: -> {
85
+ hybrid_search: OpenAI::Responses::FileSearchTool::RankingOptions::HybridSearch,
77
86
  ranker: OpenAI::Models::Responses::FileSearchTool::RankingOptions::ranker,
78
87
  score_threshold: Float
79
88
  }
80
89
 
90
+ type hybrid_search = { embedding_weight: Float, text_weight: Float }
91
+
92
+ class HybridSearch < OpenAI::Internal::Type::BaseModel
93
+ attr_accessor embedding_weight: Float
94
+
95
+ attr_accessor text_weight: Float
96
+
97
+ def initialize: (
98
+ embedding_weight: Float,
99
+ text_weight: Float
100
+ ) -> void
101
+
102
+ def to_hash: -> { embedding_weight: Float, text_weight: Float }
103
+ end
104
+
81
105
  type ranker = :auto | :"default-2024-11-15"
82
106
 
83
107
  module Ranker
@@ -5,7 +5,6 @@ module OpenAI
5
5
  OpenAI::Responses::ResponseInputText
6
6
  | OpenAI::Responses::ResponseInputImage
7
7
  | OpenAI::Responses::ResponseInputFile
8
- | OpenAI::Responses::ResponseInputAudio
9
8
  | OpenAI::Responses::ResponseOutputText
10
9
  | OpenAI::Responses::ResponseOutputRefusal
11
10
  | OpenAI::Responses::ResponseContent::ReasoningTextContent
@@ -5,7 +5,6 @@ module OpenAI
5
5
  OpenAI::Responses::ResponseInputText
6
6
  | OpenAI::Responses::ResponseInputImage
7
7
  | OpenAI::Responses::ResponseInputFile
8
- | OpenAI::Responses::ResponseInputAudio
9
8
 
10
9
  module ResponseInputContent
11
10
  extend OpenAI::Internal::Type::Union
@@ -258,7 +258,11 @@ module OpenAI
258
258
  extend OpenAI::Internal::Type::Union
259
259
 
260
260
  type code_interpreter_tool_auto =
261
- { type: :auto, file_ids: ::Array[String] }
261
+ {
262
+ type: :auto,
263
+ file_ids: ::Array[String],
264
+ memory_limit: OpenAI::Models::Responses::Tool::CodeInterpreter::Container::CodeInterpreterToolAuto::memory_limit?
265
+ }
262
266
 
263
267
  class CodeInterpreterToolAuto < OpenAI::Internal::Type::BaseModel
264
268
  attr_accessor type: :auto
@@ -267,9 +271,32 @@ module OpenAI
267
271
 
268
272
  def file_ids=: (::Array[String]) -> ::Array[String]
269
273
 
270
- def initialize: (?file_ids: ::Array[String], ?type: :auto) -> void
274
+ attr_accessor memory_limit: OpenAI::Models::Responses::Tool::CodeInterpreter::Container::CodeInterpreterToolAuto::memory_limit?
275
+
276
+ def initialize: (
277
+ ?file_ids: ::Array[String],
278
+ ?memory_limit: OpenAI::Models::Responses::Tool::CodeInterpreter::Container::CodeInterpreterToolAuto::memory_limit?,
279
+ ?type: :auto
280
+ ) -> void
281
+
282
+ def to_hash: -> {
283
+ type: :auto,
284
+ file_ids: ::Array[String],
285
+ memory_limit: OpenAI::Models::Responses::Tool::CodeInterpreter::Container::CodeInterpreterToolAuto::memory_limit?
286
+ }
287
+
288
+ type memory_limit = :"1g" | :"4g" | :"16g" | :"64g"
271
289
 
272
- def to_hash: -> { type: :auto, file_ids: ::Array[String] }
290
+ module MemoryLimit
291
+ extend OpenAI::Internal::Type::Enum
292
+
293
+ MEMORY_LIMIT_1G: :"1g"
294
+ MEMORY_LIMIT_4G: :"4g"
295
+ MEMORY_LIMIT_16G: :"16g"
296
+ MEMORY_LIMIT_64G: :"64g"
297
+
298
+ def self?.values: -> ::Array[OpenAI::Models::Responses::Tool::CodeInterpreter::Container::CodeInterpreterToolAuto::memory_limit]
299
+ end
273
300
  end
274
301
 
275
302
  def self?.variants: -> ::Array[OpenAI::Models::Responses::Tool::CodeInterpreter::container]
@@ -3,9 +3,10 @@ module OpenAI
3
3
  module VectorStores
4
4
  type file_batch_create_params =
5
5
  {
6
- file_ids: ::Array[String],
7
6
  attributes: ::Hash[Symbol, OpenAI::Models::VectorStores::FileBatchCreateParams::attribute]?,
8
- chunking_strategy: OpenAI::Models::file_chunking_strategy_param
7
+ chunking_strategy: OpenAI::Models::file_chunking_strategy_param,
8
+ file_ids: ::Array[String],
9
+ files: ::Array[OpenAI::VectorStores::FileBatchCreateParams::File]
9
10
  }
10
11
  & OpenAI::Internal::Type::request_parameters
11
12
 
@@ -13,8 +14,6 @@ module OpenAI
13
14
  extend OpenAI::Internal::Type::RequestParameters::Converter
14
15
  include OpenAI::Internal::Type::RequestParameters
15
16
 
16
- attr_accessor file_ids: ::Array[String]
17
-
18
17
  attr_accessor attributes: ::Hash[Symbol, OpenAI::Models::VectorStores::FileBatchCreateParams::attribute]?
19
18
 
20
19
  attr_reader chunking_strategy: OpenAI::Models::file_chunking_strategy_param?
@@ -23,17 +22,29 @@ module OpenAI
23
22
  OpenAI::Models::file_chunking_strategy_param
24
23
  ) -> OpenAI::Models::file_chunking_strategy_param
25
24
 
25
+ attr_reader file_ids: ::Array[String]?
26
+
27
+ def file_ids=: (::Array[String]) -> ::Array[String]
28
+
29
+ attr_reader files: ::Array[OpenAI::VectorStores::FileBatchCreateParams::File]?
30
+
31
+ def files=: (
32
+ ::Array[OpenAI::VectorStores::FileBatchCreateParams::File]
33
+ ) -> ::Array[OpenAI::VectorStores::FileBatchCreateParams::File]
34
+
26
35
  def initialize: (
27
- file_ids: ::Array[String],
28
36
  ?attributes: ::Hash[Symbol, OpenAI::Models::VectorStores::FileBatchCreateParams::attribute]?,
29
37
  ?chunking_strategy: OpenAI::Models::file_chunking_strategy_param,
38
+ ?file_ids: ::Array[String],
39
+ ?files: ::Array[OpenAI::VectorStores::FileBatchCreateParams::File],
30
40
  ?request_options: OpenAI::request_opts
31
41
  ) -> void
32
42
 
33
43
  def to_hash: -> {
34
- file_ids: ::Array[String],
35
44
  attributes: ::Hash[Symbol, OpenAI::Models::VectorStores::FileBatchCreateParams::attribute]?,
36
45
  chunking_strategy: OpenAI::Models::file_chunking_strategy_param,
46
+ file_ids: ::Array[String],
47
+ files: ::Array[OpenAI::VectorStores::FileBatchCreateParams::File],
37
48
  request_options: OpenAI::RequestOptions
38
49
  }
39
50
 
@@ -44,6 +55,45 @@ module OpenAI
44
55
 
45
56
  def self?.variants: -> ::Array[OpenAI::Models::VectorStores::FileBatchCreateParams::attribute]
46
57
  end
58
+
59
+ type file =
60
+ {
61
+ file_id: String,
62
+ attributes: ::Hash[Symbol, OpenAI::Models::VectorStores::FileBatchCreateParams::File::attribute]?,
63
+ chunking_strategy: OpenAI::Models::file_chunking_strategy_param
64
+ }
65
+
66
+ class File < OpenAI::Internal::Type::BaseModel
67
+ attr_accessor file_id: String
68
+
69
+ attr_accessor attributes: ::Hash[Symbol, OpenAI::Models::VectorStores::FileBatchCreateParams::File::attribute]?
70
+
71
+ attr_reader chunking_strategy: OpenAI::Models::file_chunking_strategy_param?
72
+
73
+ def chunking_strategy=: (
74
+ OpenAI::Models::file_chunking_strategy_param
75
+ ) -> OpenAI::Models::file_chunking_strategy_param
76
+
77
+ def initialize: (
78
+ file_id: String,
79
+ ?attributes: ::Hash[Symbol, OpenAI::Models::VectorStores::FileBatchCreateParams::File::attribute]?,
80
+ ?chunking_strategy: OpenAI::Models::file_chunking_strategy_param
81
+ ) -> void
82
+
83
+ def to_hash: -> {
84
+ file_id: String,
85
+ attributes: ::Hash[Symbol, OpenAI::Models::VectorStores::FileBatchCreateParams::File::attribute]?,
86
+ chunking_strategy: OpenAI::Models::file_chunking_strategy_param
87
+ }
88
+
89
+ type attribute = String | Float | bool
90
+
91
+ module Attribute
92
+ extend OpenAI::Internal::Type::Union
93
+
94
+ def self?.variants: -> ::Array[OpenAI::Models::VectorStores::FileBatchCreateParams::File::attribute]
95
+ end
96
+ end
47
97
  end
48
98
  end
49
99
  end
@@ -10,6 +10,7 @@ module OpenAI
10
10
  model: OpenAI::Models::video_model,
11
11
  object: :video,
12
12
  progress: Integer,
13
+ prompt: String?,
13
14
  remixed_from_video_id: String?,
14
15
  seconds: OpenAI::Models::video_seconds,
15
16
  size: OpenAI::Models::video_size,
@@ -33,6 +34,8 @@ module OpenAI
33
34
 
34
35
  attr_accessor progress: Integer
35
36
 
37
+ attr_accessor prompt: String?
38
+
36
39
  attr_accessor remixed_from_video_id: String?
37
40
 
38
41
  attr_accessor seconds: OpenAI::Models::video_seconds
@@ -49,6 +52,7 @@ module OpenAI
49
52
  expires_at: Integer?,
50
53
  model: OpenAI::Models::video_model,
51
54
  progress: Integer,
55
+ prompt: String?,
52
56
  remixed_from_video_id: String?,
53
57
  seconds: OpenAI::Models::video_seconds,
54
58
  size: OpenAI::Models::video_size,
@@ -65,6 +69,7 @@ module OpenAI
65
69
  model: OpenAI::Models::video_model,
66
70
  object: :video,
67
71
  progress: Integer,
72
+ prompt: String?,
68
73
  remixed_from_video_id: String?,
69
74
  seconds: OpenAI::Models::video_seconds,
70
75
  size: OpenAI::Models::video_size,
@@ -4,9 +4,10 @@ module OpenAI
4
4
  class FileBatches
5
5
  def create: (
6
6
  String vector_store_id,
7
- file_ids: ::Array[String],
8
7
  ?attributes: ::Hash[Symbol, OpenAI::Models::VectorStores::FileBatchCreateParams::attribute]?,
9
8
  ?chunking_strategy: OpenAI::Models::file_chunking_strategy_param,
9
+ ?file_ids: ::Array[String],
10
+ ?files: ::Array[OpenAI::VectorStores::FileBatchCreateParams::File],
10
11
  ?request_options: OpenAI::request_opts
11
12
  ) -> OpenAI::VectorStores::VectorStoreFileBatch
12
13
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.34.1
4
+ version: 0.35.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-10-20 00:00:00.000000000 Z
11
+ date: 2025-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: connection_pool
@@ -2228,7 +2228,8 @@ files:
2228
2228
  - sig/openai/resources/webhooks.rbs
2229
2229
  - sig/openai/version.rbs
2230
2230
  homepage: https://gemdocs.org/gems/openai
2231
- licenses: []
2231
+ licenses:
2232
+ - Apache-2.0
2232
2233
  metadata:
2233
2234
  homepage_uri: https://gemdocs.org/gems/openai
2234
2235
  source_code_uri: https://github.com/openai/openai-ruby