Class: Relay::Models::ModelRecord

Inherits:
Sequel::Model
  • Object
show all
Includes:
Relay::Model
Defined in:
app/models/model_record.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Relay::Model

included

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.

Parameters:

  • provider (LLM::Provider)


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_allvoid

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

#dataHash

Returns the parsed model metadata payload.

Returns:

  • (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