Class: Legion::Extensions::Transformer::Engines::Llm

Inherits:
Base
  • Object
show all
Defined in:
lib/legion/extensions/transformer/engines/llm.rb

Constant Summary collapse

AUTH_ERRORS =
/auth|credentials|forbidden|api.key|unauthorized/i
RETRY_SLEEP =
1

Instance Method Summary collapse

Instance Method Details

#nameObject



14
15
16
# File 'lib/legion/extensions/transformer/engines/llm.rb', line 14

def name
  :llm
end

#render(prompt, payload, **opts) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/legion/extensions/transformer/engines/llm.rb', line 18

def render(prompt, payload, **opts)
  raise 'Legion::LLM is not available or not started' unless llm_available?

  @last_raw = nil
  resolved = resolve_options(opts)
  max_retries = resolved.delete(:max_retries)
  attempts = 0

  loop do
    result = attempt_render(prompt, payload, resolved, attempts)
    return result unless result == :retry

    attempts += 1
    return build_failure if attempts > max_retries

    sleep(RETRY_SLEEP)
  end
end