@@ -153,6 +153,27 @@ def reap_connection!(status, stream:)
153
153
end
154
154
end
155
155
156
+ # @return [URI::Generic]
157
+ attr_reader :base_url
158
+
159
+ # @return [Float]
160
+ attr_reader :timeout
161
+
162
+ # @return [Integer]
163
+ attr_reader :max_retries
164
+
165
+ # @return [Float]
166
+ attr_reader :initial_retry_delay
167
+
168
+ # @return [Float]
169
+ attr_reader :max_retry_delay
170
+
171
+ # @return [Hash{String=>String}]
172
+ attr_reader :headers
173
+
174
+ # @return [String, nil]
175
+ attr_reader :idempotency_header
176
+
156
177
# @api private
157
178
# @return [OpenAI::Internal::Transport::PooledNetRequester]
158
179
attr_reader :requester
@@ -184,10 +205,11 @@ def initialize(
184
205
} ,
185
206
headers
186
207
)
187
- @base_url = OpenAI ::Internal ::Util . parse_uri ( base_url )
208
+ @base_url_components = OpenAI ::Internal ::Util . parse_uri ( base_url )
209
+ @base_url = OpenAI ::Internal ::Util . unparse_uri ( @base_url_components )
188
210
@idempotency_header = idempotency_header &.to_s &.downcase
189
- @max_retries = max_retries
190
211
@timeout = timeout
212
+ @max_retries = max_retries
191
213
@initial_retry_delay = initial_retry_delay
192
214
@max_retry_delay = max_retry_delay
193
215
end
@@ -278,10 +300,14 @@ def initialize(
278
300
OpenAI ::Internal ::Util . deep_merge ( *[ req [ :body ] , opts [ :extra_body ] ] . compact )
279
301
end
280
302
303
+ url = OpenAI ::Internal ::Util . join_parsed_uri (
304
+ @base_url_components ,
305
+ { **req , path : path , query : query }
306
+ )
281
307
headers , encoded = OpenAI ::Internal ::Util . encode_content ( headers , body )
282
308
{
283
309
method : method ,
284
- url : OpenAI :: Internal :: Util . join_parsed_uri ( @base_url , { ** req , path : path , query : query } ) ,
310
+ url : url ,
285
311
headers : headers ,
286
312
body : encoded ,
287
313
max_retries : opts . fetch ( :max_retries , @max_retries ) ,
@@ -475,8 +501,7 @@ def request(req)
475
501
# @return [String]
476
502
def inspect
477
503
# rubocop:disable Layout/LineLength
478
- base_url = OpenAI ::Internal ::Util . unparse_uri ( @base_url )
479
- "#<#{ self . class . name } :0x#{ object_id . to_s ( 16 ) } base_url=#{ base_url } max_retries=#{ @max_retries } timeout=#{ @timeout } >"
504
+ "#<#{ self . class . name } :0x#{ object_id . to_s ( 16 ) } base_url=#{ @base_url } max_retries=#{ @max_retries } timeout=#{ @timeout } >"
480
505
# rubocop:enable Layout/LineLength
481
506
end
482
507
0 commit comments