Class: Relay::Models::ModelRecord
- Inherits:
-
Sequel::Model
- Object
- Sequel::Model
- Relay::Models::ModelRecord
- Includes:
- Relay::Model
- Defined in:
- app/models/model_record.rb
Class Method Summary collapse
-
.refresh(provider) ⇒ void
Replaces all stored model metadata for a provider in one transaction.
-
.refresh_all ⇒ void
Refreshes model records for every configured provider.
Instance Method Summary collapse
-
#data ⇒ Hash
Returns the parsed model metadata payload.
Methods included from Relay::Model
Class Method Details
.refresh(provider) ⇒ void
This method returns an undefined value.
Replaces all stored model metadata for a provider in one transaction.
Existing rows for the provider are deleted before the new rows are inserted. An empty provider model list clears the provider’s stored model metadata.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'app/models/model_record.rb', line 40 def self.refresh(provider) now = Time.now.utc name = provider.name.to_s db.transaction do where(provider: name).delete models = provider.models.all.filter_map do next unless _1.chat? { provider: name, model_id: _1.id, name: _1.name.to_s, data: JSON.dump(_1.to_h), synced_at: now, created_at: now, updated_at: now } end multi_insert(models) unless models.empty? end end |
.refresh_all ⇒ void
This method returns an undefined value.
Refreshes model records for every configured provider.
Each provider builder is initialized and then passed through refresh to replace its persisted model rows.
22 23 24 25 26 27 28 29 |
# File 'app/models/model_record.rb', line 22 def self.refresh_all Relay.providers.each do |_, provider| provider = provider.call refresh(provider) rescue LLM::Error next end end |
Instance Method Details
#data ⇒ Hash
Returns the parsed model metadata payload.
64 65 66 67 68 |
# File 'app/models/model_record.rb', line 64 def data @data ||= JSON.parse(self[:data]) rescue JSON::ParserError {} end |