in lib/anthropic/internal/transport/base_client.rb [433:461]
def request(req)
self.class.validate!(req)
model = req.fetch(:model) { Anthropic::Internal::Type::Unknown }
opts = req[:options].to_h
Anthropic::RequestOptions.validate!(opts)
request = build_request(req.except(:options), opts)
url = request.fetch(:url)
send_retry_header = request.fetch(:headers)["x-stainless-retry-count"] == "0"
status, response, stream = send_request(
request,
redirect_count: 0,
retry_count: 0,
send_retry_header: send_retry_header
)
decoded = Anthropic::Internal::Util.decode_content(response, stream: stream)
case req
in { stream: Class => st }
st.new(model: model, url: url, status: status, response: response, stream: decoded)
in { page: Class => page }
page.new(client: self, req: req, headers: response, page_data: decoded)
else
unwrapped = Anthropic::Internal::Util.dig(decoded, req[:unwrap])
Anthropic::Internal::Type::Converter.coerce(model, unwrapped)
end
end