Module: Legate::LLM

Defined in:
lib/legate/llm/adapter.rb,
lib/legate/llm.rb,
lib/legate/llm/gemini.rb,
lib/legate/llm/ollama.rb

Overview

LLM provider abstraction. The planner (and code generators) talk to an Adapter rather than a specific provider client, so Legate is not hardwired to one model vendor. Gemini is the first adapter; others (OpenAI, Anthropic, Ollama, …) implement the same interface.

Defined Under Namespace

Classes: Adapter, Gemini, Ollama

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.default_adapter_factory#call?

A factory for the default LLM adapter, called as ‘factory.call(model:, api_key:, logger:)` and expected to return a Legate::LLM::Adapter. Set this to use a provider other than Gemini for every agent, e.g.:

Legate::LLM.default_adapter_factory = ->(model:, api_key:, logger:) {
  MyProvider::Adapter.new(model: model, logger: logger)
}

Nil means use the built-in Gemini adapter.

Returns:

  • (#call, nil)


20
21
22
# File 'lib/legate/llm.rb', line 20

def default_adapter_factory
  @default_adapter_factory
end

Class Method Details

.build_adapter(model:, api_key: nil, logger: nil) ⇒ Legate::LLM::Adapter

Builds an adapter using the configured factory, or the default Gemini adapter. Per-planner overrides take precedence over this.



26
27
28
29
30
31
32
# File 'lib/legate/llm.rb', line 26

def self.build_adapter(model:, api_key: nil, logger: nil)
  if default_adapter_factory
    default_adapter_factory.call(model: model, api_key: api_key, logger: logger)
  else
    Gemini.new(model: model, api_key: api_key, logger: logger)
  end
end