openai 0.9.0 → 0.11.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 (164) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/README.md +79 -1
  4. data/lib/openai/client.rb +11 -0
  5. data/lib/openai/errors.rb +25 -0
  6. data/lib/openai/internal/type/array_of.rb +6 -1
  7. data/lib/openai/internal/type/base_model.rb +76 -24
  8. data/lib/openai/internal/type/boolean.rb +7 -1
  9. data/lib/openai/internal/type/converter.rb +42 -34
  10. data/lib/openai/internal/type/enum.rb +10 -2
  11. data/lib/openai/internal/type/file_input.rb +6 -1
  12. data/lib/openai/internal/type/hash_of.rb +6 -1
  13. data/lib/openai/internal/type/union.rb +12 -7
  14. data/lib/openai/internal/type/unknown.rb +7 -1
  15. data/lib/openai/models/all_models.rb +4 -0
  16. data/lib/openai/models/audio/speech_create_params.rb +23 -2
  17. data/lib/openai/models/audio/transcription.rb +118 -1
  18. data/lib/openai/models/audio/transcription_text_done_event.rb +80 -1
  19. data/lib/openai/models/audio/transcription_verbose.rb +31 -1
  20. data/lib/openai/models/chat/chat_completion.rb +32 -31
  21. data/lib/openai/models/chat/chat_completion_chunk.rb +30 -29
  22. data/lib/openai/models/chat/completion_create_params.rb +34 -31
  23. data/lib/openai/models/fine_tuning/checkpoints/permission_retrieve_response.rb +60 -25
  24. data/lib/openai/models/images_response.rb +92 -1
  25. data/lib/openai/models/responses/response.rb +59 -35
  26. data/lib/openai/models/responses/response_code_interpreter_call_code_delta_event.rb +17 -8
  27. data/lib/openai/models/responses/response_code_interpreter_call_code_done_event.rb +14 -10
  28. data/lib/openai/models/responses/response_code_interpreter_call_completed_event.rb +11 -10
  29. data/lib/openai/models/responses/response_code_interpreter_call_in_progress_event.rb +11 -10
  30. data/lib/openai/models/responses/response_code_interpreter_call_interpreting_event.rb +11 -10
  31. data/lib/openai/models/responses/response_code_interpreter_tool_call.rb +49 -78
  32. data/lib/openai/models/responses/response_create_params.rb +92 -67
  33. data/lib/openai/models/responses/response_function_web_search.rb +115 -1
  34. data/lib/openai/models/responses/response_includable.rb +8 -6
  35. data/lib/openai/models/responses/response_output_text.rb +18 -2
  36. data/lib/openai/models/responses/response_stream_event.rb +2 -2
  37. data/lib/openai/models/responses/tool_choice_mcp.rb +40 -0
  38. data/lib/openai/models/responses/tool_choice_types.rb +0 -3
  39. data/lib/openai/models/responses_model.rb +4 -0
  40. data/lib/openai/models/webhooks/batch_cancelled_webhook_event.rb +84 -0
  41. data/lib/openai/models/webhooks/batch_completed_webhook_event.rb +84 -0
  42. data/lib/openai/models/webhooks/batch_expired_webhook_event.rb +84 -0
  43. data/lib/openai/models/webhooks/batch_failed_webhook_event.rb +84 -0
  44. data/lib/openai/models/webhooks/eval_run_canceled_webhook_event.rb +84 -0
  45. data/lib/openai/models/webhooks/eval_run_failed_webhook_event.rb +84 -0
  46. data/lib/openai/models/webhooks/eval_run_succeeded_webhook_event.rb +84 -0
  47. data/lib/openai/models/webhooks/fine_tuning_job_cancelled_webhook_event.rb +85 -0
  48. data/lib/openai/models/webhooks/fine_tuning_job_failed_webhook_event.rb +85 -0
  49. data/lib/openai/models/webhooks/fine_tuning_job_succeeded_webhook_event.rb +85 -0
  50. data/lib/openai/models/webhooks/response_cancelled_webhook_event.rb +85 -0
  51. data/lib/openai/models/webhooks/response_completed_webhook_event.rb +85 -0
  52. data/lib/openai/models/webhooks/response_failed_webhook_event.rb +84 -0
  53. data/lib/openai/models/webhooks/response_incomplete_webhook_event.rb +85 -0
  54. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +59 -0
  55. data/lib/openai/models/webhooks/webhook_unwrap_params.rb +16 -0
  56. data/lib/openai/models.rb +2 -0
  57. data/lib/openai/resources/audio/speech.rb +3 -1
  58. data/lib/openai/resources/chat/completions.rb +10 -2
  59. data/lib/openai/resources/fine_tuning/checkpoints/permissions.rb +1 -2
  60. data/lib/openai/resources/responses.rb +24 -16
  61. data/lib/openai/resources/webhooks.rb +124 -0
  62. data/lib/openai/version.rb +1 -1
  63. data/lib/openai.rb +18 -0
  64. data/rbi/openai/client.rbi +3 -0
  65. data/rbi/openai/errors.rbi +16 -0
  66. data/rbi/openai/internal/type/boolean.rbi +2 -0
  67. data/rbi/openai/internal/type/converter.rbi +15 -15
  68. data/rbi/openai/internal/type/union.rbi +5 -0
  69. data/rbi/openai/internal/type/unknown.rbi +2 -0
  70. data/rbi/openai/models/all_models.rbi +20 -0
  71. data/rbi/openai/models/audio/speech_create_params.rbi +59 -2
  72. data/rbi/openai/models/audio/transcription.rbi +213 -3
  73. data/rbi/openai/models/audio/transcription_text_done_event.rbi +146 -1
  74. data/rbi/openai/models/audio/transcription_verbose.rbi +47 -0
  75. data/rbi/openai/models/chat/chat_completion.rbi +47 -42
  76. data/rbi/openai/models/chat/chat_completion_chunk.rbi +47 -42
  77. data/rbi/openai/models/chat/completion_create_params.rbi +51 -42
  78. data/rbi/openai/models/fine_tuning/checkpoints/permission_retrieve_response.rbi +95 -26
  79. data/rbi/openai/models/images_response.rbi +146 -0
  80. data/rbi/openai/models/responses/response.rbi +75 -44
  81. data/rbi/openai/models/responses/response_code_interpreter_call_code_delta_event.rbi +17 -7
  82. data/rbi/openai/models/responses/response_code_interpreter_call_code_done_event.rbi +13 -5
  83. data/rbi/openai/models/responses/response_code_interpreter_call_completed_event.rbi +13 -21
  84. data/rbi/openai/models/responses/response_code_interpreter_call_in_progress_event.rbi +13 -21
  85. data/rbi/openai/models/responses/response_code_interpreter_call_interpreting_event.rbi +13 -21
  86. data/rbi/openai/models/responses/response_code_interpreter_tool_call.rbi +83 -125
  87. data/rbi/openai/models/responses/response_create_params.rbi +174 -115
  88. data/rbi/openai/models/responses/response_function_web_search.rbi +163 -0
  89. data/rbi/openai/models/responses/response_includable.rbi +17 -11
  90. data/rbi/openai/models/responses/response_output_text.rbi +26 -4
  91. data/rbi/openai/models/responses/tool_choice_mcp.rbi +53 -0
  92. data/rbi/openai/models/responses/tool_choice_types.rbi +0 -5
  93. data/rbi/openai/models/responses_model.rbi +20 -0
  94. data/rbi/openai/models/webhooks/batch_cancelled_webhook_event.rbi +154 -0
  95. data/rbi/openai/models/webhooks/batch_completed_webhook_event.rbi +154 -0
  96. data/rbi/openai/models/webhooks/batch_expired_webhook_event.rbi +150 -0
  97. data/rbi/openai/models/webhooks/batch_failed_webhook_event.rbi +149 -0
  98. data/rbi/openai/models/webhooks/eval_run_canceled_webhook_event.rbi +154 -0
  99. data/rbi/openai/models/webhooks/eval_run_failed_webhook_event.rbi +151 -0
  100. data/rbi/openai/models/webhooks/eval_run_succeeded_webhook_event.rbi +154 -0
  101. data/rbi/openai/models/webhooks/fine_tuning_job_cancelled_webhook_event.rbi +158 -0
  102. data/rbi/openai/models/webhooks/fine_tuning_job_failed_webhook_event.rbi +156 -0
  103. data/rbi/openai/models/webhooks/fine_tuning_job_succeeded_webhook_event.rbi +158 -0
  104. data/rbi/openai/models/webhooks/response_cancelled_webhook_event.rbi +154 -0
  105. data/rbi/openai/models/webhooks/response_completed_webhook_event.rbi +154 -0
  106. data/rbi/openai/models/webhooks/response_failed_webhook_event.rbi +154 -0
  107. data/rbi/openai/models/webhooks/response_incomplete_webhook_event.rbi +155 -0
  108. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +40 -0
  109. data/rbi/openai/models/webhooks/webhook_unwrap_params.rbi +32 -0
  110. data/rbi/openai/models.rbi +2 -0
  111. data/rbi/openai/resources/audio/speech.rbi +6 -1
  112. data/rbi/openai/resources/chat/completions.rbi +34 -30
  113. data/rbi/openai/resources/fine_tuning/checkpoints/permissions.rbi +1 -3
  114. data/rbi/openai/resources/responses.rbi +108 -84
  115. data/rbi/openai/resources/webhooks.rbi +68 -0
  116. data/sig/openai/client.rbs +2 -0
  117. data/sig/openai/errors.rbs +9 -0
  118. data/sig/openai/internal/type/converter.rbs +7 -1
  119. data/sig/openai/models/all_models.rbs +8 -0
  120. data/sig/openai/models/audio/speech_create_params.rbs +21 -1
  121. data/sig/openai/models/audio/transcription.rbs +95 -3
  122. data/sig/openai/models/audio/transcription_text_done_event.rbs +72 -2
  123. data/sig/openai/models/audio/transcription_verbose.rbs +21 -0
  124. data/sig/openai/models/chat/chat_completion.rbs +2 -1
  125. data/sig/openai/models/chat/chat_completion_chunk.rbs +2 -1
  126. data/sig/openai/models/chat/completion_create_params.rbs +2 -1
  127. data/sig/openai/models/fine_tuning/checkpoints/permission_retrieve_response.rbs +53 -16
  128. data/sig/openai/models/images_response.rbs +83 -0
  129. data/sig/openai/models/responses/response.rbs +13 -1
  130. data/sig/openai/models/responses/response_code_interpreter_call_code_delta_event.rbs +5 -0
  131. data/sig/openai/models/responses/response_code_interpreter_call_code_done_event.rbs +5 -0
  132. data/sig/openai/models/responses/response_code_interpreter_call_completed_event.rbs +4 -4
  133. data/sig/openai/models/responses/response_code_interpreter_call_in_progress_event.rbs +4 -4
  134. data/sig/openai/models/responses/response_code_interpreter_call_interpreting_event.rbs +4 -4
  135. data/sig/openai/models/responses/response_code_interpreter_tool_call.rbs +31 -52
  136. data/sig/openai/models/responses/response_create_params.rbs +31 -11
  137. data/sig/openai/models/responses/response_function_web_search.rbs +54 -0
  138. data/sig/openai/models/responses/response_includable.rbs +7 -5
  139. data/sig/openai/models/responses/response_output_text.rbs +15 -1
  140. data/sig/openai/models/responses/tool_choice_mcp.rbs +23 -0
  141. data/sig/openai/models/responses/tool_choice_types.rbs +0 -2
  142. data/sig/openai/models/responses_model.rbs +8 -0
  143. data/sig/openai/models/webhooks/batch_cancelled_webhook_event.rbs +66 -0
  144. data/sig/openai/models/webhooks/batch_completed_webhook_event.rbs +66 -0
  145. data/sig/openai/models/webhooks/batch_expired_webhook_event.rbs +66 -0
  146. data/sig/openai/models/webhooks/batch_failed_webhook_event.rbs +66 -0
  147. data/sig/openai/models/webhooks/eval_run_canceled_webhook_event.rbs +66 -0
  148. data/sig/openai/models/webhooks/eval_run_failed_webhook_event.rbs +66 -0
  149. data/sig/openai/models/webhooks/eval_run_succeeded_webhook_event.rbs +66 -0
  150. data/sig/openai/models/webhooks/fine_tuning_job_cancelled_webhook_event.rbs +66 -0
  151. data/sig/openai/models/webhooks/fine_tuning_job_failed_webhook_event.rbs +66 -0
  152. data/sig/openai/models/webhooks/fine_tuning_job_succeeded_webhook_event.rbs +66 -0
  153. data/sig/openai/models/webhooks/response_cancelled_webhook_event.rbs +66 -0
  154. data/sig/openai/models/webhooks/response_completed_webhook_event.rbs +66 -0
  155. data/sig/openai/models/webhooks/response_failed_webhook_event.rbs +66 -0
  156. data/sig/openai/models/webhooks/response_incomplete_webhook_event.rbs +66 -0
  157. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +27 -0
  158. data/sig/openai/models/webhooks/webhook_unwrap_params.rbs +17 -0
  159. data/sig/openai/models.rbs +2 -0
  160. data/sig/openai/resources/audio/speech.rbs +1 -0
  161. data/sig/openai/resources/fine_tuning/checkpoints/permissions.rbs +1 -1
  162. data/sig/openai/resources/responses.rbs +8 -4
  163. data/sig/openai/resources/webhooks.rbs +33 -0
  164. metadata +56 -2
