Class: Legion::Extensions::Llm::Vllm::Actor::DiscoveryRefresh

Inherits:
Actors::Every
  • Object
show all
Includes:
Inventory::ScopedRefresher, Logging::Helper
Defined in:
lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb

Overview

Periodic actor that refreshes the vLLM discovered model list.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.every_secondsObject



32
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 32

def self.every_seconds = 300

Instance Method Details

#check_subtask?Boolean

Returns:

  • (Boolean)


38
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 38

def check_subtask?  = false

#compute_lanes_for_scopeObject



57
58
59
60
61
62
63
64
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 57

def compute_lanes_for_scope(**)
  return [] unless defined?(Legion::LLM::Call::Registry)

  vllm_instances.flat_map { |entry| lanes_from_instance(entry) }
rescue StandardError => e
  handle_exception(e, level: :warn, handled: true, operation: 'vllm.actor.compute_lanes_for_scope')
  []
end

#credential_hashObject



66
67
68
69
70
71
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 66

def credential_hash(**)
  cfg = vllm_cfg
  Digest::SHA256.hexdigest(cfg&.dig(:api_key).to_s + cfg&.dig(:instances).to_s)[0, 16]
rescue StandardError
  'unknown'
end

#generate_task?Boolean

Returns:

  • (Boolean)


39
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 39

def generate_task?  = false

#manualObject



73
74
75
76
77
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 73

def manual
  run_scoped_tick
rescue StandardError => e
  handle_exception(e, level: :warn, handled: true, operation: 'vllm.actor.discovery_refresh')
end

#offering_type(raw_type) ⇒ Object



48
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 48

def offering_type(raw_type)  = %i[embed embedding].include?(raw_type) ? :embedding : :inference

#run_now?Boolean

Returns:

  • (Boolean)


36
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 36

def run_now?        = true

#runner_classObject



34
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 34

def runner_class    = self.class

#runner_functionObject



35
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 35

def runner_function = 'manual'

#scope_keyObject



47
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 47

def scope_key                = { provider: :vllm }

#timeObject



41
42
43
44
45
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 41

def time
  return self.class.every_seconds unless defined?(Legion::Settings)

  Legion::Settings.dig(:extensions, :llm, :vllm, :discovery_interval) || self.class.every_seconds
end

#use_runner?Boolean

Returns:

  • (Boolean)


37
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 37

def use_runner?     = false

#vllm_cfgObject



50
51
52
53
54
55
# File 'lib/legion/extensions/llm/vllm/actors/discovery_refresh.rb', line 50

def vllm_cfg
  return unless defined?(Legion::Settings)

  Legion::Settings.dig(:extensions, :llm,
                       :vllm)
end