Package com.tnsai.llm.cost
Class ModelPricing
java.lang.Object
com.tnsai.llm.cost.ModelPricing
Model pricing information for cost calculation.
ModelPricing provides pricing data for various LLM models, enabling accurate cost tracking and budget management.
Pricing Units
All prices are per 1 million tokens ($/1M tokens). This is the standard unit used by most providers.
Supported Providers
- OpenAI (GPT-4o, GPT-4-turbo, GPT-3.5-turbo, o1)
- Anthropic (Claude 3.5 Sonnet, Claude 3 Opus)
- Google (Gemini 2.0, Gemini 1.5)
- Groq (Llama 3.3, Mixtral)
- Mistral (Large, Medium, Small)
Usage Example
ModelPricing pricing = ModelPricing.forModel("gpt-4o");
BigDecimal inputCost = pricing.calculateInputCost(1000); // 1000 tokens
BigDecimal outputCost = pricing.calculateOutputCost(500); // 500 tokens
-
Method Summary
Modifier and TypeMethodDescriptioncalculateCachedInputCost(long tokens) Calculates cost for cached input tokens.calculateInputCost(long tokens) Calculates cost for input tokens.calculateOutputCost(long tokens) Calculates cost for output tokens.calculateTotalCost(long inputTokens, long outputTokens) Calculates total cost for a request.calculateTotalCost(long inputTokens, long cachedInputTokens, long outputTokens) Calculates total cost with cached tokens.static Optional<ModelPricing> Gets pricing for a model.static voidregisterPricing(String modelId, String provider, BigDecimal inputPricePerMillion, BigDecimal outputPricePerMillion) Registers custom pricing for a model.booleantoString()
-
Method Details
-
forModel
Gets pricing for a model.- Parameters:
modelId- The model identifier- Returns:
- Optional containing pricing if found
-
registerPricing
public static void registerPricing(String modelId, String provider, BigDecimal inputPricePerMillion, BigDecimal outputPricePerMillion) Registers custom pricing for a model.- Parameters:
modelId- Model identifierprovider- Provider nameinputPricePerMillion- Input price per 1M tokensoutputPricePerMillion- Output price per 1M tokens
-
calculateInputCost
Calculates cost for input tokens.- Parameters:
tokens- Number of input tokens- Returns:
- Cost in USD
-
calculateOutputCost
Calculates cost for output tokens.- Parameters:
tokens- Number of output tokens- Returns:
- Cost in USD
-
calculateCachedInputCost
Calculates cost for cached input tokens.- Parameters:
tokens- Number of cached input tokens- Returns:
- Cost in USD, or regular input cost if cached pricing unavailable
-
calculateTotalCost
Calculates total cost for a request.- Parameters:
inputTokens- Input token countoutputTokens- Output token count- Returns:
- Total cost in USD
-
calculateTotalCost
Calculates total cost with cached tokens.- Parameters:
inputTokens- Regular input token countcachedInputTokens- Cached input token countoutputTokens- Output token count- Returns:
- Total cost in USD
-
getModelId
-
getProvider
-
getInputPricePerMillion
-
getOutputPricePerMillion
-
getCachedInputPricePerMillion
-
supportsCachedPricing
public boolean supportsCachedPricing() -
toString
-