Class: Tracebook::Mappers::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/tracebook/mappers/base.rb

Direct Known Subclasses

Anthropic, Ollama, OpenAI

Instance Method Summary collapse

Instance Method Details

#build_interaction(**attributes) ⇒ Object (private)



15
16
17
# File 'lib/tracebook/mappers/base.rb', line 15

def build_interaction(**attributes)
  NormalizedInteraction.new(**attributes)
end

#compact_hash(hash) ⇒ Object (private)



27
28
29
30
31
32
33
# File 'lib/tracebook/mappers/base.rb', line 27

def compact_hash(hash)
  hash.each_with_object({}) do |(key, value), memo|
    next if value.nil?

    memo[key] = value
  end
end

#indifferent_meta(meta) ⇒ Object (private)



19
20
21
# File 'lib/tracebook/mappers/base.rb', line 19

def indifferent_meta(meta)
  (meta || {}).with_indifferent_access
end

#normalize(raw_request:, raw_response:, meta: {}) ⇒ Object

Raises:

  • (NotImplementedError)


9
10
11
# File 'lib/tracebook/mappers/base.rb', line 9

def normalize(raw_request:, raw_response:, meta: {})
  raise NotImplementedError
end

#symbolize(hash) ⇒ Object (private)



23
24
25
# File 'lib/tracebook/mappers/base.rb', line 23

def symbolize(hash)
  hash.deep_dup.transform_keys { |key| key.respond_to?(:to_sym) ? key.to_sym : key }
end