Class: Langfuse::Embedding

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

Overview

Observation for tracking embedding generation calls and vector operations.

Examples:

Block-based API

Langfuse.observe("generate-embeddings", as_type: :embedding) do |embedding|
  embedding.model = "text-embedding-ada-002"
  embedding.input = ["Ruby is a language", "Python is a language"]
  vectors = embedding_service.generate(embedding.input, model: embedding.model)
  embedding.update(
    output: vectors,
    usage: { prompt_tokens: 20, total_tokens: 20 }
  )
end

Stateful API

embedding = Langfuse.start_observation("vectorize", {
  model: "text-embedding-ada-002",
  input: "Convert this text to vector"
}, as_type: :embedding)
vector = embedding_api.create(embedding.input, model: embedding.model)
embedding.update(
  output: vector,
  usage_details: { prompt_tokens: 10, total_tokens: 10 }
)
embedding.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) ⇒ Embedding

Returns a new instance of Embedding.

Parameters:

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

    The underlying OTel span

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

    The OTel tracer

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

    Optional initial attributes



653
654
655
# File 'lib/langfuse/observations.rb', line 653

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

Instance Method Details

#model=(value) ⇒ void

This method returns an undefined value.

Parameters:

  • value (String)

    Model name (e.g., “text-embedding-ada-002”)



672
673
674
# File 'lib/langfuse/observations.rb', line 672

def model=(value)
  update_observation_attributes(model: value)
end

#model_parameters=(value) ⇒ void

This method returns an undefined value.

Parameters:

  • value (Hash)

    Model parameters (temperature, max_tokens, etc.)



678
679
680
# File 'lib/langfuse/observations.rb', line 678

def model_parameters=(value)
  update_observation_attributes(model_parameters: value)
end

#update(attrs) ⇒ self

Parameters:

Returns:

  • (self)


659
660
661
662
# File 'lib/langfuse/observations.rb', line 659

def update(attrs)
  update_observation_attributes(attrs)
  self
end

#usage=(value) ⇒ void

This method returns an undefined value.

Parameters:

  • value (Hash)

    Usage hash with token counts (:prompt_tokens, :total_tokens)



666
667
668
# File 'lib/langfuse/observations.rb', line 666

def usage=(value)
  update_observation_attributes(usage_details: value)
end