Skip to content

Commit 9f065c2

Browse files
committed
Add MiddlewareErrors to own file
1 parent 6a9c9ed commit 9f065c2

File tree

4 files changed

+34
-27
lines changed

4 files changed

+34
-27
lines changed

lib/middleware/beta.rb

+12-9
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
# frozen_string_literal: true
22

33
module OpenAI
4-
class BetaMiddleware < Faraday::Middleware
5-
BETA_REGEX = %r{^/#{OpenAI.configuration.api_version}/(assistants|batches|threads|vector_stores)}i
4+
class MiddlewareBeta < Faraday::Middleware
5+
BETA_REGEX = %r{
6+
\A/#{OpenAI.configuration.api_version}
7+
/(assistants|batches|threads|vector_stores)
8+
}ix.freeze
69

710
def on_request(env)
8-
if env[:url].path.match?(BETA_REGEX)
9-
env[:request_headers].merge!(
10-
{
11-
"OpenAI-Beta" => "assistants=v2"
12-
}
13-
)
14-
end
11+
return unless env[:url].path.match?(BETA_REGEX)
12+
13+
env[:request_headers].merge!(
14+
{
15+
"OpenAI-Beta" => "assistants=v2"
16+
}
17+
)
1518
end
1619
end
1720
end

lib/middleware/errors.rb

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# frozen_string_literal: true
2+
3+
module OpenAI
4+
class MiddlewareErrors < Faraday::Middleware
5+
def call(env)
6+
@app.call(env)
7+
rescue Faraday::Error => e
8+
raise e unless e.response.is_a?(Hash)
9+
10+
logger = Logger.new($stdout)
11+
logger.formatter = proc do |_severity, _datetime, _progname, msg|
12+
"\033[31mOpenAI HTTP Error (spotted in ruby-openai #{VERSION}): #{msg}\n\033[0m"
13+
end
14+
logger.error(e.response[:body])
15+
16+
raise e
17+
end
18+
end
19+
end

lib/openai.rb

+2-17
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,8 @@ module OpenAI
2323
class Error < StandardError; end
2424
class ConfigurationError < Error; end
2525

26-
class MiddlewareErrors < Faraday::Middleware
27-
def call(env)
28-
@app.call(env)
29-
rescue Faraday::Error => e
30-
raise e unless e.response.is_a?(Hash)
31-
32-
logger = Logger.new($stdout)
33-
logger.formatter = proc do |_severity, _datetime, _progname, msg|
34-
"\033[31mOpenAI HTTP Error (spotted in ruby-openai #{VERSION}): #{msg}\n\033[0m"
35-
end
36-
logger.error(e.response[:body])
37-
38-
raise e
39-
end
40-
end
26+
autoload :MiddlewareErrors, "middleware/errors"
27+
autoload :MiddlewareBeta, "middleware/beta"
4128

4229
class Configuration
4330
attr_accessor :access_token,
@@ -90,5 +77,3 @@ def self.rough_token_count(content = "")
9077
[1, estimate].max
9178
end
9279
end
93-
94-
require_relative "middleware/beta"

lib/openai/client.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def build_connection(multipart: false)
116116
faraday.options[:timeout] = @request_timeout
117117
faraday.request(:multipart) if multipart
118118
faraday.use MiddlewareErrors if @log_errors
119-
faraday.use BetaMiddleware
119+
faraday.use MiddlewareBeta
120120
faraday.response :raise_error
121121
faraday.response :json
122122
end

0 commit comments

Comments
 (0)