openai 0.82.0 → 0.84.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 (88) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -0
  3. data/README.md +1 -1
  4. data/lib/openai/auth/workload_identity_auth.rb +17 -2
  5. data/lib/openai/client.rb +20 -6
  6. data/lib/openai/errors.rb +1 -1
  7. data/lib/openai/helpers/realtime/client_extension.rb +107 -0
  8. data/lib/openai/helpers/streaming/chat_completion_stream.rb +1 -2
  9. data/lib/openai/helpers/streaming/response_events.rb +2 -2
  10. data/lib/openai/helpers/streaming/response_stream.rb +73 -42
  11. data/lib/openai/helpers/structured_output/chat_completion_parser.rb +6 -0
  12. data/lib/openai/helpers/structured_output/response_parser.rb +1 -1
  13. data/lib/openai/http_client.rb +40 -1
  14. data/lib/openai/internal/logging.rb +7 -1
  15. data/lib/openai/internal/transport/base_client.rb +35 -4
  16. data/lib/openai/internal/type/base_model.rb +2 -2
  17. data/lib/openai/internal/type/converter.rb +1 -1
  18. data/lib/openai/internal/util.rb +8 -4
  19. data/lib/openai/models/admin/organization/audit_log_list_params.rb +2 -0
  20. data/lib/openai/models/admin/organization/audit_log_list_response.rb +2 -0
  21. data/lib/openai/models/admin/organization/usage_costs_params.rb +10 -1
  22. data/lib/openai/models/batch.rb +4 -4
  23. data/lib/openai/models/beta/beta_response.rb +9 -12
  24. data/lib/openai/models/beta/beta_responses_client_event.rb +8 -12
  25. data/lib/openai/models/beta/response_compact_params.rb +7 -7
  26. data/lib/openai/models/beta/response_create_params.rb +8 -12
  27. data/lib/openai/models/chat/completion_create_params.rb +8 -8
  28. data/lib/openai/models/eval_create_response.rb +1 -1
  29. data/lib/openai/models/eval_list_response.rb +1 -1
  30. data/lib/openai/models/eval_retrieve_response.rb +1 -1
  31. data/lib/openai/models/eval_update_response.rb +1 -1
  32. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +2 -2
  33. data/lib/openai/models/reasoning.rb +0 -2
  34. data/lib/openai/models/responses/response.rb +6 -7
  35. data/lib/openai/models/responses/response_compact_params.rb +7 -7
  36. data/lib/openai/models/responses/response_create_params.rb +5 -7
  37. data/lib/openai/models/responses/responses_client_event.rb +5 -7
  38. data/lib/openai/request_options.rb +8 -0
  39. data/lib/openai/resources/admin/organization/usage.rb +3 -1
  40. data/lib/openai/resources/beta/responses.rb +5 -5
  41. data/lib/openai/resources/chat/completions.rb +2 -2
  42. data/lib/openai/resources/responses.rb +7 -6
  43. data/lib/openai/version.rb +1 -1
  44. data/lib/openai.rb +1 -0
  45. data/rbi/openai/errors.rbi +1 -1
  46. data/rbi/openai/helpers/streaming/events.rbi +2 -2
  47. data/rbi/openai/helpers/streaming/response_stream.rbi +3 -3
  48. data/rbi/openai/http_client.rbi +25 -2
  49. data/rbi/openai/internal/logging.rbi +12 -2
  50. data/rbi/openai/internal/transport/base_client.rbi +12 -2
  51. data/rbi/openai/internal/util.rbi +3 -2
  52. data/rbi/openai/models/admin/organization/audit_log_list_params.rbi +8 -0
  53. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +8 -0
  54. data/rbi/openai/models/admin/organization/usage_costs_params.rbi +15 -0
  55. data/rbi/openai/models/batch.rbi +6 -6
  56. data/rbi/openai/models/beta/beta_response.rbi +10 -15
  57. data/rbi/openai/models/beta/beta_responses_client_event.rbi +9 -15
  58. data/rbi/openai/models/beta/response_compact_params.rbi +9 -9
  59. data/rbi/openai/models/beta/response_create_params.rbi +9 -15
  60. data/rbi/openai/models/chat/completion_create_params.rbi +9 -9
  61. data/rbi/openai/models/eval_create_response.rbi +1 -1
  62. data/rbi/openai/models/eval_list_response.rbi +1 -1
  63. data/rbi/openai/models/eval_retrieve_response.rbi +1 -1
  64. data/rbi/openai/models/eval_update_response.rbi +1 -1
  65. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +2 -2
  66. data/rbi/openai/models/reasoning.rbi +0 -2
  67. data/rbi/openai/models/responses/response.rbi +7 -10
  68. data/rbi/openai/models/responses/response_compact_params.rbi +9 -9
  69. data/rbi/openai/models/responses/response_create_params.rbi +6 -10
  70. data/rbi/openai/models/responses/responses_client_event.rbi +6 -10
  71. data/rbi/openai/request_options.rbi +4 -0
  72. data/rbi/openai/resources/admin/organization/usage.rbi +4 -0
  73. data/rbi/openai/resources/beta/responses.rbi +7 -11
  74. data/rbi/openai/resources/chat/completions.rbi +6 -6
  75. data/rbi/openai/resources/responses.rbi +9 -13
  76. data/sig/openai/errors.rbs +1 -1
  77. data/sig/openai/http_client.rbs +14 -1
  78. data/sig/openai/internal/logging.rbs +6 -1
  79. data/sig/openai/internal/transport/base_client.rbs +11 -20
  80. data/sig/openai/internal/util.rbs +3 -1
  81. data/sig/openai/models/admin/organization/audit_log_list_params.rbs +4 -0
  82. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +4 -0
  83. data/sig/openai/models/admin/organization/usage_costs_params.rbs +7 -0
  84. data/sig/openai/models/beta/beta_response.rbs +2 -1
  85. data/sig/openai/models/responses/response.rbs +2 -1
  86. data/sig/openai/request_options.rbs +4 -1
  87. data/sig/openai/resources/admin/organization/usage.rbs +1 -0
  88. metadata +1 -1
