diff --git a/crates/collab/src/llm.rs b/crates/collab/src/llm.rs index c3a1626d18..f39d4a5ca5 100644 --- a/crates/collab/src/llm.rs +++ b/crates/collab/src/llm.rs @@ -514,23 +514,47 @@ async fn check_usage_limit( .get_usage(user_id, provider, model_name, Utc::now()) .await?; - let checks = [ - ( - usage.requests_this_minute, - per_user_max_requests_per_minute, - UsageMeasure::RequestsPerMinute, - ), - ( - usage.tokens_this_minute, - per_user_max_tokens_per_minute, - UsageMeasure::TokensPerMinute, - ), - ( - usage.tokens_this_day, - per_user_max_tokens_per_day, - UsageMeasure::TokensPerDay, - ), - ]; + let checks = match (provider, model_name) { + (LanguageModelProvider::Anthropic, "claude-3-7-sonnet") => vec![ + ( + usage.requests_this_minute, + per_user_max_requests_per_minute, + UsageMeasure::RequestsPerMinute, + ), + ( + usage.input_tokens_this_minute, + per_user_max_tokens_per_minute, + UsageMeasure::InputTokensPerMinute, + ), + ( + usage.output_tokens_this_minute, + per_user_max_tokens_per_minute, + UsageMeasure::OutputTokensPerMinute, + ), + ( + usage.tokens_this_day, + per_user_max_tokens_per_day, + UsageMeasure::TokensPerDay, + ), + ], + _ => vec![ + ( + usage.requests_this_minute, + per_user_max_requests_per_minute, + UsageMeasure::RequestsPerMinute, + ), + ( + usage.tokens_this_minute, + per_user_max_tokens_per_minute, + UsageMeasure::TokensPerMinute, + ), + ( + usage.tokens_this_day, + per_user_max_tokens_per_day, + UsageMeasure::TokensPerDay, + ), + ], + }; for (used, limit, usage_measure) in checks { if used > limit {