Verified Owner
Top Inners Fields Constructors Methods
org.jabref.gui.ai.chat

public Class AiChatViewModel

extends AbstractViewModel
Class Inheritance
Imports
java.nio.file.Path, java.util.ArrayList, .Comparator, .List, .Map, .Optional, .TreeMap, javafx.beans.binding.Bindings, .BooleanBinding, javafx.beans.property.ListProperty, .ObjectProperty, .SimpleListProperty, .SimpleObjectProperty, .SimpleStringProperty, .StringProperty, javafx.collections.FXCollections, .ObservableList, org.jabref.gui.AbstractViewModel, .DialogService, org.jabref.gui.util.BindingsHelper, org.jabref.logic.FilePreferences, org.jabref.logic.ai.chatting.ChatModel, org.jabref.logic.ai.chatting.tasks.GenerateRagResponseTask, org.jabref.logic.ai.chatting.util.ChatHistoryUtils, .ChatModelFactory, org.jabref.logic.ai.embedding.AsyncEmbeddingModel, .EmbeddingModelCache, .EmbeddingModelFactory, org.jabref.logic.ai.followup.tasks.GenerateFollowUpQuestions, org.jabref.logic.ai.ingestion.IngestionTaskAggregator, org.jabref.logic.ai.ingestion.logic.documentsplitting.DocumentSplitter, org.jabref.logic.ai.ingestion.repositories.IngestedDocumentsRepository, org.jabref.logic.ai.ingestion.tasks.generateembeddings.GenerateEmbeddingsTask, .GenerateEmbeddingsTaskRequest, org.jabref.logic.ai.ingestion.util.DocumentSplitterFactory, .FileHasher, org.jabref.logic.ai.preferences.AiPreferences, org.jabref.logic.ai.rag.logic.ResponseEngine, org.jabref.logic.ai.rag.util.ResponseEngineFactory, org.jabref.logic.l10n.Localization, org.jabref.logic.util.BackgroundTask, .ObservablesHelper, .TaskExecutor, org.jabref.logic.util.strings.StringUtil, org.jabref.model.ai.chatting.ChatMessage, org.jabref.model.ai.identifiers.FullBibEntry, org.jabref.model.entry.LinkedFile, com.google.common.collect.Comparators, com.tobiasdiez.easybind.EasyBind, dev.langchain4j.data.segment.TextSegment, dev.langchain4j.store.embedding.EmbeddingStore, org.slf4j.Logger, .LoggerFactory

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static enum

Field Summary

Modifier and TypeField and Description
private final AiPreferences
private final ListProperty<ChatMessage>
private final ObjectProperty<ChatModel>
private List<FullBibEntry>
private final DialogService
private final ObjectProperty<DocumentSplitter>
private final ObjectProperty<AsyncEmbeddingModel>
private final EmbeddingModelCache
private final dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
private final ListProperty<FullBibEntry>
private static final String
private static final String
private static final String
private final FilePreferences
private final ListProperty<String>
private final TreeMap<List<FullBibEntry>, List<String>>
private final ListProperty<GenerateEmbeddingsTask>
private org.jabref.logic.util.BackgroundTask<List<String>>
private final ObjectProperty<GenerateRagResponseTask>
private final IngestedDocumentsRepository
private final IngestionTaskAggregator
private static final Logger
private final ObjectProperty<ResponseEngine>
private final ObjectProperty<AiChatViewModel.State>
private final StringProperty
private final TaskExecutor
private final TreeMap<List<FullBibEntry>, GenerateRagResponseTask>
private final StringProperty

Constructor Summary

AccessConstructor and Description
public
AiChatViewModel(AiPreferences aiPreferences, FilePreferences filePreferences, DialogService dialogService, IngestionTaskAggregator ingestionTaskAggregator, IngestedDocumentsRepository ingestedDocumentsRepository, dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment> embeddingStore, EmbeddingModelCache embeddingModelCache, TaskExecutor taskExecutor)

Method Summary

Modifier and TypeMethod and Description
public void
private void
public ListProperty<ChatMessage>
public ObjectProperty<ChatModel>
private boolean
checkIngested(FullBibEntry fullBibEntry, LinkedFile linkedFile)

private void
public void
public ListProperty<FullBibEntry>
public ListProperty<String>
public ListProperty<GenerateEmbeddingsTask>
public void
public void
public ObjectProperty<ResponseEngine>
private void
public void
public void
sendMessage(String userMessage)

private void
private void
private void
public void
public ObjectProperty<AiChatViewModel.State>

Field Detail

