Class: Riffer::Guardrail
- Inherits:
-
Object
- Object
- Riffer::Guardrail
- Defined in:
- lib/riffer/guardrail.rb,
sig/generated/riffer/guardrail.rbs
Overview
Base class for guardrails that process input and output in the agent pipeline.
class MyGuardrail < Riffer::Guardrail
def process_input(, context:)
# Return pass(messages), transform(modified_messages), or block(reason)
pass()
end
def process_output(response, messages:, context:)
# Return pass(response), transform(modified_response), or block(reason)
pass(response)
end
end
Instance Method Summary collapse
-
#block(reason, metadata: nil) ⇒ Riffer::Guardrails::Result
Creates a block result that halts execution.
-
#name ⇒ String
Returns the guardrail's identifier, used as the tracing span suffix and the riffer.guardrail.name attribute; override to label the span.
-
#pass(data) ⇒ Riffer::Guardrails::Result
Creates a pass result that continues with unchanged data.
-
#process_input(messages, context:) ⇒ Riffer::Guardrails::Result
Processes input messages before they're sent to the LLM; override in subclasses.
-
#process_output(response, messages:, context:) ⇒ Riffer::Guardrails::Result
Processes the output response after it's received from the LLM; override in subclasses.
-
#transform(data) ⇒ Riffer::Guardrails::Result
Creates a transform result that continues with transformed data.
Instance Method Details
#block(reason, metadata: nil) ⇒ Riffer::Guardrails::Result
Creates a block result that halts execution.
: (String, ?metadata: Hash[Symbol, untyped]?) -> Riffer::Guardrails::Result
61 62 63 |
# File 'lib/riffer/guardrail.rb', line 61 def block(reason, metadata: nil) Riffer::Guardrails::Result.block(reason, metadata: ) end |
#name ⇒ String
Returns the guardrail's identifier, used as the tracing span suffix and the riffer.guardrail.name attribute; override to label the span.
: () -> String
38 39 40 |
# File 'lib/riffer/guardrail.rb', line 38 def name Riffer::Helpers::ClassNameConverter.convert(self.class.name) end |
#pass(data) ⇒ Riffer::Guardrails::Result
Creates a pass result that continues with unchanged data.
: (untyped) -> Riffer::Guardrails::Result
47 48 49 |
# File 'lib/riffer/guardrail.rb', line 47 def pass(data) Riffer::Guardrails::Result.pass(data) end |
#process_input(messages, context:) ⇒ Riffer::Guardrails::Result
Processes input messages before they're sent to the LLM; override in subclasses.
: (Array, context: untyped) -> Riffer::Guardrails::Result
22 23 24 |
# File 'lib/riffer/guardrail.rb', line 22 def process_input(, context:) pass() end |
#process_output(response, messages:, context:) ⇒ Riffer::Guardrails::Result
Processes the output response after it's received from the LLM; override in subclasses.
: (Riffer::Messages::Assistant, messages: Array, context: untyped) -> Riffer::Guardrails::Result
30 31 32 |
# File 'lib/riffer/guardrail.rb', line 30 def process_output(response, messages:, context:) pass(response) end |
#transform(data) ⇒ Riffer::Guardrails::Result
Creates a transform result that continues with transformed data.
: (untyped) -> Riffer::Guardrails::Result
54 55 56 |
# File 'lib/riffer/guardrail.rb', line 54 def transform(data) Riffer::Guardrails::Result.transform(data) end |