openai 0.16.0 → 0.17.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 (177) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/README.md +14 -20
  4. data/lib/openai/internal/transport/base_client.rb +1 -1
  5. data/lib/openai/internal/type/array_of.rb +1 -0
  6. data/lib/openai/internal/type/base_model.rb +3 -1
  7. data/lib/openai/internal/type/converter.rb +27 -0
  8. data/lib/openai/internal/type/enum.rb +6 -6
  9. data/lib/openai/internal/type/hash_of.rb +1 -0
  10. data/lib/openai/internal/type/union.rb +22 -24
  11. data/lib/openai/models/beta/assistant_create_params.rb +4 -5
  12. data/lib/openai/models/beta/assistant_update_params.rb +22 -5
  13. data/lib/openai/models/beta/threads/run_create_params.rb +4 -5
  14. data/lib/openai/models/chat/chat_completion_allowed_tool_choice.rb +33 -0
  15. data/lib/openai/models/chat/chat_completion_allowed_tools.rb +64 -0
  16. data/lib/openai/models/chat/chat_completion_assistant_message_param.rb +3 -5
  17. data/lib/openai/models/chat/chat_completion_custom_tool.rb +163 -0
  18. data/lib/openai/models/chat/chat_completion_function_tool.rb +29 -0
  19. data/lib/openai/models/chat/chat_completion_message.rb +3 -5
  20. data/lib/openai/models/chat/chat_completion_message_custom_tool_call.rb +60 -0
  21. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +73 -0
  22. data/lib/openai/models/chat/chat_completion_message_tool_call.rb +10 -56
  23. data/lib/openai/models/chat/chat_completion_named_tool_choice.rb +2 -2
  24. data/lib/openai/models/chat/chat_completion_named_tool_choice_custom.rb +42 -0
  25. data/lib/openai/models/chat/chat_completion_stream_options.rb +14 -1
  26. data/lib/openai/models/chat/chat_completion_tool.rb +12 -14
  27. data/lib/openai/models/chat/chat_completion_tool_choice_option.rb +7 -1
  28. data/lib/openai/models/chat/completion_create_params.rb +35 -12
  29. data/lib/openai/models/chat_model.rb +7 -0
  30. data/lib/openai/models/custom_tool_input_format.rb +76 -0
  31. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +3 -3
  32. data/lib/openai/models/evals/run_cancel_response.rb +2 -2
  33. data/lib/openai/models/evals/run_create_params.rb +2 -2
  34. data/lib/openai/models/evals/run_create_response.rb +2 -2
  35. data/lib/openai/models/evals/run_list_response.rb +2 -2
  36. data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
  37. data/lib/openai/models/reasoning.rb +4 -5
  38. data/lib/openai/models/reasoning_effort.rb +4 -4
  39. data/lib/openai/models/response_format_text_grammar.rb +27 -0
  40. data/lib/openai/models/response_format_text_python.rb +20 -0
  41. data/lib/openai/models/responses/custom_tool.rb +48 -0
  42. data/lib/openai/models/responses/response.rb +20 -12
  43. data/lib/openai/models/responses/response_create_params.rb +48 -10
  44. data/lib/openai/models/responses/response_custom_tool_call.rb +55 -0
  45. data/lib/openai/models/responses/response_custom_tool_call_input_delta_event.rb +52 -0
  46. data/lib/openai/models/responses/response_custom_tool_call_input_done_event.rb +52 -0
  47. data/lib/openai/models/responses/response_custom_tool_call_output.rb +47 -0
  48. data/lib/openai/models/responses/response_input_item.rb +7 -1
  49. data/lib/openai/models/responses/response_output_item.rb +4 -1
  50. data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
  51. data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
  52. data/lib/openai/models/responses/response_reasoning_item.rb +36 -5
  53. data/lib/openai/models/responses/response_reasoning_text_delta_event.rb +63 -0
  54. data/lib/openai/models/responses/response_reasoning_text_done_event.rb +63 -0
  55. data/lib/openai/models/responses/response_retrieve_params.rb +14 -1
  56. data/lib/openai/models/responses/response_stream_event.rb +13 -11
  57. data/lib/openai/models/responses/response_text_config.rb +27 -1
  58. data/lib/openai/models/responses/tool.rb +5 -1
  59. data/lib/openai/models/responses/tool_choice_allowed.rb +73 -0
  60. data/lib/openai/models/responses/tool_choice_custom.rb +28 -0
  61. data/lib/openai/models/vector_store_search_params.rb +6 -1
  62. data/lib/openai/models.rb +6 -0
  63. data/lib/openai/resources/beta/assistants.rb +2 -2
  64. data/lib/openai/resources/beta/threads/runs.rb +2 -2
  65. data/lib/openai/resources/chat/completions.rb +16 -10
  66. data/lib/openai/resources/responses.rb +38 -22
  67. data/lib/openai/version.rb +1 -1
  68. data/lib/openai.rb +19 -2
  69. data/rbi/openai/internal/transport/base_client.rbi +1 -1
  70. data/rbi/openai/internal/type/converter.rbi +46 -0
  71. data/rbi/openai/internal/type/union.rbi +7 -2
  72. data/rbi/openai/models/beta/assistant_create_params.rbi +6 -8
  73. data/rbi/openai/models/beta/assistant_update_params.rbi +36 -8
  74. data/rbi/openai/models/beta/threads/run_create_params.rbi +6 -8
  75. data/rbi/openai/models/chat/chat_completion_allowed_tool_choice.rbi +60 -0
  76. data/rbi/openai/models/chat/chat_completion_allowed_tools.rbi +118 -0
  77. data/rbi/openai/models/chat/chat_completion_assistant_message_param.rbi +27 -4
  78. data/rbi/openai/models/chat/chat_completion_custom_tool.rbi +335 -0
  79. data/rbi/openai/models/chat/chat_completion_function_tool.rbi +51 -0
  80. data/rbi/openai/models/chat/chat_completion_message.rbi +17 -4
  81. data/rbi/openai/models/chat/chat_completion_message_custom_tool_call.rbi +105 -0
  82. data/rbi/openai/models/chat/chat_completion_message_function_tool_call.rbi +118 -0
  83. data/rbi/openai/models/chat/chat_completion_message_tool_call.rbi +9 -92
  84. data/rbi/openai/models/chat/chat_completion_named_tool_choice.rbi +2 -2
  85. data/rbi/openai/models/chat/chat_completion_named_tool_choice_custom.rbi +89 -0
  86. data/rbi/openai/models/chat/chat_completion_stream_options.rbi +30 -2
  87. data/rbi/openai/models/chat/chat_completion_tool.rbi +11 -30
  88. data/rbi/openai/models/chat/chat_completion_tool_choice_option.rbi +3 -1
  89. data/rbi/openai/models/chat/completion_create_params.rbi +106 -25
  90. data/rbi/openai/models/chat_model.rbi +11 -0
  91. data/rbi/openai/models/custom_tool_input_format.rbi +136 -0
  92. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +8 -4
  93. data/rbi/openai/models/evals/run_cancel_response.rbi +2 -0
  94. data/rbi/openai/models/evals/run_create_params.rbi +4 -0
  95. data/rbi/openai/models/evals/run_create_response.rbi +2 -0
  96. data/rbi/openai/models/evals/run_list_response.rbi +2 -0
  97. data/rbi/openai/models/evals/run_retrieve_response.rbi +2 -0
  98. data/rbi/openai/models/reasoning.rbi +6 -8
  99. data/rbi/openai/models/reasoning_effort.rbi +4 -4
  100. data/rbi/openai/models/response_format_text_grammar.rbi +35 -0
  101. data/rbi/openai/models/response_format_text_python.rbi +30 -0
  102. data/rbi/openai/models/responses/custom_tool.rbi +96 -0
  103. data/rbi/openai/models/responses/response.rbi +15 -5
  104. data/rbi/openai/models/responses/response_create_params.rbi +94 -7
  105. data/rbi/openai/models/responses/response_custom_tool_call.rbi +78 -0
  106. data/rbi/openai/models/responses/response_custom_tool_call_input_delta_event.rbi +75 -0
  107. data/rbi/openai/models/responses/response_custom_tool_call_input_done_event.rbi +75 -0
  108. data/rbi/openai/models/responses/response_custom_tool_call_output.rbi +65 -0
  109. data/rbi/openai/models/responses/response_input_item.rbi +2 -0
  110. data/rbi/openai/models/responses/response_output_item.rbi +2 -1
  111. data/rbi/openai/models/responses/response_output_item_added_event.rbi +2 -1
  112. data/rbi/openai/models/responses/response_output_item_done_event.rbi +2 -1
  113. data/rbi/openai/models/responses/response_reasoning_item.rbi +63 -4
  114. data/rbi/openai/models/responses/response_reasoning_text_delta_event.rbi +83 -0
  115. data/rbi/openai/models/responses/{response_reasoning_summary_done_event.rbi → response_reasoning_text_done_event.rbi} +20 -20
  116. data/rbi/openai/models/responses/response_retrieve_params.rbi +21 -0
  117. data/rbi/openai/models/responses/response_stream_event.rbi +4 -2
  118. data/rbi/openai/models/responses/response_text_config.rbi +64 -1
  119. data/rbi/openai/models/responses/tool.rbi +1 -0
  120. data/rbi/openai/models/responses/tool_choice_allowed.rbi +124 -0
  121. data/rbi/openai/models/responses/tool_choice_custom.rbi +39 -0
  122. data/rbi/openai/models/vector_store_search_params.rbi +12 -1
  123. data/rbi/openai/models.rbi +6 -0
  124. data/rbi/openai/resources/beta/assistants.rbi +6 -8
  125. data/rbi/openai/resources/beta/threads/runs.rbi +8 -10
  126. data/rbi/openai/resources/chat/completions.rbi +44 -19
  127. data/rbi/openai/resources/responses.rbi +215 -41
  128. data/sig/openai/internal/transport/base_client.rbs +1 -1
  129. data/sig/openai/internal/type/converter.rbs +17 -0
  130. data/sig/openai/internal/type/union.rbs +2 -2
  131. data/sig/openai/models/beta/assistant_update_params.rbs +12 -0
  132. data/sig/openai/models/chat/chat_completion_allowed_tool_choice.rbs +29 -0
  133. data/sig/openai/models/chat/chat_completion_allowed_tools.rbs +38 -0
  134. data/sig/openai/models/chat/chat_completion_assistant_message_param.rbs +6 -6
  135. data/sig/openai/models/chat/chat_completion_custom_tool.rbs +137 -0
  136. data/sig/openai/models/chat/chat_completion_function_tool.rbs +26 -0
  137. data/sig/openai/models/chat/chat_completion_message.rbs +6 -6
  138. data/sig/openai/models/chat/chat_completion_message_custom_tool_call.rbs +46 -0
  139. data/sig/openai/models/chat/chat_completion_message_function_tool_call.rbs +46 -0
  140. data/sig/openai/models/chat/chat_completion_message_tool_call.rbs +6 -35
  141. data/sig/openai/models/chat/chat_completion_named_tool_choice_custom.rbs +39 -0
  142. data/sig/openai/models/chat/chat_completion_stream_options.rbs +11 -3
  143. data/sig/openai/models/chat/chat_completion_tool.rbs +6 -15
  144. data/sig/openai/models/chat/chat_completion_tool_choice_option.rbs +2 -0
  145. data/sig/openai/models/chat/completion_create_params.rbs +23 -6
  146. data/sig/openai/models/chat_model.rbs +15 -1
  147. data/sig/openai/models/custom_tool_input_format.rbs +61 -0
  148. data/sig/openai/models/evals/create_eval_completions_run_data_source.rbs +6 -6
  149. data/sig/openai/models/reasoning_effort.rbs +2 -1
  150. data/sig/openai/models/response_format_text_grammar.rbs +15 -0
  151. data/sig/openai/models/response_format_text_python.rbs +13 -0
  152. data/sig/openai/models/responses/custom_tool.rbs +43 -0
  153. data/sig/openai/models/responses/response.rbs +2 -0
  154. data/sig/openai/models/responses/response_create_params.rbs +19 -0
  155. data/sig/openai/models/responses/response_custom_tool_call.rbs +44 -0
  156. data/sig/openai/models/responses/response_custom_tool_call_input_delta_event.rbs +42 -0
  157. data/sig/openai/models/responses/response_custom_tool_call_input_done_event.rbs +42 -0
  158. data/sig/openai/models/responses/response_custom_tool_call_output.rbs +39 -0
  159. data/sig/openai/models/responses/response_input_item.rbs +2 -0
  160. data/sig/openai/models/responses/response_output_item.rbs +1 -0
  161. data/sig/openai/models/responses/response_reasoning_item.rbs +21 -0
  162. data/sig/openai/models/responses/{response_reasoning_summary_delta_event.rbs → response_reasoning_text_delta_event.rbs} +15 -15
  163. data/sig/openai/models/responses/{response_reasoning_summary_done_event.rbs → response_reasoning_text_done_event.rbs} +11 -11
  164. data/sig/openai/models/responses/response_retrieve_params.rbs +7 -0
  165. data/sig/openai/models/responses/response_stream_event.rbs +4 -2
  166. data/sig/openai/models/responses/response_text_config.rbs +22 -3
  167. data/sig/openai/models/responses/tool.rbs +1 -0
  168. data/sig/openai/models/responses/tool_choice_allowed.rbs +43 -0
  169. data/sig/openai/models/responses/tool_choice_custom.rbs +17 -0
  170. data/sig/openai/models/vector_store_search_params.rbs +2 -1
  171. data/sig/openai/models.rbs +6 -0
  172. data/sig/openai/resources/chat/completions.rbs +4 -2
  173. data/sig/openai/resources/responses.rbs +32 -0
  174. metadata +59 -8
  175. data/lib/openai/models/responses/response_reasoning_summary_delta_event.rb +0 -65
  176. data/lib/openai/models/responses/response_reasoning_summary_done_event.rb +0 -60
  177. data/rbi/openai/models/responses/response_reasoning_summary_delta_event.rbi +0 -85
