Module: Legion::Extensions::Llm::Vllm

Extended by:
Core, AutoRegistration, Logging::Helper
Defined in:
lib/legion/extensions/llm/vllm.rb,
lib/legion/extensions/llm/vllm/version.rb,
lib/legion/extensions/llm/vllm/provider.rb

Overview

Vllm provider extension namespace.

Defined Under Namespace

Classes: Provider

Constant Summary collapse

PROVIDER_FAMILY =
:vllm
VERSION =
'0.2.0'

Class Method Summary collapse

Class Method Details

.default_settingsObject



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/legion/extensions/llm/vllm.rb', line 18

def self.default_settings
  {
    enabled: false,
    base_url: 'localhost:8000/v1',
    default_model: nil,
    enable_thinking: true,
    model_whitelist: [],
    model_blacklist: [],
    model_cache_ttl: 300,
    tls: { enabled: false, verify: :peer },
    instances: {}
  }
end

.discover_instancesObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/legion/extensions/llm/vllm.rb', line 40

def self.discover_instances
  instances = {}

  if CredentialSources.http_ok?('http://localhost:8000', path: '/health', timeout: 0.1)
    instances[:local] = {
      vllm_api_base: 'http://localhost:8000',
      tier: :local,
      capabilities: [:completion]
    }
  end

  configured = CredentialSources.setting(:extensions, :llm, :vllm, :instances)
  if configured.is_a?(Hash)
    configured.each do |name, config|
      instances[name.to_sym] = config.merge(tier: :direct)
    end
  end

  instances
end

.provider_classObject



32
33
34
# File 'lib/legion/extensions/llm/vllm.rb', line 32

def self.provider_class
  Provider
end

.registry_publisherObject



36
37
38
# File 'lib/legion/extensions/llm/vllm.rb', line 36

def self.registry_publisher
  @registry_publisher ||= Legion::Extensions::Llm::RegistryPublisher.new(provider_family: PROVIDER_FAMILY)
end