LLMPrices Model
Account LLMPrices Model
This module defines the LLMPrices model for managing provider/model-specific markup factors
used in account billing. It enables proportional billing across all accounts based on their usage
of different LLM providers and models.
Classes
LLMPrices: Stores markup prices for each (charge_type, provider, model) combination.
Key Features
Tracks markup factors for each provider/model/charge type.
Enforces uniqueness for (charge_type, provider, model) combinations.
Supports flexible billing and cost allocation for LLM usage.
Example
from smarter.apps.account.models import LLMPrices
markup = LLMPrices.objects.get(provider="openai", model="gpt-4").price
account_charge = provider_cost * markup * account_usage_ratio
- class smarter.apps.account.models.llm_prices.LLMPrices(*args, **kwargs)[source]
Bases:
TimestampedModelLLMPrices model for managing markup factors in account billing.
Stores provider/model-specific price markups, enabling proportional billing across all accounts based on their usage.
- Parameters:
charge_type – String. The type of charge (e.g., completion, plugin, tool).
provider – String. The LLM provider (e.g., OpenAI, Meta AI).
model – String. The model name.
price – Decimal. The price in USD per million tokens, markup included.
cost_of()uses it to price charges, which budgets that measure cost compare to their limits.
Note
Markup factors are used to calculate each account’s share of provider costs.
Example usage:
# Calculate account charge for provider/model usage markup = LLMPrices.objects.get(provider="openai", model="gpt-4").price account_charge = provider_cost * markup * account_usage_ratio
- TODO:
create a Choice or FK to charge_type field.
- TODO:
create some form of referential integrity for model and provider fields.
- TODO:
establish reasonable boundaries on price field.
See also
Account,Charge- Parameters:
id (Unknown) – Primary key: ID
created_at (Unknown) – Created at
updated_at (Unknown) – Updated at
- exception DoesNotExist
Bases:
ObjectDoesNotExist
- exception MultipleObjectsReturned
Bases:
MultipleObjectsReturned
- exception NotUpdated
Bases:
ObjectNotUpdated,DatabaseError
- classmethod cost_of(charge_type, provider, model, total_tokens)[source]
The cost in USD of total_tokens, where price is USD per million tokens.
Budgets that measure cost use it. Without a price for the charge type, provider and model, the cost is 0.
- Return type:
- created_at
-
Created at
Timestamp indicating when the model instance was created.
This field is automatically set to the current date and time when the instance is first created. It is indexed in the database for efficient querying.
- Type:
Type
- id
-
Primary key: ID
- Type:
Type
- objects = <django.db.models.Manager object>
- price
-
Price
- Type:
Type
- updated_at
-
Updated at
Timestamp indicating when the model instance was last updated.
This field is automatically updated to the current date and time whenever the instance is saved. It is indexed in the database for efficient querying.
- Type:
Type