@@ -51,7 +51,7 @@ module OpenAI
51
51
  # - [Conversation state](https://platform.openai.com/docs/guides/conversation-state)
52
52
  # - [Function calling](https://platform.openai.com/docs/guides/function-calling)
53
53
  #
54
- # @return [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::ResponseReasoningItem, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseInputItem::ItemReference>, nil]
54
+ # @return [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::ResponseReasoningItem, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, 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::ItemReference>, nil]
55
55
  optional :input, union: -> { OpenAI::Responses::ResponseCreateParams::Input }
56
56
 
57
57
  # @!attribute instructions
@@ -178,6 +178,12 @@ module OpenAI
178
178
  # @return [Boolean, nil]
179
179
  optional :store, OpenAI::Internal::Type::Boolean, nil?: true
180
180
 
181
+ # @!attribute stream_options
182
+ # Options for streaming responses. Only set this when you set `stream: true`.
183
+ #
184
+ # @return [OpenAI::Models::Responses::ResponseCreateParams::StreamOptions, nil]
185
+ optional :stream_options, -> { OpenAI::Responses::ResponseCreateParams::StreamOptions }, nil?: true
186
+
181
187
  # @!attribute temperature
182
188
  # What sampling temperature to use, between 0 and 2. Higher values like 0.8 will
183
189
  # make the output more random, while lower values like 0.2 will make it more
@@ -208,7 +214,7 @@ module OpenAI
208
214
  # response. See the `tools` parameter to see how to specify which tools the model
209
215
  # can call.
210
216
  #
211
- # @return [Symbol, OpenAI::Models::Responses::ToolChoiceOptions, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction, OpenAI::Models::Responses::ToolChoiceMcp, nil]
217
+ # @return [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, nil]
212
218
  optional :tool_choice, union: -> { OpenAI::Responses::ResponseCreateParams::ToolChoice }
213
219
 
214
220
  # @!attribute tools
@@ -224,10 +230,12 @@ module OpenAI
224
230
  # Learn more about
225
231
  # [built-in tools](https://platform.openai.com/docs/guides/tools).
226
232
  # - **Function calls (custom tools)**: Functions that are defined by you, enabling
227
- # the model to call your own code. Learn more about
233
+ # the model to call your own code with strongly typed arguments and outputs.
234
+ # Learn more about
228
235
  # [function calling](https://platform.openai.com/docs/guides/function-calling).
236
+ # You can also use custom tools to call your own code.
229
237
  #
230
- # @return [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::StructuredOutput::JsonSchemaConverter, OpenAI::Models::Responses::FileSearchTool, 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::WebSearchTool>, nil]
238
+ # @return [Array<OpenAI::StructuredOutput::JsonSchemaConverter, OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, 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::CustomTool, OpenAI::Models::Responses::WebSearchTool>, nil]
231
239
  optional :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::Tool] }
232
240
 
233
241
  # @!attribute top_logprobs
@@ -271,7 +279,7 @@ module OpenAI
271
279
  # @return [String, nil]
272
280
  optional :user, String
273
281
 
274
- # @!method initialize(background: nil, include: nil, input: nil, instructions: nil, max_output_tokens: nil, max_tool_calls: nil, metadata: nil, model: nil, parallel_tool_calls: nil, previous_response_id: nil, prompt: nil, prompt_cache_key: nil, reasoning: nil, safety_identifier: nil, service_tier: nil, store: nil, temperature: nil, text: nil, tool_choice: nil, tools: nil, top_logprobs: nil, top_p: nil, truncation: nil, user: nil, request_options: {})
282
+ # @!method initialize(background: nil, include: nil, input: nil, instructions: nil, max_output_tokens: nil, max_tool_calls: nil, metadata: nil, model: nil, parallel_tool_calls: nil, previous_response_id: nil, prompt: nil, prompt_cache_key: nil, reasoning: nil, safety_identifier: nil, service_tier: nil, store: nil, stream_options: nil, temperature: nil, text: nil, tool_choice: nil, tools: nil, top_logprobs: nil, top_p: nil, truncation: nil, user: nil, request_options: {})
275
283
  # Some parameter documentations has been truncated, see
276
284
  # {OpenAI::Models::Responses::ResponseCreateParams} for more details.
277
285
  #
@@ -279,7 +287,7 @@ module OpenAI
279
287
  #
280
288
  # @param include [Array<Symbol, OpenAI::Models::Responses::ResponseIncludable>, nil] Specify additional output data to include in the model response. Currently
281
289
  #
282
- # @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::ResponseReasoningItem, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseInputItem::ItemReference>] Text, image, or file inputs to the model, used to generate a response.
290
+ # @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::ResponseReasoningItem, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, 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::ItemReference>] Text, image, or file inputs to the model, used to generate a response.
283
291
  #
284
292
  # @param instructions [String, nil] A system (or developer) message inserted into the model's context.
285
293
  #
@@ -307,13 +315,15 @@ module OpenAI
307
315
  #
308
316
  # @param store [Boolean, nil] Whether to store the generated model response for later retrieval via
309
317
  #
318
+ # @param stream_options [OpenAI::Models::Responses::ResponseCreateParams::StreamOptions, nil] Options for streaming responses. Only set this when you set `stream: true`.
319
+ #
310
320
  # @param temperature [Float, nil] What sampling temperature to use, between 0 and 2. Higher values like 0.8 will m
311
321
  #
312
322
  # @param text [OpenAI::Models::Responses::ResponseTextConfig] Configuration options for a text response from the model. Can be plain
313
323
  #
314
- # @param tool_choice [Symbol, OpenAI::Models::Responses::ToolChoiceOptions, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction, OpenAI::Models::Responses::ToolChoiceMcp] How the model should select which tool (or tools) to use when generating
324
+ # @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] How the model should select which tool (or tools) to use when generating
315
325
  #
316
- # @param tools [Array<OpenAI::Models::Responses::FunctionTool, OpenAI::StructuredOutput::JsonSchemaConverter, OpenAI::Models::Responses::FileSearchTool, 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::WebSearchTool>] An array of tools the model may call while generating a response. You
326
+ # @param tools [Array<OpenAI::StructuredOutput::JsonSchemaConverter, OpenAI::Models::Responses::FunctionTool, OpenAI::Models::Responses::FileSearchTool, 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::CustomTool, OpenAI::Models::Responses::WebSearchTool>] An array of tools the model may call while generating a response. You
317
327
  #
318
328
  # @param top_logprobs [Integer, nil] An integer between 0 and 20 specifying the number of most likely tokens to
319
329
  #
@@ -346,7 +356,7 @@ module OpenAI
346
356
  variant -> { OpenAI::Responses::ResponseInput }
347
357
 
348
358
  # @!method self.variants
349
- # @return [Array(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::ResponseReasoningItem, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseInputItem::ItemReference>)]
359
+ # @return [Array(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::ResponseReasoningItem, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, 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::ItemReference>)]
350
360
  end
351
361
 
352
362
  # Specifies the processing type used for serving the request.
@@ -379,6 +389,28 @@ module OpenAI
379
389
  # @return [Array<Symbol>]
380
390
  end
381
391
 
392
+ class StreamOptions < OpenAI::Internal::Type::BaseModel
393
+ # @!attribute include_obfuscation
394
+ # When true, stream obfuscation will be enabled. Stream obfuscation adds random
395
+ # characters to an `obfuscation` field on streaming delta events to normalize
396
+ # payload sizes as a mitigation to certain side-channel attacks. These obfuscation
397
+ # fields are included by default, but add a small amount of overhead to the data
398
+ # stream. You can set `include_obfuscation` to false to optimize for bandwidth if
399
+ # you trust the network links between your application and the OpenAI API.
400
+ #
401
+ # @return [Boolean, nil]
402
+ optional :include_obfuscation, OpenAI::Internal::Type::Boolean
403
+
404
+ # @!method initialize(include_obfuscation: nil)
405
+ # Some parameter documentations has been truncated, see
406
+ # {OpenAI::Models::Responses::ResponseCreateParams::StreamOptions} for more
407
+ # details.
408
+ #
409
+ # Options for streaming responses. Only set this when you set `stream: true`.
410
+ #
411
+ # @param include_obfuscation [Boolean] When true, stream obfuscation will be enabled. Stream obfuscation adds
412
+ end
413
+
382
414
  # How the model should select which tool (or tools) to use when generating a
383
415
  # response. See the `tools` parameter to see how to specify which tools the model
384
416
  # can call.
@@ -395,6 +427,9 @@ module OpenAI
395
427
  # `required` means the model must call one or more tools.
396
428
  variant enum: -> { OpenAI::Responses::ToolChoiceOptions }
397
429
 
430
+ # Constrains the tools available to the model to a pre-defined set.
431
+ variant -> { OpenAI::Responses::ToolChoiceAllowed }
432
+
398
433
  # Indicates that the model should use a built-in tool to generate a response.
399
434
  # [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).
400
435
  variant -> { OpenAI::Responses::ToolChoiceTypes }
@@ -405,8 +440,11 @@ module OpenAI
405
440
  # Use this option to force the model to call a specific tool on a remote MCP server.
406
441
  variant -> { OpenAI::Responses::ToolChoiceMcp }
407
442
 
443
+ # Use this option to force the model to call a specific custom tool.
444
+ variant -> { OpenAI::Responses::ToolChoiceCustom }
445
+
408
446
  # @!method self.variants
409
- # @return [Array(Symbol, OpenAI::Models::Responses::ToolChoiceOptions, OpenAI::Models::Responses::ToolChoiceTypes, OpenAI::Models::Responses::ToolChoiceFunction, OpenAI::Models::Responses::ToolChoiceMcp)]
447
+ # @return [Array(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)]
410
448
  end
411
449
 
412
450
  # The truncation strategy to use for the model response.
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ResponseCustomToolCall < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute call_id
8
+ # An identifier used to map this custom tool call to a tool call output.
9
+ #
10
+ # @return [String]
11
+ required :call_id, String
12
+
13
+ # @!attribute input
14
+ # The input for the custom tool call generated by the model.
15
+ #
16
+ # @return [String]
17
+ required :input, String
18
+
19
+ # @!attribute name
20
+ # The name of the custom tool being called.
21
+ #
22
+ # @return [String]
23
+ required :name, String
24
+
25
+ # @!attribute type
26
+ # The type of the custom tool call. Always `custom_tool_call`.
27
+ #
28
+ # @return [Symbol, :custom_tool_call]
29
+ required :type, const: :custom_tool_call
30
+
31
+ # @!attribute id
32
+ # The unique ID of the custom tool call in the OpenAI platform.
33
+ #
34
+ # @return [String, nil]
35
+ optional :id, String
36
+
37
+ # @!method initialize(call_id:, input:, name:, id: nil, type: :custom_tool_call)
38
+ # Some parameter documentations has been truncated, see
39
+ # {OpenAI::Models::Responses::ResponseCustomToolCall} for more details.
40
+ #
41
+ # A call to a custom tool created by the model.
42
+ #
43
+ # @param call_id [String] An identifier used to map this custom tool call to a tool call output.
44
+ #
45
+ # @param input [String] The input for the custom tool call generated by the model.
46
+ #
47
+ # @param name [String] The name of the custom tool being called.
48
+ #
49
+ # @param id [String] The unique ID of the custom tool call in the OpenAI platform.
50
+ #
51
+ # @param type [Symbol, :custom_tool_call] The type of the custom tool call. Always `custom_tool_call`.
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ResponseCustomToolCallInputDeltaEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute delta
8
+ # The incremental input data (delta) for the custom tool call.
9
+ #
10
+ # @return [String]
11
+ required :delta, String
12
+
13
+ # @!attribute item_id
14
+ # Unique identifier for the API item associated with this event.
15
+ #
16
+ # @return [String]
17
+ required :item_id, String
18
+
19
+ # @!attribute output_index
20
+ # The index of the output this delta applies to.
21
+ #
22
+ # @return [Integer]
23
+ required :output_index, Integer
24
+
25
+ # @!attribute sequence_number
26
+ # The sequence number of this event.
27
+ #
28
+ # @return [Integer]
29
+ required :sequence_number, Integer
30
+
31
+ # @!attribute type
32
+ # The event type identifier.
33
+ #
34
+ # @return [Symbol, :"response.custom_tool_call_input.delta"]
35
+ required :type, const: :"response.custom_tool_call_input.delta"
36
+
37
+ # @!method initialize(delta:, item_id:, output_index:, sequence_number:, type: :"response.custom_tool_call_input.delta")
38
+ # Event representing a delta (partial update) to the input of a custom tool call.
39
+ #
40
+ # @param delta [String] The incremental input data (delta) for the custom tool call.
41
+ #
42
+ # @param item_id [String] Unique identifier for the API item associated with this event.
43
+ #
44
+ # @param output_index [Integer] The index of the output this delta applies to.
45
+ #
46
+ # @param sequence_number [Integer] The sequence number of this event.
47
+ #
48
+ # @param type [Symbol, :"response.custom_tool_call_input.delta"] The event type identifier.
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ResponseCustomToolCallInputDoneEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute input
8
+ # The complete input data for the custom tool call.
9
+ #
10
+ # @return [String]
11
+ required :input, String
12
+
13
+ # @!attribute item_id
14
+ # Unique identifier for the API item associated with this event.
15
+ #
16
+ # @return [String]
17
+ required :item_id, String
18
+
19
+ # @!attribute output_index
20
+ # The index of the output this event applies to.
21
+ #
22
+ # @return [Integer]
23
+ required :output_index, Integer
24
+
25
+ # @!attribute sequence_number
26
+ # The sequence number of this event.
27
+ #
28
+ # @return [Integer]
29
+ required :sequence_number, Integer
30
+
31
+ # @!attribute type
32
+ # The event type identifier.
33
+ #
34
+ # @return [Symbol, :"response.custom_tool_call_input.done"]
35
+ required :type, const: :"response.custom_tool_call_input.done"
36
+
37
+ # @!method initialize(input:, item_id:, output_index:, sequence_number:, type: :"response.custom_tool_call_input.done")
38
+ # Event indicating that input for a custom tool call is complete.
39
+ #
40
+ # @param input [String] The complete input data for the custom tool call.
41
+ #
42
+ # @param item_id [String] Unique identifier for the API item associated with this event.
43
+ #
44
+ # @param output_index [Integer] The index of the output this event applies to.
45
+ #
46
+ # @param sequence_number [Integer] The sequence number of this event.
47
+ #
48
+ # @param type [Symbol, :"response.custom_tool_call_input.done"] The event type identifier.
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ResponseCustomToolCallOutput < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute call_id
8
+ # The call ID, used to map this custom tool call output to a custom tool call.
9
+ #
10
+ # @return [String]
11
+ required :call_id, String
12
+
13
+ # @!attribute output
14
+ # The output from the custom tool call generated by your code.
15
+ #
16
+ # @return [String]
17
+ required :output, String
18
+
19
+ # @!attribute type
20
+ # The type of the custom tool call output. Always `custom_tool_call_output`.
21
+ #
22
+ # @return [Symbol, :custom_tool_call_output]
23
+ required :type, const: :custom_tool_call_output
24
+
25
+ # @!attribute id
26
+ # The unique ID of the custom tool call output in the OpenAI platform.
27
+ #
28
+ # @return [String, nil]
29
+ optional :id, String
30
+
31
+ # @!method initialize(call_id:, output:, id: nil, type: :custom_tool_call_output)
32
+ # Some parameter documentations has been truncated, see
33
+ # {OpenAI::Models::Responses::ResponseCustomToolCallOutput} for more details.
34
+ #
35
+ # The output of a custom tool call from your code, being sent back to the model.
36
+ #
37
+ # @param call_id [String] The call ID, used to map this custom tool call output to a custom tool call.
38
+ #
39
+ # @param output [String] The output from the custom tool call generated by your code.
40
+ #
41
+ # @param id [String] The unique ID of the custom tool call output in the OpenAI platform.
42
+ #
43
+ # @param type [Symbol, :custom_tool_call_output] The type of the custom tool call output. Always `custom_tool_call_output`.
44
+ end
45
+ end
46
+ end
47
+ end
@@ -80,6 +80,12 @@ module OpenAI
80
80
  # An invocation of a tool on an MCP server.
81
81
  variant :mcp_call, -> { OpenAI::Responses::ResponseInputItem::McpCall }
82
82
 
83
+ # The output of a custom tool call from your code, being sent back to the model.
84
+ variant :custom_tool_call_output, -> { OpenAI::Responses::ResponseCustomToolCallOutput }
85
+
86
+ # A call to a custom tool created by the model.
87
+ variant :custom_tool_call, -> { OpenAI::Responses::ResponseCustomToolCall }
88
+
83
89
  # An internal identifier for an item to reference.
84
90
  variant :item_reference, -> { OpenAI::Responses::ResponseInputItem::ItemReference }
85
91
 
@@ -869,7 +875,7 @@ module OpenAI
869
875
  end
870
876
 
871
877
  # @!method self.variants
872
- # @return [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::ResponseReasoningItem, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseInputItem::ItemReference)]
878
+ # @return [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::ResponseReasoningItem, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, 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::ItemReference)]
873
879
  end
874
880
  end
875
881
  end
@@ -52,6 +52,9 @@ module OpenAI
52
52
  # A request for human approval of a tool invocation.
53
53
  variant :mcp_approval_request, -> { OpenAI::Responses::ResponseOutputItem::McpApprovalRequest }
54
54
 
55
+ # A call to a custom tool created by the model.
56
+ variant :custom_tool_call, -> { OpenAI::Responses::ResponseCustomToolCall }
57
+
55
58
  class ImageGenerationCall < OpenAI::Internal::Type::BaseModel
56
59
  # @!attribute id
57
60
  # The unique ID of the image generation call.
@@ -435,7 +438,7 @@ module OpenAI
435
438
  end
436
439
 
437
440
  # @!method self.variants
438
- # @return [Array(OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest)]
441
+ # @return [Array(OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall)]
439
442
  end
440
443
  end
441
444
  end
@@ -7,7 +7,7 @@ module OpenAI
7
7
  # @!attribute item
8
8
  # The output item that was added.
9
9
  #
10
- # @return [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest]
10
+ # @return [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall]
11
11
  required :item, union: -> { OpenAI::Responses::ResponseOutputItem }
12
12
 
13
13
  # @!attribute output_index
@@ -34,7 +34,7 @@ module OpenAI
34
34
  #
35
35
  # Emitted when a new output item is added.
36
36
  #
37
- # @param item [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest] The output item that was added.
37
+ # @param item [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall] The output item that was added.
38
38
  #
39
39
  # @param output_index [Integer] The index of the output item that was added.
40
40
  #
@@ -7,7 +7,7 @@ module OpenAI
7
7
  # @!attribute item
8
8
  # The output item that was marked done.
9
9
  #
10
- # @return [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest]
10
+ # @return [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall]
11
11
  required :item, union: -> { OpenAI::Responses::ResponseOutputItem }
12
12
 
13
13
  # @!attribute output_index
@@ -34,7 +34,7 @@ module OpenAI
34
34
  #
35
35
  # Emitted when an output item is marked done.
36
36
  #
37
- # @param item [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest] The output item that was marked done.
37
+ # @param item [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall] The output item that was marked done.
38
38
  #
39
39
  # @param output_index [Integer] The index of the output item that was marked done.
40
40
  #
@@ -11,7 +11,7 @@ module OpenAI
11
11
  required :id, String
12
12
 
13
13
  # @!attribute summary
14
- # Reasoning text contents.
14
+ # Reasoning summary content.
15
15
  #
16
16
  # @return [Array<OpenAI::Models::Responses::ResponseReasoningItem::Summary>]
17
17
  required :summary,
@@ -23,6 +23,13 @@ module OpenAI
23
23
  # @return [Symbol, :reasoning]
24
24
  required :type, const: :reasoning
25
25
 
26
+ # @!attribute content
27
+ # Reasoning text content.
28
+ #
29
+ # @return [Array<OpenAI::Models::Responses::ResponseReasoningItem::Content>, nil]
30
+ optional :content,
31
+ -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Responses::ResponseReasoningItem::Content] }
32
+
26
33
  # @!attribute encrypted_content
27
34
  # The encrypted content of the reasoning item - populated when a response is
28
35
  # generated with `reasoning.encrypted_content` in the `include` parameter.
@@ -37,7 +44,7 @@ module OpenAI
37
44
  # @return [Symbol, OpenAI::Models::Responses::ResponseReasoningItem::Status, nil]
38
45
  optional :status, enum: -> { OpenAI::Responses::ResponseReasoningItem::Status }
39
46
 
40
- # @!method initialize(id:, summary:, encrypted_content: nil, status: nil, type: :reasoning)
47
+ # @!method initialize(id:, summary:, content: nil, encrypted_content: nil, status: nil, type: :reasoning)
41
48
  # Some parameter documentations has been truncated, see
42
49
  # {OpenAI::Models::Responses::ResponseReasoningItem} for more details.
43
50
  #
@@ -48,7 +55,9 @@ module OpenAI
48
55
  #
49
56
  # @param id [String] The unique identifier of the reasoning content.
50
57
  #
51
- # @param summary [Array<OpenAI::Models::Responses::ResponseReasoningItem::Summary>] Reasoning text contents.
58
+ # @param summary [Array<OpenAI::Models::Responses::ResponseReasoningItem::Summary>] Reasoning summary content.
59
+ #
60
+ # @param content [Array<OpenAI::Models::Responses::ResponseReasoningItem::Content>] Reasoning text content.
52
61
  #
53
62
  # @param encrypted_content [String, nil] The encrypted content of the reasoning item - populated when a response is
54
63
  #
@@ -58,7 +67,7 @@ module OpenAI
58
67
 
59
68
  class Summary < OpenAI::Internal::Type::BaseModel
60
69
  # @!attribute text
61
- # A short summary of the reasoning used by the model when generating the response.
70
+ # A summary of the reasoning output from the model so far.
62
71
  #
63
72
  # @return [String]
64
73
  required :text, String
@@ -73,11 +82,33 @@ module OpenAI
73
82
  # Some parameter documentations has been truncated, see
74
83
  # {OpenAI::Models::Responses::ResponseReasoningItem::Summary} for more details.
75
84
  #
76
- # @param text [String] A short summary of the reasoning used by the model when generating
85
+ # @param text [String] A summary of the reasoning output from the model so far.
77
86
  #
78
87
  # @param type [Symbol, :summary_text] The type of the object. Always `summary_text`.
79
88
  end
80
89
 
90
+ class Content < OpenAI::Internal::Type::BaseModel
91
+ # @!attribute text
92
+ # Reasoning text output from the model.
93
+ #
94
+ # @return [String]
95
+ required :text, String
96
+
97
+ # @!attribute type
98
+ # The type of the object. Always `reasoning_text`.
99
+ #
100
+ # @return [Symbol, :reasoning_text]
101
+ required :type, const: :reasoning_text
102
+
103
+ # @!method initialize(text:, type: :reasoning_text)
104
+ # Some parameter documentations has been truncated, see
105
+ # {OpenAI::Models::Responses::ResponseReasoningItem::Content} for more details.
106
+ #
107
+ # @param text [String] Reasoning text output from the model.
108
+ #
109
+ # @param type [Symbol, :reasoning_text] The type of the object. Always `reasoning_text`.
110
+ end
111
+
81
112
  # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
82
113
  # Populated when items are returned via API.
83
114
  #
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ResponseReasoningTextDeltaEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute content_index
8
+ # The index of the reasoning content part this delta is associated with.
9
+ #
10
+ # @return [Integer]
11
+ required :content_index, Integer
12
+
13
+ # @!attribute delta
14
+ # The text delta that was added to the reasoning content.
15
+ #
16
+ # @return [String]
17
+ required :delta, String
18
+
19
+ # @!attribute item_id
20
+ # The ID of the item this reasoning text delta is associated with.
21
+ #
22
+ # @return [String]
23
+ required :item_id, String
24
+
25
+ # @!attribute output_index
26
+ # The index of the output item this reasoning text delta is associated with.
27
+ #
28
+ # @return [Integer]
29
+ required :output_index, Integer
30
+
31
+ # @!attribute sequence_number
32
+ # The sequence number of this event.
33
+ #
34
+ # @return [Integer]
35
+ required :sequence_number, Integer
36
+
37
+ # @!attribute type
38
+ # The type of the event. Always `response.reasoning_text.delta`.
39
+ #
40
+ # @return [Symbol, :"response.reasoning_text.delta"]
41
+ required :type, const: :"response.reasoning_text.delta"
42
+
43
+ # @!method initialize(content_index:, delta:, item_id:, output_index:, sequence_number:, type: :"response.reasoning_text.delta")
44
+ # Some parameter documentations has been truncated, see
45
+ # {OpenAI::Models::Responses::ResponseReasoningTextDeltaEvent} for more details.
46
+ #
47
+ # Emitted when a delta is added to a reasoning text.
48
+ #
49
+ # @param content_index [Integer] The index of the reasoning content part this delta is associated with.
50
+ #
51
+ # @param delta [String] The text delta that was added to the reasoning content.
52
+ #
53
+ # @param item_id [String] The ID of the item this reasoning text delta is associated with.
54
+ #
55
+ # @param output_index [Integer] The index of the output item this reasoning text delta is associated with.
56
+ #
57
+ # @param sequence_number [Integer] The sequence number of this event.
58
+ #
59
+ # @param type [Symbol, :"response.reasoning_text.delta"] The type of the event. Always `response.reasoning_text.delta`.
60
+ end
61
+ end
62
+ end
63
+ end