aiPreferencesback to summary
private final AiPreferences aiPreferences
chatHistoryback to summary
private final ListProperty<ChatMessage> chatHistory
chatModelback to summary
private final ObjectProperty<ChatModel> chatModel
currentEntriesSnapshotback to summary
private List<FullBibEntry> currentEntriesSnapshot
dialogServiceback to summary
private final DialogService dialogService
documentSplitterback to summary
private final ObjectProperty<DocumentSplitter> documentSplitter
embeddingModelback to summary
private final ObjectProperty<AsyncEmbeddingModel> embeddingModel
embeddingModelCacheback to summary
private final EmbeddingModelCache embeddingModelCache
embeddingStoreback to summary
private final dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment> embeddingStore
entriesback to summary
private final ListProperty<FullBibEntry> entries
EXAMPLE_QUESTION_1back to summary
private static final String EXAMPLE_QUESTION_1
EXAMPLE_QUESTION_2back to summary
private static final String EXAMPLE_QUESTION_2
EXAMPLE_QUESTION_3back to summary
private static final String EXAMPLE_QUESTION_3
filePreferencesback to summary
private final FilePreferences filePreferences
followUpQuestionsback to summary
private final ListProperty<String> followUpQuestions
followUpQuestionsCacheback to summary
private final TreeMap<List<FullBibEntry>, List<String>> followUpQuestionsCache
generateEmbeddingsTasksback to summary
private final ListProperty<GenerateEmbeddingsTask> generateEmbeddingsTasks
generateFollowUpQuestionsTaskback to summary
private org.jabref.logic.util.BackgroundTask<List<String>> generateFollowUpQuestionsTask
generateRagResponseTaskback to summary
private final ObjectProperty<GenerateRagResponseTask> generateRagResponseTask
ingestedDocumentsRepositoryback to summary
private final IngestedDocumentsRepository ingestedDocumentsRepository
ingestionTaskAggregatorback to summary
private final IngestionTaskAggregator ingestionTaskAggregator
LOGGERback to summary
private static final Logger LOGGER
responseEngineback to summary
private final ObjectProperty<ResponseEngine> responseEngine
stateback to summary
private final ObjectProperty<AiChatViewModel.State> state
systemMessageTemplateback to summary
private final StringProperty systemMessageTemplate
taskExecutorback to summary
private final TaskExecutor taskExecutor
tasksMapback to summary
private final TreeMap<List<FullBibEntry>, GenerateRagResponseTask> tasksMap
userMessageTemplateback to summary
private final StringProperty userMessageTemplate

Constructor Detail

AiChatViewModelback to summary
public AiChatViewModel(AiPreferences aiPreferences, FilePreferences filePreferences, DialogService dialogService, IngestionTaskAggregator ingestionTaskAggregator, IngestedDocumentsRepository ingestedDocumentsRepository, dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment> embeddingStore, EmbeddingModelCache embeddingModelCache, TaskExecutor taskExecutor)

Method Detail

cancelback to summary
public void cancel()
changeEmbeddingTasksback to summary
private void changeEmbeddingTasks()
chatHistoryPropertyback to summary
public ListProperty<ChatMessage> chatHistoryProperty()
chatModelPropertyback to summary
public ObjectProperty<ChatModel> chatModelProperty()
checkIngestedback to summary
private boolean checkIngested(FullBibEntry fullBibEntry, LinkedFile linkedFile)
clearGenerateRagResponseTaskback to summary
private void clearGenerateRagResponseTask()
deleteback to summary
public void delete(String id)
entriesPropertyback to summary
public ListProperty<FullBibEntry> entriesProperty()
followUpQuestionsPropertyback to summary
public ListProperty<String> followUpQuestionsProperty()
generateEmbeddingsTasksPropertyback to summary
public ListProperty<GenerateEmbeddingsTask> generateEmbeddingsTasksProperty()
regenerateback to summary
public void regenerate(String id)
regenerateback to summary
public void regenerate()
responseEnginePropertyback to summary
public ObjectProperty<ResponseEngine> responseEngineProperty()
scheduleFollowUpQuestionsGenerationback to summary
private void scheduleFollowUpQuestionsGeneration(String userMessage, String aiResponse)
sendFollowUpMessageback to summary
public void sendFollowUpMessage(String question)
sendMessageback to summary
public void sendMessage(String userMessage)
setupBindingsback to summary
private void setupBindings()
setupListenersback to summary
private void setupListeners()
setupValuesback to summary
private void setupValues()
showInfoback to summary
public void showInfo()
statePropertyback to summary
public ObjectProperty<AiChatViewModel.State> stateProperty()
org.jabref.gui.ai.chat back to summary

public final Enum AiChatViewModel.State

extends Enum<AiChatViewModel.State>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final AiChatViewModel.State
public static final AiChatViewModel.State
public static final AiChatViewModel.State
public static final AiChatViewModel.State
public static final AiChatViewModel.State
public static final AiChatViewModel.State

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static AiChatViewModel.State
public static AiChatViewModel.State[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

AI_TURNED_OFFback to summary
public static final AiChatViewModel.State AI_TURNED_OFF
ERRORback to summary
public static final AiChatViewModel.State ERROR
IDLEback to summary
public static final AiChatViewModel.State IDLE
NO_FILESback to summary
public static final AiChatViewModel.State NO_FILES
RESTART_NEEDEDback to summary
public static final AiChatViewModel.State RESTART_NEEDED
WAITING_FOR_MESSAGEback to summary
public static final AiChatViewModel.State WAITING_FOR_MESSAGE

Constructor Detail

Stateback to summary
private State()

Method Detail

valueOfback to summary
public static AiChatViewModel.State valueOf(String name)
valuesback to summary
public static AiChatViewModel.State[] values()