Verified Owner
Top Description Fields Constructors Methods
org.jabref.logic.ai.embedding

public Class MVStoreEmbeddingStore

extends MVStoreBase
implements dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
Class Inheritance
Imports
java.nio.file.Path, java.util.ArrayList, .Collection, .Comparator, .List, .Map, .Objects, .PriorityQueue, .UUID, java.util.function.Predicate, java.util.stream.IntStream, .Stream, org.jabref.logic.ai.util.MVStoreBase, org.jabref.logic.l10n.Localization, org.jabref.logic.util.NotificationService, dev.langchain4j.data.document.Metadata, dev.langchain4j.data.embedding.Embedding, dev.langchain4j.data.segment.TextSegment, dev.langchain4j.store.embedding.CosineSimilarity, dev.langchain4j.store.embedding.EmbeddingMatch, dev.langchain4j.store.embedding.EmbeddingSearchRequest, dev.langchain4j.store.embedding.EmbeddingSearchResult, dev.langchain4j.store.embedding.EmbeddingStore, dev.langchain4j.store.embedding.RelevanceScore, dev.langchain4j.store.embedding.filter.Filter, dev.langchain4j.store.embedding.filter.comparison.IsEqualTo, dev.langchain4j.store.embedding.filter.comparison.IsIn, org.jspecify.annotations.Nullable

A custom implementation of langchain4j's EmbeddingStore that uses an MVStore as an embedded database.

Every embedding has 3 fields: float array (the embedding itself), file hash where it was generated from, and the embedded string (the content).

Field Summary

Modifier and TypeField and Description
private static final String
private final Map<String, String>
private static final String
private final Map<String, float[]>
private static final String
private final Map<String, String>
private static final String
private final Map<String, Integer>
Inherited from org.jabref.logic.ai.util.MVStoreBase:
mvStore

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public String
add(dev.langchain4j.data.embedding.Embedding embedding)

public void
add(String id, dev.langchain4j.data.embedding.Embedding embedding)

public String
add(dev.langchain4j.data.embedding.Embedding embedding, dev.langchain4j.data.segment.TextSegment textSegment)

public List<String>
addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings)

public List<String>
addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> embedded)

private Stream<String>
applyFilter(@Nullable dev.langchain4j.store.embedding.filter.Filter filter)

protected String
protected String
private Stream<String>
public void
public void
removeAll(dev.langchain4j.store.embedding.filter.Filter filter)

public void
public void
public dev.langchain4j.store.embedding.EmbeddingSearchResult<dev.langchain4j.data.segment.TextSegment>

Returns:

an EmbeddingSearchResult, which contains most relevant text segments
search
(dev.langchain4j.store.embedding.EmbeddingSearchRequest
embedding search request
request
)

The main function of finding most relevant text segments.

Inherited from org.jabref.logic.ai.util.MVStoreBase:
closecommit

Field Detail

CONTENT_MAP_NAMEback to summary
private static final String CONTENT_MAP_NAME
contentMapback to summary
private final Map<String, String> contentMap
EMBEDDING_VECTOR_MAP_NAMEback to summary
private static final String EMBEDDING_VECTOR_MAP_NAME
embeddingVectorMapback to summary
private final Map<String, float[]> embeddingVectorMap
FILE_HASH_MAP_NAMEback to summary
private static final String FILE_HASH_MAP_NAME
fileHashMapback to summary
private final Map<String, String> fileHashMap
PAGE_NUMBER_MAP_NAMEback to summary
private static final String PAGE_NUMBER_MAP_NAME
pageNumberMapback to summary
private final Map<String, Integer> pageNumberMap

Constructor Detail

MVStoreEmbeddingStoreback to summary
public MVStoreEmbeddingStore(Path path, NotificationService dialogService)

Method Detail

addback to summary
public String add(dev.langchain4j.data.embedding.Embedding embedding)
Annotations
@Override
addback to summary
public void add(String id, dev.langchain4j.data.embedding.Embedding embedding)
Annotations
@Override
addback to summary
public String add(dev.langchain4j.data.embedding.Embedding embedding, dev.langchain4j.data.segment.TextSegment textSegment)
Annotations
@Override
addAllback to summary
public List<String> addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings)
Annotations
@Override
addAllback to summary
public List<String> addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> embedded)
Annotations
@Override
applyFilterback to summary
private Stream<String> applyFilter(@Nullable dev.langchain4j.store.embedding.filter.Filter filter)
errorMessageForOpeningback to summary
protected String errorMessageForOpening()

Implements abstract org.jabref.logic.ai.util.MVStoreBase.errorMessageForOpening.

Annotations
@Override
errorMessageForOpeningLocalizedback to summary
protected String errorMessageForOpeningLocalized()

Implements abstract org.jabref.logic.ai.util.MVStoreBase.errorMessageForOpeningLocalized.

Annotations
@Override
filterEntriesback to summary
private Stream<String> filterEntries(Predicate<Map.Entry<String, String>> predicate)
removeback to summary
public void remove(String id)
Annotations
@Override
removeAllback to summary
public void removeAll(dev.langchain4j.store.embedding.filter.Filter filter)
Annotations
@Override
removeAllback to summary
public void removeAll()
Annotations
@Override
removeAllback to summary
public void removeAll(Collection<E> ids)
Annotations
@Override
searchback to summary
public dev.langchain4j.store.embedding.EmbeddingSearchResult<dev.langchain4j.data.segment.TextSegment> search(dev.langchain4j.store.embedding.EmbeddingSearchRequest request)

The main function of finding most relevant text segments. Note: the only filters supported are:

Parameters
request:dev.langchain4j.store.embedding.EmbeddingSearchRequest

embedding search request

Returns:dev.langchain4j.store.embedding.EmbeddingSearchResult<dev.langchain4j.data.segment.TextSegment>

an EmbeddingSearchResult, which contains most relevant text segments

Annotations
@Override