The genai_cost function calculates the total cost of a GenAI API call based on the model name, input tokens, and output tokens. This function uses current pricing information for various AI models to provide accurate cost estimates.
You can use this function to track AI spending, analyze cost per conversation, identify expensive queries, or create cost reports and budgets for AI services.
For users of other query languages
If you come from other query languages, this section explains how to adjust your existing queries to achieve the same results in APL.
In Splunk SPL, you would need to manually calculate costs using eval and lookup tables.
['ai-logs']
| extend total_cost = genai_cost(model, input_tokens, output_tokens)In ANSI SQL, you would need to join with a pricing table and calculate costs manually.
['ai-logs']
| extend total_cost = genai_cost(model, input_tokens, output_tokens)Usage
Syntax
genai_cost(model, input_tokens, output_tokens)Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | The name of the AI model (for example, 'gpt-4', 'claude-3-opus', 'gpt-3.5-turbo'). |
| input_tokens | long | Yes | The number of input tokens (prompt tokens) used in the API call. |
| output_tokens | long | Yes | The number of output tokens (completion tokens) generated by the API call. |
Returns
Returns a real number representing the total cost in dollars (USD) for the API call based on the model's pricing.
Example
Calculate the total cost of a GenAI API call based on model and token usage.
Query
['otel-demo-genai']
| extend model = ['attributes.gen_ai.response.model']
| extend input_tokens = tolong(['attributes.gen_ai.usage.input_tokens'])
| extend output_tokens = tolong(['attributes.gen_ai.usage.output_tokens'])
| extend api_cost = genai_cost(model, input_tokens, output_tokens)
| summarize total_cost = sum(api_cost), avg_cost = avg(api_cost)Output
| total_cost | avg_cost |
|---|---|
| 12.45 | 0.0125 |
This query calculates total and average spending on AI API calls, helping you track costs and identify spending trends.
List of related functions
- genai_input_cost: Calculates only the input token cost. Use this when you need to separate input and output costs.
- genai_output_cost: Calculates only the output token cost. Use this when analyzing generation costs separately.
- genai_get_pricing: Gets the pricing structure for a model. Use this to understand or display pricing information.
- genai_estimate_tokens: Estimates tokens from text. Use this with genai_cost to predict costs before making API calls.