zen: cost multiplier

This commit is contained in:
Frank
2026-07-16 17:35:55 -04:00
parent 1d2a7b4c86
commit 0bc9a28b5e
2 changed files with 8 additions and 6 deletions
@@ -1168,28 +1168,29 @@ export async function handler(
const week = getWeekBounds(new Date())
const month = getMonthlyBounds(new Date(), authInfo.lite!.timeCreated)
const rollingWindowSeconds = lite.rollingWindow * 3600
const quotaCost = Math.round(cost * modelInfo.costMultiplier)
return [
db
.update(LiteTable)
.set({
monthlyUsage: sql`
CASE
WHEN ${LiteTable.timeMonthlyUpdated} >= ${month.start} THEN ${LiteTable.monthlyUsage} + ${cost}
ELSE ${cost}
WHEN ${LiteTable.timeMonthlyUpdated} >= ${month.start} THEN ${LiteTable.monthlyUsage} + ${quotaCost}
ELSE ${quotaCost}
END
`,
timeMonthlyUpdated: sql`now()`,
weeklyUsage: sql`
CASE
WHEN ${LiteTable.timeWeeklyUpdated} >= ${week.start} THEN ${LiteTable.weeklyUsage} + ${cost}
ELSE ${cost}
WHEN ${LiteTable.timeWeeklyUpdated} >= ${week.start} THEN ${LiteTable.weeklyUsage} + ${quotaCost}
ELSE ${quotaCost}
END
`,
timeWeeklyUpdated: sql`now()`,
rollingUsage: sql`
CASE
WHEN UNIX_TIMESTAMP(${LiteTable.timeRollingUpdated}) >= UNIX_TIMESTAMP(now()) - ${rollingWindowSeconds} THEN ${LiteTable.rollingUsage} + ${cost}
ELSE ${cost}
WHEN UNIX_TIMESTAMP(${LiteTable.timeRollingUpdated}) >= UNIX_TIMESTAMP(now()) - ${rollingWindowSeconds} THEN ${LiteTable.rollingUsage} + ${quotaCost}
ELSE ${quotaCost}
END
`,
timeRollingUpdated: sql`
+1
View File
@@ -22,6 +22,7 @@ export namespace ZenData {
const ModelSchema = z.object({
name: z.string(),
cost: ModelCostSchema,
costMultiplier: z.number().default(1),
cost200K: ModelCostSchema.optional(),
allowAnonymous: z.boolean().optional(),
byokProvider: z.enum(["openai", "anthropic", "google"]).optional(),