@@ -4,51 +4,49 @@ module OpenAI
4
4
  type response_code_interpreter_tool_call =
5
5
  {
6
6
  id: String,
7
- code: String,
8
- results: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::result],
7
+ code: String?,
8
+ container_id: String,
9
+ outputs: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::output]?,
9
10
  status: OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::status,
10
- type: :code_interpreter_call,
11
- container_id: String
11
+ type: :code_interpreter_call
12
12
  }
13
13
 
14
14
  class ResponseCodeInterpreterToolCall < OpenAI::Internal::Type::BaseModel
15
15
  attr_accessor id: String
16
16
 
17
- attr_accessor code: String
17
+ attr_accessor code: String?
18
18
 
19
- attr_accessor results: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::result]
19
+ attr_accessor container_id: String
20
+
21
+ attr_accessor outputs: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::output]?
20
22
 
21
23
  attr_accessor status: OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::status
22
24
 
23
25
  attr_accessor type: :code_interpreter_call
24
26
 
25
- attr_reader container_id: String?
26
-
27
- def container_id=: (String) -> String
28
-
29
27
  def initialize: (
30
28
  id: String,
31
- code: String,
32
- results: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::result],
29
+ code: String?,
30
+ container_id: String,
31
+ outputs: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::output]?,
33
32
  status: OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::status,
