fi.evolver.ai.vaadin.view.ChatBaseView Maven / Gradle / Ivy
The newest version!
package fi.evolver.ai.vaadin.view;
import java.io.Serial;
import java.util.List;
import fi.evolver.ai.spring.AsyncRunner;
import fi.evolver.ai.spring.chat.ChatApi;
import fi.evolver.ai.spring.chat.prompt.ChatPrompt;
import fi.evolver.ai.spring.chat.prompt.Message;
import fi.evolver.ai.vaadin.ChatRepository;
import fi.evolver.ai.vaadin.PromptRepository;
import fi.evolver.ai.vaadin.component.AiChatComponent;
import fi.evolver.ai.vaadin.component.ChatSummaryPromptFunction;
import fi.evolver.ai.vaadin.util.ChatUtils;
public abstract class ChatBaseView extends ChatHistoryAwareView {
@Serial
private static final long serialVersionUID = 1L;
private final AiChatComponent aiChatComponent;
public ChatBaseView(
ChatApi chatApi,
ChatRepository chatRepository,
PromptRepository promptRepository,
AsyncRunner asyncRunner,
ChatSummaryPromptFunction chatSummaryPromptFunction) {
this.aiChatComponent = new AiChatComponent(
chatApi,
chatRepository,
promptRepository,
getClass(),
this::createChatPrompt,
chatSummaryPromptFunction,
asyncRunner);
}
public ChatBaseView(
ChatApi chatApi,
ChatRepository chatRepository,
PromptRepository promptRepository,
AsyncRunner asyncRunner) {
this(
chatApi,
chatRepository,
promptRepository,
asyncRunner,
ChatUtils::createSummaryPrompt);
}
@Override
public AiChatComponent getChatComponent() {
return aiChatComponent;
}
protected abstract ChatPrompt createChatPrompt(List chatMessages);
}