Module: Legion::Extensions::Ollama

Extended by:
Core
Defined in:
lib/legion/extensions/ollama.rb,
lib/legion/extensions/ollama/client.rb,
lib/legion/extensions/ollama/version.rb,
lib/legion/extensions/ollama/transport.rb,
lib/legion/extensions/ollama/runners/chat.rb,
lib/legion/extensions/ollama/helpers/usage.rb,
lib/legion/extensions/ollama/runners/blobs.rb,
lib/legion/extensions/ollama/runners/fleet.rb,
lib/legion/extensions/ollama/helpers/client.rb,
lib/legion/extensions/ollama/helpers/errors.rb,
lib/legion/extensions/ollama/runners/models.rb,
lib/legion/extensions/ollama/runners/version.rb,
lib/legion/extensions/ollama/actors/model_sync.rb,
lib/legion/extensions/ollama/runners/s3_models.rb,
lib/legion/extensions/ollama/runners/embeddings.rb,
lib/legion/extensions/ollama/actors/model_worker.rb,
lib/legion/extensions/ollama/runners/completions.rb,
lib/legion/extensions/ollama/transport/exchanges/llm_request.rb,
lib/legion/extensions/ollama/transport/messages/llm_response.rb

Defined Under Namespace

Modules: Actor, Helpers, Runners, Transport Classes: Client

Constant Summary collapse

VERSION =
'0.3.4'

Class Method Summary collapse

Class Method Details

.build_actorsObject

Called by the framework during autobuild. Runs normal actor discovery, then replaces the single ModelWorker entry with one concrete subclass per subscription entry in settings (each has a zero-arg initialize).



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/legion/extensions/ollama.rb', line 42

def self.build_actors
  super
  @actors.delete(:model_worker)

  subs = settings[:subscriptions]
  return unless subs.is_a?(Array)

  subs.each do |sub|
    request_type = sub[:type]&.to_s
    model        = sub[:model]&.to_s
    next unless request_type && model

    actor_name   = :"model_worker_#{request_type}_#{model.tr(':.', '__')}"
    worker_class = Class.new(Legion::Extensions::Ollama::Actor::ModelWorker) do
      define_method(:initialize) { super(request_type: request_type, model: model) }
    end

    @actors[actor_name] = {
      extension:      'lex-ollama',
      extension_name: :ollama,
      actor_name:     actor_name,
      actor_class:    worker_class,
      type:           'literal'
    }
  end
end

.default_settingsObject



32
33
34
35
36
37
# File 'lib/legion/extensions/ollama.rb', line 32

def self.default_settings
  {
    s3:    {},
    fleet: {}
  }
end