34
- ?container_id: String,
35
33
  ?type: :code_interpreter_call
36
34
  ) -> void
37
35
 
38
36
  def to_hash: -> {
39
37
  id: String,
40
- code: String,
41
- results: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::result],
38
+ code: String?,
39
+ container_id: String,
40
+ outputs: ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::output]?,
42
41
  status: OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::status,
43
- type: :code_interpreter_call,
44
- container_id: String
42
+ type: :code_interpreter_call
45
43
  }
46
44
 
47
- type result =
48
- OpenAI::Responses::ResponseCodeInterpreterToolCall::Result::Logs
49
- | OpenAI::Responses::ResponseCodeInterpreterToolCall::Result::Files
45
+ type output =
46
+ OpenAI::Responses::ResponseCodeInterpreterToolCall::Output::Logs
47
+ | OpenAI::Responses::ResponseCodeInterpreterToolCall::Output::Image
50
48
 
51
- module Result
49
+ module Output
52
50
  extend OpenAI::Internal::Type::Union
53
51
 
54
52
  type logs = { logs: String, type: :logs }
@@ -63,51 +61,32 @@ module OpenAI
63
61
  def to_hash: -> { logs: String, type: :logs }
64
62
  end
65
63
 
66
- type files =
67
- {
68
- files: ::Array[OpenAI::Responses::ResponseCodeInterpreterToolCall::Result::Files::File],
69
- type: :files
70
- }
71
-
72
- class Files < OpenAI::Internal::Type::BaseModel
73
- attr_accessor files: ::Array[OpenAI::Responses::ResponseCodeInterpreterToolCall::Result::Files::File]
74
-
75
- attr_accessor type: :files
64
+ type image = { type: :image, url: String }
76
65
 
