Module: Engram

Defined in:
lib/engram.rb,
lib/engram/math.rb,
lib/engram/memory.rb,
lib/engram/record.rb,
lib/engram/railtie.rb,
lib/engram/version.rb,
lib/engram/decision.rb,
lib/engram/turn_digest.rb,
lib/engram/configuration.rb,
lib/engram/ports/embedder.rb,
lib/engram/ports/extractor.rb,
lib/engram/ports/completion.rb,
lib/engram/rails/has_memory.rb,
lib/engram/use_cases/forget.rb,
lib/engram/use_cases/inject.rb,
lib/engram/use_cases/recall.rb,
lib/engram/rails/observe_job.rb,
lib/engram/use_cases/observe.rb,
lib/engram/ports/consolidator.rb,
lib/engram/ports/memory_store.rb,
lib/engram/integrations/ruby_llm.rb,
lib/engram/ports/processed_turns.rb,
lib/engram/adapters/null_embedder.rb,
lib/engram/adapters/pgvector_store.rb,
lib/engram/adapters/fake_completion.rb,
lib/engram/adapters/in_memory_store.rb,
lib/engram/extractors/llm_extractor.rb,
lib/engram/adapters/ruby_llm_embedder.rb,
lib/engram/rails/cache_processed_turns.rb,
lib/engram/adapters/ruby_llm_completion.rb,
lib/generators/engram/install_generator.rb,
lib/engram/consolidators/llm_consolidator.rb,
lib/engram/adapters/in_memory_processed_turns.rb,
lib/engram/consolidators/heuristic_consolidator.rb

Overview

Public entrypoint and configuration store.

Defined Under Namespace

Modules: Adapters, Consolidators, Extractors, Generators, Integrations, Math, Ports, Rails, TurnDigest, UseCases Classes: Configuration, Decision, Error, Memory, ObserveJob, Railtie, Record

Constant Summary collapse

VERSION =
"0.3.0"

Class Method Summary collapse

Class Method Details

.configObject



51
52
53
# File 'lib/engram.rb', line 51

def config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

Yields:



55
56
57
# File 'lib/engram.rb', line 55

def configure
  yield config
end

.reset!Object

Reset configuration (primarily for tests).



60
61
62
# File 'lib/engram.rb', line 60

def reset!
  @config = Configuration.new
end

.with_memory(chat, memory:, limit: config.default_limit) ⇒ Object

Convenience entrypoint.



37
38
39
# File 'lib/engram/integrations/ruby_llm.rb', line 37

def self.with_memory(chat, memory:, limit: config.default_limit)
  Integrations::RubyLLM::MemoryChat.new(chat, memory: memory, limit: limit)
end