Class: Engram::UseCases::Inject

Inherits:
Object
  • Object
show all
Defined in:
lib/engram/use_cases/inject.rb

Overview

Render recalled memories into a prompt as a clearly delimited block.

Constant Summary collapse

DEFAULT_HEADER =
"# What you remember about the user"

Instance Method Summary collapse

Constructor Details

#initialize(header: DEFAULT_HEADER) ⇒ Inject

Returns a new instance of Inject.



9
10
11
# File 'lib/engram/use_cases/inject.rb', line 9

def initialize(header: DEFAULT_HEADER)
  @header = header
end

Instance Method Details

#call(prompt:, memories:) ⇒ Object

Returns a new prompt string. If there are no memories, the prompt is unchanged.



14
15
16
17
18
19
# File 'lib/engram/use_cases/inject.rb', line 14

def call(prompt:, memories:)
  return prompt if memories.nil? || memories.empty?

  block = memories.map { |m| "- #{m.content}" }.join("\n")
  "#{prompt}\n\n#{@header}:\n#{block}"
end