77
- def initialize: (
78
- files: ::Array[OpenAI::Responses::ResponseCodeInterpreterToolCall::Result::Files::File],
79
- ?type: :files
80
- ) -> void
66
+ class Image < OpenAI::Internal::Type::BaseModel
67
+ attr_accessor type: :image
81
68
 
82
- def to_hash: -> {
83
- files: ::Array[OpenAI::Responses::ResponseCodeInterpreterToolCall::Result::Files::File],
84
- type: :files
85
- }
69
+ attr_accessor url: String
86
70
 
87
- type file = { file_id: String, mime_type: String }
71
+ def initialize: (url: String, ?type: :image) -> void
88
72
 
89
- class File < OpenAI::Internal::Type::BaseModel
90
- attr_accessor file_id: String
91
-
92
- attr_accessor mime_type: String
93
-
94
- def initialize: (file_id: String, mime_type: String) -> void
95
-
96
- def to_hash: -> { file_id: String, mime_type: String }
97
- end
73
+ def to_hash: -> { type: :image, url: String }
98
74
  end
99
75
 
100
- def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::result]
76
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::output]
101
77
  end
102
78
 
103
- type status = :in_progress | :interpreting | :completed
79
+ type status =
80
+ :in_progress | :completed | :incomplete | :interpreting | :failed
104
81
 
105
82
  module Status
106
83
  extend OpenAI::Internal::Type::Enum
107
84
 
108
85
  IN_PROGRESS: :in_progress
109
- INTERPRETING: :interpreting
110
86
  COMPLETED: :completed
87
+ INCOMPLETE: :incomplete
88
+ INTERPRETING: :interpreting
89
+ FAILED: :failed
111
90
 
112
91
  def self?.values: -> ::Array[OpenAI::Models::Responses::ResponseCodeInterpreterToolCall::status]
113
92
  end
@@ -3,13 +3,14 @@ module OpenAI
3
3
  module Responses
4
4
  type response_create_params =
5
5
  {
6
- input: OpenAI::Models::Responses::ResponseCreateParams::input,
7
- model: OpenAI::Models::responses_model,
8
6
  background: bool?,
9
7
  include: ::Array[OpenAI::Models::Responses::response_includable]?,
8
+ input: OpenAI::Models::Responses::ResponseCreateParams::input,
10
9
  instructions: String?,
11
10
  max_output_tokens: Integer?,
11
+ max_tool_calls: Integer?,
12
12
  metadata: OpenAI::Models::metadata?,
13
+ model: OpenAI::Models::responses_model,
13
14
  parallel_tool_calls: bool?,
14
15
  previous_response_id: String?,
15
16
  prompt: OpenAI::Responses::ResponsePrompt?,
@@ -20,6 +21,7 @@ module OpenAI
20
21
  text: OpenAI::Responses::ResponseTextConfig,
21
22
  tool_choice: OpenAI::Models::Responses::ResponseCreateParams::tool_choice,
22
23
  tools: ::Array[OpenAI::Models::Responses::tool],
24
+ top_logprobs: Integer?,
23
25
  top_p: Float?,
24
26
  truncation: OpenAI::Models::Responses::ResponseCreateParams::truncation?,
25
27
  user: String
@@ -30,20 +32,30 @@ module OpenAI
30
32
  extend OpenAI::Internal::Type::RequestParameters::Converter
31
33
  include OpenAI::Internal::Type::RequestParameters
32
34
 
33
- attr_accessor input: OpenAI::Models::Responses::ResponseCreateParams::input
34
-
35
- attr_accessor model: OpenAI::Models::responses_model
36
-
37
35
  attr_accessor background: bool?
38
36
 
39
37
  attr_accessor include: ::Array[OpenAI::Models::Responses::response_includable]?
40
38
 
39
+ attr_reader input: OpenAI::Models::Responses::ResponseCreateParams::input?
40
+
41
+ def input=: (
42
+ OpenAI::Models::Responses::ResponseCreateParams::input
43
+ ) -> OpenAI::Models::Responses::ResponseCreateParams::input
44
+
41
45
  attr_accessor instructions: String?
42
46
 
43
47
  attr_accessor max_output_tokens: Integer?
44
48
 
49
+ attr_accessor max_tool_calls: Integer?
50
+
45
51
  attr_accessor metadata: OpenAI::Models::metadata?
46
52
 
53
+ attr_reader model: OpenAI::Models::responses_model?
54
+
55
+ def model=: (
56
+ OpenAI::Models::responses_model
57
+ ) -> OpenAI::Models::responses_model
58
+
47
59
  attr_accessor parallel_tool_calls: bool?
48
60
 
49
61
  attr_accessor previous_response_id: String?
@@ -76,6 +88,8 @@ module OpenAI
76
88
  ::Array[OpenAI::Models::Responses::tool]
77
89
  ) -> ::Array[OpenAI::Models::Responses::tool]
