From 474e670bbd2acb00ddb70cb350675023d9af5958 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Wed, 16 Oct 2024 18:22:24 +0200 Subject: [PATCH] Increase monthly free tier spend from 5 dollars to 10 dollars (#19291) Release Notes: - N/A Co-authored-by: Marshall Co-authored-by: Richard --- crates/collab/src/llm.rs | 2 +- .../collab/src/llm/db/tests/billing_tests.rs | 23 +++++++------------ 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/crates/collab/src/llm.rs b/crates/collab/src/llm.rs index a94aa5afe9..1facfa20ea 100644 --- a/crates/collab/src/llm.rs +++ b/crates/collab/src/llm.rs @@ -435,7 +435,7 @@ fn normalize_model_name(known_models: Vec, name: String) -> String { /// The maximum monthly spending an individual user can reach on the free tier /// before they have to pay. -pub const FREE_TIER_MONTHLY_SPENDING_LIMIT: Cents = Cents::from_dollars(5); +pub const FREE_TIER_MONTHLY_SPENDING_LIMIT: Cents = Cents::from_dollars(10); /// The default value to use for maximum spend per month if the user did not /// explicitly set a maximum spend. diff --git a/crates/collab/src/llm/db/tests/billing_tests.rs b/crates/collab/src/llm/db/tests/billing_tests.rs index 241a705db4..2e71df5129 100644 --- a/crates/collab/src/llm/db/tests/billing_tests.rs +++ b/crates/collab/src/llm/db/tests/billing_tests.rs @@ -45,24 +45,17 @@ async fn test_billing_limit_exceeded(db: &mut LlmDatabase) { let user_id = UserId::from_proto(123); - let max_monthly_spend = Cents::from_dollars(10); + let max_monthly_spend = Cents::from_dollars(11); // Record usage that brings us close to the limit but doesn't exceed it - // Let's say we use $9.50 worth of tokens - let tokens_to_use = 190_000_000; // This will cost $9.50 at $0.05 per 1 million tokens + // Let's say we use $10.50 worth of tokens + let tokens_to_use = 210_000_000; // This will cost $10.50 at $0.05 per 1 million tokens let usage = TokenUsage { input: tokens_to_use, input_cache_creation: 0, input_cache_read: 0, output: 0, }; - let cost = Cents::new(tokens_to_use as u32 / 1_000_000 * PRICE_PER_MILLION_INPUT_TOKENS as u32); - - assert_eq!( - cost, - Cents::new(950), - "expected the cost to be $9.50, based on the inputs, but it wasn't" - ); // Verify that before we record any usage, there are 0 billing events let billing_events = db.get_billing_events().await.unwrap(); @@ -102,8 +95,8 @@ async fn test_billing_limit_exceeded(db: &mut LlmDatabase) { input_cache_read: 0, output: 0, }, - spending_this_month: Cents::new(950), - lifetime_spending: Cents::new(950), + spending_this_month: Cents::new(1050), + lifetime_spending: Cents::new(1050), } ); @@ -118,7 +111,7 @@ async fn test_billing_limit_exceeded(db: &mut LlmDatabase) { assert_eq!(billing_event.input_cache_read_tokens, 0); assert_eq!(billing_event.output_tokens, 0); - let tokens_to_exceed = 20_000_000; // This will cost $1.00 more, pushing us from $9.50 to $10.50, which is over the $10 monthly maximum limit + let tokens_to_exceed = 20_000_000; // This will cost $1.00 more, pushing us from $10.50 to $11.50, which is over the $11 monthly maximum limit let usage_exceeding = TokenUsage { input: tokens_to_exceed, input_cache_creation: 0, @@ -158,8 +151,8 @@ async fn test_billing_limit_exceeded(db: &mut LlmDatabase) { input_cache_read: 0, output: 0, }, - spending_this_month: Cents::new(1050), - lifetime_spending: Cents::new(1050), + spending_this_month: Cents::new(1150), + lifetime_spending: Cents::new(1150), } ); }