AI Usage
We track token usage and estimated costs per user and model. This enables analytics, quotas, and billing.
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_tokenstotal_tokensand computedtotal_costincurrency- Optional
metaJSON 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);