Module: Legion::LLM::Inference::Steps::TokenBudget

Includes:
Logging, Legion::Logging::Helper
Included in:
Executor
Defined in:
lib/legion/llm/inference/steps/token_budget.rb

Instance Method Summary collapse

Instance Method Details

#step_token_budgetObject



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/legion/llm/inference/steps/token_budget.rb', line 13

def step_token_budget
  max_input = @request.extra&.dig(:max_input_tokens)
  log_step_debug(:token_budget, :checking, max_input_tokens: max_input || 'none')
  check_input_cap(max_input) if max_input&.positive?
  check_session_budget
  log_step_debug(:token_budget, :passed, max_input_tokens: max_input || 'none')
rescue Legion::LLM::TokenBudgetExceeded
  log_step_info(:token_budget, :blocked)
  raise
rescue StandardError => e
  @warnings << { type: :token_budget_check_failed, message: e.message }
  handle_exception(e, level: :debug, operation: 'llm.pipeline.steps.token_budget')
end