Commit 65fd985
Changed files (2)
lib
net
llm
spec
net
llm
lib/net/llm/openai.rb
@@ -39,8 +39,11 @@ module Net
end
def handle_response(response)
- raise "HTTP #{response.code}: #{response.body}" unless response.is_a?(Net::HTTPSuccess)
- JSON.parse(response.body)
+ if response.is_a?(Net::HTTPSuccess)
+ JSON.parse(response.body)
+ else
+ { "code" => response.code, "body" => response.body }
+ end
end
end
end
spec/net/llm/openai_spec.rb
@@ -53,7 +53,9 @@ RSpec.describe Net::Llm::OpenAI do
stub_request(:post, "https://api.openai.com/v1/chat/completions")
.to_return(status: 401, body: "Unauthorized")
- expect { client.chat(messages, tools) }.to raise_error(/HTTP 401/)
+ result = client.chat(messages, tools)
+ expect(result["code"]).to eq("401")
+ expect(result["body"]).to eq("Unauthorized")
end
end
@@ -74,7 +76,9 @@ RSpec.describe Net::Llm::OpenAI do
stub_request(:get, "https://api.openai.com/v1/models")
.to_return(status: 500, body: "Server error")
- expect { client.models }.to raise_error(/HTTP 500/)
+ result = client.models
+ expect(result["code"]).to eq("500")
+ expect(result["body"]).to eq("Server error")
end
end
@@ -112,7 +116,9 @@ RSpec.describe Net::Llm::OpenAI do
stub_request(:post, "https://api.openai.com/v1/embeddings")
.to_return(status: 400, body: "Bad request")
- expect { client.embeddings(input) }.to raise_error(/HTTP 400/)
+ result = client.embeddings(input)
+ expect(result["code"]).to eq("400")
+ expect(result["body"]).to eq("Bad request")
end
end
end