@@ -9,9 +9,9 @@ module OpenAI
9
9
  include OpenAI::Internal::Type::RequestParameters
10
10
 
11
11
  # @!attribute model
12
- # Model ID used to generate the response, like `gpt-5` or `o3`. OpenAI offers a
13
- # wide range of models with different capabilities, performance characteristics,
14
- # and price points. Refer to the
12
+ # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
13
+ # range of models with different capabilities, performance characteristics, and
14
+ # price points. Refer to the
15
15
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
16
16
  # available models.
17
17
  #
@@ -102,7 +102,7 @@ module OpenAI
102
102
  # Some parameter documentations has been truncated, see
103
103
  # {OpenAI::Models::Responses::ResponseCompactParams} for more details.
104
104
  #
105
- # @param model [Symbol, String, OpenAI::Models::Responses::ResponseCompactParams::Model, nil] Model ID used to generate the response, like `gpt-5` or `o3`. OpenAI offers a wi
105
+ # @param model [Symbol, String, OpenAI::Models::Responses::ResponseCompactParams::Model, nil] Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
106
106
  #
107
107
  # @param input [String, Array<OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseInputItem::ToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItemParam, OpenAI::Models::Responses::ResponseInputItem::AdditionalTools, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItemParam, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ShellCall, OpenAI::Models::Responses::ResponseInputItem::ShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCall, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::CompactionTrigger, OpenAI::Models::Responses::ResponseInputItem::ItemReference, OpenAI::Models::Responses::ResponseInputItem::Program, OpenAI::Models::Responses::ResponseInputItem::ProgramOutput>, nil] Text, image, or file inputs to the model, used to generate a response
108
108
  #
@@ -120,9 +120,9 @@ module OpenAI
120
120
  #
121
121
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
122
122
 
123
- # Model ID used to generate the response, like `gpt-5` or `o3`. OpenAI offers a
124
- # wide range of models with different capabilities, performance characteristics,
125
- # and price points. Refer to the
123
+ # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
124
+ # range of models with different capabilities, performance characteristics, and
125
+ # price points. Refer to the
126
126
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
127
127
  # available models.
128
128
  module Model
@@ -124,9 +124,9 @@ module OpenAI
124
124
  optional :metadata, OpenAI::Internal::Type::HashOf[String], nil?: true
125
125
 
126
126
  # @!attribute model
127
- # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
128
- # wide range of models with different capabilities, performance characteristics,
129
- # and price points. Refer to the
127
+ # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
128
+ # range of models with different capabilities, performance characteristics, and
129
+ # price points. Refer to the
130
130
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
131
131
  # available models.
132
132
  #
@@ -212,8 +212,6 @@ module OpenAI
212
212
  )
213
213
 
214
214
  # @!attribute reasoning
215
- # **gpt-5 and o-series models only**
216
- #
217
215
  # Configuration options for
218
216
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
219
217
  #
@@ -397,7 +395,7 @@ module OpenAI
397
395
  #
398
396
  # @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
399
397
  #
400
- # @param model [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::ResponsesOnlyModel] Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI
398
+ # @param model [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::ResponsesOnlyModel] Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI
401
399
  #
402
400
  # @param moderation [OpenAI::Models::Responses::ResponseCreateParams::Moderation, nil] Configuration for running moderation on the input and output of this response.
403
401
  #
@@ -413,7 +411,7 @@ module OpenAI
413
411
  #
414
412
  # @param prompt_cache_retention [Symbol, OpenAI::Models::Responses::ResponseCreateParams::PromptCacheRetention, nil] Deprecated. Use `prompt_cache_options.ttl` instead.
415
413
  #
416
- # @param reasoning [OpenAI::Models::Reasoning, nil] **gpt-5 and o-series models only**
414
+ # @param reasoning [OpenAI::Models::Reasoning, nil] Configuration options for
417
415
  #
418
416
  # @param safety_identifier [String, nil] A stable identifier used to help detect users of your application that may be vi
