Module: Legion::Extensions::Llm::Ollama

Extended by:
Core, AutoRegistration, Logging::Helper
Defined in:
lib/legion/extensions/llm/ollama.rb,
lib/legion/extensions/llm/ollama/version.rb,
lib/legion/extensions/llm/ollama/provider.rb,
lib/legion/extensions/llm/ollama/actors/fleet_worker.rb,
lib/legion/extensions/llm/ollama/runners/fleet_worker.rb

Overview

Ollama provider extension namespace.

Defined Under Namespace

Modules: Actor, Runners Classes: Provider

Constant Summary collapse

PROVIDER_FAMILY =
:ollama
VERSION =
'0.2.8'

Class Method Summary collapse

Class Method Details

.default_settingsObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/legion/extensions/llm/ollama.rb', line 19

def self.default_settings
  ::Legion::Extensions::Llm.provider_settings(
    family: PROVIDER_FAMILY,
    instance: {
      endpoint: 'http://127.0.0.1:11434',
      default_model: 'qwen3.5:latest',
      tier: :local,
      transport: :http,
      credentials: {},
      usage: { inference: true, embedding: true, image: false },
      limits: { concurrency: 1 },
      fleet: {
        enabled: false,
        respond_to_requests: false,
        capabilities: %i[chat stream_chat embed],
        lanes: [],
        concurrency: 1,
        queue_suffix: nil
      }
    }
  )
end

.discover_instancesObject



50
51
52
53
54
55
56
57
58
# File 'lib/legion/extensions/llm/ollama.rb', line 50

def self.discover_instances
  instances = {}

  discover_local_instance(instances)
  discover_configured_instances(instances)

  log.debug { "ollama discovery returning instance_count=#{instances.size}" }
  instances
end

.normalize_instance_config(config) ⇒ Object



60
61
62
63
64
65
66
# File 'lib/legion/extensions/llm/ollama.rb', line 60

def self.normalize_instance_config(config)
  normalized = config.to_h.transform_keys { |key| key.respond_to?(:to_sym) ? key.to_sym : key }
  normalized[:base_url] ||= normalized.delete(:ollama_api_base)
  normalized[:base_url] ||= normalized.delete(:api_base)
  normalized[:base_url] ||= normalized.delete(:endpoint)
  normalized.compact
end

.provider_classObject



42
43
44
# File 'lib/legion/extensions/llm/ollama.rb', line 42

def self.provider_class
  Provider
end

.registry_publisherObject



46
47
48
# File 'lib/legion/extensions/llm/ollama.rb', line 46

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