From 159c03c10ce388c0cfc484e4b310eed72aed07a4 Mon Sep 17 00:00:00 2001 From: Paul Shippy Date: Thu, 3 Apr 2025 17:51:56 -0700 Subject: [PATCH] Parse errors from bedrock properly --- lib/ruby_llm/providers/bedrock.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/ruby_llm/providers/bedrock.rb b/lib/ruby_llm/providers/bedrock.rb index 0c8327bbf..7db44a9a4 100644 --- a/lib/ruby_llm/providers/bedrock.rb +++ b/lib/ruby_llm/providers/bedrock.rb @@ -33,6 +33,22 @@ def post(url, payload) end end + def parse_error(response) # rubocop:disable Metrics/MethodLength + return if response.body.empty? + + body = try_parse_json(response.body) + case body + when Hash + body['message'] + when Array + body.map do |part| + part['message'] + end.join('. ') + else + body + end + end + def sign_request(url, method: :post, payload: nil) signer = create_signer request = build_request(url, method:, payload:)