1package io.github.ollama4j.models.request;
3import io.github.ollama4j.OllamaAPI;
4import io.github.ollama4j.exceptions.OllamaBaseException;
5import io.github.ollama4j.models.response.OllamaErrorResponse;
6import io.github.ollama4j.models.response.OllamaResult;
7import io.github.ollama4j.utils.OllamaRequestBody;
8import io.github.ollama4j.utils.Utils;
10import org.slf4j.Logger;
11import org.slf4j.LoggerFactory;
13import java.io.BufferedReader;
14import java.io.IOException;
15import java.io.InputStream;
16import java.io.InputStreamReader;
18import java.net.http.HttpClient;
19import java.net.http.HttpRequest;
20import java.net.http.HttpResponse;
21import java.nio.charset.StandardCharsets;
22import java.time.Duration;
23import java.util.Base64;
31 private static final Logger LOG = LoggerFactory.getLogger(
OllamaAPI.class);
33 private final String host;
35 private final long requestTimeoutSeconds;
36 private final boolean verbose;
40 this.basicAuth = basicAuth;
41 this.requestTimeoutSeconds = requestTimeoutSeconds;
42 this.verbose = verbose;
57 HttpRequest.Builder requestBuilder =
58 HttpRequest.newBuilder(uri)
59 .header(
"Content-Type",
"application/json")
60 .timeout(Duration.ofSeconds(
this.requestTimeoutSeconds));
64 return requestBuilder;
73 String credentialsToEncode = this.basicAuth.getUsername() +
":" + this.basicAuth.getPassword();
74 return "Basic " + Base64.getEncoder().encodeToString(credentialsToEncode.getBytes());
83 return this.basicAuth !=
null;
OllamaEndpointCaller(String host, BasicAuth basicAuth, long requestTimeoutSeconds, boolean verbose)
abstract String getEndpointSuffix()
HttpRequest.Builder getRequestBuilderDefault(URI uri)
String getBasicAuthHeaderValue()
abstract boolean parseResponseAndAddToBuffer(String line, StringBuilder responseBuffer)
boolean isBasicAuthCredentialsSet()