78
90
 
91
+ attr_accessor top_logprobs: Integer?
92
+
79
93
  attr_accessor top_p: Float?
80
94
 
81
95
  attr_accessor truncation: OpenAI::Models::Responses::ResponseCreateParams::truncation?
@@ -85,13 +99,14 @@ module OpenAI
85
99
  def user=: (String) -> String
86
100
 
87
101
  def initialize: (
88
- input: OpenAI::Models::Responses::ResponseCreateParams::input,
89
- model: OpenAI::Models::responses_model,
90
102
  ?background: bool?,
91
103
  ?include: ::Array[OpenAI::Models::Responses::response_includable]?,
104
+ ?input: OpenAI::Models::Responses::ResponseCreateParams::input,
92
105
  ?instructions: String?,
93
106
  ?max_output_tokens: Integer?,
107
+ ?max_tool_calls: Integer?,
94
108
  ?metadata: OpenAI::Models::metadata?,
109
+ ?model: OpenAI::Models::responses_model,
95
110
  ?parallel_tool_calls: bool?,
96
111
  ?previous_response_id: String?,
97
112
  ?prompt: OpenAI::Responses::ResponsePrompt?,
@@ -102,6 +117,7 @@ module OpenAI
102
117
  ?text: OpenAI::Responses::ResponseTextConfig,
103
118
  ?tool_choice: OpenAI::Models::Responses::ResponseCreateParams::tool_choice,
104
119
  ?tools: ::Array[OpenAI::Models::Responses::tool],
120
+ ?top_logprobs: Integer?,
105
121
  ?top_p: Float?,
106
122
  ?truncation: OpenAI::Models::Responses::ResponseCreateParams::truncation?,
107
123
  ?user: String,
@@ -109,13 +125,14 @@ module OpenAI
109
125
  ) -> void
110
126
 
111
127
  def to_hash: -> {
112
- input: OpenAI::Models::Responses::ResponseCreateParams::input,
113
- model: OpenAI::Models::responses_model,
114
128
  background: bool?,
115
129
  include: ::Array[OpenAI::Models::Responses::response_includable]?,
130
+ input: OpenAI::Models::Responses::ResponseCreateParams::input,
116
131
  instructions: String?,
117
132
  max_output_tokens: Integer?,
133
+ max_tool_calls: Integer?,
118
134
  metadata: OpenAI::Models::metadata?,
135
+ model: OpenAI::Models::responses_model,
119
136
  parallel_tool_calls: bool?,
120
137
  previous_response_id: String?,
121
138
  prompt: OpenAI::Responses::ResponsePrompt?,
@@ -126,6 +143,7 @@ module OpenAI
126
143
  text: OpenAI::Responses::ResponseTextConfig,
127
144
  tool_choice: OpenAI::Models::Responses::ResponseCreateParams::tool_choice,
128
145
  tools: ::Array[OpenAI::Models::Responses::tool],
146
+ top_logprobs: Integer?,
129
147
  top_p: Float?,
130
148
  truncation: OpenAI::Models::Responses::ResponseCreateParams::truncation?,
131
149
  user: String,
@@ -140,7 +158,7 @@ module OpenAI
140
158
  def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseCreateParams::input]
141
159
  end
142
160
 
143
- type service_tier = :auto | :default | :flex | :scale
161
+ type service_tier = :auto | :default | :flex | :scale | :priority
144
162
 
145
163
  module ServiceTier
146
164
  extend OpenAI::Internal::Type::Enum
@@ -149,6 +167,7 @@ module OpenAI
149
167
  DEFAULT: :default
150
168
  FLEX: :flex
151
169
  SCALE: :scale
170
+ PRIORITY: :priority
152
171
 
153
172
  def self?.values: -> ::Array[OpenAI::Models::Responses::ResponseCreateParams::service_tier]
154
173
  end
@@ -157,6 +176,7 @@ module OpenAI
157
176
  OpenAI::Models::Responses::tool_choice_options
