Module: Langfuse::SpanWrappers

Included in:
Client, Generation, Span, Trace
Defined in:
lib/langfuse/span_wrappers.rb

Overview

Defines the enhanced observation helpers (agent, tool, chain, retriever, evaluator, guardrail) as thin wrappers around the extending class's #span, each pinning a fixed as_type.

embedding is intentionally not generated here: every wrapper folds model/usage into metadata before delegating, so it stays hand-written.

Constant Summary collapse

TYPES =
{
  agent: ObservationType::AGENT,
  tool: ObservationType::TOOL,
  chain: ObservationType::CHAIN,
  retriever: ObservationType::RETRIEVER,
  evaluator: ObservationType::EVALUATOR,
  guardrail: ObservationType::GUARDRAIL
}.freeze

Instance Method Summary collapse

Instance Method Details

#define_span_wrappers(evaluator_name: :evaluator) ⇒ Object

evaluator_name exists because Client exposes the helper as evaluator_obs, keeping it distinct from the Evaluators API.



22
23
24
25
26
27
28
29
30
# File 'lib/langfuse/span_wrappers.rb', line 22

def define_span_wrappers(evaluator_name: :evaluator)
  TYPES.each do |name, as_type|
    method_name = name == :evaluator ? evaluator_name : name

    define_method(method_name) do |**kwargs|
      span(**kwargs, as_type: as_type)
    end
  end
end