Class: Llmemory::ShortTerm::Stores::RedisStore
- Includes:
- Crypto::FieldHelpers
- Defined in:
- lib/llmemory/short_term/stores/redis_store.rb
Instance Method Summary collapse
- #delete(user_id, session_id) ⇒ Object
-
#initialize(redis_url: nil, cipher: nil) ⇒ RedisStore
constructor
A new instance of RedisStore.
- #list_sessions(user_id:) ⇒ Object
- #list_users ⇒ Object
- #load(user_id, session_id) ⇒ Object
- #save(user_id, session_id, state) ⇒ Object
Constructor Details
#initialize(redis_url: nil, cipher: nil) ⇒ RedisStore
Returns a new instance of RedisStore.
12 13 14 15 16 |
# File 'lib/llmemory/short_term/stores/redis_store.rb', line 12 def initialize(redis_url: nil, cipher: nil) @redis_url = redis_url || Llmemory.configuration.redis_url @redis = nil @cipher = cipher || Llmemory.build_cipher end |
Instance Method Details
#delete(user_id, session_id) ⇒ Object
28 29 30 31 |
# File 'lib/llmemory/short_term/stores/redis_store.rb', line 28 def delete(user_id, session_id) redis.del(key_for(user_id, session_id)) true end |
#list_sessions(user_id:) ⇒ Object
38 39 40 41 |
# File 'lib/llmemory/short_term/stores/redis_store.rb', line 38 def list_sessions(user_id:) keys = redis.keys("llmemory:checkpoint:#{user_id}:*") keys.map { |k| k.split(":", 4).last } end |
#list_users ⇒ Object
33 34 35 36 |
# File 'lib/llmemory/short_term/stores/redis_store.rb', line 33 def list_users keys = redis.keys("llmemory:checkpoint:*:*") keys.map { |k| k.split(":")[2] }.uniq end |
#load(user_id, session_id) ⇒ Object
23 24 25 26 |
# File 'lib/llmemory/short_term/stores/redis_store.rb', line 23 def load(user_id, session_id) data = redis.get(key_for(user_id, session_id)) data ? deserialize(data) : nil end |
#save(user_id, session_id, state) ⇒ Object
18 19 20 21 |
# File 'lib/llmemory/short_term/stores/redis_store.rb', line 18 def save(user_id, session_id, state) redis.set(key_for(user_id, session_id), serialize(state), ex: 86400 * 7) # 7 days TTL true end |