158
177
  | OpenAI::Responses::ToolChoiceTypes
159
178
  | OpenAI::Responses::ToolChoiceFunction
179
+ | OpenAI::Responses::ToolChoiceMcp
160
180
 
161
181
  module ToolChoice
162
182
  extend OpenAI::Internal::Type::Union
@@ -4,6 +4,7 @@ module OpenAI
4
4
  type response_function_web_search =
5
5
  {
6
6
  id: String,
7
+ action: OpenAI::Models::Responses::ResponseFunctionWebSearch::action,
7
8
  status: OpenAI::Models::Responses::ResponseFunctionWebSearch::status,
8
9
  type: :web_search_call
9
10
  }
@@ -11,22 +12,75 @@ module OpenAI
11
12
  class ResponseFunctionWebSearch < OpenAI::Internal::Type::BaseModel
12
13
  attr_accessor id: String
13
14
 
15
+ attr_accessor action: OpenAI::Models::Responses::ResponseFunctionWebSearch::action
16
+
14
17
  attr_accessor status: OpenAI::Models::Responses::ResponseFunctionWebSearch::status
15
18
 
16
19
  attr_accessor type: :web_search_call
17
20
 
18
21
  def initialize: (
19
22
  id: String,
23
+ action: OpenAI::Models::Responses::ResponseFunctionWebSearch::action,
20
24
  status: OpenAI::Models::Responses::ResponseFunctionWebSearch::status,
21
25
  ?type: :web_search_call
22
26
  ) -> void
23
27
 
24
28
  def to_hash: -> {
25
29
  id: String,
30
+ action: OpenAI::Models::Responses::ResponseFunctionWebSearch::action,
26
31
  status: OpenAI::Models::Responses::ResponseFunctionWebSearch::status,
27
32
  type: :web_search_call
28
33
  }
29
34
 
35
+ type action =
36
+ OpenAI::Responses::ResponseFunctionWebSearch::Action::Search
37
+ | OpenAI::Responses::ResponseFunctionWebSearch::Action::OpenPage
38
+ | OpenAI::Responses::ResponseFunctionWebSearch::Action::Find
39
+
40
+ module Action
41
+ extend OpenAI::Internal::Type::Union
42
+
43
+ type search = { query: String, type: :search }
44
+
45
+ class Search < OpenAI::Internal::Type::BaseModel
46
+ attr_accessor query: String
47
+
48
+ attr_accessor type: :search
49
+
50
+ def initialize: (query: String, ?type: :search) -> void
51
+
52
+ def to_hash: -> { query: String, type: :search }
53
+ end
54
+
55
+ type open_page = { type: :open_page, url: String }
56
+
57
+ class OpenPage < OpenAI::Internal::Type::BaseModel
58
+ attr_accessor type: :open_page
59
+
60
+ attr_accessor url: String
61
+
62
+ def initialize: (url: String, ?type: :open_page) -> void
63
+
64
+ def to_hash: -> { type: :open_page, url: String }
65
+ end
66
+
67
+ type find = { pattern: String, type: :find, url: String }
68
+
69
+ class Find < OpenAI::Internal::Type::BaseModel
70
+ attr_accessor pattern: String
71
+
72
+ attr_accessor type: :find
73
+
74
+ attr_accessor url: String
75
+
76
+ def initialize: (pattern: String, url: String, ?type: :find) -> void
77
+
78
+ def to_hash: -> { pattern: String, type: :find, url: String }
79
+ end
80
+
81
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseFunctionWebSearch::action]
82
+ end
83
+
30
84
  type status = :in_progress | :searching | :completed | :failed
31
85
 
32
86
  module Status
@@ -2,20 +2,22 @@ module OpenAI
2
2
  module Models
3
3
  module Responses
4
4
  type response_includable =
5
- :"file_search_call.results"
6
- | :"message.input_image.image_url"
5
+ :"code_interpreter_call.outputs"
7
6
  | :"computer_call_output.output.image_url"
7
+ | :"file_search_call.results"
8
+ | :"message.input_image.image_url"
9
+ | :"message.output_text.logprobs"
8
10
  | :"reasoning.encrypted_content"
9
- | :"code_interpreter_call.outputs"
10
11
 
11
12
  module ResponseIncludable
12
13
  extend OpenAI::Internal::Type::Enum
13
14
 
15
+ CODE_INTERPRETER_CALL_OUTPUTS: :"code_interpreter_call.outputs"
16
+ COMPUTER_CALL_OUTPUT_OUTPUT_IMAGE_URL: :"computer_call_output.output.image_url"
14
17
  FILE_SEARCH_CALL_RESULTS: :"file_search_call.results"
15
18
  MESSAGE_INPUT_IMAGE_IMAGE_URL: :"message.input_image.image_url"
16
- COMPUTER_CALL_OUTPUT_OUTPUT_IMAGE_URL: :"computer_call_output.output.image_url"
19
+ MESSAGE_OUTPUT_TEXT_LOGPROBS: :"message.output_text.logprobs"
17
20
  REASONING_ENCRYPTED_CONTENT: :"reasoning.encrypted_content"
