Skip to content

Commit 48073e9

Browse files
feat(api): add reasoning_text
1 parent 9a0109f commit 48073e9

17 files changed

+326
-33
lines changed

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 118
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-380330a93b5d010391ca3b36ea193c5353b0dfdf2ddd02789ef84a84ce427e82.yml
3-
openapi_spec_hash: 859703234259ecdd2a3c6f4de88eb504
4-
config_hash: b619b45c1e7facf819f902dee8fa4f97
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-ea23db36b0899cc715f56d0098956069b2d92880f448adff3a4ac1bb53cb2cec.yml
3+
openapi_spec_hash: 36f76ea31297c9593bcfae453f6255cc
4+
config_hash: 666d6bb4b564f0d9d431124b5d1a0665

lib/openai/models/conversations/message.rb

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class Message < OpenAI::Internal::Type::BaseModel
1313
# @!attribute content
1414
# The content of the message
1515
#
16-
# @return [Array<OpenAI::Models::Responses::ResponseInputText, OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Conversations::TextContent, OpenAI::Models::Conversations::SummaryTextContent, OpenAI::Models::Responses::ResponseOutputRefusal, OpenAI::Models::Responses::ResponseInputImage, OpenAI::Models::Conversations::ComputerScreenshotContent, OpenAI::Models::Responses::ResponseInputFile>]
16+
# @return [Array<OpenAI::Models::Responses::ResponseInputText, OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Conversations::TextContent, OpenAI::Models::Conversations::SummaryTextContent, OpenAI::Models::Conversations::Message::Content::ReasoningText, OpenAI::Models::Responses::ResponseOutputRefusal, OpenAI::Models::Responses::ResponseInputImage, OpenAI::Models::Conversations::ComputerScreenshotContent, OpenAI::Models::Responses::ResponseInputFile>]
1717
required :content, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Conversations::Message::Content] }
1818

1919
# @!attribute role
@@ -44,7 +44,7 @@ class Message < OpenAI::Internal::Type::BaseModel
4444
#
4545
# @param id [String] The unique ID of the message.
4646
#
47-
# @param content [Array<OpenAI::Models::Responses::ResponseInputText, OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Conversations::TextContent, OpenAI::Models::Conversations::SummaryTextContent, OpenAI::Models::Responses::ResponseOutputRefusal, OpenAI::Models::Responses::ResponseInputImage, OpenAI::Models::Conversations::ComputerScreenshotContent, OpenAI::Models::Responses::ResponseInputFile>] The content of the message
47+
# @param content [Array<OpenAI::Models::Responses::ResponseInputText, OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Conversations::TextContent, OpenAI::Models::Conversations::SummaryTextContent, OpenAI::Models::Conversations::Message::Content::ReasoningText, OpenAI::Models::Responses::ResponseOutputRefusal, OpenAI::Models::Responses::ResponseInputImage, OpenAI::Models::Conversations::ComputerScreenshotContent, OpenAI::Models::Responses::ResponseInputFile>] The content of the message
4848
#
4949
# @param role [Symbol, OpenAI::Models::Conversations::Message::Role] The role of the message. One of `unknown`, `user`, `assistant`, `system`, `criti
5050
#
@@ -70,6 +70,9 @@ module Content
7070
# A summary text from the model.
7171
variant :summary_text, -> { OpenAI::Conversations::SummaryTextContent }
7272

73+
# Reasoning text from the model.
74+
variant :reasoning_text, -> { OpenAI::Conversations::Message::Content::ReasoningText }
75+
7376
# A refusal from the model.
7477
variant :refusal, -> { OpenAI::Responses::ResponseOutputRefusal }
7578

@@ -82,8 +85,29 @@ module Content
8285
# A file input to the model.
8386
variant :input_file, -> { OpenAI::Responses::ResponseInputFile }
8487