419
417
  #
@@ -124,9 +124,9 @@ module OpenAI
124
124
  optional :metadata, OpenAI::Internal::Type::HashOf[String], nil?: true
125
125
 
126
126
  # @!attribute model
127
- # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
128
- # wide range of models with different capabilities, performance characteristics,
129
- # and price points. Refer to the
127
+ # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
128
+ # range of models with different capabilities, performance characteristics, and
129
+ # price points. Refer to the
130
130
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
131
131
  # available models.
132
132
  #
@@ -212,8 +212,6 @@ module OpenAI
212
212
  )
213
213
 
214
214
  # @!attribute reasoning
215
- # **gpt-5 and o-series models only**
216
- #
217
215
  # Configuration options for
218
216
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
219
217
  #
@@ -410,7 +408,7 @@ module OpenAI
410
408
  #
411
409
  # @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
412
410
  #
413
- # @param model [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::ResponsesOnlyModel] Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI
411
+ # @param model [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::ResponsesOnlyModel] Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI
414
412
  #
415
413
  # @param moderation [OpenAI::Models::Responses::ResponsesClientEvent::Moderation, nil] Configuration for running moderation on the input and output of this response.
416
414
  #
@@ -426,7 +424,7 @@ module OpenAI
426
424
  #
427
425
  # @param prompt_cache_retention [Symbol, OpenAI::Models::Responses::ResponsesClientEvent::PromptCacheRetention, nil] Deprecated. Use `prompt_cache_options.ttl` instead.
428
426
  #
429
- # @param reasoning [OpenAI::Models::Reasoning, nil] **gpt-5 and o-series models only**
427
+ # @param reasoning [OpenAI::Models::Reasoning, nil] Configuration options for
430
428
  #
431
429
  # @param safety_identifier [String, nil] A stable identifier used to help detect users of your application that may be vi
432
430
  #
@@ -65,6 +65,14 @@ module OpenAI
65
65
  # @return [Float, nil]
66
66
  optional :timeout, Float
67
67
 
68
+ # @!attribute include_raw_body
69
+ # Retain the exact successful HTTP response body on the returned model or
70
+ # page through `last_response.body`. Body retention is disabled by default
71
+ # and cannot be enabled for streaming responses.
72
+ #
73
+ # @return [Boolean, nil]
74
+ optional :include_raw_body, OpenAI::Internal::Type::Boolean
75
+
68
76
  # @!method initialize(values = {})
69
77
  # Returns a new instance of RequestOptions.
70
78
  #
@@ -189,7 +189,7 @@ module OpenAI
189
189
  #
190
190
  # Get costs details for the organization.
191
191
  #
192
- # @overload costs(start_time:, api_key_ids: nil, bucket_width: nil, end_time: nil, group_by: nil, limit: nil, page: nil, project_ids: nil, request_options: {})
192
+ # @overload costs(start_time:, api_key_ids: nil, bucket_width: nil, end_time: nil, group_by: nil, limit: nil, line_items: nil, page: nil, project_ids: nil, request_options: {})
193
193
  #
194
194
  # @param start_time [Integer] Start time (Unix seconds) of the query time range, inclusive.
195
195
  #
@@ -203,6 +203,8 @@ module OpenAI
203
203
  #
204
204
  # @param limit [Integer] A limit on the number of buckets to be returned. Limit can range between 1 and 1
205
205
  #
206
+ # @param line_items [Array<String>] Return only costs for these exact line item names. Each value must match the com
207
+ #
206
208
  # @param page [String] A cursor for use in pagination. Corresponding to the `next_page` field from the
207
209
  #
208
210
  # @param project_ids [Array<String>] Return only costs for these projects.
@@ -47,7 +47,7 @@ module OpenAI
47
47
  #
48
48
  # @param metadata [Hash{Symbol=>String}, nil] Body param: Set of 16 key-value pairs that can be attached to an object. This ca
49
49
  #
50
- # @param model [Symbol, String, OpenAI::Models::Beta::ResponseCreateParams::Model] Body param: Model ID used to generate the response, like `gpt-4o` or `o3`. OpenA
50
+ # @param model [Symbol, String, OpenAI::Models::Beta::ResponseCreateParams::Model] Body param: Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI
51
51
  #
52
52
  # @param moderation [OpenAI::Models::Beta::ResponseCreateParams::Moderation, nil] Body param: Configuration for running moderation on the input and output of this
53
53
  #
@@ -65,7 +65,7 @@ module OpenAI
65
65
  #
66
66
  # @param prompt_cache_retention [Symbol, OpenAI::Models::Beta::ResponseCreateParams::PromptCacheRetention, nil] Body param: Deprecated. Use `prompt_cache_options.ttl` instead.
67
67
  #
68
- # @param reasoning [OpenAI::Models::Beta::ResponseCreateParams::Reasoning, nil] Body param: **gpt-5 and o-series models only**
68
+ # @param reasoning [OpenAI::Models::Beta::ResponseCreateParams::Reasoning, nil] Body param: Configuration options for
69
69
  #
