Class: RailsConsoleAi::Memory
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- RailsConsoleAi::Memory
- Defined in:
- app/models/rails_console_ai/memory.rb
Class Method Summary collapse
Instance Method Summary collapse
- #content=(value) ⇒ Object
-
#description ⇒ Object
Memories don’t have a separate description vs body — the markdown body IS the memory.
- #parsed ⇒ Object
- #tags ⇒ Object
- #to_hash ⇒ Object
- #update_with_version!(attrs, edited_by: nil, change_note: nil) ⇒ Object
Class Method Details
.connection ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'app/models/rails_console_ai/memory.rb', line 21 def self.connection klass = RailsConsoleAi.configuration.connection_class if klass klass = Object.const_get(klass) if klass.is_a?(String) klass.connection else super end end |
.record_use!(id) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'app/models/rails_console_ai/memory.rb', line 45 def self.record_use!(id) where(id: id).update_all([ 'use_count = COALESCE(use_count, 0) + 1, last_used_at = ?', Time.now.utc ]) true rescue ::ActiveRecord::ActiveRecordError => e RailsConsoleAi.logger.warn("RailsConsoleAi::Memory.record_use!(#{id.inspect}) failed: #{e.}") false end |
Instance Method Details
#content=(value) ⇒ Object
35 36 37 38 |
# File 'app/models/rails_console_ai/memory.rb', line 35 def content=(value) @parsed = nil super end |
#description ⇒ Object
Memories don’t have a separate description vs body — the markdown body IS the memory. Parser exposes it under ‘description’.
42 |
# File 'app/models/rails_console_ai/memory.rb', line 42 def description; parsed['description']; end |
#parsed ⇒ Object
31 32 33 |
# File 'app/models/rails_console_ai/memory.rb', line 31 def parsed @parsed ||= (RailsConsoleAi::Tools::MemoryTools.parse(content.to_s) || {}) end |
#tags ⇒ Object
43 |
# File 'app/models/rails_console_ai/memory.rb', line 43 def ; Array(parsed['tags']); end |
#to_hash ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'app/models/rails_console_ai/memory.rb', line 56 def to_hash { 'id' => id, 'name' => name, 'description' => description, 'tags' => , 'content' => content, 'use_count' => use_count, 'last_used_at' => last_used_at, 'source' => :db, 'updated_at' => updated_at } end |
#update_with_version!(attrs, edited_by: nil, change_note: nil) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'app/models/rails_console_ai/memory.rb', line 70 def update_with_version!(attrs, edited_by: nil, change_note: nil) transaction do assign_attributes(attrs) save! RailsConsoleAi::MemoryVersion.create!( memory_id: id, name: name, content: content, edited_by: edited_by, change_note: change_note ) end self end |