88+
class ReasoningText < OpenAI::Internal::Type::BaseModel
89+
# @!attribute text
90+
# The reasoning text from the model.
91+
#
92+
# @return [String]
93+
required :text, String
94+
95+
# @!attribute type
96+
# The type of the reasoning text. Always `reasoning_text`.
97+
#
98+
# @return [Symbol, :reasoning_text]
99+
required :type, const: :reasoning_text
100+
101+
# @!method initialize(text:, type: :reasoning_text)
102+
# Reasoning text from the model.
103+
#
104+
# @param text [String] The reasoning text from the model.
105+
#
106+
# @param type [Symbol, :reasoning_text] The type of the reasoning text. Always `reasoning_text`.
107+
end
108+
85109
# @!method self.variants
86-
# @return [Array(OpenAI::Models::Responses::ResponseInputText, OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Conversations::TextContent, OpenAI::Models::Conversations::SummaryTextContent, OpenAI::Models::Responses::ResponseOutputRefusal, OpenAI::Models::Responses::ResponseInputImage, OpenAI::Models::Conversations::ComputerScreenshotContent, OpenAI::Models::Responses::ResponseInputFile)]
110+
# @return [Array(OpenAI::Models::Responses::ResponseInputText, OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Conversations::TextContent, OpenAI::Models::Conversations::SummaryTextContent, OpenAI::Models::Conversations::Message::Content::ReasoningText, OpenAI::Models::Responses::ResponseOutputRefusal, OpenAI::Models::Responses::ResponseInputImage, OpenAI::Models::Conversations::ComputerScreenshotContent, OpenAI::Models::Responses::ResponseInputFile)]
87111
end
88112

89113
# The role of the message. One of `unknown`, `user`, `assistant`, `system`,

lib/openai/models/conversations/summary_text_content.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,23 @@ module Models
55
module Conversations
66
class SummaryTextContent < OpenAI::Internal::Type::BaseModel
77
# @!attribute text
8+
# A summary of the reasoning output from the model so far.
89
#
910
# @return [String]
1011
required :text, String
1112

1213
# @!attribute type
14+
# The type of the object. Always `summary_text`.
1315
#
1416
# @return [Symbol, :summary_text]
1517
required :type, const: :summary_text
1618

1719
# @!method initialize(text:, type: :summary_text)
1820
# A summary text from the model.
1921
#
20-
# @param text [String]
21-
# @param type [Symbol, :summary_text]
22+
# @param text [String] A summary of the reasoning output from the model so far.
23+
#
24+
# @param type [Symbol, :summary_text] The type of the object. Always `summary_text`.
2225
end
2326
end
2427
end

lib/openai/models/responses/response_content.rb

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,32 @@ module ResponseContent
2525
# A refusal from the model.
2626
variant -> { OpenAI::Responses::ResponseOutputRefusal }
2727

28+
# Reasoning text from the model.
29+
variant -> { OpenAI::Responses::ResponseContent::ReasoningTextContent }
30+
31+
class ReasoningTextContent < OpenAI::Internal::Type::BaseModel
32+
# @!attribute text
33+
# The reasoning text from the model.
34+
#
35+
# @return [String]
36+
required :text, String
37+
38+
# @!attribute type
39+
# The type of the reasoning text. Always `reasoning_text`.
40+
#
41+
# @return [Symbol, :reasoning_text]
42+
required :type, const: :reasoning_text
43+
44+
# @!method initialize(text:, type: :reasoning_text)
45+
# Reasoning text from the model.
46+
#
47+
# @param text [String] The reasoning text from the model.
48+
#
49+
# @param type [Symbol, :reasoning_text] The type of the reasoning text. Always `reasoning_text`.
50+
end
51+
2852
# @!method self.variants
29-
# @return [Array(OpenAI::Models::Responses::ResponseInputText, OpenAI::Models::Responses::ResponseInputImage, OpenAI::Models::Responses::ResponseInputFile, OpenAI::Models::Responses::ResponseInputAudio, OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal)]
53+
# @return [Array(OpenAI::Models::Responses::ResponseInputText, OpenAI::Models::Responses::ResponseInputImage, OpenAI::Models::Responses::ResponseInputFile, OpenAI::Models::Responses::ResponseInputAudio, OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal, OpenAI::Models::Responses::ResponseContent::ReasoningTextContent)]
3054
end
3155
end
3256
end