18
- CODE_INTERPRETER_CALL_OUTPUTS: :"code_interpreter_call.outputs"
19
21
 
20
22
  def self?.values: -> ::Array[OpenAI::Models::Responses::response_includable]
21
23
  end
@@ -46,23 +46,32 @@ module OpenAI
46
46
  extend OpenAI::Internal::Type::Union
47
47
 
48
48
  type file_citation =
49
- { file_id: String, index: Integer, type: :file_citation }
49
+ {
50
+ file_id: String,
51
+ filename: String,
52
+ index: Integer,
53
+ type: :file_citation
54
+ }
50
55
 
51
56
  class FileCitation < OpenAI::Internal::Type::BaseModel
52
57
  attr_accessor file_id: String
53
58
 
59
+ attr_accessor filename: String
60
+
54
61
  attr_accessor index: Integer
55
62
 
56
63
  attr_accessor type: :file_citation
57
64
 
58
65
  def initialize: (
59
66
  file_id: String,
67
+ filename: String,
60
68
  index: Integer,
61
69
  ?type: :file_citation
62
70
  ) -> void
63
71
 
64
72
  def to_hash: -> {
65
73
  file_id: String,
74
+ filename: String,
66
75
  index: Integer,
67
76
  type: :file_citation
68
77
  }
@@ -110,6 +119,7 @@ module OpenAI
110
119
  container_id: String,
111
120
  end_index: Integer,
112
121
  file_id: String,
122
+ filename: String,
113
123
  start_index: Integer,
114
124
  type: :container_file_citation
115
125
  }
@@ -121,6 +131,8 @@ module OpenAI
121
131
 
122
132
  attr_accessor file_id: String
123
133
 
134
+ attr_accessor filename: String
135
+
124
136
  attr_accessor start_index: Integer
125
137
 
126
138
  attr_accessor type: :container_file_citation
@@ -129,6 +141,7 @@ module OpenAI
129
141
  container_id: String,
130
142
  end_index: Integer,
131
143
  file_id: String,
144
+ filename: String,
132
145
  start_index: Integer,
133
146
  ?type: :container_file_citation
134
147
  ) -> void
@@ -137,6 +150,7 @@ module OpenAI
137
150
  container_id: String,
138
151
  end_index: Integer,
139
152
  file_id: String,
153
+ filename: String,
140
154
  start_index: Integer,
141
155
  type: :container_file_citation
142
156
  }
@@ -0,0 +1,23 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type tool_choice_mcp = { server_label: String, type: :mcp, name: String? }
5
+
6
+ class ToolChoiceMcp < OpenAI::Internal::Type::BaseModel
7
+ attr_accessor server_label: String
8
+
9
+ attr_accessor type: :mcp
10
+
11
+ attr_accessor name: String?
12
+
13
+ def initialize: (
14
+ server_label: String,
15
+ ?name: String?,
16
+ ?type: :mcp
17
+ ) -> void
18
+
19
+ def to_hash: -> { server_label: String, type: :mcp, name: String? }
20
+ end
21
+ end
22
+ end
23
+ end
@@ -22,7 +22,6 @@ module OpenAI
22
22
  | :web_search_preview_2025_03_11
23
23
  | :image_generation
24
24
  | :code_interpreter
25
- | :mcp
26
25
 
27
26
  module Type
28
27
  extend OpenAI::Internal::Type::Enum
@@ -33,7 +32,6 @@ module OpenAI
33
32
  WEB_SEARCH_PREVIEW_2025_03_11: :web_search_preview_2025_03_11
34
33
  IMAGE_GENERATION: :image_generation
35
34
  CODE_INTERPRETER: :code_interpreter
36
- MCP: :mcp
37
35
 
38
36
  def self?.values: -> ::Array[OpenAI::Models::Responses::ToolChoiceTypes::type_]
39
37
  end
@@ -13,6 +13,10 @@ module OpenAI
13
13
  | :"o1-pro-2025-03-19"
14
14
  | :"o3-pro"
15
15
  | :"o3-pro-2025-06-10"
16
+ | :"o3-deep-research"
17
+ | :"o3-deep-research-2025-06-26"
18
+ | :"o4-mini-deep-research"
19
+ | :"o4-mini-deep-research-2025-06-26"
16
20
  | :"computer-use-preview"
17
21
  | :"computer-use-preview-2025-03-11"
18
22
 
@@ -23,6 +27,10 @@ module OpenAI
23
27
  O1_PRO_2025_03_19: :"o1-pro-2025-03-19"
24
28
  O3_PRO: :"o3-pro"
25
29
  O3_PRO_2025_06_10: :"o3-pro-2025-06-10"
30
+ O3_DEEP_RESEARCH: :"o3-deep-research"
31
+ O3_DEEP_RESEARCH_2025_06_26: :"o3-deep-research-2025-06-26"
32
+ O4_MINI_DEEP_RESEARCH: :"o4-mini-deep-research"
33
+ O4_MINI_DEEP_RESEARCH_2025_06_26: :"o4-mini-deep-research-2025-06-26"
26
34
  COMPUTER_USE_PREVIEW: :"computer-use-preview"