70
70
  # @param safety_identifier [String, nil] Body param: A stable identifier used to help detect users of your application th
71
71
  #
@@ -154,7 +154,7 @@ module OpenAI
154
154
  #
155
155
  # @param metadata [Hash{Symbol=>String}, nil] Body param: Set of 16 key-value pairs that can be attached to an object. This ca
156
156
  #
157
- # @param model [Symbol, String, OpenAI::Models::Beta::ResponseCreateParams::Model] Body param: Model ID used to generate the response, like `gpt-4o` or `o3`. OpenA
157
+ # @param model [Symbol, String, OpenAI::Models::Beta::ResponseCreateParams::Model] Body param: Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI
158
158
  #
159
159
  # @param moderation [OpenAI::Models::Beta::ResponseCreateParams::Moderation, nil] Body param: Configuration for running moderation on the input and output of this
160
160
  #
@@ -172,7 +172,7 @@ module OpenAI
172
172
  #
173
173
  # @param prompt_cache_retention [Symbol, OpenAI::Models::Beta::ResponseCreateParams::PromptCacheRetention, nil] Body param: Deprecated. Use `prompt_cache_options.ttl` instead.
174
174
  #
175
- # @param reasoning [OpenAI::Models::Beta::ResponseCreateParams::Reasoning, nil] Body param: **gpt-5 and o-series models only**
175
+ # @param reasoning [OpenAI::Models::Beta::ResponseCreateParams::Reasoning, nil] Body param: Configuration options for
176
176
  #
177
177
  # @param safety_identifier [String, nil] Body param: A stable identifier used to help detect users of your application th
178
178
  #
@@ -393,7 +393,7 @@ module OpenAI
393
393
  #
394
394
  # @overload compact(model:, input: nil, instructions: nil, previous_response_id: nil, prompt_cache_key: nil, prompt_cache_options: nil, prompt_cache_retention: nil, service_tier: nil, betas: nil, request_options: {})
395
395
  #
396
- # @param model [Symbol, String, OpenAI::Models::Beta::ResponseCompactParams::Model, nil] Body param: Model ID used to generate the response, like `gpt-5` or `o3`. OpenAI
396
+ # @param model [Symbol, String, OpenAI::Models::Beta::ResponseCompactParams::Model, nil] Body param: Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI o
397
397
  #
398
398
  # @param input [String, Array<OpenAI::Models::Beta::BetaEasyInputMessage, OpenAI::Models::Beta::BetaResponseInputItem::Message, OpenAI::Models::Beta::BetaResponseOutputMessage, OpenAI::Models::Beta::BetaResponseFileSearchToolCall, OpenAI::Models::Beta::BetaResponseComputerToolCall, OpenAI::Models::Beta::BetaResponseInputItem::ComputerCallOutput, OpenAI::Models::Beta::BetaResponseFunctionWebSearch, OpenAI::Models::Beta::BetaResponseFunctionToolCall, OpenAI::Models::Beta::BetaResponseInputItem::FunctionCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::AgentMessage, OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCall, OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::ToolSearchCall, OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam, OpenAI::Models::Beta::BetaResponseInputItem::AdditionalTools, OpenAI::Models::Beta::BetaResponseReasoningItem, OpenAI::Models::Beta::BetaResponseCompactionItemParam, OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall, OpenAI::Models::Beta::BetaResponseCodeInterpreterToolCall, OpenAI::Models::Beta::BetaResponseInputItem::LocalShellCall, OpenAI::Models::Beta::BetaResponseInputItem::LocalShellCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::ShellCall, OpenAI::Models::Beta::BetaResponseInputItem::ShellCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::ApplyPatchCall, OpenAI::Models::Beta::BetaResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::McpListTools, OpenAI::Models::Beta::BetaResponseInputItem::McpApprovalRequest, OpenAI::Models::Beta::BetaResponseInputItem::McpApprovalResponse, OpenAI::Models::Beta::BetaResponseInputItem::McpCall, OpenAI::Models::Beta::BetaResponseCustomToolCallOutput, OpenAI::Models::Beta::BetaResponseCustomToolCall, OpenAI::Models::Beta::BetaResponseInputItem::CompactionTrigger, OpenAI::Models::Beta::BetaResponseInputItem::ItemReference, OpenAI::Models::Beta::BetaResponseInputItem::Program, OpenAI::Models::Beta::BetaResponseInputItem::ProgramOutput>, nil] Body param: Text, image, or file inputs to the model, used to generate a respons
399
399
  #
@@ -43,7 +43,7 @@ module OpenAI
43
43
  #
44
44
  # @param messages [Array<OpenAI::Models::Chat::ChatCompletionDeveloperMessageParam, OpenAI::Models::Chat::ChatCompletionSystemMessageParam, OpenAI::Models::Chat::ChatCompletionUserMessageParam, OpenAI::Models::Chat::ChatCompletionAssistantMessageParam, OpenAI::Models::Chat::ChatCompletionToolMessageParam, OpenAI::Models::Chat::ChatCompletionFunctionMessageParam>] A list of messages comprising the conversation so far. Depending on the