lib/openai/models/responses/response_content_part_added_event.rb

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class ResponseContentPartAddedEvent < OpenAI::Internal::Type::BaseModel
2525
# @!attribute part
2626
# The content part that was added.
2727
#
28-
# @return [OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal]
28+
# @return [OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal, OpenAI::Models::Responses::ResponseContentPartAddedEvent::Part::ReasoningText]
2929
required :part, union: -> { OpenAI::Responses::ResponseContentPartAddedEvent::Part }
3030

3131
# @!attribute sequence_number
@@ -52,7 +52,7 @@ class ResponseContentPartAddedEvent < OpenAI::Internal::Type::BaseModel
5252
#
5353
# @param output_index [Integer] The index of the output item that the content part was added to.
5454
#
55-
# @param part [OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal] The content part that was added.
55+
# @param part [OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal, OpenAI::Models::Responses::ResponseContentPartAddedEvent::Part::ReasoningText] The content part that was added.
5656
#
5757
# @param sequence_number [Integer] The sequence number of this event.
5858
#
@@ -72,8 +72,32 @@ module Part
7272
# A refusal from the model.
7373
variant :refusal, -> { OpenAI::Responses::ResponseOutputRefusal }
7474

75+
# Reasoning text from the model.
76+
variant :reasoning_text, -> { OpenAI::Responses::ResponseContentPartAddedEvent::Part::ReasoningText }
77+
78+
class ReasoningText < OpenAI::Internal::Type::BaseModel
79+
# @!attribute text
80+
# The reasoning text from the model.
81+
#
82+
# @return [String]
83+
required :text, String
84+
85+
# @!attribute type
86+
# The type of the reasoning text. Always `reasoning_text`.
87+
#
88+
# @return [Symbol, :reasoning_text]
89+
required :type, const: :reasoning_text
90+
91+
# @!method initialize(text:, type: :reasoning_text)
92+
# Reasoning text from the model.
93+
#
94+
# @param text [String] The reasoning text from the model.
95+
#
96+
# @param type [Symbol, :reasoning_text] The type of the reasoning text. Always `reasoning_text`.
97+
end
98+
7599
# @!method self.variants
76-
# @return [Array(OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal)]
100+
# @return [Array(OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal, OpenAI::Models::Responses::ResponseContentPartAddedEvent::Part::ReasoningText)]
77101
end
78102
end
79103
end

lib/openai/models/responses/response_content_part_done_event.rb

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class ResponseContentPartDoneEvent < OpenAI::Internal::Type::BaseModel
2525
# @!attribute part
2626
# The content part that is done.
2727
#
28-
# @return [OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal]
28+
# @return [OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal, OpenAI::Models::Responses::ResponseContentPartDoneEvent::Part::ReasoningText]
2929
required :part, union: -> { OpenAI::Responses::ResponseContentPartDoneEvent::Part }
3030

3131
# @!attribute sequence_number
@@ -52,7 +52,7 @@ class ResponseContentPartDoneEvent < OpenAI::Internal::Type::BaseModel
5252
#
5353
# @param output_index [Integer] The index of the output item that the content part was added to.
5454
#
55-
# @param part [OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal] The content part that is done.
55+
# @param part [OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal, OpenAI::Models::Responses::ResponseContentPartDoneEvent::Part::ReasoningText] The content part that is done.
5656
#
5757
# @param sequence_number [Integer] The sequence number of this event.
5858
#
@@ -72,8 +72,32 @@ module Part
7272
# A refusal from the model.
7373
variant :refusal, -> { OpenAI::Responses::ResponseOutputRefusal }
7474

