Module: Llmemory::LLM::UsageRecorder

Defined in:
lib/llmemory/llm/usage_recorder.rb

Class Method Summary collapse

Class Method Details

.embed_usage_from(vector_store) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/llmemory/llm/usage_recorder.rb', line 24

def embed_usage_from(vector_store)
  return nil unless vector_store

  if vector_store.respond_to?(:last_usage)
    usage = vector_store.last_usage
    return usage unless usage.nil?
  end

  provider = vector_store.instance_variable_get(:@embedding_provider) if vector_store.instance_variable_defined?(:@embedding_provider)
  provider&.last_usage if provider&.respond_to?(:last_usage)
end

.record(user_id:, usage:, operation:, store: nil) ⇒ Object



10
11
12
13
14
15
# File 'lib/llmemory/llm/usage_recorder.rb', line 10

def record(user_id:, usage:, operation:, store: nil)
  return if user_id.nil? || user_id.to_s.empty?
  return if usage.nil?

  UsageLedger.new(store: store).record(user_id, usage, operation: operation)
end

.record_embed_from_store(user_id:, vector_store:, store: nil) ⇒ Object



17
18
19
20
21
22
# File 'lib/llmemory/llm/usage_recorder.rb', line 17

def record_embed_from_store(user_id:, vector_store:, store: nil)
  usage = embed_usage_from(vector_store)
  return unless usage

  record(user_id: user_id, usage: usage, operation: :embed, store: store)
end