forked from Mirror/ollama4j
Adds OllamaStream handling
This commit is contained in:
parent
1aeb555a53
commit
c89440cbca
@ -0,0 +1,7 @@
|
|||||||
|
package io.github.amithkoujalgi.ollama4j.core;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
public interface OllamaStreamHandler extends Consumer<String>{
|
||||||
|
void accept(String message);
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
package io.github.amithkoujalgi.ollama4j.core.models.chat;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import io.github.amithkoujalgi.ollama4j.core.OllamaStreamHandler;
|
||||||
|
import lombok.NonNull;
|
||||||
|
|
||||||
|
public class OllamaChatStreamObserver {
|
||||||
|
|
||||||
|
private OllamaStreamHandler streamHandler;
|
||||||
|
|
||||||
|
private List<OllamaChatResponseModel> responseParts = new ArrayList<>();
|
||||||
|
|
||||||
|
private String message;
|
||||||
|
|
||||||
|
public OllamaChatStreamObserver(OllamaStreamHandler streamHandler) {
|
||||||
|
this.streamHandler = streamHandler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void notify(OllamaChatResponseModel currentResponsePart){
|
||||||
|
responseParts.add(currentResponsePart);
|
||||||
|
handleCurrentResponsePart(currentResponsePart);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void handleCurrentResponsePart(OllamaChatResponseModel currentResponsePart){
|
||||||
|
List<@NonNull String> allResponsePartsByNow = responseParts.stream().map(r -> r.getMessage().getContent()).collect(Collectors.toList());
|
||||||
|
message = String.join("", allResponsePartsByNow);
|
||||||
|
streamHandler.accept(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user