45
45
  #
46
- # @param model [String, Symbol, OpenAI::Models::ChatModel] Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI
46
+ # @param model [String, Symbol, OpenAI::Models::ChatModel] Model ID used to generate the response, like `gpt-5.6-sol` or `o3`. OpenAI
47
47
  #
48
48
  # @param audio [OpenAI::Models::Chat::ChatCompletionAudioParam, nil] Parameters for audio output. Required when audio output is requested with
49
49
  #
@@ -205,7 +205,7 @@ module OpenAI
205
205
  #
206
206
  # @param messages [Array<OpenAI::Models::Chat::ChatCompletionDeveloperMessageParam, OpenAI::Models::Chat::ChatCompletionSystemMessageParam, OpenAI::Models::Chat::ChatCompletionUserMessageParam, OpenAI::Models::Chat::ChatCompletionAssistantMessageParam, OpenAI::Models::Chat::ChatCompletionToolMessageParam, OpenAI::Models::Chat::ChatCompletionFunctionMessageParam>] A list of messages comprising the conversation so far. Depending on the
207
207
  #
208
- # @param model [String, Symbol, OpenAI::Models::ChatModel] Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI
208
+ # @param model [String, Symbol, OpenAI::Models::ChatModel] Model ID used to generate the response, like `gpt-5.6-sol` or `o3`. OpenAI
209
209
  #
210
210
  # @param audio [OpenAI::Models::Chat::ChatCompletionAudioParam, nil] Parameters for audio output. Required when audio output is requested with
211
211
  #
@@ -48,7 +48,7 @@ module OpenAI
48
48
  #
49
49
  # @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
50
50
  #
51
- # @param model [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::ResponsesOnlyModel] Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI
51
+ # @param model [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::ResponsesOnlyModel] Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI
52
52
  #
53
53
  # @param moderation [OpenAI::Models::Responses::ResponseCreateParams::Moderation, nil] Configuration for running moderation on the input and output of this response.
54
54
  #
@@ -64,7 +64,7 @@ module OpenAI
64
64
  #
65
65
  # @param prompt_cache_retention [Symbol, OpenAI::Models::Responses::ResponseCreateParams::PromptCacheRetention, nil] Deprecated. Use `prompt_cache_options.ttl` instead.
66
66
  #
67
- # @param reasoning [OpenAI::Models::Reasoning, nil] **gpt-5 and o-series models only**
67
+ # @param reasoning [OpenAI::Models::Reasoning, nil] Configuration options for
68
68
  #
69
69
  # @param safety_identifier [String, nil] A stable identifier used to help detect users of your application that may be vi
70
70
  #
@@ -156,7 +156,7 @@ module OpenAI
156
156
  #
157
157
  # @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
158
158
  #
159
- # @param model [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::ResponsesOnlyModel] Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI
159
+ # @param model [String, Symbol, OpenAI::Models::ChatModel, OpenAI::Models::ResponsesModel::ResponsesOnlyModel] Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI
160
160
  #
161
161
  # @param moderation [OpenAI::Models::Responses::ResponseCreateParams::Moderation, nil] Configuration for running moderation on the input and output of this response.
162
162
  #
@@ -220,7 +220,8 @@ module OpenAI
220
220
  end
221
221
 
222
222
  if response_id
223
- retrieve_params = params.slice(:include, :request_options)
223
+ retrieve_params = parsed.slice(:include, :starting_after)
224
+ retrieve_params[:request_options] = options
224
225
 