27
35
  COMPUTER_USE_PREVIEW_2025_03_11: :"computer-use-preview-2025-03-11"
28
36
 
@@ -0,0 +1,66 @@
1
+ module OpenAI
2
+ module Models
3
+ module Webhooks
4
+ type batch_cancelled_webhook_event =
5
+ {
6
+ id: String,
7
+ created_at: Integer,
8
+ data: OpenAI::Webhooks::BatchCancelledWebhookEvent::Data,
9
+ type: :"batch.cancelled",
10
+ object: OpenAI::Models::Webhooks::BatchCancelledWebhookEvent::object
11
+ }
12
+
13
+ class BatchCancelledWebhookEvent < OpenAI::Internal::Type::BaseModel
14
+ attr_accessor id: String
15
+
16
+ attr_accessor created_at: Integer
17
+
18
+ attr_accessor data: OpenAI::Webhooks::BatchCancelledWebhookEvent::Data
19
+
20
+ attr_accessor type: :"batch.cancelled"
21
+
22
+ attr_reader object: OpenAI::Models::Webhooks::BatchCancelledWebhookEvent::object?
23
+
24
+ def object=: (
25
+ OpenAI::Models::Webhooks::BatchCancelledWebhookEvent::object
26
+ ) -> OpenAI::Models::Webhooks::BatchCancelledWebhookEvent::object
27
+
28
+ def initialize: (
29
+ id: String,
30
+ created_at: Integer,
31
+ data: OpenAI::Webhooks::BatchCancelledWebhookEvent::Data,
32
+ ?object: OpenAI::Models::Webhooks::BatchCancelledWebhookEvent::object,
33
+ ?type: :"batch.cancelled"
34
+ ) -> void
35
+
36
+ def to_hash: -> {
37
+ id: String,
38
+ created_at: Integer,
39
+ data: OpenAI::Webhooks::BatchCancelledWebhookEvent::Data,
40
+ type: :"batch.cancelled",
41
+ object: OpenAI::Models::Webhooks::BatchCancelledWebhookEvent::object
42
+ }
43
+
44
+ type data = { id: String }
45
+
46
+ class Data < OpenAI::Internal::Type::BaseModel
47
+ attr_accessor id: String
48
+
49
+ def initialize: (id: String) -> void
50
+
51
+ def to_hash: -> { id: String }
52
+ end
53
+
54
+ type object = :event
55
+
56
+ module Object
57
+ extend OpenAI::Internal::Type::Enum
58
+
59
+ EVENT: :event
60
+
61
+ def self?.values: -> ::Array[OpenAI::Models::Webhooks::BatchCancelledWebhookEvent::object]
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,66 @@
1
+ module OpenAI
2
+ module Models
3
+ module Webhooks
4
+ type batch_completed_webhook_event =
5
+ {
6
+ id: String,
7
+ created_at: Integer,
8
+ data: OpenAI::Webhooks::BatchCompletedWebhookEvent::Data,
9
+ type: :"batch.completed",
10
+ object: OpenAI::Models::Webhooks::BatchCompletedWebhookEvent::object
11
+ }
12
+
13
+ class BatchCompletedWebhookEvent < OpenAI::Internal::Type::BaseModel
14
+ attr_accessor id: String
15
+
16
+ attr_accessor created_at: Integer
17
+
18
+ attr_accessor data: OpenAI::Webhooks::BatchCompletedWebhookEvent::Data
19
+
20
+ attr_accessor type: :"batch.completed"
21
+
22
+ attr_reader object: OpenAI::Models::Webhooks::BatchCompletedWebhookEvent::object?
23
+
24
+ def object=: (
25
+ OpenAI::Models::Webhooks::BatchCompletedWebhookEvent::object
26
+ ) -> OpenAI::Models::Webhooks::BatchCompletedWebhookEvent::object
27
+
28
+ def initialize: (
29
+ id: String,
30
+ created_at: Integer,
31
+ data: OpenAI::Webhooks::BatchCompletedWebhookEvent::Data,
32
+ ?object: OpenAI::Models::Webhooks::BatchCompletedWebhookEvent::object,
33
+ ?type: :"batch.completed"
34
+ ) -> void
35
+
36
+ def to_hash: -> {
37
+ id: String,
38
+ created_at: Integer,
39
+ data: OpenAI::Webhooks::BatchCompletedWebhookEvent::Data,
40
+ type: :"batch.completed",
41
+ object: OpenAI::Models::Webhooks::BatchCompletedWebhookEvent::object
42
+ }
43
+
44
+ type data = { id: String }
45
+
46
+ class Data < OpenAI::Internal::Type::BaseModel
47
+ attr_accessor id: String
48
+
49
+ def initialize: (id: String) -> void
50
+
51
+ def to_hash: -> { id: String }
52
+ end
53
+
54
+ type object = :event
55
+
56
+ module Object
57
+ extend OpenAI::Internal::Type::Enum
58
+
59
+ EVENT: :event
60
+
61
+ def self?.values: -> ::Array[OpenAI::Models::Webhooks::BatchCompletedWebhookEvent::object]
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end