Class InMemoryEmbeddingStore<Embedded>

java.lang.Object
dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore<Embedded>
Type Parameters:
Embedded - The class of the object that has been embedded. Typically, it is TextSegment.
All Implemented Interfaces:
dev.langchain4j.store.embedding.EmbeddingStore<Embedded>

public class InMemoryEmbeddingStore<Embedded> extends Object implements dev.langchain4j.store.embedding.EmbeddingStore<Embedded>
An EmbeddingStore that stores embeddings in memory.

Uses a brute force approach by iterating over all embeddings to find the best matches.

This store can be persisted using the serializeToJson() and serializeToFile(Path) methods.

It can also be recreated from JSON or a file using the fromJson(String) and fromFile(Path) methods.

  • Constructor Details

    • InMemoryEmbeddingStore

      public InMemoryEmbeddingStore()
  • Method Details

    • add

      public String add(dev.langchain4j.data.embedding.Embedding embedding)
      Specified by:
      add in interface dev.langchain4j.store.embedding.EmbeddingStore<Embedded>
    • add

      public void add(String id, dev.langchain4j.data.embedding.Embedding embedding)
      Specified by:
      add in interface dev.langchain4j.store.embedding.EmbeddingStore<Embedded>
    • add

      public String add(dev.langchain4j.data.embedding.Embedding embedding, Embedded embedded)
      Specified by:
      add in interface dev.langchain4j.store.embedding.EmbeddingStore<Embedded>
    • add

      public void add(String id, dev.langchain4j.data.embedding.Embedding embedding, Embedded embedded)
    • addAll

      public List<String> addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings)
      Specified by:
      addAll in interface dev.langchain4j.store.embedding.EmbeddingStore<Embedded>
    • addAll

      public List<String> addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings, List<Embedded> embedded)
      Specified by:
      addAll in interface dev.langchain4j.store.embedding.EmbeddingStore<Embedded>
    • removeAll

      public void removeAll(Collection<String> ids)
      Specified by:
      removeAll in interface dev.langchain4j.store.embedding.EmbeddingStore<Embedded>
    • removeAll

      public void removeAll(dev.langchain4j.store.embedding.filter.Filter filter)
      Specified by:
      removeAll in interface dev.langchain4j.store.embedding.EmbeddingStore<Embedded>
    • removeAll

      public void removeAll()
      Specified by:
      removeAll in interface dev.langchain4j.store.embedding.EmbeddingStore<Embedded>
    • search

      public dev.langchain4j.store.embedding.EmbeddingSearchResult<Embedded> search(dev.langchain4j.store.embedding.EmbeddingSearchRequest embeddingSearchRequest)
      Specified by:
      search in interface dev.langchain4j.store.embedding.EmbeddingStore<Embedded>
    • serializeToJson

      public String serializeToJson()
    • serializeToFile

      public void serializeToFile(Path filePath)
    • serializeToFile

      public void serializeToFile(String filePath)
    • fromJson

      public static InMemoryEmbeddingStore<dev.langchain4j.data.segment.TextSegment> fromJson(String json)
    • fromFile

      public static InMemoryEmbeddingStore<dev.langchain4j.data.segment.TextSegment> fromFile(Path filePath)
    • fromFile

      public static InMemoryEmbeddingStore<dev.langchain4j.data.segment.TextSegment> fromFile(String filePath)
    • merge

      public static <Embedded> InMemoryEmbeddingStore<Embedded> merge(Collection<InMemoryEmbeddingStore<Embedded>> stores)
      Merges given InMemoryEmbeddingStores into a single InMemoryEmbeddingStore, copying all entries from each store.
    • merge

      public static <Embedded> InMemoryEmbeddingStore<Embedded> merge(InMemoryEmbeddingStore<Embedded> first, InMemoryEmbeddingStore<Embedded> second)
      Merges given InMemoryEmbeddingStores into a single InMemoryEmbeddingStore, copying all entries from each store.