Module: RubyLLM::ProviderErrorFix
- Defined in:
- lib/extensions/ruby_llm/provider_fix.rb
Instance Method Summary collapse
-
#parse_error(response) ⇒ String?
Override the parse_error method to handle String responses from LM Studio Parses error response from provider API.
Instance Method Details
#parse_error(response) ⇒ String?
Override the parse_error method to handle String responses from LM Studio Parses error response from provider API.
Supports two error formats:
-
OpenAI standard: {“message”: “…”, “type”: “…”, “code”: “…”}
-
Simple format: “error message”
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/extensions/ruby_llm/provider_fix.rb', line 29 def parse_error(response) return if response.body.empty? body = try_parse_json(response.body) case body when Hash # Handle both formats: # - {"error": "message"} (LM Studio, some providers) # - {"error": {"message": "..."}} (OpenAI standard) error_value = body['error'] return nil unless error_value case error_value when Hash error_value['message'] when String error_value else error_value.to_s if error_value end when Array body.filter_map do |part| next unless part.is_a?(Hash) error_value = part['error'] next unless error_value case error_value when Hash then error_value['message'] when String then error_value else error_value.to_s if error_value end end.join('. ') else body.to_s end rescue StandardError => e RubyLLM.logger.debug "Error parsing response: #{e.}" nil end |