Module: LlmCostTracker
- Defined in:
- lib/llm_cost_tracker.rb,
lib/llm_cost_tracker/pricing.rb,
lib/llm_cost_tracker/railtie.rb,
lib/llm_cost_tracker/tracker.rb,
lib/llm_cost_tracker/version.rb,
lib/llm_cost_tracker/llm_api_call.rb,
lib/llm_cost_tracker/parsers/base.rb,
lib/llm_cost_tracker/configuration.rb,
lib/llm_cost_tracker/parsers/gemini.rb,
lib/llm_cost_tracker/parsers/openai.rb,
lib/llm_cost_tracker/parsers/registry.rb,
lib/llm_cost_tracker/parsers/anthropic.rb,
lib/llm_cost_tracker/middleware/faraday.rb,
lib/llm_cost_tracker/storage/active_record_store.rb,
lib/llm_cost_tracker/generators/llm_cost_tracker/install_generator.rb
Defined Under Namespace
Modules: Generators, Middleware, Parsers, Pricing, Storage
Classes: Configuration, Error, LlmApiCall, Railtie, Tracker
Constant Summary
collapse
- VERSION =
"0.1.0"
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.configuration ⇒ Object
23
24
25
|
# File 'lib/llm_cost_tracker.rb', line 23
def configuration
@configuration ||= Configuration.new
end
|
Class Method Details
27
28
29
|
# File 'lib/llm_cost_tracker.rb', line 27
def configure
yield(configuration)
end
|
.reset_configuration! ⇒ Object
31
32
33
|
# File 'lib/llm_cost_tracker.rb', line 31
def reset_configuration!
@configuration = Configuration.new
end
|
.track(provider:, model:, input_tokens:, output_tokens:, **metadata) ⇒ Object
Manual tracking for non-Faraday clients
LlmCostTracker.track(
provider: :openai,
model: "gpt-4o",
input_tokens: 150,
output_tokens: 50,
feature: "chat",
user_id: current_user.id
)
45
46
47
48
49
50
51
52
53
|
# File 'lib/llm_cost_tracker.rb', line 45
def track(provider:, model:, input_tokens:, output_tokens:, **metadata)
Tracker.record(
provider: provider.to_s,
model: model,
input_tokens: input_tokens,
output_tokens: output_tokens,
metadata: metadata
)
end
|