Module: Legion::LLM::Hooks
- Extended by:
- Legion::Logging::Helper
- Defined in:
- lib/legion/llm/hooks.rb,
lib/legion/llm/hooks/metering.rb,
lib/legion/llm/hooks/rag_guard.rb,
lib/legion/llm/hooks/reflection.rb,
lib/legion/llm/hooks/reciprocity.rb,
lib/legion/llm/hooks/budget_guard.rb,
lib/legion/llm/hooks/cost_tracking.rb,
lib/legion/llm/hooks/response_guard.rb
Defined Under Namespace
Modules: BudgetGuard, CostTracking, Metering, RagGuard, Reciprocity, Reflection, ResponseGuard
Class Method Summary
collapse
Class Method Details
.after_chat(&block) ⇒ Object
25
26
27
|
# File 'lib/legion/llm/hooks.rb', line 25
def after_chat(&block)
@after_chat << block
end
|
.before_chat(&block) ⇒ Object
21
22
23
|
# File 'lib/legion/llm/hooks.rb', line 21
def before_chat(&block)
@before_chat << block
end
|
.reset! ⇒ Object
51
52
53
54
|
# File 'lib/legion/llm/hooks.rb', line 51
def reset!
@before_chat = []
@after_chat = []
end
|
.run_after(response:, messages:, model:) ⇒ Object
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/legion/llm/hooks.rb', line 40
def run_after(response:, messages:, model:, **)
@after_chat.each do |hook|
result = hook.call(response: response, messages: messages, model: model, **)
return result if result.is_a?(Hash) && result[:action] == :block
end
nil
rescue StandardError => e
handle_exception(e, level: :warn)
nil
end
|
.run_before(messages:, model:) ⇒ Object
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/legion/llm/hooks.rb', line 29
def run_before(messages:, model:, **)
@before_chat.each do |hook|
result = hook.call(messages: messages, model: model, **)
return result if result.is_a?(Hash) && result[:action] == :block
end
nil
rescue StandardError => e
handle_exception(e, level: :warn)
nil
end
|