Ollama4j
A Java library (wrapper/binding) for Ollama server.
Loading...
Searching...
No Matches
OllamaChatEndpointCaller.java
Go to the documentation of this file.
1package io.github.ollama4j.models.request;
2
3import com.fasterxml.jackson.core.JsonProcessingException;
4import io.github.ollama4j.exceptions.OllamaBaseException;
5import io.github.ollama4j.models.response.OllamaResult;
6import io.github.ollama4j.models.chat.OllamaChatResponseModel;
7import io.github.ollama4j.models.chat.OllamaChatStreamObserver;
8import io.github.ollama4j.models.generate.OllamaStreamHandler;
9import io.github.ollama4j.utils.OllamaRequestBody;
10import io.github.ollama4j.utils.Utils;
11import org.slf4j.Logger;
12import org.slf4j.LoggerFactory;
13
14import java.io.IOException;
15
20
21 private static final Logger LOG = LoggerFactory.getLogger(OllamaChatEndpointCaller.class);
22
23 private OllamaChatStreamObserver streamObserver;
24
25 public OllamaChatEndpointCaller(String host, BasicAuth basicAuth, long requestTimeoutSeconds, boolean verbose) {
26 super(host, basicAuth, requestTimeoutSeconds, verbose);
27 }
28
29 @Override
30 protected String getEndpointSuffix() {
31 return "/api/chat";
32 }
33
34 @Override
35 protected boolean parseResponseAndAddToBuffer(String line, StringBuilder responseBuffer) {
36 try {
37 OllamaChatResponseModel ollamaResponseModel = Utils.getObjectMapper().readValue(line, OllamaChatResponseModel.class);
38 responseBuffer.append(ollamaResponseModel.getMessage().getContent());
39 if (streamObserver != null) {
40 streamObserver.notify(ollamaResponseModel);
41 }
42 return ollamaResponseModel.isDone();
43 } catch (JsonProcessingException e) {
44 LOG.error("Error parsing the Ollama chat response!", e);
45 return true;
46 }
47 }
48
50 throws OllamaBaseException, IOException, InterruptedException {
51 streamObserver = new OllamaChatStreamObserver(streamHandler);
52 return super.callSync(body);
53 }
54}
void notify(OllamaChatResponseModel currentResponsePart)
OllamaResult call(OllamaRequestBody body, OllamaStreamHandler streamHandler)
OllamaChatEndpointCaller(String host, BasicAuth basicAuth, long requestTimeoutSeconds, boolean verbose)
boolean parseResponseAndAddToBuffer(String line, StringBuilder responseBuffer)
static ObjectMapper getObjectMapper()
Definition Utils.java:17