Class: Llmemory::ShortTerm::Stores::RedisStore
- Defined in:
- lib/llmemory/short_term/stores/redis_store.rb
Instance Method Summary collapse
- #delete(user_id, session_id) ⇒ Object
-
#initialize(redis_url: 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) ⇒ RedisStore
Returns a new instance of RedisStore.
9 10 11 12 |
# File 'lib/llmemory/short_term/stores/redis_store.rb', line 9 def initialize(redis_url: nil) @redis_url = redis_url || Llmemory.configuration.redis_url @redis = nil end |
Instance Method Details
#delete(user_id, session_id) ⇒ Object
24 25 26 27 |
# File 'lib/llmemory/short_term/stores/redis_store.rb', line 24 def delete(user_id, session_id) redis.del(key_for(user_id, session_id)) true end |
#list_sessions(user_id:) ⇒ Object
34 35 36 37 |
# File 'lib/llmemory/short_term/stores/redis_store.rb', line 34 def list_sessions(user_id:) keys = redis.keys("llmemory:checkpoint:#{user_id}:*") keys.map { |k| k.split(":", 4).last } end |
#list_users ⇒ Object
29 30 31 32 |
# File 'lib/llmemory/short_term/stores/redis_store.rb', line 29 def list_users keys = redis.keys("llmemory:checkpoint:*:*") keys.map { |k| k.split(":")[2] }.uniq end |
#load(user_id, session_id) ⇒ Object
19 20 21 22 |
# File 'lib/llmemory/short_term/stores/redis_store.rb', line 19 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
14 15 16 17 |
# File 'lib/llmemory/short_term/stores/redis_store.rb', line 14 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 |