From 3a3621f2d8f1b1bd5a6c1f47de1f898d52d3c59c Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Tue, 25 Feb 2025 11:42:55 -0500 Subject: [PATCH] collab: Limit free tier usage across all models (#25573) This PR adjusts the usage checks for the LLM free tier. Previously we would limit the usage on a per-model basis, meaning the user would get $10/mo free for each model they had access to. We now have usage for all models count towards the free tier limit. Release Notes: - N/A --- crates/collab/src/llm.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/crates/collab/src/llm.rs b/crates/collab/src/llm.rs index b79931818e..c8eadeacd8 100644 --- a/crates/collab/src/llm.rs +++ b/crates/collab/src/llm.rs @@ -451,19 +451,19 @@ async fn check_usage_limit( return Ok(()); } + let user_id = UserId::from_proto(claims.user_id); let model = state.db.model(provider, model_name)?; let usage = state .db - .get_usage( - UserId::from_proto(claims.user_id), - provider, - model_name, - Utc::now(), - ) + .get_usage(user_id, provider, model_name, Utc::now()) .await?; let free_tier = claims.free_tier_monthly_spending_limit(); - if usage.spending_this_month >= free_tier { + let spending_this_month = state + .db + .get_user_spending_for_month(user_id, Utc::now()) + .await?; + if spending_this_month >= free_tier { if !claims.has_llm_subscription { return Err(Error::http( StatusCode::PAYMENT_REQUIRED,