Class: CircuitBreaker::Executors::LLM::Memory
- Inherits:
-
Object
- Object
- CircuitBreaker::Executors::LLM::Memory
show all
- Defined in:
- lib/circuit_breaker/executors/llm/memory.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize ⇒ Memory
7
8
9
10
|
# File 'lib/circuit_breaker/executors/llm/memory.rb', line 7
def initialize
@messages = []
@metadata = {}
end
|
Instance Attribute Details
#messages ⇒ Object
Returns the value of attribute messages.
5
6
7
|
# File 'lib/circuit_breaker/executors/llm/memory.rb', line 5
def messages
@messages
end
|
Returns the value of attribute metadata.
5
6
7
|
# File 'lib/circuit_breaker/executors/llm/memory.rb', line 5
def metadata
@metadata
end
|
Instance Method Details
#add_message(role:, content:, metadata: {}) ⇒ Object
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/circuit_breaker/executors/llm/memory.rb', line 12
def add_message(role:, content:, metadata: {})
message = {
role: role,
content: content,
timestamp: Time.now.utc,
metadata: metadata
}
@messages << message
message
end
|
#clear ⇒ Object
28
29
30
31
|
# File 'lib/circuit_breaker/executors/llm/memory.rb', line 28
def clear
@messages.clear
@metadata.clear
end
|
#get_context(window_size: nil) ⇒ Object
23
24
25
26
|
# File 'lib/circuit_breaker/executors/llm/memory.rb', line 23
def get_context(window_size: nil)
messages_to_return = window_size ? @messages.last(window_size) : @messages
messages_to_return.map { |m| "#{m[:role]}: #{m[:content]}" }.join("\n")
end
|
#to_h ⇒ Object
33
34
35
36
37
38
|
# File 'lib/circuit_breaker/executors/llm/memory.rb', line 33
def to_h
{
messages: @messages,
metadata: @metadata
}
end
|