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.&.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
|