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.

```sql Splunk example | lookup model_pricing model OUTPUT input_price output_price | eval total_cost=(input_tokens * input_price / 1000000) + (output_tokens * output_price / 1000000) ```
['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.

```sql SQL example SELECT l.*, (l.input_tokens * p.input_price / 1000000) + (l.output_tokens * p.output_price / 1000000) as total_cost FROM ai_logs l JOIN model_pricing p ON l.model = p.model_name ```
['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)

Run in Playground

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.

  • 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.

Good morning

I'm here to help you with the docs.

I
AIBased on your context