72 long startTime = System.currentTimeMillis();
73 HttpClient httpClient = HttpClient.newHttpClient();
75 HttpRequest.Builder requestBuilder =
78 body.getBodyPublisher());
79 HttpRequest
request = requestBuilder.build();
80 if (isVerbose()) LOG.info(
"Asking model: " + body.toString());
82 httpClient.send(
request, HttpResponse.BodyHandlers.ofInputStream());
84 int statusCode =
response.statusCode();
85 InputStream responseBodyStream =
response.body();
86 StringBuilder responseBuffer =
new StringBuilder();
87 try (BufferedReader reader =
88 new BufferedReader(
new InputStreamReader(responseBodyStream, StandardCharsets.UTF_8))) {
90 while ((line = reader.readLine()) !=
null) {
91 if (statusCode == 404) {
92 LOG.warn(
"Status code: 404 (Not Found)");
95 responseBuffer.append(ollamaResponseModel.getError());
96 }
else if (statusCode == 401) {
97 LOG.warn(
"Status code: 401 (Unauthorized)");
101 responseBuffer.append(ollamaResponseModel.getError());
102 }
else if (statusCode == 400) {
103 LOG.warn(
"Status code: 400 (Bad Request)");
106 responseBuffer.append(ollamaResponseModel.getError());
116 if (statusCode != 200) {
117 LOG.error(
"Status code " + statusCode);
120 long endTime = System.currentTimeMillis();
122 new OllamaResult(responseBuffer.toString().trim(), endTime - startTime, statusCode);
123 if (isVerbose()) LOG.info(
"Model response: " + ollamaResult);