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: TimestampedModel

LLMPrices 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 markup price to apply.

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

charge_type

CharField

Charge type

Type:

Type

created_at

DateTimeField

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

BigAutoField

Primary key: ID

Type:

Type

model

CharField

Model

Type:

Type

objects = <django.db.models.Manager object>
price

DecimalField

Price

Type:

Type

provider

CharField

Provider

Type:

Type

updated_at

DateTimeField

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