Make provider errors more specific
This commit is contained in:
@@ -61,13 +61,12 @@ class Provider
|
||||
# Override to set class-level error transformation for methods using `with_provider_response`
|
||||
def default_error_transformer(error)
|
||||
if error.is_a?(Faraday::Error)
|
||||
Error.new(
|
||||
self.class::Error.new(
|
||||
error.message,
|
||||
details: error.response&.dig(:body),
|
||||
provider: self.class.name
|
||||
)
|
||||
else
|
||||
Error.new(error.message, provider: self.class.name)
|
||||
self.class::Error.new(error.message)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
class Provider::Openai < Provider
|
||||
include LlmProvider
|
||||
|
||||
# Subclass so errors caught in this provider are raised as Provider::Openai::Error
|
||||
Error = Class.new(Provider::Error)
|
||||
|
||||
MODELS = %w[gpt-4o]
|
||||
|
||||
def initialize(access_token)
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
class Provider::Synth < Provider
|
||||
include ExchangeRateProvider, SecurityProvider
|
||||
|
||||
# Subclass so errors caught in this provider are raised as Provider::Synth::Error
|
||||
Error = Class.new(Provider::Error)
|
||||
|
||||
def initialize(api_key)
|
||||
@api_key = api_key
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user