collab: Don't record billing events if billing is not enabled (#19102)
This PR adjusts the billing logic to not write any records to `billing_events` if: - The user is staff, as we don't want to bill staff members - Billing is disabled (we currently enable billing based on the presence of the Stripe API key) Release Notes: - N/A
This commit is contained in:
parent
b739cfa73f
commit
c709b66f35
2 changed files with 11 additions and 2 deletions
|
@ -639,6 +639,7 @@ where
|
|||
impl<S> Drop for TokenCountingStream<S> {
|
||||
fn drop(&mut self) {
|
||||
let state = self.state.clone();
|
||||
let is_llm_billing_enabled = state.config.is_llm_billing_enabled();
|
||||
let claims = self.claims.clone();
|
||||
let provider = self.provider;
|
||||
let model = std::mem::take(&mut self.model);
|
||||
|
@ -652,7 +653,14 @@ impl<S> Drop for TokenCountingStream<S> {
|
|||
provider,
|
||||
&model,
|
||||
tokens,
|
||||
claims.has_llm_subscription,
|
||||
// We're passing `false` here if LLM billing is not enabled
|
||||
// so that we don't write any records to the
|
||||
// `billing_events` table until we're ready to bill users.
|
||||
if is_llm_billing_enabled {
|
||||
claims.has_llm_subscription
|
||||
} else {
|
||||
false
|
||||
},
|
||||
Cents(claims.max_monthly_spend_in_cents),
|
||||
Utc::now(),
|
||||
)
|
||||
|
|
|
@ -409,7 +409,8 @@ impl LlmDatabase {
|
|||
monthly_usage.output_tokens as usize,
|
||||
);
|
||||
|
||||
if spending_this_month > FREE_TIER_MONTHLY_SPENDING_LIMIT
|
||||
if !is_staff
|
||||
&& spending_this_month > FREE_TIER_MONTHLY_SPENDING_LIMIT
|
||||
&& has_llm_subscription
|
||||
&& spending_this_month <= max_monthly_spend
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue