openai 0.16.0 → 0.17.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 (169) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +14 -20
  4. data/lib/openai/internal/transport/base_client.rb +1 -1
  5. data/lib/openai/internal/type/enum.rb +6 -6
  6. data/lib/openai/internal/type/union.rb +13 -17
  7. data/lib/openai/models/beta/assistant_create_params.rb +4 -5
  8. data/lib/openai/models/beta/assistant_update_params.rb +22 -5
  9. data/lib/openai/models/beta/threads/run_create_params.rb +4 -5
  10. data/lib/openai/models/chat/chat_completion_allowed_tool_choice.rb +33 -0
  11. data/lib/openai/models/chat/chat_completion_allowed_tools.rb +64 -0
  12. data/lib/openai/models/chat/chat_completion_assistant_message_param.rb +3 -5
  13. data/lib/openai/models/chat/chat_completion_custom_tool.rb +163 -0
  14. data/lib/openai/models/chat/chat_completion_function_tool.rb +29 -0
  15. data/lib/openai/models/chat/chat_completion_message.rb +3 -5
  16. data/lib/openai/models/chat/chat_completion_message_custom_tool_call.rb +60 -0
  17. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +73 -0
  18. data/lib/openai/models/chat/chat_completion_message_tool_call.rb +10 -56
  19. data/lib/openai/models/chat/chat_completion_named_tool_choice.rb +2 -2
  20. data/lib/openai/models/chat/chat_completion_named_tool_choice_custom.rb +42 -0
  21. data/lib/openai/models/chat/chat_completion_stream_options.rb +14 -1
  22. data/lib/openai/models/chat/chat_completion_tool.rb +12 -14
  23. data/lib/openai/models/chat/chat_completion_tool_choice_option.rb +7 -1
  24. data/lib/openai/models/chat/completion_create_params.rb +35 -12
  25. data/lib/openai/models/chat_model.rb +7 -0
  26. data/lib/openai/models/custom_tool_input_format.rb +76 -0
  27. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +3 -3
  28. data/lib/openai/models/evals/run_cancel_response.rb +2 -2
  29. data/lib/openai/models/evals/run_create_params.rb +2 -2
  30. data/lib/openai/models/evals/run_create_response.rb +2 -2
  31. data/lib/openai/models/evals/run_list_response.rb +2 -2
  32. data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
  33. data/lib/openai/models/reasoning.rb +4 -5
  34. data/lib/openai/models/reasoning_effort.rb +4 -4
  35. data/lib/openai/models/response_format_text_grammar.rb +27 -0
  36. data/lib/openai/models/response_format_text_python.rb +20 -0
  37. data/lib/openai/models/responses/custom_tool.rb +48 -0
  38. data/lib/openai/models/responses/response.rb +20 -12
  39. data/lib/openai/models/responses/response_create_params.rb +48 -10
  40. data/lib/openai/models/responses/response_custom_tool_call.rb +55 -0
  41. data/lib/openai/models/responses/response_custom_tool_call_input_delta_event.rb +52 -0
  42. data/lib/openai/models/responses/response_custom_tool_call_input_done_event.rb +52 -0
  43. data/lib/openai/models/responses/response_custom_tool_call_output.rb +47 -0
  44. data/lib/openai/models/responses/response_input_item.rb +7 -1
  45. data/lib/openai/models/responses/response_output_item.rb +4 -1
  46. data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
  47. data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
  48. data/lib/openai/models/responses/response_reasoning_item.rb +36 -5
  49. data/lib/openai/models/responses/response_reasoning_text_delta_event.rb +63 -0
  50. data/lib/openai/models/responses/response_reasoning_text_done_event.rb +63 -0
  51. data/lib/openai/models/responses/response_retrieve_params.rb +14 -1
  52. data/lib/openai/models/responses/response_stream_event.rb +13 -11
  53. data/lib/openai/models/responses/response_text_config.rb +27 -1
  54. data/lib/openai/models/responses/tool.rb +5 -1
  55. data/lib/openai/models/responses/tool_choice_allowed.rb +73 -0
  56. data/lib/openai/models/responses/tool_choice_custom.rb +28 -0
  57. data/lib/openai/models/vector_store_search_params.rb +6 -1
  58. data/lib/openai/models.rb +6 -0
  59. data/lib/openai/resources/beta/assistants.rb +2 -2
  60. data/lib/openai/resources/beta/threads/runs.rb +2 -2
  61. data/lib/openai/resources/chat/completions.rb +16 -10
  62. data/lib/openai/resources/responses.rb +38 -22
  63. data/lib/openai/version.rb +1 -1
  64. data/lib/openai.rb +19 -2
  65. data/rbi/openai/internal/transport/base_client.rbi +1 -1
  66. data/rbi/openai/models/beta/assistant_create_params.rbi +6 -8
  67. data/rbi/openai/models/beta/assistant_update_params.rbi +36 -8
  68. data/rbi/openai/models/beta/threads/run_create_params.rbi +6 -8
  69. data/rbi/openai/models/chat/chat_completion_allowed_tool_choice.rbi +60 -0
  70. data/rbi/openai/models/chat/chat_completion_allowed_tools.rbi +118 -0
  71. data/rbi/openai/models/chat/chat_completion_assistant_message_param.rbi +27 -4
  72. data/rbi/openai/models/chat/chat_completion_custom_tool.rbi +335 -0
  73. data/rbi/openai/models/chat/chat_completion_function_tool.rbi +51 -0
  74. data/rbi/openai/models/chat/chat_completion_message.rbi +17 -4
  75. data/rbi/openai/models/chat/chat_completion_message_custom_tool_call.rbi +105 -0
  76. data/rbi/openai/models/chat/chat_completion_message_function_tool_call.rbi +118 -0
  77. data/rbi/openai/models/chat/chat_completion_message_tool_call.rbi +9 -92
  78. data/rbi/openai/models/chat/chat_completion_named_tool_choice.rbi +2 -2
  79. data/rbi/openai/models/chat/chat_completion_named_tool_choice_custom.rbi +89 -0
  80. data/rbi/openai/models/chat/chat_completion_stream_options.rbi +30 -2
  81. data/rbi/openai/models/chat/chat_completion_tool.rbi +11 -30
  82. data/rbi/openai/models/chat/chat_completion_tool_choice_option.rbi +3 -1
  83. data/rbi/openai/models/chat/completion_create_params.rbi +106 -25
  84. data/rbi/openai/models/chat_model.rbi +11 -0
  85. data/rbi/openai/models/custom_tool_input_format.rbi +136 -0
  86. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +8 -4
  87. data/rbi/openai/models/evals/run_cancel_response.rbi +2 -0
  88. data/rbi/openai/models/evals/run_create_params.rbi +4 -0
  89. data/rbi/openai/models/evals/run_create_response.rbi +2 -0
  90. data/rbi/openai/models/evals/run_list_response.rbi +2 -0
  91. data/rbi/openai/models/evals/run_retrieve_response.rbi +2 -0
  92. data/rbi/openai/models/reasoning.rbi +6 -8
  93. data/rbi/openai/models/reasoning_effort.rbi +4 -4
  94. data/rbi/openai/models/response_format_text_grammar.rbi +35 -0
  95. data/rbi/openai/models/response_format_text_python.rbi +30 -0
  96. data/rbi/openai/models/responses/custom_tool.rbi +96 -0
  97. data/rbi/openai/models/responses/response.rbi +15 -5
  98. data/rbi/openai/models/responses/response_create_params.rbi +94 -7
  99. data/rbi/openai/models/responses/response_custom_tool_call.rbi +78 -0
  100. data/rbi/openai/models/responses/response_custom_tool_call_input_delta_event.rbi +75 -0
  101. data/rbi/openai/models/responses/response_custom_tool_call_input_done_event.rbi +75 -0
  102. data/rbi/openai/models/responses/response_custom_tool_call_output.rbi +65 -0
  103. data/rbi/openai/models/responses/response_input_item.rbi +2 -0
  104. data/rbi/openai/models/responses/response_output_item.rbi +2 -1
  105. data/rbi/openai/models/responses/response_output_item_added_event.rbi +2 -1
  106. data/rbi/openai/models/responses/response_output_item_done_event.rbi +2 -1
  107. data/rbi/openai/models/responses/response_reasoning_item.rbi +63 -4
  108. data/rbi/openai/models/responses/response_reasoning_text_delta_event.rbi +83 -0
  109. data/rbi/openai/models/responses/{response_reasoning_summary_done_event.rbi → response_reasoning_text_done_event.rbi} +20 -20
  110. data/rbi/openai/models/responses/response_retrieve_params.rbi +21 -0
  111. data/rbi/openai/models/responses/response_stream_event.rbi +4 -2
  112. data/rbi/openai/models/responses/response_text_config.rbi +64 -1
  113. data/rbi/openai/models/responses/tool.rbi +1 -0
  114. data/rbi/openai/models/responses/tool_choice_allowed.rbi +124 -0
  115. data/rbi/openai/models/responses/tool_choice_custom.rbi +39 -0
  116. data/rbi/openai/models/vector_store_search_params.rbi +12 -1
  117. data/rbi/openai/models.rbi +6 -0
  118. data/rbi/openai/resources/beta/assistants.rbi +6 -8
  119. data/rbi/openai/resources/beta/threads/runs.rbi +8 -10
  120. data/rbi/openai/resources/chat/completions.rbi +44 -19
  121. data/rbi/openai/resources/responses.rbi +215 -41
  122. data/sig/openai/internal/transport/base_client.rbs +1 -1
  123. data/sig/openai/models/beta/assistant_update_params.rbs +12 -0
  124. data/sig/openai/models/chat/chat_completion_allowed_tool_choice.rbs +29 -0
  125. data/sig/openai/models/chat/chat_completion_allowed_tools.rbs +38 -0
  126. data/sig/openai/models/chat/chat_completion_assistant_message_param.rbs +6 -6
  127. data/sig/openai/models/chat/chat_completion_custom_tool.rbs +137 -0
  128. data/sig/openai/models/chat/chat_completion_function_tool.rbs +26 -0
  129. data/sig/openai/models/chat/chat_completion_message.rbs +6 -6
  130. data/sig/openai/models/chat/chat_completion_message_custom_tool_call.rbs +46 -0
  131. data/sig/openai/models/chat/chat_completion_message_function_tool_call.rbs +46 -0
  132. data/sig/openai/models/chat/chat_completion_message_tool_call.rbs +6 -35
  133. data/sig/openai/models/chat/chat_completion_named_tool_choice_custom.rbs +39 -0
  134. data/sig/openai/models/chat/chat_completion_stream_options.rbs +11 -3
  135. data/sig/openai/models/chat/chat_completion_tool.rbs +6 -15
  136. data/sig/openai/models/chat/chat_completion_tool_choice_option.rbs +2 -0
  137. data/sig/openai/models/chat/completion_create_params.rbs +23 -6
  138. data/sig/openai/models/chat_model.rbs +15 -1
  139. data/sig/openai/models/custom_tool_input_format.rbs +61 -0
  140. data/sig/openai/models/evals/create_eval_completions_run_data_source.rbs +6 -6
  141. data/sig/openai/models/reasoning_effort.rbs +2 -1
  142. data/sig/openai/models/response_format_text_grammar.rbs +15 -0
  143. data/sig/openai/models/response_format_text_python.rbs +13 -0
  144. data/sig/openai/models/responses/custom_tool.rbs +43 -0
  145. data/sig/openai/models/responses/response.rbs +2 -0
  146. data/sig/openai/models/responses/response_create_params.rbs +19 -0
  147. data/sig/openai/models/responses/response_custom_tool_call.rbs +44 -0
  148. data/sig/openai/models/responses/response_custom_tool_call_input_delta_event.rbs +42 -0
  149. data/sig/openai/models/responses/response_custom_tool_call_input_done_event.rbs +42 -0
  150. data/sig/openai/models/responses/response_custom_tool_call_output.rbs +39 -0
  151. data/sig/openai/models/responses/response_input_item.rbs +2 -0
  152. data/sig/openai/models/responses/response_output_item.rbs +1 -0
  153. data/sig/openai/models/responses/response_reasoning_item.rbs +21 -0
  154. data/sig/openai/models/responses/{response_reasoning_summary_delta_event.rbs → response_reasoning_text_delta_event.rbs} +15 -15
  155. data/sig/openai/models/responses/{response_reasoning_summary_done_event.rbs → response_reasoning_text_done_event.rbs} +11 -11
  156. data/sig/openai/models/responses/response_retrieve_params.rbs +7 -0
  157. data/sig/openai/models/responses/response_stream_event.rbs +4 -2
  158. data/sig/openai/models/responses/response_text_config.rbs +22 -3
  159. data/sig/openai/models/responses/tool.rbs +1 -0
  160. data/sig/openai/models/responses/tool_choice_allowed.rbs +43 -0
  161. data/sig/openai/models/responses/tool_choice_custom.rbs +17 -0
  162. data/sig/openai/models/vector_store_search_params.rbs +2 -1
  163. data/sig/openai/models.rbs +6 -0
  164. data/sig/openai/resources/chat/completions.rbs +4 -2
  165. data/sig/openai/resources/responses.rbs +32 -0
  166. metadata +59 -8
  167. data/lib/openai/models/responses/response_reasoning_summary_delta_event.rb +0 -65
  168. data/lib/openai/models/responses/response_reasoning_summary_done_event.rb +0 -60
  169. data/rbi/openai/models/responses/response_reasoning_summary_delta_event.rbi +0 -85
@@ -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
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ResponseReasoningTextDoneEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute content_index
8
+ # The index of the reasoning content part.
9
+ #
10
+ # @return [Integer]
11
+ required :content_index, Integer
12
+
13
+ # @!attribute item_id
14
+ # The ID of the item this reasoning text is associated with.
15
+ #
16
+ # @return [String]
17
+ required :item_id, String
18
+
19
+ # @!attribute output_index
20
+ # The index of the output item this reasoning text is associated with.
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 text
32
+ # The full text of the completed reasoning content.
33
+ #
34
+ # @return [String]
35
+ required :text, String
36
+
37
+ # @!attribute type
38
+ # The type of the event. Always `response.reasoning_text.done`.
39
+ #
40
+ # @return [Symbol, :"response.reasoning_text.done"]
41
+ required :type, const: :"response.reasoning_text.done"
42
+
43
+ # @!method initialize(content_index:, item_id:, output_index:, sequence_number:, text:, type: :"response.reasoning_text.done")
44
+ # Some parameter documentations has been truncated, see
45
+ # {OpenAI::Models::Responses::ResponseReasoningTextDoneEvent} for more details.
46
+ #
47
+ # Emitted when a reasoning text is completed.
48
+ #
49
+ # @param content_index [Integer] The index of the reasoning content part.
50
+ #
51
+ # @param item_id [String] The ID of the item this reasoning text is associated with.
52
+ #
53
+ # @param output_index [Integer] The index of the output item this reasoning text is associated with.
54
+ #
55
+ # @param sequence_number [Integer] The sequence number of this event.
56
+ #
57
+ # @param text [String] The full text of the completed reasoning content.
58
+ #
59
+ # @param type [Symbol, :"response.reasoning_text.done"] The type of the event. Always `response.reasoning_text.done`.
60
+ end
61
+ end
62
+ end
63
+ end
@@ -17,18 +17,31 @@ module OpenAI
17
17
  # @return [Array<Symbol, OpenAI::Models::Responses::ResponseIncludable>, nil]
18
18
  optional :include, -> { OpenAI::Internal::Type::ArrayOf[enum: OpenAI::Responses::ResponseIncludable] }
19
19
 
20
+ # @!attribute include_obfuscation
21
+ # When true, stream obfuscation will be enabled. Stream obfuscation adds random
22
+ # characters to an `obfuscation` field on streaming delta events to normalize
23
+ # payload sizes as a mitigation to certain side-channel attacks. These obfuscation
24
+ # fields are included by default, but add a small amount of overhead to the data
25
+ # stream. You can set `include_obfuscation` to false to optimize for bandwidth if
26
+ # you trust the network links between your application and the OpenAI API.
27
+ #
28
+ # @return [Boolean, nil]
29
+ optional :include_obfuscation, OpenAI::Internal::Type::Boolean
30
+
20
31
  # @!attribute starting_after
21
32
  # The sequence number of the event after which to start streaming.
22
33
  #
23
34
  # @return [Integer, nil]
24
35
  optional :starting_after, Integer
25
36
 
26
- # @!method initialize(include: nil, starting_after: nil, request_options: {})
37
+ # @!method initialize(include: nil, include_obfuscation: nil, starting_after: nil, request_options: {})
27
38
  # Some parameter documentations has been truncated, see
28
39
  # {OpenAI::Models::Responses::ResponseRetrieveParams} for more details.
29
40
  #
30
41
  # @param include [Array<Symbol, OpenAI::Models::Responses::ResponseIncludable>] Additional fields to include in the response. See the `include`
31
42
  #
43
+ # @param include_obfuscation [Boolean] When true, stream obfuscation will be enabled. Stream obfuscation adds
44
+ #
32
45
  # @param starting_after [Integer] The sequence number of the event after which to start streaming.
33
46
  #
34
47
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
@@ -110,6 +110,12 @@ module OpenAI
110
110
  variant :"response.reasoning_summary_text.done",
111
111
  -> { OpenAI::Responses::ResponseReasoningSummaryTextDoneEvent }
112
112
 
113
+ # Emitted when a delta is added to a reasoning text.
114
+ variant :"response.reasoning_text.delta", -> { OpenAI::Responses::ResponseReasoningTextDeltaEvent }
115
+
116
+ # Emitted when a reasoning text is completed.
117
+ variant :"response.reasoning_text.done", -> { OpenAI::Responses::ResponseReasoningTextDoneEvent }
118
+
113
119
  # Emitted when there is a partial refusal text.
114
120
  variant :"response.refusal.delta", -> { OpenAI::Responses::ResponseRefusalDeltaEvent }
115
121
 
@@ -191,20 +197,16 @@ module OpenAI
191
197
  # Emitted when a response is queued and waiting to be processed.
192
198
  variant :"response.queued", -> { OpenAI::Responses::ResponseQueuedEvent }
193
199
 
194
- # Emitted when there is a delta (partial update) to the reasoning summary content.
195
- variant :"response.reasoning_summary.delta",
196
- -> {
197
- OpenAI::Responses::ResponseReasoningSummaryDeltaEvent
198
- }
200
+ # Event representing a delta (partial update) to the input of a custom tool call.
201
+ variant :"response.custom_tool_call_input.delta",
202
+ -> { OpenAI::Responses::ResponseCustomToolCallInputDeltaEvent }
199
203
 
200
- # Emitted when the reasoning summary content is finalized for an item.
201
- variant :"response.reasoning_summary.done",
202
- -> {
203
- OpenAI::Responses::ResponseReasoningSummaryDoneEvent
204
- }
204
+ # Event indicating that input for a custom tool call is complete.
205
+ variant :"response.custom_tool_call_input.done",
206
+ -> { OpenAI::Responses::ResponseCustomToolCallInputDoneEvent }
205
207
 
206
208
  # @!method self.variants
207
- # @return [Array(OpenAI::Models::Responses::ResponseAudioDeltaEvent, OpenAI::Models::Responses::ResponseAudioDoneEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Responses::ResponseCompletedEvent, OpenAI::Models::Responses::ResponseContentPartAddedEvent, OpenAI::Models::Responses::ResponseContentPartDoneEvent, OpenAI::Models::Responses::ResponseCreatedEvent, OpenAI::Models::Responses::ResponseErrorEvent, OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseInProgressEvent, OpenAI::Models::Responses::ResponseFailedEvent, OpenAI::Models::Responses::ResponseIncompleteEvent, OpenAI::Models::Responses::ResponseOutputItemAddedEvent, OpenAI::Models::Responses::ResponseOutputItemDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Responses::ResponseRefusalDeltaEvent, OpenAI::Models::Responses::ResponseRefusalDoneEvent, OpenAI::Models::Responses::ResponseTextDeltaEvent, OpenAI::Models::Responses::ResponseTextDoneEvent, OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseImageGenCallCompletedEvent, OpenAI::Models::Responses::ResponseImageGenCallGeneratingEvent, OpenAI::Models::Responses::ResponseImageGenCallInProgressEvent, OpenAI::Models::Responses::ResponseImageGenCallPartialImageEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseMcpCallCompletedEvent, OpenAI::Models::Responses::ResponseMcpCallFailedEvent, OpenAI::Models::Responses::ResponseMcpCallInProgressEvent, OpenAI::Models::Responses::ResponseMcpListToolsCompletedEvent, OpenAI::Models::Responses::ResponseMcpListToolsFailedEvent, OpenAI::Models::Responses::ResponseMcpListToolsInProgressEvent, OpenAI::Models::Responses::ResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Responses::ResponseQueuedEvent, OpenAI::Models::Responses::ResponseReasoningSummaryDeltaEvent, OpenAI::Models::Responses::ResponseReasoningSummaryDoneEvent)]
209
+ # @return [Array(OpenAI::Models::Responses::ResponseAudioDeltaEvent, OpenAI::Models::Responses::ResponseAudioDoneEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Responses::ResponseCompletedEvent, OpenAI::Models::Responses::ResponseContentPartAddedEvent, OpenAI::Models::Responses::ResponseContentPartDoneEvent, OpenAI::Models::Responses::ResponseCreatedEvent, OpenAI::Models::Responses::ResponseErrorEvent, OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseInProgressEvent, OpenAI::Models::Responses::ResponseFailedEvent, OpenAI::Models::Responses::ResponseIncompleteEvent, OpenAI::Models::Responses::ResponseOutputItemAddedEvent, OpenAI::Models::Responses::ResponseOutputItemDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Responses::ResponseReasoningTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningTextDoneEvent, OpenAI::Models::Responses::ResponseRefusalDeltaEvent, OpenAI::Models::Responses::ResponseRefusalDoneEvent, OpenAI::Models::Responses::ResponseTextDeltaEvent, OpenAI::Models::Responses::ResponseTextDoneEvent, OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseImageGenCallCompletedEvent, OpenAI::Models::Responses::ResponseImageGenCallGeneratingEvent, OpenAI::Models::Responses::ResponseImageGenCallInProgressEvent, OpenAI::Models::Responses::ResponseImageGenCallPartialImageEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseMcpCallCompletedEvent, OpenAI::Models::Responses::ResponseMcpCallFailedEvent, OpenAI::Models::Responses::ResponseMcpCallInProgressEvent, OpenAI::Models::Responses::ResponseMcpListToolsCompletedEvent, OpenAI::Models::Responses::ResponseMcpListToolsFailedEvent, OpenAI::Models::Responses::ResponseMcpListToolsInProgressEvent, OpenAI::Models::Responses::ResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Responses::ResponseQueuedEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDoneEvent)]
208
210
  end
209
211
  end
210
212
  end
@@ -22,7 +22,15 @@ module OpenAI
22
22
  # @return [OpenAI::Models::ResponseFormatText, OpenAI::Models::Responses::ResponseFormatTextJSONSchemaConfig, OpenAI::Models::ResponseFormatJSONObject, nil]
23
23
  optional :format_, union: -> { OpenAI::Responses::ResponseFormatTextConfig }, api_name: :format
24
24
 
25
- # @!method initialize(format_: nil)
25
+ # @!attribute verbosity
26
+ # Constrains the verbosity of the model's response. Lower values will result in
27
+ # more concise responses, while higher values will result in more verbose
28
+ # responses. Currently supported values are `low`, `medium`, and `high`.
29
+ #
30
+ # @return [Symbol, OpenAI::Models::Responses::ResponseTextConfig::Verbosity, nil]
31
+ optional :verbosity, enum: -> { OpenAI::Responses::ResponseTextConfig::Verbosity }, nil?: true
32
+
33
+ # @!method initialize(format_: nil, verbosity: nil)
26
34
  # Some parameter documentations has been truncated, see
27
35
  # {OpenAI::Models::Responses::ResponseTextConfig} for more details.
28
36
  #
@@ -33,6 +41,24 @@ module OpenAI
33
41
  # - [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)
34
42
  #
35
43
  # @param format_ [OpenAI::Models::ResponseFormatText, OpenAI::Models::Responses::ResponseFormatTextJSONSchemaConfig, OpenAI::Models::ResponseFormatJSONObject] An object specifying the format that the model must output.
44
+ #
45
+ # @param verbosity [Symbol, OpenAI::Models::Responses::ResponseTextConfig::Verbosity, nil] Constrains the verbosity of the model's response. Lower values will result in
46
+
47
+ # Constrains the verbosity of the model's response. Lower values will result in
48
+ # more concise responses, while higher values will result in more verbose
49
+ # responses. Currently supported values are `low`, `medium`, and `high`.
50
+ #
51
+ # @see OpenAI::Models::Responses::ResponseTextConfig#verbosity
52
+ module Verbosity
53
+ extend OpenAI::Internal::Type::Enum
54
+
55
+ LOW = :low
56
+ MEDIUM = :medium
57
+ HIGH = :high
58
+
59
+ # @!method self.values
60
+ # @return [Array<Symbol>]
61
+ end
36
62
  end
37
63
  end
38
64
  end
@@ -33,6 +33,10 @@ module OpenAI
33
33
  # A tool that allows the model to execute shell commands in a local environment.
34
34
  variant :local_shell, -> { OpenAI::Responses::Tool::LocalShell }
35
35
 
36
+ # A custom tool that processes input using a specified format. Learn more about
37
+ # [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools).
38
+ variant :custom, -> { OpenAI::Responses::CustomTool }
39
+
36
40
  # This tool searches the web for relevant results to use in a response. Learn more about the [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
37
41
  variant -> { OpenAI::Responses::WebSearchTool }
38
42
 
@@ -542,7 +546,7 @@ module OpenAI
542
546
  end
543
547
 
544
548
  # @!method self.variants
545
- # @return [Array(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::WebSearchTool)]
549
+ # @return [Array(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)]
546
550
  end
547
551
  end
548
552
  end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ToolChoiceAllowed < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute mode
8
+ # Constrains the tools available to the model to a pre-defined set.
9
+ #
10
+ # `auto` allows the model to pick from among the allowed tools and generate a
11
+ # message.
12
+ #
13
+ # `required` requires the model to call one or more of the allowed tools.
14
+ #
15
+ # @return [Symbol, OpenAI::Models::Responses::ToolChoiceAllowed::Mode]
16
+ required :mode, enum: -> { OpenAI::Responses::ToolChoiceAllowed::Mode }
17
+
18
+ # @!attribute tools
19
+ # A list of tool definitions that the model should be allowed to call.
20
+ #
21
+ # For the Responses API, the list of tool definitions might look like:
22
+ #
23
+ # ```json
24
+ # [
25
+ # { "type": "function", "name": "get_weather" },
26
+ # { "type": "mcp", "server_label": "deepwiki" },
27
+ # { "type": "image_generation" }
28
+ # ]
29
+ # ```
30
+ #
31
+ # @return [Array<Hash{Symbol=>Object}>]
32
+ required :tools,
33
+ OpenAI::Internal::Type::ArrayOf[OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Unknown]]
34
+
35
+ # @!attribute type
36
+ # Allowed tool configuration type. Always `allowed_tools`.
37
+ #
38
+ # @return [Symbol, :allowed_tools]
39
+ required :type, const: :allowed_tools
40
+
41
+ # @!method initialize(mode:, tools:, type: :allowed_tools)
42
+ # Some parameter documentations has been truncated, see
43
+ # {OpenAI::Models::Responses::ToolChoiceAllowed} for more details.
44
+ #
45
+ # Constrains the tools available to the model to a pre-defined set.
46
+ #
47
+ # @param mode [Symbol, OpenAI::Models::Responses::ToolChoiceAllowed::Mode] Constrains the tools available to the model to a pre-defined set.
48
+ #
49
+ # @param tools [Array<Hash{Symbol=>Object}>] A list of tool definitions that the model should be allowed to call.
50
+ #
51
+ # @param type [Symbol, :allowed_tools] Allowed tool configuration type. Always `allowed_tools`.
52
+
53
+ # Constrains the tools available to the model to a pre-defined set.
54
+ #
55
+ # `auto` allows the model to pick from among the allowed tools and generate a
56
+ # message.
57
+ #
58
+ # `required` requires the model to call one or more of the allowed tools.
59
+ #
60
+ # @see OpenAI::Models::Responses::ToolChoiceAllowed#mode
61
+ module Mode
62
+ extend OpenAI::Internal::Type::Enum
63
+
64
+ AUTO = :auto
65
+ REQUIRED = :required
66
+
67
+ # @!method self.values
68
+ # @return [Array<Symbol>]
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end