Class: Langfuse::Guardrail

Inherits:
BaseObservation show all
Defined in:
lib/langfuse/observations.rb

Overview

Observation for tracking safety checks and compliance enforcement.

Examples:

Block-based API

Langfuse.observe("content-moderation", as_type: :guardrail) do |guardrail|
  guardrail.input = { content: user_input }
  result = moderation_service.check(guardrail.input[:content])
  guardrail.update(
    output: { passed: result.safe, reason: result.reason },
    metadata: { check_type: "toxicity" }
  )
end

Stateful API

guardrail = Langfuse.start_observation("safety-check", {
  input: { prompt: user_prompt }
}, as_type: :guardrail)
safety_result = safety_service.validate(guardrail.input[:prompt])
guardrail.update(output: { safe: safety_result.safe, violations: safety_result.violations })
guardrail.end

Instance Attribute Summary

Attributes inherited from BaseObservation

#otel_span, #otel_tracer, #type

Instance Method Summary collapse

Methods inherited from BaseObservation

#current_span, #end, #event, #id, #input=, #level=, #metadata=, #output=, #score_trace, #start_observation, #trace_id, #trace_url, #update_trace

Constructor Details

#initialize(otel_span, otel_tracer, attributes: nil) ⇒ Guardrail

Returns a new instance of Guardrail.

Parameters:

  • otel_span (OpenTelemetry::SDK::Trace::Span)

    The underlying OTel span

  • otel_tracer (OpenTelemetry::SDK::Trace::Tracer)

    The OTel tracer

  • attributes (Hash, Types::SpanAttributes, nil) (defaults to: nil)

    Optional initial attributes



615
616
617
# File 'lib/langfuse/observations.rb', line 615

def initialize(otel_span, otel_tracer, attributes: nil)
  super(otel_span, otel_tracer, attributes: attributes, type: OBSERVATION_TYPES[:guardrail])
end

Instance Method Details

#update(attrs) ⇒ self

Parameters:

Returns:

  • (self)


621
622
623
624
# File 'lib/langfuse/observations.rb', line 621

def update(attrs)
  update_observation_attributes(attrs)
  self
end