225
226
  raw_stream = retrieve_streaming_internal(
226
227
  response_id,
@@ -297,7 +298,7 @@ module OpenAI
297
298
  #
298
299
  # @param prompt_cache_retention [Symbol, OpenAI::Models::Responses::ResponseCreateParams::PromptCacheRetention, nil] Deprecated. Use `prompt_cache_options.ttl` instead.
299
300
  #
300
- # @param reasoning [OpenAI::Models::Reasoning, nil] **gpt-5 and o-series models only**
301
+ # @param reasoning [OpenAI::Models::Reasoning, nil] Configuration options for
301
302
  #
302
303
  # @param safety_identifier [String, nil] A stable identifier used to help detect users of your application that may be vi
303
304
  #
@@ -503,7 +504,7 @@ module OpenAI
503
504
  #
504
505
  # @overload compact(model:, input: nil, instructions: nil, previous_response_id: nil, prompt_cache_key: nil, prompt_cache_options: nil, prompt_cache_retention: nil, service_tier: nil, request_options: {})
505
506
  #
506
- # @param model [Symbol, String, OpenAI::Models::Responses::ResponseCompactParams::Model, nil] Model ID used to generate the response, like `gpt-5` or `o3`. OpenAI offers a wi
507
+ # @param model [Symbol, String, OpenAI::Models::Responses::ResponseCompactParams::Model, nil] Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
507
508
  #
508
509
  # @param input [String, Array<OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseInputItem::ToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItemParam, OpenAI::Models::Responses::ResponseInputItem::AdditionalTools, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItemParam, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ShellCall, OpenAI::Models::Responses::ResponseInputItem::ShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCall, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::CompactionTrigger, OpenAI::Models::Responses::ResponseInputItem::ItemReference, OpenAI::Models::Responses::ResponseInputItem::Program, OpenAI::Models::Responses::ResponseInputItem::ProgramOutput>, nil] Text, image, or file inputs to the model, used to generate a response
509
510
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.82.0"
4
+ VERSION = "0.84.0"
5
5
  end
data/lib/openai.rb CHANGED
@@ -14,6 +14,7 @@ require "securerandom"
14
14
  require "stringio"
15
15
  require "time"
16
16
  require "uri"
17
+ require "yaml"
17
18
 
18
19
  # We already ship the preferred sorbet manifests in the package itself.
19
20
  # `tapioca` currently does not offer us a way to opt out of unnecessary compilation.
@@ -4,7 +4,7 @@ module OpenAI
4
4
  module Errors
5
5
  class Error < StandardError
6
6
  sig { returns(T.nilable(StandardError)) }
7
- attr_accessor :cause
7
+ attr_reader :cause
8
8
  end
9
9
 
10
10
  class PollingError < OpenAI::Errors::Error
@@ -4,7 +4,7 @@ module OpenAI
4
4
  module Helpers
5
5
  module Streaming
6
6
  class ResponseTextDeltaEvent < OpenAI::Models::Responses::ResponseTextDeltaEvent
7
- sig { returns(String) }
7
+ sig { returns(T.nilable(String)) }
8
8
  def snapshot
9
9
  end
10
10
  end
@@ -16,7 +16,7 @@ module OpenAI
16
16
  end
17
17
 
18
18
  class ResponseFunctionCallArgumentsDeltaEvent < OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent
19
- sig { returns(String) }
19
+ sig { returns(T.nilable(String)) }
20
20
  def snapshot
21
21
  end
22
22
  end
@@ -78,8 +78,8 @@ module OpenAI
78
78
  sig { returns(T.nilable(OpenAI::Models::Responses::Response)) }
79
79
  attr_reader :completed_response
80
80
 
81
- sig { params(text_format: T.untyped).void }
82
- def initialize(text_format:)
81
+ sig { params(text_format: T.untyped, starting_after: T.nilable(Integer)).void }
82
+ def initialize(text_format:, starting_after: nil)
83
83
  end
84
84
 
85
85
  sig { params(event: T.untyped).returns(T::Array[T.untyped]) }
@@ -91,7 +91,7 @@ module OpenAI
91
91
  event: T.untyped,
92
92
  current_snapshot: T.nilable(OpenAI::Models::Responses::Response)
93
93
  )
94
- .returns(OpenAI::Models::Responses::Response)
94
+ .returns(T.nilable(OpenAI::Models::Responses::Response))
95
95
  end
96
96
  def accumulate_event(event:, current_snapshot:)
97
97
  end
@@ -11,13 +11,36 @@ module OpenAI
11
11
  sig { returns(T.nilable(String)) }
12
12
  attr_reader :request_id
13
13
 
14
+ sig { returns(T.nilable(String)) }
15
+ attr_reader :body
16
+
14
17
  # @api private
15
18
  sig do
16
- params(status: Integer, headers: T::Hash[String, String]).returns(
19
+ params(status: Integer, headers: T::Hash[String, String], body: T.nilable(String)).returns(
17
20
  T.attached_class
18
21
  )
19
22
  end
20
- def self.new(status:, headers:)
23
+ def self.new(status:, headers:, body: nil)
24
+ end
25
+
26
+ # @api private
27
+ sig { params(coder: T.untyped).void }
28
+ def encode_with(coder)
29
+ end
30
+
31
+ # @api private
32
+ sig { params(coder: T.untyped).void }
33
+ def init_with(coder)
34
+ end
35
+
36
+ # @api private
37
+ sig { returns(T::Array[T.any(Integer, T::Hash[String, String])]) }
38
+ def marshal_dump
39
+ end
40
+
41
+ # @api private
42
+ sig { params(values: T::Array[T.any(Integer, T::Hash[String, String])]).void }
43
+ def marshal_load(values)
21
44
  end
22
45
  end
23
46
 
@@ -19,11 +19,21 @@ module OpenAI
19
19
  log_level: Symbol,
20
20
  on_retry: T.nilable(T.proc.params(event: OpenAI::RetryEvent).void),
21
21
  method: Symbol,
22
- url: URI::Generic
22
+ url: URI::Generic,
23
+ on_response: T.nilable(
24
+ T
25
+ .proc
26
+ .params(
27
+ response: OpenAI::HTTPClient::Response,
28
+ trusted_url: URI::Generic,
29
+ response_url: URI::Generic
30
+ )
31
+ .void
32
+ )
23
33
  )
24
34
  .returns(T.attached_class)
25
35
  end