75+
# Reasoning text from the model.
76+
variant :reasoning_text, -> { OpenAI::Responses::ResponseContentPartDoneEvent::Part::ReasoningText }
77+
78+
class ReasoningText < OpenAI::Internal::Type::BaseModel
79+
# @!attribute text
80+
# The reasoning text from the model.
81+
#
82+
# @return [String]
83+
required :text, String
84+
85+
# @!attribute type
86+
# The type of the reasoning text. Always `reasoning_text`.
87+
#
88+
# @return [Symbol, :reasoning_text]
89+
required :type, const: :reasoning_text
90+
91+
# @!method initialize(text:, type: :reasoning_text)
92+
# Reasoning text from the model.
93+
#
94+
# @param text [String] The reasoning text from the model.
95+
#
96+
# @param type [Symbol, :reasoning_text] The type of the reasoning text. Always `reasoning_text`.
97+
end
98+
7599
# @!method self.variants
76-
# @return [Array(OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal)]
100+
# @return [Array(OpenAI::Models::Responses::ResponseOutputText, OpenAI::Models::Responses::ResponseOutputRefusal, OpenAI::Models::Responses::ResponseContentPartDoneEvent::Part::ReasoningText)]
77101
end
78102
end
79103
end

lib/openai/models/responses/response_reasoning_item.rb

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,7 @@ class Summary < OpenAI::Internal::Type::BaseModel
7979
required :type, const: :summary_text
8080

8181
# @!method initialize(text:, type: :summary_text)
82-
# Some parameter documentations has been truncated, see
83-
# {OpenAI::Models::Responses::ResponseReasoningItem::Summary} for more details.
82+
# A summary text from the model.
8483
#
8584
# @param text [String] A summary of the reasoning output from the model so far.
8685
#
@@ -89,24 +88,23 @@ class Summary < OpenAI::Internal::Type::BaseModel
8988

9089
class Content < OpenAI::Internal::Type::BaseModel
9190
# @!attribute text
92-
# Reasoning text output from the model.
91+
# The reasoning text from the model.
9392
#
9493
# @return [String]
9594
required :text, String
9695

9796
# @!attribute type
98-
# The type of the object. Always `reasoning_text`.
97+
# The type of the reasoning text. Always `reasoning_text`.
9998
#
10099
# @return [Symbol, :reasoning_text]
101100
required :type, const: :reasoning_text
102101

103102
# @!method initialize(text:, type: :reasoning_text)
104-
# Some parameter documentations has been truncated, see
105-
# {OpenAI::Models::Responses::ResponseReasoningItem::Content} for more details.
103+
# Reasoning text from the model.
106104
#
107-
# @param text [String] Reasoning text output from the model.
105+
# @param text [String] The reasoning text from the model.
108106
#
109-
# @param type [Symbol, :reasoning_text] The type of the object. Always `reasoning_text`.
107+
# @param type [Symbol, :reasoning_text] The type of the reasoning text. Always `reasoning_text`.
110108
end
111109

112110
# The status of the item. One of `in_progress`, `completed`, or `incomplete`.

rbi/openai/models/conversations/message.rbi

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ module OpenAI
4444
OpenAI::Responses::ResponseOutputText::OrHash,
4545
OpenAI::Conversations::TextContent::OrHash,
4646
OpenAI::Conversations::SummaryTextContent::OrHash,
47+
OpenAI::Conversations::Message::Content::ReasoningText::OrHash,
4748
OpenAI::Responses::ResponseOutputRefusal::OrHash,
4849
OpenAI::Responses::ResponseInputImage::OrHash,
4950
OpenAI::Conversations::ComputerScreenshotContent::OrHash,
@@ -97,13 +98,46 @@ module OpenAI
9798
OpenAI::Responses::ResponseOutputText,
9899
OpenAI::Conversations::TextContent,
99100
OpenAI::Conversations::SummaryTextContent,
101+
OpenAI::Conversations::Message::Content::ReasoningText,
100102
OpenAI::Responses::ResponseOutputRefusal,
101103
OpenAI::Responses::ResponseInputImage,
102104
OpenAI::Conversations::ComputerScreenshotContent,
103105
OpenAI::Responses::ResponseInputFile
104106
)
105107
end
106108

