Files
agentic-coding-workflow/internal/chat/queries/usage.sql
T

50 lines
1.7 KiB
SQL

-- name: InsertUsage :exec
INSERT INTO llm_usage (
conversation_id, message_id, user_id, endpoint_id, model_id,
prompt_tokens, completion_tokens, thinking_tokens, cost_usd
) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9);
-- name: SummarizeUsageByUser :many
SELECT user_id,
SUM(prompt_tokens)::int AS prompt_tokens,
SUM(completion_tokens)::int AS completion_tokens,
SUM(thinking_tokens)::int AS thinking_tokens,
SUM(cost_usd)::numeric AS cost_usd
FROM llm_usage
WHERE created_at >= $1 AND created_at < $2
GROUP BY user_id
ORDER BY cost_usd DESC;
-- name: SummarizeUsageByModel :many
SELECT model_id,
SUM(prompt_tokens)::int AS prompt_tokens,
SUM(completion_tokens)::int AS completion_tokens,
SUM(thinking_tokens)::int AS thinking_tokens,
SUM(cost_usd)::numeric AS cost_usd
FROM llm_usage
WHERE created_at >= $1 AND created_at < $2
GROUP BY model_id
ORDER BY cost_usd DESC;
-- name: SummarizeUsageByDay :many
SELECT date_trunc('day', created_at) AS day,
SUM(prompt_tokens)::int AS prompt_tokens,
SUM(completion_tokens)::int AS completion_tokens,
SUM(thinking_tokens)::int AS thinking_tokens,
SUM(cost_usd)::numeric AS cost_usd
FROM llm_usage
WHERE created_at >= $1 AND created_at < $2
GROUP BY day
ORDER BY day;
-- name: SummarizeUserDaily :many
SELECT date_trunc('day', created_at) AS day,
SUM(prompt_tokens)::int AS prompt_tokens,
SUM(completion_tokens)::int AS completion_tokens,
SUM(thinking_tokens)::int AS thinking_tokens,
SUM(cost_usd)::numeric AS cost_usd
FROM llm_usage
WHERE user_id = $1 AND created_at >= $2 AND created_at < $3
GROUP BY day
ORDER BY day;