fix(ops): gemini-block i summary-byggaren, inte routen
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
import { timingSafeEqual } from "node:crypto";
|
||||
import { gte, sql } from "drizzle-orm";
|
||||
import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify";
|
||||
import BRAND from "../../../../brand.config.json" with { type: "json" };
|
||||
import { geminiUsage } from "@app/database";
|
||||
import { errors } from "../lib/errors.js";
|
||||
|
||||
const CACHE_KEY = "ops:summary:cache";
|
||||
@@ -63,54 +61,6 @@ export async function opsRoutes(app: FastifyInstance) {
|
||||
}
|
||||
|
||||
const enriched = structuredClone(summary);
|
||||
const geminiDefaults = {
|
||||
anrop_24h: null,
|
||||
prompt_tokens_24h: null,
|
||||
output_tokens_24h: null,
|
||||
total_tokens_24h: null,
|
||||
total_tokens_manad: null,
|
||||
kostnad_usd_mikrocent_24h: null,
|
||||
andel_pa_aamos: 0.0,
|
||||
aamos_agreement: null,
|
||||
};
|
||||
|
||||
try {
|
||||
const now = new Date();
|
||||
const since24h = new Date(now.getTime() - 24 * 60 * 60 * 1000);
|
||||
const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);
|
||||
|
||||
const [dayAgg, monthAgg] = await Promise.all([
|
||||
app.db
|
||||
.select({
|
||||
count: sql<number>`count(*)`,
|
||||
promptTokens: sql<number>`coalesce(sum(${geminiUsage.promptTokens}), 0)`,
|
||||
outputTokens: sql<number>`coalesce(sum(${geminiUsage.outputTokens}), 0)`,
|
||||
totalTokens: sql<number>`coalesce(sum(${geminiUsage.totalTokens}), 0)`,
|
||||
costMicrocents: sql<number>`coalesce(sum(${geminiUsage.costMicrocents}), 0)`,
|
||||
})
|
||||
.from(geminiUsage)
|
||||
.where(gte(geminiUsage.createdAt, since24h)),
|
||||
app.db
|
||||
.select({
|
||||
totalTokens: sql<number>`coalesce(sum(${geminiUsage.totalTokens}), 0)`,
|
||||
})
|
||||
.from(geminiUsage)
|
||||
.where(gte(geminiUsage.createdAt, startOfMonth)),
|
||||
]);
|
||||
|
||||
enriched.gemini = {
|
||||
anrop_24h: Number(dayAgg[0]?.count ?? 0),
|
||||
prompt_tokens_24h: Number(dayAgg[0]?.promptTokens ?? 0),
|
||||
output_tokens_24h: Number(dayAgg[0]?.outputTokens ?? 0),
|
||||
total_tokens_24h: Number(dayAgg[0]?.totalTokens ?? 0),
|
||||
total_tokens_manad: Number(monthAgg[0]?.totalTokens ?? 0),
|
||||
kostnad_usd_mikrocent_24h: Number(dayAgg[0]?.costMicrocents ?? 0),
|
||||
andel_pa_aamos: 0.0,
|
||||
aamos_agreement: null,
|
||||
};
|
||||
} catch {
|
||||
enriched.gemini = geminiDefaults;
|
||||
}
|
||||
|
||||
if (
|
||||
enriched.wall &&
|
||||
|
||||
Reference in New Issue
Block a user