26
- def self.new(logger:, log_level:, on_retry:, method:, url:)
36
+ def self.new(logger:, log_level:, on_retry:, method:, url:, on_response: nil)
27
37
  end
28
38
 
29
39
  sig do
@@ -401,7 +401,17 @@ module OpenAI
401
401
  # @api private
402
402
  sig do
403
403
  params(
404
- req: OpenAI::Internal::Transport::BaseClient::RequestComponents
404
+ req: OpenAI::Internal::Transport::BaseClient::RequestComponents,
405
+ response_observer: T.nilable(
406
+ T
407
+ .proc
408
+ .params(
409
+ response: OpenAI::HTTPClient::Response,
410
+ url: URI::Generic,
411
+ response_url: URI::Generic
412
+ )
413
+ .void
414
+ )
405
415
  )
406
416
  .returns(
407
417
  [
@@ -411,7 +421,7 @@ module OpenAI
411
421
  ]
412
422
  )
413
423
  end
414
- private def perform_request(req)
424
+ private def perform_request(req, &response_observer)
415
425
  end
416
426
 
417
427
  # @api private
@@ -374,11 +374,12 @@ module OpenAI
374
374
  params(
375
375
  headers: T::Hash[String, String],
376
376
  stream: T::Enumerable[String],
377
- suppress_error: T::Boolean
377
+ suppress_error: T::Boolean,
378
+ body_observer: T.nilable(T.proc.params(body: String).void)
378
379
  )
379
380
  .returns(T.anything)
380
381
  end
381
- def decode_content(headers, stream:, suppress_error: false)
382
+ def decode_content(headers, stream:, suppress_error: false, &body_observer)
382
383
  end
383
384
  end
384
385
 
@@ -591,6 +591,14 @@ module OpenAI
591
591
  :"tenant.project_api_key.created",
592
592
  OpenAI::Admin::Organization::AuditLogListParams::EventType::TaggedSymbol
593
593
  )
594
+ TENANT_TRUSTED_ACCESS_BUSINESS_VERIFICATION_STARTED = T.let(
595
+ :"tenant.trusted_access.business_verification.started",
596
+ OpenAI::Admin::Organization::AuditLogListParams::EventType::TaggedSymbol
597
+ )
598
+ TENANT_TRUSTED_ACCESS_APPLICATION_SUBMITTED = T.let(
599
+ :"tenant.trusted_access.application.submitted",
600
+ OpenAI::Admin::Organization::AuditLogListParams::EventType::TaggedSymbol
601
+ )
594
602
  TENANT_CHATGPT_ACCESS_TOKEN_REVOKED = T.let(
595
603
  :"tenant.chatgpt_access_token.revoked",
596
604
  OpenAI::Admin::Organization::AuditLogListParams::EventType::TaggedSymbol
@@ -1369,6 +1369,14 @@ module OpenAI
1369
1369
  :"tenant.project_api_key.created",
1370
1370
  OpenAI::Models::Admin::Organization::AuditLogListResponse::Type::TaggedSymbol
1371
1371
  )
