class Wrapper
Wraps HTTP requests and responses for the Ollama API, handling content negotiation and parsing.
Definitions
def prepare_request(request, payload)
Prepares the HTTP request with appropriate headers and body.
Signature
-
parameter
requestProtocol::HTTP::Request The HTTP request object.
-
parameter
payloadProtocol::HTTP::Response The request payload.
Implementation
def prepare_request(request, payload)
request.headers.add("accept", APPLICATION_JSON)
request.headers.add("accept", APPLICATION_JSON_STREAM)
if payload
request.headers["content-type"] = APPLICATION_JSON
request.body = ::Protocol::HTTP::Body::Buffered.new([
::JSON.dump(payload)
])
end
end
def parser_for(response)
Selects the appropriate parser for the HTTP response.
Signature
-
parameter
responseProtocol::HTTP::Response The HTTP response object.
-
returns
Class The parser class to use.
Implementation
def parser_for(response)
content_type = response.headers["content-type"]
media_type = content_type.split(";").first
case media_type
when APPLICATION_JSON
return Async::REST::Wrapper::JSON::Parser
when APPLICATION_JSON_STREAM
return StreamingParser
end
end