AI Usage

We track token usage and estimated costs per user and model. This enables analytics, quotas, and billing.

AI Usage

Helpers

Helpers in app/Helpers/ai_helpers.php provide a simple API:

ai_save_usage(?int $userId, string $model, int $promptTokens, int $outputTokens, string $currency = 'USD', array $meta = []): AiUsage
ai_cost_for_model_tokens(string $model, int $promptTokens, int $outputTokens): float

You can add your own pricing for models in the ai_cost_for_model_tokens() function.

$pricing = [
    // Prices are per 1,000,000 tokens in USD
    'gpt-4o-mini' => ['in' => (0.4 / 1000000), 'out' => (1.6 / 1000000)],
];

Stored fields

We persist a record with:

  • user_id, model, prompt_tokens, output_tokens
  • total_tokens and computed total_cost in currency
  • Optional meta JSON for custom attributes

Saving usage

$promptTokens = (int) $response->usage->promptTokens;
$outputTokens = (int) $response->usage->completionTokens;
ai_save_usage(Auth::id(), 'gpt-4o-mini', $promptTokens, $outputTokens);