109+
class ReasoningText < OpenAI::Internal::Type::BaseModel
110+
OrHash =
111+
T.type_alias do
112+
T.any(
113+
OpenAI::Conversations::Message::Content::ReasoningText,
114+
OpenAI::Internal::AnyHash
115+
)
116+
end
117+
118+
# The reasoning text from the model.
119+
sig { returns(String) }
120+
attr_accessor :text
121+
122+
# The type of the reasoning text. Always `reasoning_text`.
123+
sig { returns(Symbol) }
124+
attr_accessor :type
125+
126+
# Reasoning text from the model.
127+
sig { params(text: String, type: Symbol).returns(T.attached_class) }
128+
def self.new(
129+
# The reasoning text from the model.
130+
text:,
131+
# The type of the reasoning text. Always `reasoning_text`.
132+
type: :reasoning_text
133+
)
134+
end
135+
136+
sig { override.returns({ text: String, type: Symbol }) }
137+
def to_hash
138+
end
139+
end
140+
107141
sig do
108142
override.returns(
109143
T::Array[OpenAI::Conversations::Message::Content::Variants]

rbi/openai/models/conversations/summary_text_content.rbi

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,22 @@ module OpenAI
1212
)
1313
end
1414

15+
# A summary of the reasoning output from the model so far.
1516
sig { returns(String) }
1617
attr_accessor :text
1718

19+
# The type of the object. Always `summary_text`.
1820
sig { returns(Symbol) }
1921
attr_accessor :type
2022

2123
# A summary text from the model.
2224
sig { params(text: String, type: Symbol).returns(T.attached_class) }
23-
def self.new(text:, type: :summary_text)
25+
def self.new(
26+
# A summary of the reasoning output from the model so far.
27+
text:,
28+
# The type of the object. Always `summary_text`.
29+
type: :summary_text
30+
)
2431
end
2532

2633
sig { override.returns({ text: String, type: Symbol }) }

rbi/openai/models/responses/response_content.rbi

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,43 @@ module OpenAI
1515
OpenAI::Responses::ResponseInputFile,
1616
OpenAI::Responses::ResponseInputAudio,
1717
OpenAI::Responses::ResponseOutputText,
18-
OpenAI::Responses::ResponseOutputRefusal
18+
OpenAI::Responses::ResponseOutputRefusal,
19+
OpenAI::Responses::ResponseContent::ReasoningTextContent
1920
)
2021
end
2122

23+
class ReasoningTextContent < OpenAI::Internal::Type::BaseModel
24+
OrHash =
25+
T.type_alias do
26+
T.any(
27+
OpenAI::Responses::ResponseContent::ReasoningTextContent,
28+
OpenAI::Internal::AnyHash
29+
)
30+
end
31+
32+
# The reasoning text from the model.
33+
sig { returns(String) }
34+
attr_accessor :text
35+
36+
# The type of the reasoning text. Always `reasoning_text`.
37+
sig { returns(Symbol) }
38+
attr_accessor :type
39+
40+
# Reasoning text from the model.
41+
sig { params(text: String, type: Symbol).returns(T.attached_class) }
42+
def self.new(
43+
# The reasoning text from the model.
44+
text:,
45+
# The type of the reasoning text. Always `reasoning_text`.
46+
type: :reasoning_text
47+
)
48+
end
49+
50+
sig { override.returns({ text: String, type: Symbol }) }
51+
def to_hash
52+
end
53+
end
54+
2255
sig do
2356
override.returns(
2457
T::Array[OpenAI::Responses::ResponseContent::Variants]

0 commit comments

Comments
 (0)