Module: Llmemory::VectorStore

Defined in:
lib/llmemory/vector_store.rb,
lib/llmemory/vector_store/base.rb,
lib/llmemory/vector_store/memory_store.rb,
lib/llmemory/vector_store/openai_embeddings.rb,
lib/llmemory/vector_store/active_record_store.rb,
lib/llmemory/vector_store/active_record_embedding.rb

Defined Under Namespace

Classes: ActiveRecordEmbedding, ActiveRecordStore, Base, MemoryStore, OpenAIEmbeddings

Class Method Summary collapse

Class Method Details

.build(source_type: "edge") ⇒ Object

Builds a vector store wired to OpenAI embeddings, selecting the backend from config (:active_record persists in llmemory_embeddings; otherwise in-process). ‘source_type` namespaces persisted embeddings so different memory types (edges, episodes, skills) never collide in the shared table.



13
14
15
16
17
18
19
20
21
22
# File 'lib/llmemory/vector_store.rb', line 13

def self.build(source_type: "edge")
  embeddings = OpenAIEmbeddings.new
  store_type = (Llmemory.configuration.long_term_store || :memory).to_s.to_sym
  if store_type == :active_record || store_type == :activerecord
    require_relative "vector_store/active_record_store"
    ActiveRecordStore.new(embedding_provider: embeddings, source_type: source_type)
  else
    MemoryStore.new(embedding_provider: embeddings)
  end
end