1372
+ TENANT_TRUSTED_ACCESS_BUSINESS_VERIFICATION_STARTED = T.let(
1373
+ :"tenant.trusted_access.business_verification.started",
1374
+ OpenAI::Models::Admin::Organization::AuditLogListResponse::Type::TaggedSymbol
1375
+ )
1376
+ TENANT_TRUSTED_ACCESS_APPLICATION_SUBMITTED = T.let(
1377
+ :"tenant.trusted_access.application.submitted",
1378
+ OpenAI::Models::Admin::Organization::AuditLogListResponse::Type::TaggedSymbol
1379
+ )
1372
1380
  TENANT_CHATGPT_ACCESS_TOKEN_REVOKED = T.let(
1373
1381
  :"tenant.chatgpt_access_token.revoked",
1374
1382
  OpenAI::Models::Admin::Organization::AuditLogListResponse::Type::TaggedSymbol
@@ -61,6 +61,14 @@ module OpenAI
61
61
  sig { params(limit: Integer).void }
62
62
  attr_writer :limit
63
63
 
64
+ # Return only costs for these exact line item names. Each value must match the
65
+ # complete `line_item` value, for example `gpt-5.6-sol, input_tokens`.
66
+ sig { returns(T.nilable(T::Array[String])) }
67
+ attr_reader :line_items
68
+
69
+ sig { params(line_items: T::Array[String]).void }
70
+ attr_writer :line_items
71
+
64
72
  # A cursor for use in pagination. Corresponding to the `next_page` field from the
65
73
  # previous response.
66
74
  sig { returns(T.nilable(String)) }
@@ -91,6 +99,8 @@ module OpenAI
91
99
 
92
100
  limit: Integer,
93
101
 
102
+ line_items: T::Array[String],
103
+
94
104
  page: String,
95
105
 
96
106
  project_ids: T::Array[String],
@@ -122,6 +132,10 @@ module OpenAI
122
132
  # 180, and the default is 7.
123
133
  limit: nil,
124
134
 
135
+ # Return only costs for these exact line item names. Each value must match the
136
+ # complete `line_item` value, for example `gpt-5.6-sol, input_tokens`.
137
+ line_items: nil,
138
+
125
139
  # A cursor for use in pagination. Corresponding to the `next_page` field from the
126
140
  # previous response.
127
141
  page: nil,
@@ -142,6 +156,7 @@ module OpenAI
142
156
  end_time: Integer,
143
157
  group_by: T::Array[OpenAI::Admin::Organization::UsageCostsParams::GroupBy::OrSymbol],
144
158
  limit: Integer,
159
+ line_items: T::Array[String],
145
160
  page: String,
146
161
  project_ids: T::Array[String],
147
162
  request_options: OpenAI::RequestOptions
@@ -117,9 +117,9 @@ module OpenAI
117
117
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
118
118
  attr_accessor :metadata
119
119
 
120
- # Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI offers a
121
- # wide range of models with different capabilities, performance characteristics,
122
- # and price points. Refer to the
120
+ # Model ID used to process the batch, like `gpt-5.6-sol`. OpenAI offers a wide
121
+ # range of models with different capabilities, performance characteristics, and
122
+ # price points. Refer to the
123
123
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
124
124
  # available models.
125
125
  sig { returns(T.nilable(String)) }
@@ -256,9 +256,9 @@ module OpenAI
256
256
  # a maximum length of 512 characters.
257
257
  metadata: nil,
258
258
 
259
- # Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI offers a
260
- # wide range of models with different capabilities, performance characteristics,
261
- # and price points. Refer to the
259
+ # Model ID used to process the batch, like `gpt-5.6-sol`. OpenAI offers a wide
260
+ # range of models with different capabilities, performance characteristics, and
261
+ # price points. Refer to the
262
262
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
263
263
  # available models.
264
264
  model: nil,
@@ -55,9 +55,9 @@ module OpenAI
55
55
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
56
56
  attr_accessor :metadata
57
57
 
58
- # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
59
- # wide range of models with different capabilities, performance characteristics,
60
- # and price points. Refer to the
58
+ # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
59
+ # range of models with different capabilities, performance characteristics, and
60
+ # price points. Refer to the
61
61
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
62
62
  # available models.
63
63
  sig { returns(OpenAI::Beta::BetaResponse::Model::Variants) }
@@ -212,8 +212,6 @@ module OpenAI
212
212
  sig { returns(T.nilable(OpenAI::Beta::BetaResponse::PromptCacheRetention::TaggedSymbol)) }
213
213
  attr_accessor :prompt_cache_retention
214
214
 
215
- # **gpt-5 and o-series models only**
216
- #
217
215
  # Configuration options for
218
216
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
219
217
  sig { returns(T.nilable(OpenAI::Beta::BetaResponse::Reasoning)) }
@@ -477,9 +475,9 @@ module OpenAI
477
475
  # a maximum length of 512 characters.
478
476
  metadata:,
479
477
 
480
- # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
481
- # wide range of models with different capabilities, performance characteristics,
482
- # and price points. Refer to the
478
+ # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
479
+ # range of models with different capabilities, performance characteristics, and
480
+ # price points. Refer to the
483
481
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
484
482
  # available models.
485
483
  model:,
@@ -600,8 +598,6 @@ module OpenAI
600
598
  # `prompt_cache_retention` is not specified.
601
599
  prompt_cache_retention: nil,
602
600
 
603
- # **gpt-5 and o-series models only**
604
- #
605
601
  # Configuration options for
606
602
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
607
603
  reasoning: nil,
@@ -775,6 +771,7 @@ module OpenAI
775
771
  :max_output_tokens,
776
772
  OpenAI::Beta::BetaResponse::IncompleteDetails::Reason::TaggedSymbol
777
773
  )
774
+ MAX_MESSAGES = T.let(:max_messages, OpenAI::Beta::BetaResponse::IncompleteDetails::Reason::TaggedSymbol)
778
775
  CONTENT_FILTER = T.let(:content_filter, OpenAI::Beta::BetaResponse::IncompleteDetails::Reason::TaggedSymbol)
779
776
 
780
777
  sig { override.returns(T::Array[OpenAI::Beta::BetaResponse::IncompleteDetails::Reason::TaggedSymbol]) }
@@ -804,9 +801,9 @@ module OpenAI
804
801
 
805
802
  end
806
803
 
807
- # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
808
- # wide range of models with different capabilities, performance characteristics,
809
- # and price points. Refer to the
804
+ # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
805
+ # range of models with different capabilities, performance characteristics, and
806
+ # price points. Refer to the
810
807
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
811
808
  # available models.
812
809
  module Model
@@ -1714,8 +1711,6 @@ module OpenAI
1714
1711
  sig { returns(T.nilable(OpenAI::Beta::BetaResponse::Reasoning::Summary::TaggedSymbol)) }
1715
1712
  attr_accessor :summary
1716
1713
 
1717
- # **gpt-5 and o-series models only**
1718
- #
1719
1714
  # Configuration options for
1720
1715
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
1721
1716
  sig do